您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于MATLAB的DPSK通信系统仿真
1《通信原理》课程实验报告基于MATLAB的DPSK通信系统仿真院系:班级:学号:姓名:教师:2012年12月7日2目录1设计题目························································32设计要求························································33设计原理························································33.1DPSK调制····················································33.2DPSK解调····················································44设计流程························································55代码实现························································55.1基带信号的获取···············································55.2差分编码·····················································65.3DPSK调制···················································75.4AWGN信道···················································85.5限噪处理·····················································85.6差分相干解调·················································95.4AWGN信道··················································115.7功率谱密度图的绘制6测试结果·······················································126.1调制解调正确性的测试········································126.2系统抗噪性能的测试··········································147总结····························································178心得体会·······················································17附:完整代码·····················································1831设计题目用MATLAB仿真DPSK通信系统2设计要求基本参数如下:1)Fc=1800Hz2)Rb=1200bps3)考虑加入AWGN信道,Eb/N0=20dB4)自定义一小段信息序列结果要求:1)绘制各阶段信号波形2)绘制信号的PSD3设计原理二进制差分相移键控常简称为二相相对调相,记为2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是只本码元初相与前一码元初相之差。3.1DPSK调制DPSK方式即是利用前后相邻码元的相对载波相位值去表示数字信息的一种方式。例如,假设相位值用相位偏移△φ表示(△φ定义为本码元初相与前一码元初相只差),并设△φ=π→数字信息1△φ=0→数字信息0则数字信息序列与2DPSK信号的码元相位关系可举例表示如如下:数字信息:00111001012DPSK信号相位:000π0πππ00π或πππ0π000ππ0画出的2PSK及DPSK信号的波形如图3-1所示。4图3-12PSK及2DPSK信号的波形2DPSK的产生基本类似于2PSK,只是调制信号需要经过码型变换,将绝对码变为相对码。2DPSK产生的原理框图如图2-2所示[1],图(a)为模拟调制法,图(b)为键控法。(a)模拟调制法(b)键控法图3-22DPSK信号的调制原理图从上面分析可见,无论接收信号是2DPSK还是2PSK信号,单从接收端看是区分不开的。因此2DPSK信号的功率谱密度和2PSK信号的功率谱密度是完全一样的。3.2DPSK解调DPSK信号可以采用相干解调法(极性比较法)和差分相干解调法(相位比较法)。本次设计采用差分相干解调法,图3-3为差分相干解调法原理图。差分相干解调法的思想是直接比较前后码元的相位差。由于此时的解调已同时完成了码变换作业,故无需另加码变换器。由于这种解调方法又无需专门的相干载波,故事一种比较实用的方法。5图3-32DPSK差分相干解调解调原理图4设计流程设计流程如下框图所示,箭头上的信号表示实际传递的信号名称。bndnmodmodz差分编码DPSK调制AWGN信道BPF对比rBnmtdemod抽样判决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;%信噪比%%%%%%%%%%%%对sign进行T点增样后的基带数字信号%%%%%%%%%%bn=[];forn=1:M6ifsign(n)==0;F=zeros(1,T);elseF=ones(1,T);endbn=[bn,F];end绘图5.2差分编码设差分码cfm(二进制序列),差分编码原理为cfm[n]=b[n]xorcfm[n-1]例如,如果sign=[10010011],那么cfm=[100011101];同时,还要对得到的差分码cfm进行T点增样,得到差分信号dn(单极性NRZ信号)。代码实现如下:%%%%%%%%%%%%%差分编码得到差分码cfm%%%%%%%%%%cfm=[];cfm(1)=1;%设cfm的初值为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绘图75.3DPSK调制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;%相位差forn=1:Mifsign(n)==1;delta=delta+pi;elsedelta=delta;endc2=cos(2*fc*pi*t+delta);mod=[modc2];end绘图5.4AWGN信道8利用MATLAB自带函数awgn实现对已调信号mod进行加噪处理。代码实现如下:%%%%%%%%%%%调制信号过高斯白噪声的信道%%%%%%%modz=awgn(mod,SNR);%过AWGN信道绘图5.5限噪处理利用MATLAB自带函数fir1构造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);r0=filter(hBPF,1,modz_broad);r=r0(T+1:(N+1)*T);%对r0进行截取绘图95.6差分相干解调差分相干解调的核心思想是比较两个相邻时隙上信号的相位,从而直接还原出信号Bn,分为三步:(1)延时相乘代码实现如下:%%%%%%%%%%%延时相乘%%%%%%%r_shift=r(T+1:N*T);demod=[];fori=1:M*T;a=r_shift(i).*r(i);demod=[demoda];end绘图(2)LPF利用MATLAB自带函数fir1构造FIRI型低通滤波器,此处取LPF的通带宽度为Rb。同BPF一样,由于设计的滤波器是100阶,所以通过LPF后的信号会有出现接近于一个symbol宽度的时延。所以要对信号demod接入LPF前,进行拓宽处理,得到demod_broad,再接入到LPF上。同样,不要忘记对从LPF出来的信号mt0进行截取,因为mt0的第一个symbol10是滤波器时延带来的。代码实现如下:%%%%%%%%%%%%%LPF%%%%%%%%%%demod_broad=[demoddemod((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);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绘图11从上图可知,最终经DPSK通信系统调制解调后得到的信号Bn与一开始的基带数字信号bn完全一致。5.7功率谱密度图的绘制采用Welch法绘制DPSK调制信号mod的功率谱密度图(Powerspectrummagnitude)。选择适当的窗函数w(n),并再周期图计算前直接加进去,加窗的优点是无论什么样的窗函数均可使谱估计非负。二是在分段时,可使各段之间有重叠,这样会使方差减小。本设计中尝试了三种窗,分别是矩形窗、海明窗和Blacman窗。代码实现如下:%%%%%%%%%%%%%%%PSD%%%%%%%%%%%%%%%window=boxcar(100);%矩形窗window1=hamming(100);%海明窗window2=blackman(100)
本文标题:基于MATLAB的DPSK通信系统仿真
链接地址:https://www.777doc.com/doc-5653038 .html