您的当前位置:首页正文

通信系统建模与仿真作业

来源:九壹网
通信系统建模与仿真作业

在高斯白噪声的情况下,求2ASK、2PSK、2FSK的误码率。

解答:

(1)、2ASK相干解调误码率理论值与仿真值代码如下: A=1; N=10000; FC=4; R=100; SNRdB=0:1:10;

Pe=1/2*erfc(sqrt(0.25*10.^(SNRdB/10))); semilogy(SNRdB,Pe,'R');hold on;grid on; n=1:N*R;

xn=randi([0 1],1,N); wc=sin(n/R*2*pi*FC); x=wc.*xn(ceil(n/R)); %调制

Vt=sum(0.5*wc([1:R]).^2); %判决门限 for i=1:length(SNRdB)

y=awgn(x,SNRdB(i)-10*log10(R),'measured'); %加高斯白噪声 y=y.*wc; for j=1:N

yn(j)=sum(y([(j-1)*R+1:j*R]))>Vt; end

ErrorCount=length(find(xor(xn,yn))); Pe(i)=ErrorCount/N; end

semilogy(SNRdB,Pe); title('2ASK相干解调误码率'); legend('误码率理论值','误码率仿真值'); xlabel('Eb/N0(dB)'); ylabel('误码率');

(2)、2ASK非相干解调误码率理论值与仿真值代码如下: A=1; N=10000; FC=2; R=64;

SNRdB=0:1:10;

Pe=1/2*exp(-0.25*10.^(SNRdB/10)); semilogy(SNRdB,Pe,'R');hold on;grid on; n=1:N*R;

xn=randi([0 1],1,N); wc=sin(n/R*2*pi); x=wc.*xn(ceil(n/R));%调制

Vt=sum(0.5*wc([1:R]).^2);%判决门限 for i=1:length(SNRdB)

y=awgn(x,SNRdB(i)-10*log10(R),'measured');%加高斯白噪声 for j=1:N

z=y([(j-1)*R+1:j*R]); z=conv(z,wc([1:R])); z=abs(hilbert(z)); z=z(R); yn(j)=z>Vt; end

ErrorCount=length(find(xor(xn,yn))); Pe(i)=ErrorCount/N; end %%打印图形

semilogy(SNRdB,Pe);

title('2ASK非相干解调误码率'); legend('误码率理论值','误码率仿真值'); xlabel('Eb/N0(dB)'); ylabel('误码率');

(3)、2PSK相干解调误码率理论值与仿真值代码如下: A=1; N=10000; FC=4; R=100; SNRdB=0:1:10;

Pe=1/2*erfc(sqrt(0.5*10.^(SNRdB/10))); semilogy(SNRdB,Pe,'R');hold on;grid on; n=1:N*R;

xn=randi([0 1],1,N); wc=sin(n/R*2*pi*FC);

x=wc.*xn(ceil(n/R))-wc.*(1-xn(ceil(n/R))); %调制 Vt=0; %判决门限 for i=1:length(SNRdB)

y=awgn(x,SNRdB(i)-10*log10(R),'measured'); %加高斯白噪声 y=y.*wc; for j=1:N

yn(j)=sum(y([(j-1)*R+1:j*R]))>Vt; end

ErrorCount=length(find(xor(xn,yn))); Pe(i)=ErrorCount/N; end

semilogy(SNRdB,Pe);

title('2PSK相干解调误码率');

legend('误码率理论值','误码率仿真值'); xlabel('Eb/N0(dB)'); ylabel('误码率');

(4)、2FSK相干解调误码率理论值与仿真值代码如下: A=1; N=10000; FC1=4; FC0=2; R=100; SNRdB=0:1:10;

Pe=1/2*erfc(sqrt(0.25*10.^(SNRdB/10))); semilogy(SNRdB,Pe,'R');hold on;grid on; n=1:N*R;

xn=randi([0 1],1,N); wc1=sin(n/R*2*pi*FC1); wc0=sin(n/R*2*pi*FC0);

x=wc1.*xn(ceil(n/R))+wc0.*(1-xn(ceil(n/R))); %调制 Vt=0; %判决门限 for i=1:length(SNRdB);

y=awgn(x,SNRdB(i)-10*log10(R),'measured'); %加高斯白噪声

y1=y.*wc1; y0=y.*wc0; for j=1:N

yn(j)=(sum(y1([(j-1)*R+1:j*R]))-sum(y0([(j-1)*R+1:j*R])))>Vt; end

ErrorCount=length(find(xor(xn,yn))); Pe(i)=ErrorCount/N; end

semilogy(SNRdB,Pe);

title('2FSK相干解调误码率');

legend('误码率理论值','误码率仿真值'); xlabel('Eb/N0(dB)'); ylabel('误码率');

(5)、2FSK非相干解调误码率理论值与仿真值代码如下:

A=1; N=10000; FC1=4; FC0=2; R=100; SNRdB=0:1:10;

Pe=1/2*exp(-0.25*10.^(SNRdB/10)); semilogy(SNRdB,Pe,'R');hold on;grid on; n=1:N*R;

xn=randi([0 1],1,N); wc1=sin(n/R*2*pi*FC1); wc0=sin(n/R*2*pi*FC0);

x=wc1.*xn(ceil(n/R))+wc0.*(1-xn(ceil(n/R)));%调制 Vt=0;%判决门限 for i=1:length(SNRdB)

y=awgn(x,SNRdB(i)-10*log10(R),'measured');%加高斯白噪声 for j=1:N

z=y([(j-1)*R+1:j*R]); z1=conv(z,wc1([1:R])); z1=abs(hilbert(z1)); z1=z1(R);

z0=conv(z,wc0([1:R])); z0=abs(hilbert(z0)); z0=z0(R); yn(j)=(z1-z0)>Vt; end

ErrorCount=length(find(xor(xn,yn))); Pe(i)=ErrorCount/N; end %%打印图形

semilogy(SNRdB,Pe);

title('2FSK非相干解调误码率'); legend('误码率理论值','误码率仿真值'); xlabel('Eb/N0(dB)'); ylabel('误码率');

因篇幅问题不能全部显示,请点此查看更多更全内容

Top