📄 qpsk_system_ber_simulation.m
字号:
% QPSK System Simulation, Pe evaluation
echo on
SNRindB1=0:0.5:6; %仿真信噪比范围
SNRindB2=0:0.1:6; %理论计算信噪比范围
for i=1:length(SNRindB1),
[pb,ps]=cm_sm32(SNRindB1(i)); % simulated bit and symbol error rates
smld_bit_err_prb(i)=pb;
smld_symbol_err_prb(i)=ps;
disp([ps,pb]);
echo off;
end;
echo on
for i=1:length(SNRindB1),
[pb_rayleigh,ps_rayleigh]=rayleigh(SNRindB1(i)); % simulated bit and symbol error rates
smld_bit_err_prb_rayleigh(i)=pb_rayleigh;
smld_symbol_err_prb_rayleigh(i)=ps_rayleigh;
disp([ps_rayleigh,pb_rayleigh]);
echo off;
end;
echo on;
for i=1:length(SNRindB2),
SNR=exp(SNRindB2(i)*log(10)/10); % signal to noise ratio
theo_err_prb(i)=0.5*erfc(sqrt(SNR)); % theoretical bit error rate
x=1-sqrt(SNR./(1+SNR));
theo_err_prb_rayleigh(i)=x/2; % theoretical bit error rate_rayleigh
echo off;
end;
echo on;
% Plotting commands follow % 作图
grid on
semilogy(SNRindB1,smld_bit_err_prb,'*');
hold on
semilogy(SNRindB1,smld_symbol_err_prb,'o');
hold on
semilogy(SNRindB2,theo_err_prb);
hold on
semilogy(SNRindB2,theo_err_prb_rayleigh,'r');
hold on
semilogy(SNRindB1,smld_bit_err_prb_rayleigh,'r*');
hold on
semilogy(SNRindB1,smld_symbol_err_prb_rayleigh,'ro');
xlabel('信噪比(dB)');
ylabel('误码/符号率');
legend('bit error probability','symbol error probability','theory error probability');
title('BER performance of QPSK transmission scheme under AWGN and Rayleigh fading channel');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -