1、完整word版基于MATLAB的2DPSK信号仿真基于MATLAB的2DPSK信号的调制与解调仿真西安电子科技大学 张*一 题目要求 二 关于2DPSK 1 基础知识_2 2 2DPSK的调制原理_2 3 2DPSK的解调原理_3三 调制系统仿真 1 调制系统设计_41) 产生基带信号_ 42) 产生相对码_53) 产生载波信号_64) 调制_6 2 传输系统设计_7 3 解调系统设计_71) 带通滤波器_72) 乘法器_83) 低通滤波器_84) 抽样判决器_95) 延迟单元_96) 码(反)变换器_9 4 极性比较法结果_10 5 差分相干法结果_11四 完整程序源码 1 极性比较法程序
2、DPSK.m_12 2 差分相干法 DPSK1.m_15一 题目要求产生2DPSK信号,画出时域波形和频谱,分别用极性比较法和差分相干法解调。二 关于2DPSK1 基础知识2DPSK即二进制差分相移键控(2DPSK)二进制差分相移键控常简称为二相相对调相,记作2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是指本码元初相与前一码元初相之差。=0数字信息“0”;=数字信息“1”。 则数字信息序列与2DPSK信号的码元相位关系可举例表示如下:数字信息: 1 0 1 1 0 1 1 1 0 1DPSK信号相位: 0 0 0 0 0 0
3、或:0 0 0 0 0 2 2DPSK的调制原理一般来说,2DPSK信号有两种调试方法,即模拟调制法和键控法。2DPSK信号的的模拟调制法框图如图1所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。图1 模拟调制法2DPSK信号的的键控调制法框图如图2所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。选相开关作用为当输入为数字信息“0” 时接相位0,当输入数字信息为“1”时接pi。图2 键控调制3 2DPSK的解调原理2DPSK信号最常用的解调方法有两种,一种是极性比较法,另一种是差分相干法。差分相干法: 2DPSK信号先经过带通滤波器,去除调制信号频带以外的在
4、信道中混入的噪声,此后该信号分为两路,一路延时一个码元的时间后与另一路的信号相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出即为原基带信号。它的原理框图如图图3差分相干法法 极性比较法:2DPSK信号经过带通滤波器,滤掉信道中产生的噪声,再与本地载波相乘,经过低通滤波器,得到包含基带信号的低频信号,将其送入抽样判决器得到相对码,再经过码(反)变换器得到基带信号。原理图如下所示图4 极性比较法法三 仿真程序设计1 调制系统设计1)产生基带信号 本例中使用matlab中的rand函数随机产生10个随机数,并采用就近取整的办法使其值为
5、0、1.此过程产生的码为绝对码。并且,每个值需要分配一定的长度。 代码如下:clear allclose alli=10; %码元的个数j=5000;fc=4;fm=i/5;B=2*fm;t=linspace(0,5,j); % 将0-5区间平均分为j份% 产生基带信号 %a =round(rand(1,i); %产生10个随机码,记为ast1=t;for n=1:10 if a(n)=1; if b(n-1)=1 b(n)=0; else b(n)=1; end else b(n)=b(n-1); endendst1=t;for n=1:10 if b(n)=1; st2(k)=0; els
6、e st2(k)=1; endend; st1即为相对码,st2为相对码的反码,在调制中使用。3)产生载波信号代码:s1=sin(2*pi*fc*t);4) 调制按图一中所示,相对码及其反码分别和载波相乘再相加,即得到调制信号。d1=st1.*s1;d2=st2.*(-s1);%相移180figure(2);subplot(4,1,1);plot(t,d1);title(st1*s1);subplot(4,1,2);plot(t,d2);title(st2*s2); e_dpsk=d1+d2;图5码元产生图6 调制信号2 传输系统设计传输系统设计比较简答,只需加入信道噪声即可。代码:noise
7、=rand(1,j);dpsk=e_dpsk+0.5*noise;%加入噪声效果如图6所示3 解调系统设计解调系统中,极性比较法和差分相干法有很多部分相同,可以用相同设计。相同部分设计。1)带通滤波器在仿真过程省略。2)乘法器由于是仿真,可直接相乘。3)低通滤波器设计为只允许基频信号通过。代码:f,af = T2F(t,dpsk);t,dpsk = lpf(f,af,B);所用函数代码:T2F子函数function f,sf= T2F(t,st)%This is a function using the FFT function to calculate a signals Fourier%T
8、ranslation%Input is the time and the signal vectors,the length of time must greater%than 2%Output is the frequency and the signal spectrumdt = t(2)-t(1);T=t(end);df = 1/T;N = length(st); Lpf子函数f=-N/2*df:df:N/2*df-df; sf = fft(st);sf = T/N*fftshift(sf);function t,st=lpf(f,sf,B)%This function filter a
9、n input data using a lowpass filter%Inputs: f: frequency samples% sf: input data spectrum samples% B: lowpasss bandwidth with a rectangle lowpass%Outputs: t: time samples% st: output datas time samplesdf = f(2)-f(1);T = 1/df;hf = zeros(1,length(f);bf = -floor( B/df ): floor( B/df ) + floor( length(f
10、)/2 );hf(bf)=1;yf=hf.*sf;t,st=F2T(f,yf);st = real(st);4)抽样判决器抽样判决器就是过零检测。代码:st=zeros(1,i);for m=0:i-1;if dpsk(1,m*500+250)0; st(m+1)=0; for j=m*500+1:(m+1)*500; dpsk(1,j)=0; endelse for j=m*500+1:(m+1)*500; st(m+1)=1; dpsk(1,j)=1; endendend 两种解调方式不同之处在于延迟单元和码(反)变换器。5)延迟单元延迟一个码元长度,第一个码元长度的内容根据编码规则,抽样
11、判决。代码:if dpsk(65)0 dpsk_delay(1:j/i)=dpsk(1:j/i);else dpsk_delay(1:j/i)=-dpsk(1:j/i)enddpsk_delay(j/i+1:j)=dpsk(1:j-j/i);6)码(反)变换器将相对码变换为绝对码,与编码器正好相反。代码:dt=zeros(1,i);dt(1)=st(1);for n=2:10; if (st(n)-st(n-1)-1; dt(n)=0; else dt(n)=1; endendst=t;for n=1:10 if dt(n)1; for m=j/i*(n-1)+1:j/i*n st(m)=0;
12、 end else for m=j/i*(n-1)+1:j/i*n st(m)=1; end endend4 极性比较法解调结果结果如图,可见解调结果与源码完全一致。图7 极性比较法解调结果图7 源码5 差分相干法解调结果如图,解调结果与源码完全一致。图8 差分相干法解调结果图9 源码程序源码1 极性比较法 DPSK.mclear allclose alli=10; %码元的个数j=5000;fc=4;fm=i/5;B=2*fm;t=linspace(0,5,j); % 将0-5区间平均分为j份% 产生基带信号 %a =round(rand(1,i); %产生10个随机码,记为ast1=t;f
13、or n=1:10 if a(n)=1; if b(n-1)=1 b(n)=0; else b(n)=1; end else b(n)=b(n-1); endendst1=t;for n=1:10 if b(n)=1; st2(k)=0; else st2(k)=1; endend;subplot(413)plot(t,st2)title(相对码的反码)axis(0 5 -1 2)% 载波信号 %s1=sin(2*pi*fc*t);subplot(414);plot(s1);title(载波信号);% 调制 %d1=st1.*s1;d2=st2.*(-s1);%相移180figure(2);s
14、ubplot(4,1,1);plot(t,d1);title(st1*s1);subplot(4,1,2);plot(t,d2);title(st2*s2);e_dpsk=d1+d2;subplot(4,1,3);plot(t,e_dpsk);title(调制后波形);noise=rand(1,j);dpsk=e_dpsk+0.5*noise;%加入噪声subplot(4,1,4);plot(t,dpsk);title(加噪声信号);% 与载波相乘 %dpsk=dpsk.*sin(2*pi*fc*t);%与载波相乘figuresubplot(4,1,1);plot(t,dpsk);title(
15、与载波相乘后波);% 低通滤波 %f,af = T2F(t,dpsk);%通过低通滤波器t,dpsk = lpf(f,af,B);subplot(4,1,2);plot(t,dpsk);title(通过低通滤波器波形);% 抽样判决 %st=zeros(1,i);for m=0:i-1;if dpsk(1,m*500+250)0; st(m+1)=0; for j=m*500+1:(m+1)*500; dpsk(1,j)=0; endelse for j=m*500+1:(m+1)*500; st(m+1)=1; dpsk(1,j)=1; endendendsubplot(4,1,3);plo
16、t(t,dpsk);axis(0,5,-1,2);title(抽样判决后波形)% 码反变换 %dt=zeros(1,i);dt(1)=st(1);for n=2:10; if (st(n)-st(n-1)-1; dt(n)=0; else dt(n)=1; endendst=t;for n=1:10 if dt(n)1; for m=j/i*(n-1)+1:j/i*n st(m)=0; end else for m=j/i*(n-1)+1:j/i*n st(m)=1; end endendsubplot(4,1,4);plot(t,st);title(码反变换后波形);axis(0,5,-1,
17、2);2 差分相干法 DPSK1.mclear allclose alli=10; %码元的个数j=5000;fc=4;fm=i/5;B=2*fm;t=linspace(0,5,j); % 将0-5区间平均分为j份% 产生基带信号 %a =round(rand(1,i); %产生10个随机码,记为ast1=t;for n=1:10 if a(n)=1; if b(n-1)=1 b(n)=0; else b(n)=1; end else b(n)=b(n-1); endendst1=t;for n=1:10 if b(n)=1; st2(k)=0; else st2(k)=1; endend;s
18、ubplot(413)plot(t,st2)title(相对码的反码)axis(0 5 -1 2)% 载波信号 %s1=sin(2*pi*fc*t);subplot(414);plot(s1);title(载波信号);% 调制 %d1=st1.*s1;d2=st2.*(-s1);%相移180figure(2);subplot(4,1,1);plot(t,d1);title(st1*s1);subplot(4,1,2);plot(t,d2);title(st2*s2);e_dpsk=d1+d2;subplot(4,1,3);plot(t,e_dpsk);title(调制后波形);noise=ra
19、nd(1,j);dpsk=e_dpsk+0.5*noise;%加入噪声subplot(4,1,4);plot(t,dpsk);title(加噪声信号);% 延迟单元 %if dpsk(65)0 dpsk_delay(1:j/i)=dpsk(1:j/i);else dpsk_delay(1:j/i)=-dpsk(1:j/i)enddpsk_delay(j/i+1:j)=dpsk(1:j-j/i);% 与未延迟信号相乘 %dpsk=dpsk.*dpsk_delay;figuresubplot(3,1,1)plot(t,dpsk);title(延迟相乘后波形);% 低通滤波 %f,af = T2F(t,dpsk);%通过低通滤波器t,dpsk = lpf(f,af,B);subplot(3,1,2);plot(t,dpsk);title(通过低通滤波器波形);% 抽样判决 %st=zeros(1,i);for m=0:i-1;if dpsk(1,m*500+250)0; st(m+1)=0; for j=m*500+1:(m+1)*500; dpsk(1,j)=1; endelse for j=m*500+1:(m+1)*500; st(m+1)=1; dpsk(1,j)=0; end
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1