数字调制系统在Matlab下的分析

来源:网络

点击:2190

A+ A-

所属频道:新闻中心

关键词: 数字调制解调,Matlab2ASK,2FSK,2PSK

       作者:肖应权

        数字带通传输系统为了进行长距离传输,克服传输失真,传输损耗,同时保证带内特性。必须对数字信号进行载波调制,将信号频谱搬移到高频段才能在信道中传输,因而现代通信系统采取数字调制技术。通过数字基带信号对载波某些参量进行控制,使之随机带信号的变化而变化。根据控制载波参量大的不同,数字调制有调幅(ASK),调频(FSK),调相(PSK) 三种基本形式。Matlab用于仿真,分析和修改,还可以应用图形界面功能GUI能为仿真系统生成一个人机交互界面,便于仿真系统的操作,因此采用matlab对数字系统进行仿真。通过对系统的仿真,我们可以更加直观的了解数字调制系统的性能及影响性能的因素,从而便于改进系统,获得更佳的传输性能。

      1. 二进制数字调制技术原理

      数字信号的传输方式分为基带传输和带通传输,在实际应用中,大多数信道具有带通特性而不能直接传输基带信号。为了使数字信号在带通信道中传输,必须使用数字基带信号对载波进行调制,以使信号与信道的特性相匹配。这种用数字基带信号控制载波,把数字基带信号变换为数字带通信号的过程称为数字调制。通常使用键控法来实现数字调制,比如对载波的振幅、频率和相位进行键控。

      2. 2ASK

      2ASK信号的产生方法通常有两种:模拟调制和键控法。解调有相干解调和非相干解调。P=1时f(t)=Acoswt;p=0时f(t)=0;其功率谱密度是基带信号功率谱的线性搬移。2ASK时域表示及波形,2ASK是利用代表数字信息("0"或"1")的基带矩形脉冲去键控一个连续的正弦型载波的振幅,使载波时断时续地输出。有载波输出时表示发送"1",无载波输出时表示发送"0"。

      数字基带信号如式(1)

      式中g(t)是宽度为Ts、高度为A的矩形脉冲。a n为数字序列{a n}的第n个码元的电平值。显然,上式给出的表达是单极性不归零码。载波  c(t)=COS(ωct+   0 ), 初始相位  0 =0。

      对应的波形如图2:

      特点:"1"码期间有等幅正弦波输出,相当于开关开通;"0"码期间无输出,相当于开关切断。因此,数字调幅又称为开关键控(通断键控),记作OOK(On Off Keying)。

      两种调制方法如图3:

      图3   2ASK的两种调制方法

      2ASK在matlab下的仿真如下

      clear all

      close all

      i=10;

      j=5000;

      t=linspace(0,5,j);%取0,0.001,0.002,。。。5 共5001个点

      fc=10;

      fm=i/5;

      B=2*fc; %产生基带信号

      a=round(rand(1,i));%随机序列

      figure(2)

      plot(rand(1,i))

      st=t;

      for n=1:10

      if a(n)<1;

      for m=j/i*(n-1)+1:j/i*n          %一个信号取500个点

      st(m)=0;

      end

      else

      for m=j/i*(n-1)+1:j/i*n

      st(m)=1;

      end

      end

      end

      figure(1);

      subplot(421);

      plot(t,st);

      axis([0,5,-1,2]);

      title('基带信号');

      s1=cos(2*pi*fc*t); %载波

      subplot(422);

      plot(s1);

      title('载波信号');

      e_2ask=st.*s1; %调制

      subplot(423);

      plot(t,e_2ask);

      title('已调信号');

      noise =rand(1,j);

      e_2ask=e_2ask+noise;%加入噪声

      subplot(424);

      plot(t,e_2ask);

      title('加入噪声的信号');

      at=e_2ask.*cos(2*pi*fc*t); %相干解调

      at=at-mean(at);

      subplot(425);

      plot(t,at);

      title('相乘后信号');

      [f,af] = T2F(t,at);%通过低通滤波器

      [t,at] = lpf(f,af,2*fm);

      subplot(426);

      plot(t,at);

      title('解调后波形');

      for m=0:i-1; %抽样判决

      if at(1,m*500+250)+0.5<0.5;

      for j=m*500+1:(m+1)*500;

      at(1,j)=0;

      end

      else

      for j=m*500+1:(m+1)*500;

      at(1,j)=1;

      end

      end

      end

      subplot(427);

      plot(t,at);

      axis([0,5,-1,2]);

      title('抽样判决后波形')

      3. 2FSK

      一个FSK信号可以看成是两个不同载波的2ASK信号的叠加。其解调和解调方法和ASK差不多。2FSK信号的频谱可以看成是f1和f2的两个2ASK频谱的组合。

      公式如下:

      clear all

      close all

      i=10;%基带信号码元数

      j=5000;

      a=round(rand(1,i));%产生随机序列

      t=linspace(0,5,j);

      f1=10;%载波1频率

      f2=5;%载波2频率

      fm=i/5;%基带信号频率

      B1=2*f1;%载波1带宽

      B2=2*f2;%载波2带宽

      st1=t; %产生基带信号

      for n=1:10

      if a(n)<1;

      for m=j/i*(n-1)+1:j/i*n

      st1(m)=0;

      end

      else

      for m=j/i*(n-1)+1:j/i*n

      st1(m)=1;

      end

      end

      end

      st2=t;

      for n=1:j; %基带信号求反

      if st1(n)>=1;

      st2(n)=0;

      else

      st2(n)=1;

      end

      end;

      figure(1);

      subplot(411);

      plot(t,st1);

      title('基带信号');

      axis([0,5,-1,2]);

      subplot(412);

      plot(t,st2);

      title('基带信号反码');

      axis([0,5,-1,2]);

      s1=cos(2*pi*f1*t) %载波信号

      s2=cos(2*pi*f2*t)

      subplot(413),plot(s1);

      title('载波信号1');

      subplot(414),plot(s2);

      title('载波信号2'); %调制

      F1=st1.*s1;%加入载波1

      F2=st2.*s2;%加入载波2

      figure(2);

      subplot(411);

      plot(t,F1);

      title('s1*st1');

      subplot(412);

      plot(t,F2);

      title('s2*st2');

      e_fsk=F1+F2;

      subplot(413);

      plot(t,e_fsk);

      title('2FSK信号')

      nosie=rand(1,j);

      fsk=e_fsk+nosie;

      subplot(414);

      plot(t,fsk);

      title('加噪声信号') %相干解调

      st1=fsk.*s1;%与载波1相乘

      [f,sf1] = T2F(t,st1);%通过低通滤波器

      [t,st1] = lpf(f,sf1,2*fm);

      figure(3);

      subplot(311);

      plot(t,st1);

      title('与载波1相乘后波形');

      st2=fsk.*s2;%与载波2相

      [f,sf2] = T2F(t,st2);%通过低通滤波器

      [t,st2] = lpf(f,sf2,2*fm);

      subplot(312);

      plot(t,st2);

      title('与载波2相乘后波形');

      for m=0:i-1; %抽样判决

      if st1(1,m*500+250)<0.25;

      for j=m*500+1:(m+1)*500;

      at(1,j)=0;

      end

      else

      for j=m*500+1:(m+1)*500;

      at(1,j)=1;

      end

      end

      end;

      subplot(313);

      plot(t,at);

      axis([0,5,-1,2]);

      title('抽样判决后波形')

      4. 2PSK

      2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0,当基带信号为1时相 对于初始相位为180&deg;。

      clear all

      close all

      i=10;

      j=5000;

      fc=4;

      fm=i/5;

      B=2*fm;

      t=linspace(0,5,j); %产生基带信号

      a=round(rand(1,i));

      st1=t;

      for n=1:10

      if a(n)<1;

      for m=j/i*(n-1)+1:j/i*n

      st1(m)=0;

      end

      else

      for m=j/i*(n-1)+1:j/i*n

      st1(m)=1;

      end

      end

      end

      subplot(321);

      plot(t,st1);

      title('基带信号');

      axis([0,5,-1,2]);

      st2=t;   %基带信号求反

      for k=1:j;

      if st1(k)>=1;

      st2(k)=0;

      else

      st2(k)=1;

      end

      end;

      subplot(322);

      plot(t,st2);

      title('基带信号反码');

      axis([0,5,-1,2]); %载波信号

      s1=sin(2*pi*fc*t);

      s2=sin(2*pi*fc*t+pi);

      subplot(323);

      plot(s1);

      title('载波信号'); %调制

      p1=st1.*s1;

      p2=st2.*s2;

      subplot(324);

      plot(t,p1);

      title('st1*s1');

      subplot(325);

      plot(t,p2);

      title('st2*s2');

      e_psk=p1+p2;

      subplot(326);

      plot(t,e_psk);

      title('e_2psk');

      noise=rand(1,j);

      psk=e_psk+noise;%加入噪声

      figure(2);

      subplot(411);

      plot(t,psk);

      title('加噪后波形'); %相干解调

      psk=psk.*s1;%与载波相乘

      subplot(412);

      plot(t,psk);

      title('与载波相乘后波');

      [f,af] = T2F(t,psk);%通过低通滤波器

      [t,psk] = lpf(f,af,B);

      subplot(413);

      plot(t,psk);

      title('通过低通滤波器波形'); %抽样判决

      for m=0:i-1;

      if psk(1,m*500+250)<0;

      for j=m*500+1:(m+1)*500;

      psk(1,j)=0;

      end

      else

      for j=m*500+1:(m+1)*500;

      psk(1,j)=1;

      end

      end

      end

      subplot(414);

      plot(t,psk);

      axis([0,5,-1,2]);

      title('抽样判决后波形')

      通过以上的仿真分析,我们可以知道,在误码率相同的情况下,所需要的信噪比2ASK比2FSK高3dB,2fsk比2psk高3db,2ask比2psk高6db。也就是说,若信噪比r一定,2psk系统的误码率比2fsk的小,2fsk系统的误码率比2ask的小,由此看来,在抗加性高斯白噪声方面,想干2psk性能最好,2fsk次之,2ask最差。当然,后面还有DPSK,等等改进型的。(如果你对本文的代码和仿真图像有任何疑问可联系本文作者QQ:1529620855)

    (审核编辑: 小王子)

    声明:除特别说明之外,新闻内容及图片均来自网络及各大主流媒体。版权归原作者所有。如认为内容侵权,请联系我们删除。