📄 qamber.m
字号:
clear
echo on
SNRindB1=0:2:15;
SNRindB2=0:0.1:15;
M1=4;
M2=8;
M3=16;
M4=64;
k1=log2(M1);
k2=log2(M2);
k3=log2(M3);
k4=log2(M4);
for i=1:length(SNRindB1),
smld_err_prb_4(i)=QAM_4(SNRindB1(i)); % 仿真误符号率
smld_err_prb_8(i)=QAM_8(SNRindB1(i));
smld_err_prb_16(i)=QAM_16(SNRindB1(i));
smld_err_prb_64(i)=QAM_64(SNRindB1(i));
echo off;
end;
echo on ;
for i=1:length(SNRindB2),
SNR=exp(SNRindB2(i)*log(10)/10);
%理论上误符号率
theo_err_prb_4(i)=4*Qfunct(sqrt(3*k1*SNR/(M1-1)));
theo_err_prb_8(i)=4*Qfunct(sqrt(3*k2*SNR/(M2-1)));
theo_err_prb_16(i)=4*Qfunct(sqrt(3*k3*SNR/(M3-1)));
theo_err_prb_64(i)=4*Qfunct(sqrt(3*k4*SNR/(M4-1)));
echo off ;
end;
echo on ;
% 绘制误符号率对比图
figure(1);
semilogy(SNRindB2,theo_err_prb_4);
hold on
semilogy(SNRindB2,theo_err_prb_8,'y');
hold on
semilogy(SNRindB2,theo_err_prb_16,'g');
hold on
semilogy(SNRindB2,theo_err_prb_64,'r');
legend('4QAM理论曲线','8QAM理论曲线','16QAM理论曲线','64QAM理论曲线',4);
figure(2);
subplot(2,2,1);
semilogy(SNRindB1,smld_err_prb_4,'*');
hold on
semilogy(SNRindB2,theo_err_prb_4);
legend('4QAM仿真曲线','4QAM理论曲线',2);
subplot(2,2,2);
semilogy(SNRindB1,smld_err_prb_8,'*');
hold on
semilogy(SNRindB2,theo_err_prb_8);
legend('8QAM仿真曲线','8QAM理论曲线',2);
subplot(2,2,3);
semilogy(SNRindB1,smld_err_prb_16,'*');
hold on
semilogy(SNRindB2,theo_err_prb_16);
legend('16QAM仿真曲线','16QAM理论曲线',2);
subplot(2,2,4);
semilogy(SNRindB1,smld_err_prb_64,'*');
hold on
semilogy(SNRindB2,theo_err_prb_64);
legend('64QAM仿真曲线','64QAM理论曲线',2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -