📄 cp0602_symbol_error_probabili.m
字号:
%
% FUNCTION 6.1 : "cp0602_symbol_error_probability"
%
% Analysis of the Symbol Error Probability for M-PAM and
% M-PPM signals
%
% The function computes and plots the Symbol Error
% Probability for M-PAM and M-PPM signals
% for M = {2, 4, 8} as a function of Eb/N0
%
% Programmed by Luca De Nardis
function cp0602_symbol_error_probability
% --------------------------
% Step Zero - Initialization
% --------------------------
Eb_N0 = logspace(0.5,2); % Range of Eb/N0: 5-20 dB
M = [2 4 8]; % Values of M
% -------------------------------------------------
% Step One - Evaluation of Symbol Error Probability
% -------------------------------------------------
for i=1:3
M_PAM(i,:)=(1-1/M(i))*erfc(sqrt(Eb_N0 * 3 *...
log2(M(i))/(M(i)^2-1)));
M_PPM(i,:)= exp(-0.5 * log2(M(i))*(Eb_N0 - 2 *...
log(2)));
end
% ---------------------------
% Step Two - Graphical Output
% ---------------------------
M_ary_BEP = [M_PAM' M_PPM']' % Building a single matrix
% for all vectors
F=figure(1);
set(F,'Position',[100 190 650 450]);
set(gcf,'DefaultAxesColorOrder',[0 0 0],...
'DefaultAxesLineStyleOrder','-+|-o|-*|:s|:d|:^');
PT=semilogy(10*log10(Eb_N0),M_ary_BEP);
set(PT,'LineWidth',[2]);
hold on
L= legend('2-PAM','4-PAM','8-PAM','2-PPM','4-PPM','8-PPM');
set(L,'FontSize',12);
set(PT,'LineWidth',[2]);
X=xlabel('E_b/N_0');
set(X,'FontSize',14);
Y=ylabel('Pr_e');
set(Y,'FontSize',14);
AX=gca;
set(AX,'FontSize',12);
axis([5 20 1e-6 1e-1]);
set(AX,'XTick', [5 7.5 10 12.5 15 17.5 20 ]);
grid on
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -