基于MATLAB的DPSK通信系统仿真(2)

2019-05-24 14:28

5.3 DPSK调制

DPSK调制由于PSK调制的主要原因是DPSK调制解决了“不确定性反相”问题,即DPSK信号通过相邻时隙载波相位的变化与否来“携带”信息。 在代码实现这一步的过程中,我假设了一个相邻时隙相位差变量delta,易知,当sign的一个码字为‘1’时,delta=pi,否则delta=0.通过delta就能反映前后时隙的载波相位变化,进而实现DPSK调制。

代码实现如下:

%%%%%%%%%%%%%%%% DPSK调制 %%%%%%%%%%%%%%%

t=Tb/T:Tb/T:Tb; %对Tb=1/Rb间隔进行T点划分 mod=cos(2*fc*pi*t); %调制后的信号 delta=0; %相位差 for n=1:M

if sign(n)==1;

delta=delta+pi; else

delta=delta; end

c2=cos(2*fc*pi*t+delta); mod=[mod c2]; end

绘图

5.4 AWGN信道

6

利用MATLAB自带函数awgn实现对已调信号mod进行加噪处理。

代码实现如下:

%%%%%%%%%%% 调制信号过高斯白噪声的信道 %%%%%%% modz=awgn(mod,SNR); %过AWGN信道

绘图

5.5 限噪处理

利用MATLAB自带函数fir1构造FIR I型 带通滤波器,使其对准信号频带,让信号几乎无失真通过,同时抑制带外噪声,此处取BPF的通带宽度为2*Rb,中心频率为fc。(由于设计的是数字滤波器,所以不要忘记对频率进行归一化处理)

值得注意的是,由于设计的滤波器是100阶,所以通过BPF后的信号会有出现接近于一个symbol宽度的时延。所以在信号modz接入BPF前,要对其进行一个拓宽处理,对modz最后一个symbol进行复制,得到modz_broad,再接入到BPF上。

同时,不要忘记对从BPF出来的信号r0进行截取,因为r0的第一个symbol是滤波器时延带来的。

代码实现如下:

%%%%%%%%%%% BPF %%%%%%%%%%%%%

modz_broad=[modz modz((N-1)*T+1:N*T)]; fs=Rb*T;

hBPF=fir1(100,2*pi*[fc-Rb fc+Rb]/fs); r0=filter(hBPF,1,modz_broad);

r=r0(T+1:(N+1)*T); %对r0进行截取

绘图

7

5.6 差分相干解调

差分相干解调的核心思想是比较两个相邻时隙上信号的相位,从而直接还原出信号Bn,分为三步: (1) 延时相乘

代码实现如下:

%%%%%%%%%%% 延时相乘 %%%%%%% r_shift=r(T+1:N*T); demod=[]; for i=1:M*T;

a=r_shift(i) .* r(i); demod=[demod a]; end

绘图

(2) LPF

利用MATLAB自带函数fir1构造FIR I型 低通滤波器,此处取LPF的通带宽度为Rb。

同BPF一样,由于设计的滤波器是100阶,所以通过LPF后的信号会有出现接近于一个symbol宽度的时延。所以要对信号demod接入LPF前,进行拓宽处理,得到demod_broad,再接入到LPF上。

同样,不要忘记对从LPF出来的信号mt0进行截取,因为mt0的第一个symbol

8

是滤波器时延带来的。

代码实现如下:

%%%%%%%%%%%%% LPF %%%%%%%%%%

demod_broad=[demod demod((M-1)*T+1:M*T)] hLPF=fir1(100,2*pi*[Rb]/fs); mt0=filter(hLPF,1,demod_broad);

mt=mt0(T+1:(M+1)*T); %对mt0进行截取

绘图

(3) 抽样判决

实现思想:对mt一个symbol的T个采样点进行求和,如果sum大于0,则Bn对应这个symbol内的所有点的值为1,反之为0.

代码实现如下:

%%%%%%%%%%%%% 抽样判决 %%%%%%%%%% Bn=zeros(1,M*T); for i=1:M;

if sum( mt( (i-1)*T+1 :i*T ) ) > 0; Bn((i-1)*T+1:i*T)=0; else

Bn((i-1)*T+1:i*T)=1; end end

绘图

9

从上图可知,最终经DPSK通信系统调制解调后得到的信号Bn与一开始的基带

数字信号bn完全一致。

5.7 功率谱密度图的绘制

采用Welch法绘制DPSK调制信号mod的功率谱密度图(Power spectrum magnitude)。选择适当的窗函数w(n),并再周期图计算前直接加进去,加窗的优点是无论什么样的窗函数均可使谱估计非负。二是在分段时,可使各段之间有重叠,这样会使方差减小。本设计中尝试了三种窗,分别是矩形窗、海明窗和Blacman窗。

代码实现如下:

%%%%%%%%%%%%%%% PSD %%%%%%%%%%%%%%% window=boxcar(100); %矩形窗 window1=hamming(100); %海明窗

window2=blackman(100); %Blackman窗 Nfft=N*T*Rb;

noverlap=0; %数据无重叠

range='onesided'; %计算单边带功率谱密度

[Pxx,f]=pwelch(mod,window,noverlap,Nfft,fs,range); [Pxx1,f]=pwelch(mod,window1,noverlap,Nfft,fs,range); [Pxx2,f]=pwelch(mod,window2,noverlap,Nfft,fs,range);

figure(3) subplot(311)

plot(f,Pxx);axis([0 5000 0 0.0008]);

title('rectangular window PSD');xlabel('f/Hz');

subplot(312)

plot(f,Pxx1);axis([0 5000 0 0.0006]); title('Hamming PSD');xlabel('f/Hz');

subplot(313)

plot(f,Pxx2);axis([0 5000 0 0.0006]); title('Blackman PSD');xlabel('f/Hz');

10


基于MATLAB的DPSK通信系统仿真(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:“十三五”重点项目-全自动地热恒压供水系统项目可行性研究报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: