基于MATLAB的DPSK通信系统仿真_第1页
基于MATLAB的DPSK通信系统仿真_第2页
基于MATLAB的DPSK通信系统仿真_第3页
基于MATLAB的DPSK通信系统仿真_第4页
基于MATLAB的DPSK通信系统仿真_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#目录TOC\o"1-5"\h\z1设计题目32设计要求33设计原理3DPSK调制•DPSK解调•4设计流程55代码实现5基带信号的获取55.2差分编码6DPSK调制7AWGN信道8限噪处理85.6差分相干解调9AWGN信道115.7功率谱密度图的绘制6测试结果126.1调制解调正确性的测试12系统抗噪性能的测试147总结178心得体会17附:完整代码181设计题目用MATLAB仿真DPSK通信系统2设计要求基本参数如下:1)Fc=1800Hz2)Rb=1200bps3)考虑加入AWGN信道,Eb/N0=20dB4)自定义一小段信息序列结果要求:1)绘制各阶段信号波形2)绘制信号的PSD3设计原理二进制差分相移键控常简称为二相相对调相,记为2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是只本码元初相与前一码元初相之差。DPSK调制DPSK方式即是利用前后相邻码元的相对载波相位值去表示数字信息的一种方式。例如,假设相位值用相位偏移△屮表示(△屮定义为本码元初相与前一码兀初相只差),并设△屮=nf数字信息1△屮=0—数字信息0则数字信息序列与2DPSK信号的码元相位关系可举例表示如如下:数字信息:00111001012DPSK信号相位:000n0nnn00n或nnn0n000nn0画出的2PSK及DPSK信号的波形如图3-1所示。

码变为相对码。2DPSK产生的原理框图如图2-2所示⑴,图(a)为模拟调制法,图(b)为键控法。(a)模拟调制法(b)键控法图3-22DPSK信号的调制原理图从上面分析可见,无论接收信号是2DPSK还是2PSK信号,单从接收端看是区分不开的。因此2DPSK信号的功率谱密度和2PSK信号的功率谱密度是完全一样的。DPSK解调DPSK信号可以采用相干解调法(极性比较法)和差分相干解调法(相位比较法)。本次设计采用差分相干解调法,图3-3为差分相干解调法原理图。差分相干解调法的思想是直接比较前后码元的相位差。由于此时的解调已同时完成了码变换作业,故无需另加码变换器。由于这种解调方法又无需专门的相干载波,故事一种比较实用的方法。

4设计流程设计流程如下框图所示,箭头上的信号表示实际传递的信号名称。bn差分编码[dn=>DPSKbn差分编码[dn=>DPSK调制modzmodAWGN信道=>BPF对比Bnmtdemod延时相乘Bnmtdemod延时相乘差分相干解调5代码实现5.1基带信号的获取利用MATLAB自带函数randint产生定长度的二进制随机序列sign,为了将sign转换为单极性NRZ信号,要对sign的每个随机码进行T点增样,最后得到基带数字信号bn代码实现如下:%%%%%%%%%%%%fc=1800;Rb=1200;Tb=1/Rb;T=50;M=8;N=9;初始参量定义%%%%%%%%%%%载波频率%基带数据传输速率%每个Tb内进行的增样点数%原始码字序列的长度%差分码字序列的长度sign=randint(1,M);%产生长度为M的随机二进制序列SNR=20;%信噪比%%%%%%%%%%%%bn=[];forn=1:M对sign进行T点增样后的基带数字信号%%%%%%%%%%ifsign(n)==O;F=zeros(1,T);elseF=ones(1,T);endbn=[bn,F];end绘图基带数字信号囱2i1111111111111111TOC\o"1-5"\h\z1;t……3IIIIIIIIIIIIIIIIJIIII-I111IIIIIIIIIIIII■2!!!!'01002003004005.2差分编码设差分码cfm(二进制序列),差分编码原理为cfm[n]=b[n]xorcfm[n-l]例如,如果sign=[10010011],那么cfm=[100011101];同时,还要对得到的差分码cfm进行T点增样,得到差分信号dn(单极性NRZ信号)。代码实现如下:%%%%%%%%%%%%%差分编码得到差分码cfm%%%%%%%%%%cfm=[];cfm(1)=1;%设。壬皿的初值为1fori=1:Mcfm(i+1)=xor(sign(i),cfm(i));end%%%%%%%%%%%%%对cfm进行T点增样%%%%%%%%%%%%%%dn=[];%差分信号forn=1:N;ifcfm(n)==0;A=zeros(1,T);%每个symbol进行T点增样elseA=ones(1,T);enddn=[dnA];end绘图DPSK调制DPSK调制由于PSK调制的主要原因是DPSK调制解决了“不确定性反相”问题,即DPSK信号通过相邻时隙载波相位的变化与否来“携带”信息。在代码实现这一步的过程中,我假设了一个相邻时隙相位差变量delta,易知,当sign的一个码字为'1'时,delta=pi,否则delta=O.通过delta就能反映前后时隙的载波相位变化,进而实现DPSK调制。代码实现如下:%%%%%%%%%%%%%%%%dpsK调制%%%%%%%%%%%%%%%t=Tb/T:Tb/T:Tb;%对Tb=1/Rb间隔进行T点划分mod=cos(2*fc*pi*t);%调制后的信号delta=0;%相位差forn=1:Mifsign(n)==1;delta=delta+pi;elsedelta=delta;endc2=cos(2*fc*pi*t+delta);mod=[modc2];end绘图AWGN信道利用MATLAB自带函数awgn实现对已调信号mod进行加噪处理。代码实现如下:%%%%%%%%%%%调制信号过高斯白噪声的信道%%%%%%%modz=awgn(mod,SNR);%^AWGN信道绘图5.5限噪处理利用MATLAB自带函数firl构造FIRI型带通滤波器,使其对准信号频带,让信号几乎无失真通过,同时抑制带外噪声,此处取BPF的通带宽度为2*Rb,中心频率为fc。(由于设计的是数字滤波器,所以不要忘记对频率进行归一化处理)值得注意的是,由于设计的滤波器是100阶,所以通过BPF后的信号会有出现接近于一个symbol宽度的时延。所以在信号modz接入BPF前,要对其进行一个拓宽处理,对modz最后一个symbol进行复制,得到modz_broad,再接入至【」BPF上。同时,不要忘记对从BPF出来的信号r0进行截取,因为r0的第一个symbol是滤波器时延带来的。代码实现如下:%%%%%%%%%%%BPF%%%%%%%%%%%%%modz_broad=[modzmodz((N-1)*T+1:N*T)];fs=Rb*T;hBPF=fir1(100,2*pi*[fc-Rbfc+Rb]/fs);rO=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=[];fori=1:M*T;a=r_shift(i).*r(i);demod=[demoda];end绘图⑵LPF利用MATLAB自带函数firl构造FIRI型低通滤波器,此处取LPF的通带宽度为Rb。同BPF一样,由于设计的滤波器是100阶,所以通过LPF后的信号会有出现接近于一个symbol宽度的时延。所以要对信号demod接入LPF前,进行拓宽处理,得到demod_broad,再接入到LPF上。同样,不要忘记对从LPF出来的信号mt0进行截取,因为mt0的第一个symbol是滤波器时延带来的。代码实现如下:%%%%%%%%%%%%%LPF%%%%%%%%%%demod_broad=[demoddemod((M-1)*T+1:M*T)]hLPF=fir1(100,2*pi*[Rb]/fs);mtO=filter(hLPF,1,demod_broad);mt=mt0(T+1:(M+1)*T);%^mt0进行截取绘图⑶抽样判决实现思想:对mt—个symbol的T个采样点进行求和,如果sum大于0,则Bn对应这个symbol内的所有点的值为1,反之为0.代码实现如下:%%%%%%%%%%%%%抽样判决%%%%%%%%%%Bn=zeros(1,M*T);fori=1:M;ifsum(mt((i-1)*T+1:i*T))>0;Bn((i-1)*T+1:i*T)=0;elseBn((i-1)*T+1:i*T)=1;endend绘图从上图可知,最终经DPSK通信系统调制解调后得到的信号Bn与一开始的基带数字信号bn完全一致。5.[•功率谱密度图的绘制采用Welch法绘制DPSK调制信号mod的功率谱密度图(Powerspectrummagnitude)。选择适当的窗函数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([0500000.0008]);title('rectangularwindowPSD');xlabel('f/Hz');subplot(312)plot(f,Pxx1);axis([0500000.0006]);title('HammingPSD');xlabel('f/Hz');subplot(313)plot(f,Pxx2);axis([0500000.0006]);title('BlackmanPSD');xlabel('f/Hz');

rectangularwindowPSDx10rectangularwindowPSDx10LLLLLLLLLr■-r-rrrr―r—rr0500100015002000250030003500400045005000f/Hzx10-4HammingPSD-LLLLLI-LLL-rrrrrrr0500100015002000250030003500400045005000f/Hzx10-4BlackmanPSDLLLLL1-LLL■--r-一二rf~〜一一rr"r~rr—F0500100015002000250030003500400045005000505050f/Hz绘图绘图从第一幅图即rectangularPSD中可以看出,单边带功率谱密度图的中心频率大致在1800Hz即载波频率处,第一零点大致在600Hz和3000Hz,即fc-Rb和fc+Rb处。6测试结果6.1调制解调正确性的测试在前面我取用了一个特例sign=[10010011]来说明每一步的正确性。下面利用randint产生定长度的二进制随机序列sign,多次运行结果都显示最终差分相干解调得出的信号Bn与基带数字信号bn一致,说明此次基于MATLAB设计的DPSK通信系统能够成功实现DPSK信号的调制与解调。某几次运行结果的截图如下:基带数字信号bn差分信号dn21』J|il|1'l''m\0DPSK调制信号mod-20200400过AWGN信道后的modz信号过BPF后的信号r0200400J1f-/W71V120-20200400-10Luv-1111-¥ii.4■-■r,0200400延时相乘后的信号demod1过LPF后的信号mt0200400经抽样判决后信号Bn基带数字信号bn2|r-0-2L0200400差分信号dnI'j■■\l9n\卩I-■I)DPSK调制信号mod20-2020040012「-10JULKfl02004000-20200400基带数字信号bn20差分信号dnDPSK调制信号mod0200400202004002「0-102004000-1-20200400基带数字信号bn2V差分信号基带数字信号bn2V差分信号dn2211^1[lil[iblin0:川儿』1mmv.-202004000-2*-0200400DPSK调制信号mod6.2系统抗噪性能的测试在前面调制解调正确性的测试中,设定信噪比SNR=20•下面通过检验在不同信噪比值下,系统调制解调的正确性,来简单评定系统的抗噪性能。SNR=10时,正确解调0"-2020040012-10■V20040000-2200400SNR=5时,正确解调-202差分信号dn02004000训加DPSK调制信号mod2I11—12-20200400-10■P十、■J卜02004000-2200400SNR=2时,正确解调20基带数字信号bn差分信号dn20DPSK调制信号mod2Y??i\;■Ji'iliJ.j-r-,c*人〕;V¥U¥'H'f'l■r,UU.if!i[\0-2L-2-200200400过LPF后的信号mt2004000200400经抽样判决后信号Bn21-10uf45八02004000-2200400SNR=1.5时,有误码出现基带数字信号bn20■111U20差分信号dn21,1>J\,!|1ARr■rifi?■h11J.1.11UUmI)00200400DPSK调制信号mod-220200400-202004001经抽样判决后信号Bn2nr0-1200400延时相乘后的信号demod10-1r'f一"尸.Aftl1JIp过LPF后的信号mt02004000——-20200400所以,可以定性判断该系统的抗噪性能良好。7总结经过两周的MATLAB课程设计,我收获多多。总结后主要有一下几点可谈1)良好编程习惯的培养我们编程时要有良好的风格,源代码的逻辑简明清晰,易读易懂是好程序的重要标准。我的几点小收获是:标识符命名尽量含义鲜明,适当的注解,注意程序的视觉组织。2)信息筛查能力的训练拿到一个课程设计题目后,应该从何下手,如何获取有效资源、筛查信息,是对个人能力的一种考验。经过这次试验后,我认为首先需要把理论知识弄透彻(尤其是课本上的),再阅读别人的设计报告,重复别人所做的工作是一种不错学习方法,但是需要懂得去粗取精,提取有效信息,否则会浪费大量时间。3)调试思想的建立这次试验中我被很多问题难住,却常常不知如何下手找出错误,经老师指点后才懂得要按一定方法进行调试纠错,结果这些错误常常是一些拼写错误或符号不对称等小错。明确整体的架构,有针对地进行测试。调试方法多种多样,但调试思想的建立却是最为基础、根本。8心得体会课程实验是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。在这两周的时间里我切切实实的学到了许多知识,尤其是提高了在MATLAB中

的编程能力。回顾起此次通信原理课程实验,至今我仍感慨颇多,在整整两周的时间里,我的心情和课程设计的进展起起伏伏,一度怀疑自己的能力开始否定自己,直到最后把每处都弄通了、达到完美了,心情才真正舒畅开来。但是,我确实学到很多很多的的东西,同时巩固了所学知识。整个设计的过程,可以说得是困难重重,这毕竟算是自己第一次独立完成,在设计的过程中发现了自己的不足之处,对软件不熟悉,动手能力比较欠缺。设计的过程很纠结,调试的过程也很痛苦,但是知识就是在这个过程中学习的,经验也是在这个过程中积累的。经历过困难才会有更多的收获。掌握正确的方法,保持认真的作风和平和的心态,这样才能真正的学到知识。初始参量定义这次课程实验终于完成了,在设计中遇到了很多问题,多谢李晓峰老师的耐心讲解,从老师的身上我学到了很多实用的知识,也由衷地庆幸自己能遇到这样一位好老师,不仅专业知识扎实,而且品格高尚、谦和有礼,这就是我理想中的好老师。再次感谢李老师。同时,对给予我帮助的同学们也表示忠心的感谢。初始参量定义附:完整代码%%%%%%%%%%%%DPSK调制解调%%%%%%%%%%%%%%%%%%%%%%%%%%%%%fc=1800;%%%%%%%%%%%%fc=1800;Rb=1200;Tb=1/Rb;T=50;M=8;N=9;sign=zeros(1,M);sign=randint(1,N);SNR=1.5;%载波频率%基带数据传输速率%每个Tb内进行的增样点数%原始码字序列的长度%差分码字序列的长度%产生长度为M的随机二进制序列%信噪比%%%%%%%%%%%%对sign进行T点增样后的基带数字信号%%%%%%%%%%bn=[];forn=1:Mifsign(n)==0;F=zeros(1,T);elseF=ones(1,T);end

bn=[bn,F];end%%%%%%%%%%%%%差分编码得到差分码cfm%%%%%%%%%%cfm=[];cfm(1)=1;%设。壬皿的初值为1fori=1:Mcfm(i+1)=xor(sign(i),cfm(i));end%%%%%%%%%%%%%对cfm进行T点增样%%%%%%%%%%%%%%dn=[];forn=1:N;ifcfm(n)==0;A=zeros(1,T);else%差分信号%每个symbol进行T点增样A=ones(1,T);enddn=[dnA];end%%%%%%%%%%%%%%%%t=Tb/T:Tb/T:Tb;dpsK调制%%%%%%%%%%%%%%%%对Tb=1/Rb间隔进行T点划分mod=cos(2*fc*pi*t);delta=0;%调制后的信号%相位差forn=1:Mifsign(n)==1;delta=delta+pi;elsedelta=delta;endc2=cos(2*fc*pi*t+delta);mod=[modc2];end%%%%%%%%%%%调制信号过高斯白噪声的信道%%%%%%%modz=awgn(mod,SNR);%^AWGN信道%%%%%%%%%%%BPF%%%%%%%%%%%%%modz_broad=[modzmodz((N-1)*T+1:N*T)];fs=Rb*T;hBPF=fir1(100,2*pi*[fc-Rbfc+Rb]/fs);rO=filter(hBPF,1,modz_broad);r=rO(T+1:(N+1)*T);%对r0进行截取%%%%%%%%%%%延时相乘%%%%%%%r_shift=r(T+1:N*T);demod=[];fori=1:M*T;a=r_shift(i).*r(i);demod=[demoda];end%%%%%%%%%%%%%LPF%%%%%%%%%%demod_broad=[demoddemod((M-1)*T+1:M*T)]hLPF=fir1(100,2*pi*[Rb]/fs);mtO=filter(hLPF,1,demod_broad);mt=mt0(T+1:(M+1)*T);%^mt0进行截取%%%%%%%%%%%%%抽样判决%%%%%%%%%%Bn=zeros(1,M*T);fori=1:M;ifsum(mt((i-1)*T+1:i*T))>0;Bn((i-1)*T+1:i*T)=0;elseBn((i-1)*T+1:i*T)=1;endend%%%%%%%%%%%%画图%%%%%%%%%%%%%%%%%%%%%%%figured)%%%%%%%%%%figure(1);subplot(3,3,1);plot(bn);gridon;axis([0T*N-22]);title('基带数字信号bn');figure(1);subplot(3,3,2);plot(dn);gridon;axis([0T*N-22]);title('差分信号dn');figure(1);subplot(3,3,3);plot(mod);gridon;axis([0T*N-22]);title('DPSK调制信号mod');figure(1);subplot(3,3,4);plot(modz);gridonaxis([0T*N-22]);title('过AWGN信道后的modz信号');figure(1);subplot(3,3,5);plot(r);gridonaxis([0T*N-22]);title('过BPF后的信号r')figure(1);subplot(3,3,6);plot(demod);gridonaxis([0T*N-11]);title('延时相乘后的信号demod')figure(1);subplot(3,3,7);plot(mt);gridonaxis([0T*N-11]);title('过LPF后的信号mt');figure(1);subplot(3,3,8);plot(Bn);gridonaxis([0T*N-22]);title('经抽样判决后信号Bn')%%%%%%%%%%%%figure(2)%%%%%%%%%%figure(2);subplot(3,3,1);plot(abs(fft(bn)));axis([0T*N050]);title('原始信号bn频谱');figure(2);subplot(3,3,2);plot(abs(fft(mod)));axis([OT*N050]);title('DPSK信号mod频谱');figure(2);subplot(3,3,3);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论