毕业论文基于matlab的dpsk通信系统仿真说明书.doc
《毕业论文基于matlab的dpsk通信系统仿真说明书.doc》由会员分享,可在线阅读,更多相关《毕业论文基于matlab的dpsk通信系统仿真说明书.doc(55页珍藏版)》请在三一办公上搜索。
1、通信原理课程实验报告基于MATLAB的DPSK通信系统仿真 院系: 班级: 学号: 姓名: 教师: 2012年12月7日目录1 设计题目32 设计要求33 设计原理3 3.1 DPSK调制3 3.2 DPSK解调44 设计流程55 代码实现5 5.1 基带信号的获取5 5.2 差分编码6 5.3 DPSK调制7 5.4 AWGN信道8 5.5 限噪处理8 5.6 差分相干解调9 5.4 AWGN信道11 5.7 功率谱密度图的绘制6 测试结果12 6.1 调制解调正确性的测试12 6.2 系统抗噪性能的测试147 总结178 心得体会17附:完整代码181 设计题目 用MATLAB仿真DPSK
2、通信系统2 设计要求 基本参数如下:1) Fc=1800Hz2) Rb=1200bps3) 考虑加入AWGN信道,Eb/N0=20dB4) 自定义一小段信息序列 结果要求:1) 绘制各阶段信号波形2) 绘制信号的PSD3 设计原理 二进制差分相移键控常简称为二相相对调相,记为2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是只本码元初相与前一码元初相之差。3.1 DPSK调制 DPSK方式即是利用前后相邻码元的相对载波相位值去表示数字信息的一种方式。例如,假设相位值用相位偏移表示(定义为本码元初相与前一码元初相只差),并设=数字
3、信息1=0数字信息0则数字信息序列与2DPSK信号的码元相位关系可举例表示如如下:数字信息: 0 0 1 1 1 0 0 1 0 12DPSK信号相位: 0 0 0 0 0 0 或 0 0 0 0 0画出的2PSK及DPSK信号的波形如图3-1所示。图3-1 2PSK及2DPSK信号的波形2DPSK的产生基本类似于2PSK,只是调制信号需要经过码型变换,将绝对码变为相对码。2DPSK产生的原理框图如图2-2所示1,图(a)为模拟调制法,图(b)为键控法。 (a) 模拟调制法 (b) 键控法图3-2 2DPSK信号的调制原理图从上面分析可见,无论接收信号是2DPSK还是2PSK信号,单从接收端看
4、是区分不开的。因此2DPSK信号的功率谱密度和2PSK信号的功率谱密度是完全一样的。3.2 DPSK解调 DPSK信号可以采用相干解调法(极性比较法)和差分相干解调法(相位比较法)。本次设计采用差分相干解调法,图3-3为差分相干解调法原理图。差分相干解调法的思想是直接比较前后码元的相位差。由于此时的解调已同时完成了码变换作业,故无需另加码变换器。由于这种解调方法又无需专门的相干载波,故事一种比较实用的方法。图3-3 2DPSK差分相干解调解调原理图4 设计流程 设计流程如下框图所示,箭头上的信号表示实际传递的信号名称。 bn dn mod modz 差分编码 DPSK调制 AWGN信道 BPF
5、 对比 r Bn mt demod 抽样判决 LPF 延时相乘 差分相干解调5 代码实现5.1 基带信号的获取 利用MATLAB自带函数randint 产生定长度的二进制随机序列sign,为了将sign转换为单极性NRZ信号,要对sign的每个随机码进行T点增样,最后得到基带数字信号bn代码实现如下:% 初始参量定义 %fc=1800; %载波频率Rb=1200; %基带数据传输速率Tb=1/Rb;T=50; %每个Tb内进行的增样点数M=8; %原始码字序列的长度N=9; %差分码字序列的长度sign=randint(1,M); %产生长度为M的随机二进制序列SNR=20; %信噪比% 对s
6、ign进行T点增样后的基带数字信号 %bn=; for n=1:M if sign(n)=0; F=zeros(1,T); else F=ones(1,T); end bn=bn,F;end绘图5.2 差分编码 设差分码cfm(二进制序列),差分编码原理为cfmn = bn xor cfmn-1 例如,如果 sign= 1 0 0 1 0 0 1 1 ,那么cfm=1 0 0 0 1 1 1 0 1 ; 同时,还要对得到的差分码cfm进行T点增样,得到差分信号dn(单极性NRZ信号)。代码实现如下:% 差分编码得到差分码cfm %cfm=;cfm(1)=1; %设cfm的初值为1for i=1
7、:M cfm(i+1)=xor(sign(i),cfm(i);end % 对cfm进行T点增样 %dn=; %差分信号for n=1:N; if cfm(n)=0; A=zeros(1,T); %每个symbol进行T点增样 else A=ones(1,T); end dn=dn A; end绘图5.3 DPSK调制 DPSK调制由于PSK调制的主要原因是DPSK调制解决了“不确定性反相”问题,即DPSK信号通过相邻时隙载波相位的变化与否来“携带”信息。 在代码实现这一步的过程中,我假设了一个相邻时隙相位差变量delta,易知,当sign的一个码字为1时,delta=pi,否则delta=0.
8、通过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信道 利用MATLAB自带函数awgn实现对已调信号mod进行加噪处理。代码实现如下:% 调制信号过高斯白噪声的信道 %modz
9、=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进行截取,因
10、为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进行截取绘图5.6 差分相干解调 差分相干解调的核心思想是比较两个相邻时隙上信号的相位,从而直接还原出信号Bn,分为三步:(1) 延时相乘代码实现如下:% 延时相乘 %r_shift=r(T+1:N*T);demod=;for i=1:M*T; a=r_shift(
11、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是滤波器时延带来的。 代码实现如下:% LPF %demod_broad=demod demod(M-1)*T+1:M*T)hLPF=fir1(
12、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; endend绘图 从上图可知,最终经DPSK通信系统
13、调制解调后得到的信号Bn与一开始的基带数字信号bn完全一致。5.7 功率谱密度图的绘制 采用Welch法绘制DPSK调制信号mod的功率谱密度图(Power spectrum magnitude)。选择适当的窗函数w(n),并再周期图计算前直接加进去,加窗的优点是无论什么样的窗函数均可使谱估计非负。二是在分段时,可使各段之间有重叠,这样会使方差减小。本设计中尝试了三种窗,分别是矩形窗、海明窗和Blacman窗。代码实现如下:% PSD %window=boxcar(100); %矩形窗 window1=hamming(100); %海明窗 window2=blackman(100); %Bla
14、ckman窗 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)
15、;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);绘图 从第一幅图即rectangular PSD中可以看出,单边带功率谱密度图的中心频率大致在1800Hz即载波频率处,第一零点大致在600Hz和3000Hz,即fc-Rb和fc+Rb处。6 测试结果6.1 调制解调正确性的测试 在前面我取用了一个特
16、例sign=1 0 0 1 0 0 1 1来说明每一步的正确性。下面利用randint 产生定长度的二进制随机序列sign,多次运行结果都显示最终差分相干解调得出的信号Bn与基带数字信号bn一致,说明此次基于MATLAB设计的DPSK通信系统能够成功实现DPSK信号的调制与解调。某几次运行结果的截图如下:6.2 系统抗噪性能的测试 在前面调制解调正确性的测试中,设定信噪比SNR=20.下面通过检验在不同信噪比值下,系统调制解调的正确性,来简单评定系统的抗噪性能。 SNR=10时,正确解调 SNR=5时,正确解调 SNR=2时,正确解调 SNR=1.5时,有误码出现 所以,可以定性判断该系统的抗
17、噪性能良好。7 总结 经过两周的MATLAB课程设计,我收获多多。总结后主要有一下几点可谈1) 良好编程习惯的培养 我们编程时要有良好的风格,源代码的逻辑简明清晰,易读易懂是好程序的重要标准。我的几点小收获是:标识符命名尽量含义鲜明,适当的注解,注意程序的视觉组织。2) 信息筛查能力的训练 拿到一个课程设计题目后,应该从何下手,如何获取有效资源、筛查信息,是对个人能力的一种考验。经过这次试验后,我认为首先需要把理论知识弄透彻(尤其是课本上的),再阅读别人的设计报告,重复别人所做的工作是一种不错学习方法,但是需要懂得去粗取精,提取有效信息,否则会浪费大量时间。3) 调试思想的建立 这次试验中我被
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业论文 基于 matlab dpsk 通信 系统 仿真 说明书
链接地址:https://www.31ppt.com/p-3973037.html