📄 xuezhang.m
字号:
clear;Fd=1;%符号数率Fs=1*Fd;%符号取样数率M=4;%符号取值域x=0:10;%信噪比取值范围errratio=x;%误码率errnum=x;%误码个数Nd=1024;%串行数据总数Sd=16;%每载波的符号总数A=Nd/Sd;%子载波数Slen=64;%IFFT的抽样点数CP=4;CPlen=68;original=zeros(Nd,1);X1=zeros(Nd,1);X2=zeros(Nd,1);X3=zeros(Slen,1);Y=zeros(Slen,1);S=zeros(A*Slen,1);g=zeros(CPlen,1);Snoise=zeros(A*CPlen,1);z0=zeros(A*CPlen,1);z1=zeros(Slen,1);z2=zeros(Slen,1);z3=zeros(Nd,1);s1=zeros(Nd,1);last=zeros(Nd,1);%QAM调制方式下%程序开始%发射端original=randint(Nd,1,M);X1=modmap(original,Fd,Fs,'qask',M);X2=amodce(X1,1,'qam');for j=1:A; for i=1:Sd; X3(i+Slen-Sd,1)=X2(i+(j-1)*Sd,1); end Y=ifft(X3); for i=1:Slen; g(i+CP)=Y(i,1); end for i=1:CP; g(i)=Y(i+Slen-CP,1); end for i=1:CPlen; S(((j-1)*CPlen)+i)=g(i,1); endendfor k=1:length(x); B=x(k);Snoise=AWGN(S,B,'measured');%加入高斯噪声%接收端for j=1:A; for i=5:CPlen; z0(i-4+(j-1)*Slen)=Snoise(i+(j-1)*CPlen,1); end for i=1:Slen; z1(i)=z0(i+(j-1)*Slen); end z2=fft(z1); for i=1:Sd; z3(i+(j-1)*Sd,1)=z2(i+Slen-Sd,1); endends1=ademodce(z3,1,'qam');last=demodmap(s1,Fd,Fs,'qask',M);%主程序结束%性能分析[errnum(k),errratio(k)]=symerr(original,last);endfigure(1);plot(x,errratio);grid;xlabel('信噪比');ylabel('误码率');title('qam调制下系统误码率');%PSK调制方式下%发射端original=randint(Nd,1,M);X1=dmodce(original,Fd,Fs,'psk',M);for j=1:A; for i=1:Sd; X3(i+Slen-Sd,1)=X1(i+(j-1)*Sd,1); end Y=ifft(X3); for i=1:Slen; g(i+CP)=Y(i,1); end for i=1:CP; g(i)=Y(i+Slen-CP,1); end for i=1:CPlen; S(((j-1)*CPlen)+i)=g(i,1); endendfor k=1:length(x); B=x(k);Snoise=AWGN(S,B,'measured');%加入高斯噪声%接收端for j=1:A; for i=5:CPlen; z0(i-4+(j-1)*Slen)=Snoise(i+(j-1)*CPlen,1); end for i=1:Slen; z1(i)=z0(i+(j-1)*Slen); end z2=fft(z1); for i=1:Sd; z3(i+(j-1)*Sd,1)=z2(i+Slen-Sd,1); endendlast=ddemodce(z3,Fd,Fs,'psk',M);%主程序结束%性能分析[errnum(k),errratio(k)]=symerr(original,last);endfigure(2);plot(x,errratio);grid;xlabel('信噪比');ylabel('误码率');title('psk调制下系统误码率');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -