毕业论文(设计) 附录1:波形,功率谱及眼图仿真代码
%数字信号的产生
clear close all
global dt t df N %全局变量 close all k=15; N=2^k; %采样点数 L=4; %每码元的采样点数 M=N/L; %码元数 Rb=2; %码速率是2Mb/s Ts=1/Rb; %码元间隔 dt=Ts/L; %时域采样间隔 Rt=0.5; %占空比
df=1/(N*dt); %频域采样间隔 T=N*dt; %截短时间 Bs=N*df/2; %系统带宽? t=linspace(-T/2,T/2,N) %时域横坐标
f=linspace(-Bs,Bs,N)+eps; %时域纵坐标 Na=4; %示波器扫描宽度为4个码元 EP1=zeros(1,N); EP2=zeros(1,N);
alpha=0.6; %滚降系数
%升余弦滚降频谱成型
g1=sin(pi*t/Ts)./(pi*t/Ts);
g2=cos(alpha*pi*t/Ts)./(1-(2*alpha*t/Ts).^2); g=g1.*g2; %升余弦脉冲波形 G=t2f(g); GR=abs(G);
Gt=sqrt(abs(G)).*exp(-sqrt(-1)*2*pi*f*Ts); Gtt=sqrt(abs(G)); gt=f2t(Gt);
for ii=1:10
Eb_N0(ii)=(ii-1);
eb_n0(ii)=10^(Eb_N0(ii)/10); Eb=1;
n0=Eb/eb_n0(ii); sita=n0*Bs; n_err=0; n_errn=0;
第 31 页 共 35 页
毕业论文(设计)
for nn=1:3
a=sign(randn(1,M)); s=zeros(1,N); s(L/2:L:N)=a/dt; %产生冲激序列 S=t2f(s);
noise=sqrt(sita)*randn(1,N); NOISE=t2f(noise);
nout=real(f2t(NOISE.*Gtt));
n_ch=sqrt(sita)*randn(size(t));
nr=real(f2t(t2f(n_ch).*Gt)); nrn=nr+nout;
sr=real(f2t(S.*GR))+nr; srn=sr+nrn;
y=sr(L/2:L:N); yn=srn(L/2:L:N);
cc=sign(y); ccn=sign(yn);
n_err=n_err+length(find(cc~=a)); n_errn=n_errn+length(find(ccn~=a));
Q1=t2f(s).*Gt; %输入信号的傅立叶变换 ss1=f2t(t2f(s).*Gt); %输入信号的时域波形 Q2=t2f(s).*G; %输出信号的傅立叶变换 ss2=f2t(t2f(s).*G); %输出信号的时域波形 P1=Q1.*conj(Q1)/T; EP1=(EP1*(ii-1)+P1)/ii;
aa=30+10*log10(EP1+eps); %输入信号的功率谱 P2=Q2.*conj(Q2)/T; EP2=(EP2*(ii-1)+P2)/ii;
bb=30+10*log10(EP2+eps); %输出信号的功率谱 end
Pe(ii)=n_err/(M*nn); Pen(ii)=n_errn/(M*nn); figure(3)
semilogy(Eb_N0,Pen,'black');
第 32 页 共 35 页
毕业论文(设计) eb_n0=10.^(Eb_N0/10);
title('系统的平均误码率曲线(理想信道)') grid on hold ;
semilogy(Eb_N0,Pe,'r'); eb_n0=10.^(Eb_N0/10);
title('系统的平均误码率曲线(理想信道)') grid on hold on
semilogy(Eb_N0,0.5*erfc(sqrt(eb_n0)));
xlabel('Eb/N0,(△ 理想信道误码率曲线 — 标准误码率曲线)') ylabel('Pe') end
附录2:误码率仿真代码 %数字信号的产生 clear close all
global dt t df N %全局变量 close all k=15; N=2^k; %采样点数 L=4; %每码元的采样点数 M=N/L; %码元数 Rb=2; %码速率是2Mb/s Ts=1/Rb; %码元间隔 dt=Ts/L; %时域采样间隔 Rt=0.5; %占空比
df=1/(N*dt); %频域采样间隔 T=N*dt; %截短时间 Bs=N*df/2; %系统带宽? t=linspace(-T/2,T/2,N); %时域横坐标 f=linspace(-Bs,Bs,N)+eps; %时域纵坐标
Na=4; %示波器扫描宽度为4个码元 EP1=zeros(1,N); EP2=zeros(1,N);
alpha=0.6; %滚降系数
%升余弦滚降频谱成型
g1=sin(pi*t/Ts)./(pi*t/Ts);
g2=cos(alpha*pi*t/Ts)./(1-(2*alpha*t/Ts).^2); g=g1.*g2; %升余弦脉冲波形 G=t2f(g); GR=abs(G);
第 33 页 共 35 页
毕业论文(设计)Gt=sqrt(abs(G)).*exp(-sqrt(-1)*2*pi*f*Ts);
Gtt=sqrt(abs(G)); gt=f2t(Gt);
for ii=1:10
Eb_N0(ii)=(ii-1);
eb_n0(ii)=10^(Eb_N0(ii)/10); Eb=1;
n0=Eb/eb_n0(ii); sita=n0*Bs; n_err=0; n_errn=0;
for nn=1:3
a=sign(randn(1,M)); s=zeros(1,N); s(L/2:L:N)=a/dt; %产生冲激序列 S=t2f(s);
noise=sqrt(sita)*randn(1,N); NOISE=t2f(noise);
nout=real(f2t(NOISE.*Gtt));
n_ch=sqrt(sita)*randn(size(t));
nr=real(f2t(t2f(n_ch).*Gt)); nrn=nr+nout;
sr=real(f2t(S.*GR))+nr; srn=sr+nrn;
y=sr(L/2:L:N); yn=srn(L/2:L:N);
cc=sign(y); ccn=sign(yn);
n_err=n_err+length(find(cc~=a)); n_errn=n_errn+length(find(ccn~=a));
Q1=t2f(s).*Gt; %输入信号的傅立叶变换 ss1=f2t(t2f(s).*Gt); %输入信号的时域波形 Q2=t2f(s).*G; %输出信号的傅立叶变换
第 34 页 共 35 页
毕业论文(设计) ss2=f2t(t2f(s).*G); %输出信号的时域波形
P1=Q1.*conj(Q1)/T; EP1=(EP1*(ii-1)+P1)/ii;
aa=30+10*log10(EP1+eps); %输入信号的功率谱 P2=Q2.*conj(Q2)/T; EP2=(EP2*(ii-1)+P2)/ii;
bb=30+10*log10(EP2+eps); %输出信号的功率谱 end
Pe(ii)=n_err/(M*nn); Pen(ii)=n_errn/(M*nn);
figure(3)
semilogy(Eb_N0,Pen,'black'); eb_n0=10.^(Eb_N0/10);
title('系统的平均误码率曲线(理想信道)') grid on hold ;
semilogy(Eb_N0,Pe,'r'); eb_n0=10.^(Eb_N0/10);
title('系统的平均误码率曲线(理想信道)') grid on hold on
semilogy(Eb_N0,0.5*erfc(sqrt(eb_n0)));
xlabel('Eb/N0,(△ 理想信道误码率曲线 — 标准误码率曲线)') ylabel('Pe') end
s?t? S?t? ??t?
R?t??S?t????t?
第 35 页 共 35 页