2DPSK调制与解调的数字通信系统软件仿真
2DPSK调制与解调的数字通信系统软件仿真 一、 试验内容 1、设计系统整体框图及数学模型; 2、产生离散二进制信源,进行信道编码(汉明码),产生2DPSK信号; 3、加入信道噪声(高斯白噪声); 4、2DPSK信号相干解调,信道解码; 5、系统性能分析(信号波形、频谱,白噪声的波形、频谱,信道编解码带来的系统误码率性能增益,误码率与理论曲线对比等)。 二、试验原理 2DPSK的调制原理 在传输信号中,2PSK信号具有较好的误码率性能。但是,在2PSK信号的载波复原过程中存在着180度的相位模糊,即复原的本地载波与所需的相干载波可能同相也可能反相,这种相位关系的不确定性将会造成解调出的数字基带信号与发送出的数字基带信号正好相反,即“1”变为“0”,“0”变为“1”,判决器输出输出数字信号全部出错。为了克服此缺点提出二进制差分相移键控(2DPSK)方式。 2DPSK信号的产生方法是先对二进制数字基带信号进行差分编码,即把表示数字信息序列的肯定码变换成相对码,然后再依据相对码进行肯定调相,从而变成二进制差分相移键控信号。2DPSK信号调制器原理框图如图2-1所示。 2DPSK的解调原理 2DPSK的解调方法分为两种一种是相干解调加码反变换即极性比较法,另一种是差分相干解调即相位比较法。这里采纳的是第一种 其解调原理是对2DPSK信号进行相干解调,复原出相对码,再经码反变换器变换为肯定码从而复原动身送的二进制数字信息。在解调过程中,由于载波相位模糊性的影响,使得解调出的相对码也可能是“1”和“0”倒置,但经差分译码得到的肯定码不会发生任何倒置的现象,从而解决了载波相位模糊带来的问题。2DPSK的相干解调原理框图如图2-3所示 三、仿真设计 四、试验结果分析探讨 试验仿真结果 分析 通过仿真得到的误符号率和误比特率曲线与理论曲线相比差别挺大,比如在理论曲线中在信噪比为12dB时的误符号率和误比特率可达到10-7数量级而在实际仿真中这一数据在10-410-5之间。可能的缘由如下 仿真的码元数有点少,本次仿真中仿真的码元数为10万个,从曲线中可以看出在信噪比为9dB的时候,曲线起先变差,从前面的仿真来看跟仿真的码元数少有关系;另一方面,我们产生的是伪随机基带信号,可能带有肯定的周期性,在肯定程度上影响了误符号率和误比特率与信噪比的关系。 程序源代码 产生基带信号及码变换 function Coded_SignalCodeSignaln,Num_Unit,Signal,bitRate M2;二进制 N7;7,4Hamming码 m3; DeCodeSignal []; DeCodeSignal1 0; CodeSignalencodeSignal,N,N-m; Hamming编码 CodeSignalreshapeCodeSignal.,log2M,n*N/log2M.; SignalreshapeSignal.,log2M,n*N-m/log2M.; bit2[]; for i1lengthSignal if Signali0 bit3zeros1,Num_Unit; else bit3ones1,Num_Unit; end bit2[bit2,bit3]; end figure1 subplot3,1,1 plotbit2; title基带信号,grid on; axis[0,Num_Unit*lengthSignal-4,-1.5,1.5]; Lenth_Of_CoSign length CodeSignal ; --------------------------------------------------- 肯定码 -〉相对码 --------------------------------------------------- DeCodeSignal10CodeSignal1; if DeCodeSignal12 DeCodeSignal10; else DeCodeSignal1DeCodeSignal1; end for ww2Lenth_Of_CoSign DeCodeSignalwwDeCodeSignalww-1CodeSignalww; if DeCodeSignalww2 DeCodeSignalww0; else DeCodeSignalwwDeCodeSignalww; end end Coded_Signal DeCodeSignal; --------------------------------------------------- 产生基带信号 --------------------------------------------------- SignalOrign[]; for i1Lenth_Of_CoSign if CodeSignali0 SignalOrign1zeros1,Num_Unit; else SignalOrign1ones1,Num_Unit; end SignalOrign[SignalOrign,SignalOrign1]; end subplot3,1,2 plotSignalOrign; title编码后基带信号,grid on; axis[0,Num_Unit*Lenth_Of_CoSign,-1.5,1.5]; subplot3,1,3 p