Sode 发表于 2020-4-29 18:42

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

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


       数字带通传输系统为了进行长距离传输,克服传输失真,传输损耗,同时保证带内特性。必须对数字信号进行载波调制,将信号频谱搬移到高频段才能在信道中传输,因而现代通信系统采取数字调制技术。通过数字基带信号对载波某些参量进行控制,使之随机带信号的变化而变化。根据控制载波参量大的不同,数字调制有调幅(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();  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('相乘后信号');   = T2F(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();  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();  subplot(412);  plot(t,st2);  title('基带信号反码');  axis();  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相乘   = T2F(t,st1);%通过低通滤波器   = lpf(f,sf1,2*fm);  figure(3);  subplot(311);  plot(t,st1);  title('与载波1相乘后波形');  st2=fsk.*s2;%与载波2相   = T2F(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();  title('抽样判决后波形')
  4. 2PSK  2PSK以载波的相位变化作为参考基准的,当基带信号为0时相位相对于初始相位为0,当基带信号为1时相 对于初始相位为180°。    通过以上的仿真分析,我们可以知道,在误码率相同的情况下,所需要的信噪比2ASK比2FSK高3dB,2fsk比2psk高3db,2ask比2psk高6db。也就是说,若信噪比r一定,2psk系统的误码率比2fsk的小,2fsk系统的误码率比2ask的小,由此看来,在抗加性高斯白噪声方面,想干2psk性能最好,2fsk次之,2ask最差。当然,后面还有DPSK,等等改进型的。

xyz549040622 发表于 2020-5-26 18:47

支持下,谢谢分享~

gwsan 发表于 2020-6-1 15:48

非常感谢楼主分享

kxsi 发表于 2020-6-1 15:48

不会用matlab啊

nawu 发表于 2020-6-1 15:49

算法是如何得到的呢

qcliu 发表于 2020-6-1 15:49

介绍的比较详细

tfqi 发表于 2020-6-1 15:49

楼主辛苦了
页: [1]
查看完整版本: 数字调制系统在Matlab下的分析