采用-2DPSK-调制的数字通信系统仿真设计(共10页).doc
精选优质文档-倾情为你奉上采用 2DPSK 调制的数字通信系统仿真设计一、实验原理差分编码移相2DPSK在数字通信系统中是一种重要的调制方式,其抗噪性能和信道频带利用率均优于移幅键控(ASK)和移频键控(FSK),因而在实际的数据传输系统中得到广泛的应用。采用 2DPSK 调制的数字通信系统系统整体框图如图1所示 图1 系统整体框图 1、信道编码(汉明码)汉明码是一种能纠一位错的线性分组码,由于它的编译码简单,在数据通信和计算机存储系统中广泛应用。设原代码的码长为 k比特,附加纠错编码部分为r比特,当码字长度n = 2 r -1,r=n-k,r = 1 ,2 时就称这种线性分组码为汉明码。其基本原理是,将信息码元与监督码元通过线性方程式联系起来,每一个监督位被编在传输码字的特定比特位置上。 2、2DPSK信号的调制2DPSK方式即是利用前后相邻码元的相对载波相位值去表示数字信息的一种方式。例如,假设相位值用相位偏移表示(定义为本码元初相与前一码元初相只差),并设=数字信息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信号的波形如图2-1所示。图2 2PSK及2DPSK信号的波形2DPSK的产生基本类似于2PSK,只是调制信号需要经过码型变换,将绝对码变为相对码。2DPSK产生的原理框图如图2-2所示1,图(a)为模拟调制法,图(b)为键控法。(a)模拟调制法 (b)键控法图3 2DPSK信号的调制原理图3、信道噪声信道噪声能够干扰通信效果,降低通信的可靠性。在通信系统的理论分析中常常用到的噪声有:白噪声,高斯噪声,高斯型白噪声,窄带高斯噪声,正弦信号加窄带高斯噪声。此次仿真中加入信道的噪声为高斯白噪声。所谓高斯白噪声是指幅度分布服从,且功率谱密度又是均匀分布的噪声。4、2DPSK信号的解调2DPSK信号可以采用相干解调法(极性比较法)和差分相干解调法(相位比较法)。本次实验采用相干解调法,图4为相干解调法,解调器原理图和解调过程各点时间波形如图4和5所示。其解调原理是:先对2DPSK信号进行相干解调,恢复出相对码,再通过码反变换器变换为绝对码,从而恢复出发送的二进制数字信息。在解调过程中,若相干载波产生180o相位模糊,解调出的相对码将产生倒置现象,但是经过码反变换器后,输出的绝对码不会发生任何倒置现象,从而解决了载波相位模糊的问题。 图4 相干解调法解调器原理图 图5 解调过程各点时间波形二、程序源代码clear;t0=0.15;ts=0.001;fc=200;snr=10;fs=1/ts;df=0.2;t=ts:ts:t0;snr_lin=10(snr/10);y=;nm=length(t);%生成2DPSKbn=;bn(1)=1;%bn是差分码,设bn的第一个符号为1for i=1:10 x=rand; if x>=0.5 m(i)=1; else m(i)=0; end bn(i+1)=xor(m(i),bn(i); for j=1:15 l=(i-1)*15+j; c(l)=cos(2*pi*fc*t(l); c1(l)=cos(2*pi*fc*t(l)+pi); if m(i)=1; mi(l)=1; else mi(l)=0; end if bn(i+1)=1; bn1(l)=1; y(l)=c(l); else bn1(l)=0; y(l)=c1(l); end endend%加噪声signal_power=spower(y(1:length(t); % power in modulated signalnoise_power=signal_power/snr_lin; % compute noise powernoise_std=sqrt(noise_power); % compute noise standard deviationnoise=noise_std*randn(1,length(y); % generate noiser=y+noise; % add noise to the modulated signal%时域频域转换m=mi;M,m,df1=fftseq(m,ts,df);M=M*ts;BN1,bn1,df1=fftseq(bn1,ts,df);BN1=BN1*ts;f=0:df1:df1*(length(m)-1)-fs/2;Y,y,df1=fftseq(y,ts,df);Y=Y*ts;C,c,df1=fftseq(c,ts,df);C=C*ts;R,r,df1=fftseq(r,ts,df);R=R*ts;NOISE,noise,df1=fftseq(noise,ts,df);NOISE=NOISE*ts;%解调f_cutoff=70;n_cutoff=floor(70/df1);H=zeros(size(f);H(1:n_cutoff)=2*ones(1,n_cutoff);H(length(f)-n_cutoff+1:length(f)=2*ones(1,n_cutoff);yy=r.*c;YY,yy,df1=fftseq(yy,ts,df);YY=YY*ts;DEM=H.*YY;%滤波dem=real(ifft(DEM)/fs;dem=dem(1:length(t);ytemp=dem;y1=ytemp;for i=(1:length(t);% 判决,得到解调结果 if y1(1,i)>0; y1(1,i)=1; else y1(1,i)=0; end;end;for i=(1:10);%码反变换 k=y1(i-1)*15+1:i*15); if mean(k)>0.5; y2(i)=1; else y2(i)=0; end endy3(1)=xor(y2(1),1);for i=(2:10); y3(i)=xor(y2(i-1),y2(i);endfor i=(1:10); for j=(1:15); l=(i-1)*15+j; if y3(i)=1; yout(l)=1; else yout(l)=0; end end end Y1,y1,df1=fftseq(y1,ts,df);Y1=Y1*ts;YOUT,yout,df1=fftseq(yout,ts,df);YOUT=YOUT*ts;pause;%仿真pause;figure(1);subplot(3,2,1);plot(t,mi(1:length(t);grid;axis(0 0.15 -2 2);xlabel('Time');title('源信号波形');subplot(3,2,2);plot(f,abs(fftshift(M);xlabel('Frequency'); title('源信号频谱');subplot(3,2,3);plot(t,bn1(1:length(t);grid;axis(0 0.15 -2 2);xlabel('Time');title('码变换后波形');subplot(3,2,4);plot(f,abs(fftshift(BN1);xlabel('Frequency');title('码变换后频谱');subplot(3,2,5);plot(t,c(1:length(t);grid;axis(0 0.15 -2 2);xlabel('Time');title('载波波形');subplot(3,2,6);plot(f,abs(fftshift(C);xlabel('Frequency');title('载波频谱');pause;figure(2);subplot(3,2,1);plot(t,noise(1:length(t);grid;axis(0 0.15 -2 2);xlabel('Time');title('噪声波形');subplot(3,2,2);plot(f,abs(fftshift(NOISE);xlabel('Frequency');title('噪声频谱');subplot(3,2,3);plot(t,y(1:length(t);grid;axis(0 0.15 -2 2);xlabel('Time');title('未加噪声调制波形');subplot(3,2,4);plot(f,abs(fftshift(Y);xlabel('Frequency'); title('未加噪声调制频谱');subplot(3,2,5);plot(t,r(1:length(t);grid;axis(0 0.15 -2 2);xlabel('Time');title('加噪声调制波形');subplot(3,2,6);plot(f,abs(fftshift(R);xlabel('Frequency'); title('加噪声调制频谱');pause;figure(3);subplot(3,2,1);plot(t,yy(1:length(t);grid;axis(0 0.15 -2 2);xlabel('Time');title('相干解调后波形');subplot(3,2,2);plot(f,abs(fftshift(YY);xlabel('Frequency'); title('相干解调后频谱');subplot(3,2,3);plot(t,dem(1:length(t);grid;xlabel('Time');title('低通后波形');subplot(3,2,4);plot(f,abs(fftshift(DEM);xlabel('Frequency'); title('低通后频谱');subplot(3,2,5);plot(t,y1(1:length(t);grid;axis(0 0.15 -2 2);xlabel('Time');title('抽样判决后波形');subplot(3,2,6);plot(f,abs(fftshift(Y1);xlabel('Frequency'); title('抽样判决后频谱');pause;figure(4);subplot(2,2,1);plot(t,yout(1:length(t);grid;axis(0 0.15 -2 2);xlabel('Time');title('码反变换后波形');subplot(2,2,2);plot(f,abs(fftshift(YOUT);xlabel('Frequency'); title('码反变换后频谱');subplot(2,2,3);plot(t,mi(1:length(t);grid;axis(0 0.15 -2 2);xlabel('Time');title('源信号波形');subplot(2,2,4);plot(f,abs(fftshift(M);xlabel('Frequency'); title('源信号频谱');fftseq.m程序function M,m,df=fftseq(m,ts,df) % M,m,df=fftseq(m,ts,df)% M,m,df=fftseq(m,ts)%FFTSEQ generates M, the FFT of the sequence m.% The sequence is zero padded to meet the required frequency resolution df.% ts is the sampling interval. The output df is the final frequency resolution.% Output m is the zero padded version of input m. M is the FFT.fs=1/ts;if nargin = 2 n1=0;else n1=fs/df;endn2=length(m);n=2(max(nextpow2(n1),nextpow2(n2);M=fft(m,n);m=m,zeros(1,n-n2);df=fs/n;spower.m程序function p=spower(x)% p=spower(x)%SPOWER returns the power in signal xp=(norm(x)2)/length(x);三、 实验结果(含仿真图形输出)及分析;2DPSK调制和解调各环节仿真波形如下各图所示。 图源信号、码变换后、载波时间波形和频谱源信号是随机产生二进制码元,载波频为fc=200Hz,幅度为的余弦波,源信号经过码变换(差分编码)产生码变换后信号,各时间波形和频谱如图所示。 图 噪声、未加噪声调制、加噪声调制时间波形和频谱源信号经过2DPSK调制后产生调制波信号,从频域上看是源信号中心频率经调制后搬移到了载波频率上。调制后的信号时间波形由两种相位不同的波形组成,当源信号为时,2DPSK信号相位反转,当源信号为时,相位保持不变(变不变)。2DPSK信号后经过加性高斯白噪声信道后得到加噪声调制信号,设信噪比为SNR=10dB,各时间波形和频谱如图所示,由图可见,2DPSK信号经过SNR=10dB加性高斯白噪声信道后的波形有明显的毛刺出现。 图相干解调后、低通后、抽样判决后、码反变换后及源信号时间波形和频谱解调时加有SNR=10dB噪声2DPSK信号与同步载波在频域相乘后经过70Hz低通滤波后,再经过抽样判决得到相对码,然后进行码反变换得到绝对码,从而恢复出原始数字信号,与源信号相比是一致的,说明没有产生误码,各时间波形和频谱如图所示。 图SNR=1dB时码反变换后及源信号时间波形和频谱当加性高斯白噪声信道信噪比SNR=1dB时,码反变换后信号时域波形和频谱与源信号相比还是一致的,说明也没有产生误码,如图所示。五、心得体会通过这次实验,我对数字通信系统的原理有了更清晰透彻的认识和掌握,也加深了对2PSK调制的理解和记忆。而且通过MATLAB编程仿真实验,我的编程能力也得到了锻炼。但同时在实验中我也发现了自己的许多不足,如理论知识基础不够扎实,在编程时的参数设置环节遇到了很大困难。今后我将更加认真地学习理论知识,并积极将自己的理论知识与实践能力相结合,充分培养自己的综合能力。六、参考文献1 樊昌信 曹丽娜 编著通信原理(第六版).北京:国防工业出版社,2008.32 邵玉斌 编著 Matlab/Simulink通信系统建模与仿真实例分析 北京.清华大学出版社.2008.6专心-专注-专业