通信系统建模与仿真作业
- 格式:doc
- 大小:424.00 KB
- 文档页数:8
通信系统建模与仿真作业
在高斯白噪声的情况下,求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('误码率');。