📄 plot_snr.m
字号:
clear;
%用来仿真QAM的误bit率
snr=1:1:11;
%先来计算理论误bit率
error_theory=(1-(1-(2*(1-1/sqrt(16))*1/2*erfc(1/sqrt(2)*sqrt(3*4*10.^(snr/10)/(16-1))))).^2)/4;
%用理论的误bit率来决定需要仿真的点数
N=floor(1./error_theory)*100+100;
N(find(N<5000))=5000;
%开始仿真
global p;
for i=1:length(N);
%首先产生随机二进制序列
source=randsrc(1,N(i),[1,0;p,1-p]);
%对产生的二进制序列进行QAM调制
[source1,source2]=Qam_modulation(source);
%插值
sig_insert1=insert_value(source1,8);
sig_insert2=insert_value(source2,8);
[source1,source2]=rise_cos(sig_insert1,sig_insert2,0.25,2);
%====将滤波后的信号加入高斯白噪声
[x1,x2]=generate_noise(source1',source2',snr(i));
sig_noise1=x1';
sig_noise2=x2';
[sig_noise1,sig_noise2]=rise_cos(sig_noise1,sig_noise2,0.25,2);
[x1,x2]=pick_sig(sig_noise1,sig_noise2,8);
sig_noise1=x1;
sig_noise2=x2;
%解调
signal=demodulate_sig(sig_noise1,sig_noise2);
%计算误bit率
error_bit(i)=length(find(signal-source)~=0)/N(i);
end;
%画出图形
semilogy(snr,error_bit,'-b');
hold on
semilogy(snr,error_theory,'-r')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -