1、基于 MATLAB 的 2DPSK 信号的调制与解调仿真西安电子科技大学 张*1目录一 题目要求 二 关于 2DPSK1 基础知识_22 2DPSK 的调制原理_23 2DPSK 的解调原理_3三 调制系统仿真1 调制系统设计_ 41) 产生基带信号_ 42) 产生相对码_53) 产生载波信号_64) 调制_62 传输系统设计_73 解调系统设计_71) 带通滤波器_72) 乘法器_83) 低通滤波器_84) 抽样判决器_95) 延迟单元_96) 码(反)变换器_94 极性比较法结果_105 差分相干法结果_11四 完整程序源码1 极性比较法程序 DPSK.m_122 差分相干法 DPSK1.
2、m_152一 题目要求产生 2DPSK 信号,画出时域波形和频谱,分别用极性比较法和差分相干法解调。二 关于 2DPSK1 基础知识2DPSK 即二进制差分相移键控(2DPSK)二进制差分相移键控常简称为二相相对调相,记作 2DPSK。它不是利用载波相位的绝对数值传送数字信息,而是用前后码元的相对载波相位值传送数字信息。所谓相对载波相位是指本码元初相与前一码元初相之差。数字信息“0” ;数字信息 “1”。则数字信息序列与 2DPSK 信号的码元相位关系可举例表示如下:数字信息: 1 0 1 1 0 1 1 1 0 1DPSK 信号相位:或:0 2 2DPSK 的调制原理一般来说,2DPSK 信
3、号有两种调试方法,即模拟调制法和键控法。2DPSK 信号的的模拟调制法框图如图 1 所示,其中码变换的过程为将输入的单极性不归零码转换为双极性不归零码。码变换 相乘载波s(t) eo(t)图 1 模拟调制法2DPSK 信号的的键控调制法框图如图 2 所示,其中码变换的过程为将输入的基带信号差分,即变为它的相对码。选相开关作用为当输入为数字信息“0” 时接相位 0,当输入数字信息为“1”时接 pi。3图 2 键控调制3 2DPSK 的解调原理2DPSK 信号最常用的解调方法有两种,一种是极性比较法,另一种是差分相干法。差分相干法: 2DPSK 信号先经过带通滤波器,去除调制信号频带以外的在信道中
4、混入的噪声,此后该信号分为两路,一路延时一个码元的时间后与另一路的信号相乘,再经过低通滤波器去除高频成分,得到包含基带信号的低频信号,将其送入抽样判决器中进行抽样判决,抽样判决器的输出即为原基带信号。它的原理框图如图2DPSK码(反)变换器延迟 T相乘器低通滤波器抽样判决器带通滤波器图 3 差分相干法法极性比较法:2DPSK 信号经过带通滤波器,滤掉信道中产生的噪声,再与本地载波相乘,经过低通滤波器,得到包含基带信号的低频信号,将其送入抽样判决器得到相对码,再经过码(反)变换器得到基带信号。原理图如下所示4带通滤波器相乘器 低通滤波器抽样判决器逆码变换本地载波2DPSK图 4 极性比较法法三
5、仿真程序设计1 调制系统设计1)产生基带信号本例中使用 matlab 中的 rand 函数随机产生 10 个随机数,并采用就近取整的办法使其值为 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:10if a(n)=1;if b(n-1)=1b(n)=0;elseb(n)=1;end
6、elseb(n)=b(n-1);endendst1=t;for n=1:10if b(n)=1;st2(k)=0;elsest2(k)=1;6endend;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_dps
7、k=d1+d2;0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1012与 与 与0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1012与 与 与0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-1012与 与 与 与 与 与0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000-101与 与 与 与7图 5 码元产生图 6 调制信号2 传输系统设计传输系统设计比较简答,只需加入信道噪声即可。代码:noise=rand(1,j);dpsk=e_dpsk+0.5*noise;%加入噪声效果如图 6 所示
8、3 解调系统设计解调系统中,极性比较法和差分相干法有很多部分相同,可以用相同设计。相同部分设计。1)带通滤波器在仿真过程省略。0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-101 st1*s10 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-101 st2*s20 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-101 与 与 与 与 与0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-202 与 与 与 与 与82)乘法器由于是仿真,可直接相乘。3)低通滤波器设计为只允许基频信号通过。代码:f,af = T2F(t,dpsk);t,d
9、psk = lpf(f,af,B);所用函数代码:T2F 子函数function f,sf= T2F(t,st)%This is a function using the FFT function to calculate a signals Fourier%Translation%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/
10、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 an 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%
11、 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)/2 );hf(bf)=1;yf=hf.*sf;t,st=F2T(f,yf);9st = real(st);4)抽样判决器抽样判决器就是过零检测。代码:st=zeros(1,i);for m=0:i-1;if dpsk(1,m*500+250)-1;dt(n)=0;else10dt(n)=1;endendst=t;for n=1:10if
12、 dt(n)=1;if b(n-1)=1b(n)=0;elseb(n)=1;end13elseb(n)=b(n-1);endendst1=t;for n=1:10if b(n)=1;st2(k)=0;elsest2(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);subplot(4,1,1);plot(t,d
13、1);title(st1*s1);14subplot(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(与载波相乘后波);% 低通滤波 %f,a
14、f = 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)-1;dt(n)=0;elsedt(n)=1;endendst=t;for n=1:10if dt(n)=1;if b(n-1)=1b(n)=0;elseb(n)=1;endelseb(n)=b(n-1);endendst1=t;for n=1:10if b(n)=1;st2(k)=0;elsest2(k)=1
15、;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);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(调制后波形)
16、;noise=rand(1,j);dpsk=e_dpsk+0.5*noise;%加入噪声subplot(4,1,4);plot(t,dpsk);title(加噪声信号);% 延迟单元 %if dpsk(65)0dpsk_delay(1:j/i)=dpsk(1:j/i);elsedpsk_delay(1:j/i)=-dpsk(1:j/i)enddpsk_delay(j/i+1:j)=dpsk(1:j-j/i);18% 与未延迟信号相乘 %dpsk=dpsk.*dpsk_delay;figuresubplot(3,1,1)plot(t,dpsk);title(延迟相乘后波形);% 低通滤波 %f,
17、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;endelsefor j=m*500+1:(m+1)*500;st(m+1)=1;dpsk(1,j)=0;endendendsubplot(3,1,3);plot(t,dpsk);axis(0,5,-1,2);title(抽样判决后波形)