BPSK和DPSK Matlab仿真Word格式文档下载.docx
《BPSK和DPSK Matlab仿真Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《BPSK和DPSK Matlab仿真Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
说明:
在画图时,进行了归一化处理。
噪声的方差为1,随机序列的幅度为1,调制加噪后信噪比为-3dB,按照理想情况计算,解调后信噪比为0dB。
图2随机序列(16个)
图3脉冲成形后的波形
脉冲成形的作用是抑制旁瓣,减少邻道干扰,在实际通信过程中必不可少,但是为了与理论误码率进行对比,在后面计算误码率时,没有进行脉冲成形。
图4调制后波形
图5加噪后波形
噪声的方差即平均功率为1,信噪比为0dB,从图中可以看出,噪声比较大。
图6低通滤波后波形
图7误码情况(0dB)
从图中可以看出在0dB的信噪比情况下有明显的误码出现。
2.2DPSK调制
图82DPSK系统原理框图
与BSPK调制相比,2DPSK在调制前要进行差分编码,通过前后相邻的两个码元的相对相位来表征信息,这样做的好处是,在接收端不需要提取相干载波,也就不存在180度相位反转问题,所以是一种实用的系统。
在接收端,对接收到的已调信号延迟一个码元间隔Ts,然后与接收信号相乘,再进行低通滤波、抽样判决,这种非相干解调方式实现简单,但误码率要高于BPSK调制,这可以通过后面的误码率统计看过。
2.仿真过程各点波形:
噪声的方差为1,随机序列的幅度为1,
调制加噪后信噪比为-3dB,按照理想情况计算,解调后信噪比为0dB。
图9随机序列(15个)
图10脉冲成形后的波形
图11调制后的波形
图12加噪后的波形
图13移位相乘后波形
非相干解调的一个重要过程就是对接收到的信号进行一个码元周期的移位,将移位后的信号与接收到的信号相乘。
再进行低通滤波,然后抽样判决。
图14低通滤波后的波形
图15误码情况(0dB)
3.误码率
在统计误码率时,考虑到程序运行时间,码元个数为:
65536,在高信噪比下统计的误码率可信度较低。
判决前的信噪比按下式计算:
SNR=A2/δ2,其中A为已调信号幅度,δ2为噪声方差。
BPSK的理论误码率为:
,其中r=SNR=A2/δ2为判决时的信噪比。
2DPSK的理论误码率为:
。
BPSK在-10dB,-8dB,-6dB,-4dB,-2dB,0dB,2dB,4dB,6dB,8dB,10dB的信噪比下的误码率依次为:
0.334625244140625
0.293212890625000
0.244171142578125
0.192596435546875
0.140975952148438
.0857********
.0433********
0.0148315429687500
0.00328063964843750
0.000488281250000000
4.57763671875000e-05
2DPSK在-10dB,-8dB,-6dB,-4dB,-2dB,0dB,2dB,4dB,6dB,8dB,10dB的信噪比下的误码率依次为:
0.463904783703365
0.444800488288701
0.410727092393378
0.370138094148165
0.309910734721904
0.229083695735103
0.144426642252232
0.0688944838635844
.021*********
0.00267032883192187
0.000183108262760357
根据这两组数据以及对应的理论数据,绘制的误码率曲线如下图所示:
图16误码率
从图中可以看出实际仿真数据接近理论数据,并且在相同的信噪比情况下,BPSK调制的误码率小于2DPSK调制。
附录:
源程序
1.BPSK.m
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%Bpsk调制,相干解调
%参数:
%载波频率4800Hz,码元速率2400Hz
%采样率是载波频率的4倍,即11920Hz
%
Nyquist_Freq=19200;
%奈奎斯特速率
CW_Freq=4800;
%载波频率
Sample_Ratio=0.125;
%载波频率/采样频率
m=16;
%码元数目
N=2*m/Sample_Ratio;
%采样点数
n=1:
1:
N;
N0=randn(1,N);
%噪声,均值为0,方差为1
h0=zeros(1,N);
%21阶整形滤波器
b1=rcosfir(0.5,10,2/Sample_Ratio,1);
%30阶低通滤波器h2
w2=[10.950.10];
%随机序列
a=rand(1,m);
fori=1:
m
if(a(1,i)>
0.5)
a(1,i)=1;
else
a(1,i)=-1;
end;
end;
%对随机序列进行采样
spread_a=zeros(1,N);
k=1;
j=0;
N
if(j==N/m)
j=0;
k=k+1;
end
j=j+1;
spread_a(1,i)=a(1,k);
end
%脉冲成形
fft_spread_a=fft(spread_a,N);
fft_b1=fft(b1,N);
wave_shape_a=ifft(fft_spread_a.*abs(fft_b1));
%功率归1化
energy_sum=0;
energy_sum=energy_sum+wave_shape_a(1,i)^2;
average_power=energy_sum/N;
wave_shape_a=wave_shape_a/sqrt(average_power);
%随机序列
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure
(1);
subplot(2,1,1);
plot(spread_a/max(spread_a),'
k'
);
%随机序列时域波形
title('
随机序列时域波形'
axis([1N-1.51.5]);
subplot(2,1,2);
plot((0:
N-1)*2*pi/N,abs(fft_spread_a)/max(abs(fft_spread_a)),'
%随机序列幅频特性
随机序列频域波形'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%整形以后的信号
fft_wave_shape_a=fft(wave_shape_a,N);
figure
(2);
plot(wave_shape_a/max(wave_shape_a),'
%整形以后的信号时域波形
脉冲成形后时域波形'
N-1)*2*pi/N,abs(fft_wave_shape_a)/max(abs(fft_wave_shape_a)),'
%整形以后的信号幅频特性
脉冲成形后频域波形'
%调制以后生成BPSK信号
bpsk_m=zeros(1,N);
j=1;
if(j==(N/m+1))
j=1;
bpsk_m(1,i)=wave_shape_a(1,i)*cos(2*pi*Sample_Ratio*i);
%调制
%调制以后的信号
fft_bpsk_m=fft(bpsk_m,N);
figure(3);
plot(bpsk_m/max(bpsk_m),'
%调制以后的信号时域波形
调制后时域波形'
N-1)*2*pi/N,abs(fft_bpsk_m)/max(abs(fft_bpsk_m)),'
%调制以后的信号幅频特性
调制后频域波形'
%信号加噪声,模拟信道
bpsk_m=bpsk_m+N0;
%加噪以后的信号
figure(4);
%加噪以后的信号时域波形
加噪后时域波形'
%加噪以后的信号幅频特性
加噪后频域波形'
%相干解调,用正交本振与信号相乘
bpsk_dm=bpsk_m.*cos(2*pi*Sample_Ratio*n);
%滤波
fft_dm=fft(bpsk_dm,N);
fft_b2=fft(b2,N);
%N点的FFT变换
fft_y1=fft_dm.*(abs(fft_b2));
y1=ifft(fft_y1);
%低通滤波后得到的信号
%滤波以后的信号
figure(5);
plot(y1/max(y1),'
%滤波以后的信号时域波形
滤波后时域波形'
N-1)*2*pi/N,abs(fft_y1)/max(abs(fft_y1)),'
%滤波以后的信号幅频特性
滤波后频域波形'
%采样和判决
an=zeros(1,m);
an(1,i)=y1(1,N/m*(i-1)+N/(2*m));
m
if(an(1,i)>
0)%判决,得到解调结果
result(1,i)=1;
result(1,i)=-1;
%误码情况
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
figure(6);
plot(result,'
ko'
holdon;
plot(a,'
kx'
axis([1m-1.51.5]);
legend('
判决后'
'
原码'
误码情况'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3.DPSK.m
%dpsk调制,非相干解调
%采样率是载波频率的8倍
m=15;
N=2*(m+1)/Sample_Ratio;
%采样点数,因为差分编码后会多出一个码元,所以是m+1
%差分编码
d_a=zeros(1,m+1);
d_a(1,1)=-1;
if(a(1,i)==d_a(1,i))
d_a(1,i+1)=-1;
d_a(1,i+1)=1;
%对原序列进行采样
spread_a=zeros(1,N-2/Sample_Ratio);
N-2/Sample_Ratio
if(j==2/Sample_Ratio)
%对差分编码后的序列进行采样
spread_d_a=zeros(1,N);
spread_d_a(1,i)=d_a(1,k);
%脉冲整形
fft_spread_d_a=fft(spread_d_a,N);
wave_shape_d_a=ifft(fft_spread_d_a.*abs(fft_b1));
energy_sum=energy_sum+wave_shape_d_a(1,i)^2;
wave_shape_d_a=wave_shape_d_a/sqrt(average_power);
%随机序列和差分编码后的波形
plot(spread_d_a/max(spread_d_a),'
随机序列差分编码后波形'
fft_wave_shape_d_a=fft(wave_shape_d_a,N);
plot(wave_shape_d_a/max(wave_shape_d_a),'
N-1)*2*pi/N,abs(fft_wave_shape_d_a)/max(abs(fft_wave_shape_d_a)),'
%调制以后生成dpsk信号
dpsk_m=zeros(1,N);
end
dpsk_m(1,i)=wave_shape_d_a(1,i)*cos(2*pi*Sample_Ratio*i);
fft_dpsk_m=fft(dpsk_m,N);
plot(dpsk_m/max(dpsk_m),'
N-1)*2*pi/N,abs(fft_dpsk_m)/max(abs(fft_dpsk_m)),'
dpsk_m=dpsk_m+N0;
%非相干解调
dpsk_m_shift=zeros(1,N);
if(i<
=2/Sample_Ratio)
dpsk_m_shift(1,i)=0;
dpsk_m_shift(1,i)=dpsk_m(1,i-2/Sample_Ratio);
dpsk_mul=dpsk_m_shift.*dpsk_m;
fft_dpsk_mul=fft(dpsk_mul,N);
fft_y1=fft_dpsk_mul.*(abs(fft_b2));
%相乘以后的信号
plot(dpsk_mul/max(dpsk_mul),'
%相乘后的信号时域波形
相乘后时域波形'
N-1)*2*pi/N,abs(fft_dpsk_mul)/max(abs(fft_dpsk_mul)),'
%相乘后的信号幅频特性
相乘后频域波形'
%抽样和判决
an=zeros(1,m+1);
an(1,i)=y1(1,2/Sample_Ratio*i+1/Sample_Ratio);
result=zeros(1,m);
0)
figure(7);