📄 main.m
字号:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% 主函数 %%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
b1=zeros(1,20);
b2=zeros(1,20);
b3=zeros(1,20);
for j=13:20
snr=j; %信噪比
len=40000; %编码的总长度,每四个为一组
information=source(len); %产生信源并调制
output=encode(information,len); %ifft输出
out_wotcode=modulation(information); %没有经过编码的参考输出
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%% AWGN信道 %%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
ni=randn(1,len*2);
nic=randn(1,len);
nq=randn(1,len*2);
nqc=randn(1,len);
ngauss=ni+nq*i;
ngaussc=nic+nqc*i;
P=1;
snr=10^(snr/10);
sgma=sqrt(P/snr);
ngauss=ngauss*sgma;
ngaussc=ngaussc*sgma;
out_wotcode=out_wotcode+ngaussc; %加噪声
rec=output/1.414+ngauss;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%% 解调和译码 %%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
guzhi=demodulation(rec);
sd=softdec(rec);
outinf_wotcode=demodulation(out_wotcode); %解调
outinf=decode(guzhi); %解码
[num,ber]=symerr(information,outinf); %各种方法的误符号率
[numc,berc]=symerr(information,outinf_wotcode);
[nums,bers]=symerr(information,sd);
b1(j)=bers;
b2(j)=berc;
b3(j)=ber;
end
x=1:20;
semilogy(x,b1,x,b2,x,b3);
%xlable('SNR/dB');
%ylable('SER');
%title('不同信噪比下的误符号率对比');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -