Добавил:
debilX2
t.me
Фулл всегда есть! А если нет, то Вы плохо его ищите! ИиКГ, СКДИКТ, ОКИТПЭС и тд https://t.me/whitedevil752rn Так же веду разработку КД (конструкторской документации) согласно ГОСТ. Имеется опыт работы при производстве на одном из ведущих в области радиэлектроники предприятии. Пишите)
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:untitled3
.m clear;
clc
close all
N = 10^6; % число символов для оценки ПУ
M = 32; thetaMpsk = [0:M-1]*2*pi/M; % сигнальное созвездие ФМ-32
Es_N0_dB = [0:30]; % диапазон значений ОСШ
for ii = 1:length(Es_N0_dB)
% формирование символов ФМ-16
ipPhase = randsrc(1,N,thetaMpsk);
s = exp(j*ipPhase);
% формирование АБГШ
n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)];
% добавление АБГШ
y = s + 10^(-Es_N0_dB(ii)/20)*n;
% Демодуляция: оценка фазы в диапазоне [-pi:pi]
opPhase = angle(y);
% приведение фазы к диапазону [0:2pi]
opPhase(find(opPhase<0)) = opPhase(find(opPhase<0)) + 2*pi;
% округление оценки принятой фазы до ближайшего символа ФМ-16
ipPhaseHat = 2*pi/M*round(opPhase/(2*pi/M)) ;
% % приведение фазы 2pi к 0
ipPhaseHat(find(ipPhaseHat==2*pi)) = 0;
% подсчет числа ошибок
nErr(ii) = size(find([ipPhase- ipPhaseHat]),2);
end
simSer = nErr/N; % SER (модель)
theorySer = erfc(sqrt(10.^(Es_N0_dB/10))*sin(pi/M)); % SER (теория)
figure(101);
semilogy(Es_N0_dB,theorySer,'bs-','LineWidth',1); hold on;
semilogy(Es_N0_dB,simSer,'mx-','LineWidth',1);
axis([0 25 10^-5 1]); grid on;
xlabel('Es/No, дБ'); ylabel('SER (вероятность символьной ошибки)');
EsN0dB = [0:30]; % диапазон значений ОСШ
M = 32; % размер КАМ-М
color_vec2 = ['r'];
color_vec1 = ['b'];
k = sqrt(1/((2/3)*(M-1)));
simSer = compute_symbol_error_rate(EsN0dB, M);
theorySer = 2*(1-1/sqrt(M))*...
erfc(k*sqrt((10.^(EsN0dB/10))))- (1-2/sqrt(M) +...
1/M)*(erfc(k*sqrt((10.^(EsN0dB/10))))).^2;
semilogy(EsN0dB,theorySer,color_vec1,'LineWidth',2); hold on;
semilogy(EsN0dB,simSer, color_vec2,'LineWidth',2); hold on;
axis([0 30 10^-5 1]); grid on;
legend( 'Теор ФМ-32','модель-ФМ-32', 'Теор КАМ-32', 'модель-КАМ-32');
xlabel('Es/No, дБ');ylabel('Вероятность символьной ошибки');
title('Помехоустойчивость сигналов ФМ-32 и КАМ-32 в канале с АБГШ');
ratio=1/(sqrt(10)*sin(pi/32))
ratio_db=20*log10(ratio)
clc
close all
N = 10^6; % число символов для оценки ПУ
M = 32; thetaMpsk = [0:M-1]*2*pi/M; % сигнальное созвездие ФМ-32
Es_N0_dB = [0:30]; % диапазон значений ОСШ
for ii = 1:length(Es_N0_dB)
% формирование символов ФМ-16
ipPhase = randsrc(1,N,thetaMpsk);
s = exp(j*ipPhase);
% формирование АБГШ
n = 1/sqrt(2)*[randn(1,N) + j*randn(1,N)];
% добавление АБГШ
y = s + 10^(-Es_N0_dB(ii)/20)*n;
% Демодуляция: оценка фазы в диапазоне [-pi:pi]
opPhase = angle(y);
% приведение фазы к диапазону [0:2pi]
opPhase(find(opPhase<0)) = opPhase(find(opPhase<0)) + 2*pi;
% округление оценки принятой фазы до ближайшего символа ФМ-16
ipPhaseHat = 2*pi/M*round(opPhase/(2*pi/M)) ;
% % приведение фазы 2pi к 0
ipPhaseHat(find(ipPhaseHat==2*pi)) = 0;
% подсчет числа ошибок
nErr(ii) = size(find([ipPhase- ipPhaseHat]),2);
end
simSer = nErr/N; % SER (модель)
theorySer = erfc(sqrt(10.^(Es_N0_dB/10))*sin(pi/M)); % SER (теория)
figure(101);
semilogy(Es_N0_dB,theorySer,'bs-','LineWidth',1); hold on;
semilogy(Es_N0_dB,simSer,'mx-','LineWidth',1);
axis([0 25 10^-5 1]); grid on;
xlabel('Es/No, дБ'); ylabel('SER (вероятность символьной ошибки)');
EsN0dB = [0:30]; % диапазон значений ОСШ
M = 32; % размер КАМ-М
color_vec2 = ['r'];
color_vec1 = ['b'];
k = sqrt(1/((2/3)*(M-1)));
simSer = compute_symbol_error_rate(EsN0dB, M);
theorySer = 2*(1-1/sqrt(M))*...
erfc(k*sqrt((10.^(EsN0dB/10))))- (1-2/sqrt(M) +...
1/M)*(erfc(k*sqrt((10.^(EsN0dB/10))))).^2;
semilogy(EsN0dB,theorySer,color_vec1,'LineWidth',2); hold on;
semilogy(EsN0dB,simSer, color_vec2,'LineWidth',2); hold on;
axis([0 30 10^-5 1]); grid on;
legend( 'Теор ФМ-32','модель-ФМ-32', 'Теор КАМ-32', 'модель-КАМ-32');
xlabel('Es/No, дБ');ylabel('Вероятность символьной ошибки');
title('Помехоустойчивость сигналов ФМ-32 и КАМ-32 в канале с АБГШ');
ratio=1/(sqrt(10)*sin(pi/32))
ratio_db=20*log10(ratio)
