通信原理Matlab仿真:模拟信号的幅度调制

举报
nimo的小舔狗 发表于 2022/05/10 23:10:34 2022/05/10
【摘要】 用Matlab产生一个频率为1Hz、功率为1的余弦信源,设载波频率为10Hz,试画出: DSB调制信号及其功率谱密度; clc,clear,close all;dt=0.001; t=-10:dt:10; % 仿真时间fm=1;%基带信号频率fc=10;%载波频率mt=sqrt(2)*cos(2*pi*fm*t);%基带...

Matlab产生一个频率为1Hz、功率为1的余弦信源,设载波频率为10Hz,试画出:

DSB调制信号及其功率谱密度;


      clc,clear,close all;
      dt=0.001;
      t=-10:dt:10; % 仿真时间
      fm=1;%基带信号频率
      fc=10;%载波频率
      mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
      c=cos(2*pi*fc*t);%载波信号
      st=mt.*c;%DSB
      %求功率谱
      T=20;
      df=1/T;% 抽样精度
      N=length(st);%确定抽样个数
      f=-N/2*df:df:N/2*df-df;%功率谱范围
      sf=fft(st);%傅里叶变化
      sf=T/N*fftshift(sf);%将零频点移到频谱的中间
      psf=(abs(sf).^2)/T;%求功率
      %绘制基带信号
      subplot(311)
      plot(t,mt)
      xlabel('t');
      ylabel('mt');
      %plot(t,mt,'r--')
      title('基带信号波形');
      axis([-5,5,-1.5,1.5]);
      grid on;
      %绘制DSB波形
      subplot(312)
      plot(t,st)
      xlabel('t');
      ylabel('st');
      hold on;
      plot(t,mt,'r--');
      title('DSB调制波形');
      legend('DSB','基带信号')
      axis([-5,5,-1.5,1.5]);
      grid on;
      %绘制DSB功率谱
      subplot(313)
      plot(f,psf);
      xlabel('f');
      ylabel('psf');
      %plot(f,abs(st1));
      axis([-2*fc 2*fc 0 max(psf)]);
      title('DSB信号功率谱');
      grid on;
      gtext('图2-1 DSB调制信号及其功率谱密度波形')
  
 

 

  1. 将已调信号解调,在时域内将解调后的波形与原信号进行对比;

 


      clc,clear,close all;
      dt=0.001;
      t=-10:dt:10;% 仿真时间
      fm=1;%基带信号频率
      fc=10;%载波频率
      w_lpf = 1; % 低通滤波器截止频率(理想)
      mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
      c=cos(2*pi*fc*t);%载波信号
      st=mt.*c;%DSB
      %解调
      st1=st.*c;
      sample = length(t);
      st2 = fft(st1, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
      f = 1/dt/sample*(0:1:sample-1);
      st3 = st2.*(f<w_lpf); % 进过低通滤波
      st4 = real(ifft(st3)); %解调后波形
      %绘制基带信号
      subplot(311)
      plot(t,mt)
      xlabel('t');
      ylabel('mt');
      %plot(t,mt,'r--')
      title('基带信号波形');
      axis([-5,5,-1.5,1.5]);
      grid on;
      %绘制DSB波形
      subplot(312)
      plot(t,st)
      xlabel('t');
      ylabel('st');
      hold on;
      plot(t,mt,'r--');
      title('DSB调制波形');
      legend('DSB信号','基带信号')
      axis([-5,5,-1.5,1.5]);
      grid on;
      %绘制解调后信号与原信号波形对比
      subplot(313)
      plot(t,st4*sample);
      hold on;
      plot(t,mt)
      xlabel('t');
      ylabel('st1');
      %plot(f,abs(st1));
      axis([-5,5,-1.5,1.5]);
      hold on;
      %plot(t,mt,'r--');
      title('解调后波形');
      legend('解调后信号','基带信号')
      grid on;
      gtext('图2-2 时域内DSB解调后的波形与原信号进行对比')
  
 

 

 A=2的AM调制信号及其功率谱密度;

 


      clc,clear,close all;
      dt=0.001;
      t=-10:dt:10;% 仿真时间
      A=2;
      fm=1;%基带信号频率
      fc=10;%载波频率
      w_lpf = 1; % 低通滤波器截止频率(理想)
      w_ipf = 1; % 带通滤波器截止频率(理想)
      fm = 0.3; % 带通滤波器通带
      mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
      c=cos(2*pi*fc*t);%载波信号
      st=(mt+A).*c;%AM
      %解调
      st1=st.*c;
      sample = length(t);
      st2 = fft(st1, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
      f = 1/dt/sample*(0:1:sample-1);
      st3 = st2.*(f<w_lpf); % 进过低通滤波
      st4 = real(ifft(st3)); %解调后波形
      %求功率谱
      T=20;
      df=1/T;%抽样精度
      N=length(st);%确定抽样个数
      f=-N/2*df:df:N/2*df-df;%功率谱范围
      sf=fft(st);%傅里叶变化
      sf=T/N*fftshift(sf);%将零频点移到频谱的中间
      psf=(abs(sf).^2)/T;%求功率
      %绘制基带信号
      subplot(411)
      plot(t,mt)
      xlabel('t');
      ylabel('mt');
      %plot(t,mt,'r--')
      title('基带信号波形');
      axis([-5,5,-1.5,1.5]);
      grid on;
      %绘制AM波形
      subplot(412)
      plot(t,st)
      xlabel('t');
      ylabel('st');
      hold on;
      plot(t,mt+2,'r--');
      title('AM调制波形');
      legend('AM','基带信号')
      axis([-5,5,-5,5]);
      grid on;
      %绘制AM功率谱
      subplot(413)
      plot(f,psf);
      xlabel('f');
      ylabel('psf');
      %plot(f,abs(st1));
      axis([-2*fc 2*fc 0 max(psf)]);
      title('AM信号功率谱');
      grid on;
      %绘制解调后信号与原信号波形对比
      subplot(414)
      plot(t,st4*sample-2)
      xlabel('t');
      ylabel('st4');
      %plot(f,abs(st1));
      axis([-10,10,-3,3]);
      hold on;
      plot(t,mt,'r--');
      title('解调后波形');
      legend('解调后信号','基带信号')
      grid on;
      gtext('图2-3 A=2的AM调制信号及其功率谱密度波形')
  
 

SSB调制信号及其功率谱密度;


      clc,clear,close all;
      dt=0.001;
      t=-10:dt:10;% 仿真时间
      fm=1;%基带信号频率
      fc=10;%载波频率
      w_lpf = 1; % 低通滤波器截止频率(理想)
      w_ipf = 1; % 带通滤波器截止频率(理想)
      fm = 0.3; % 带通滤波器通带
      mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
      c=cos(2*pi*fc*t);%载波信号
      st=real(hilbert(mt).*exp(j*2*pi*fc*t));%SSB
      %解调
      st1=st.*c;
      sample = length(t);
      st2 = fft(st1, sample)/sample*2; % 这里要/抽样次数*2
      f = 1/dt/sample*(0:1:sample-1);
      st3 = st2.*(f<w_lpf); % 进过低通滤波
      st4 = real(ifft(st3)); %解调后波形
      %求功率谱
      T=20;
      df=1/T;%抽样精度
      N=length(st);%确定抽样个数
      f=-N/2*df:df:N/2*df-df;%功率谱范围
      sf=fft(st);%傅里叶变化
      sf=T/N*fftshift(sf);%将零频点移到频谱的中间
      psf=(abs(sf).^2)/T;%求功率
      %绘制基带信号
      subplot(411)
      plot(t,mt)
      xlabel('t');
      ylabel('mt');
      %plot(t,mt,'r--')
      title('基带信号波形');
      axis([-5,5,-2,2]);
      grid on;
      %绘制SSB波形
      subplot(412)
      plot(t,st)
      xlabel('t');
      ylabel('st');
      hold on;
      plot(t,mt,'r--');
      title('SSB调制波形');
      legend('SSB','基带信号')
      axis([-5,5,-2,2]);
      grid on;
      %绘制SSB功率谱
      subplot(413)
      plot(f,psf);
      xlabel('f');
      ylabel('psf');
      %plot(f,abs(st1));
      axis([-2*fc 2*fc 0 max(psf)]);
      title('SSB信号功率谱');
      grid on;
      %绘制解调后信号与原信号波形对比
      subplot(414)
      plot(t,st4*sample)
      xlabel('t');
      ylabel('st4');
      %plot(f,abs(st1));
      axis([-10,10,-2,2]);
      hold on;
      plot(t,mt,'r--');
      title('解调后波形');
      legend('解调后信号','基带信号')
      grid on;
      gtext('图2-4 SSB调制信号及其功率谱密度波形')
  
 

 在信道中各自加入经过带通滤波器后的窄带高斯白噪声,功率为0.1,解调各个信号,并画出解调后的波形。


      clc,clear,close all;
      A=2;
      dt=0.001;
      t=-10:dt:10;% 仿真时间
      fm=1;%基带信号频率
      fc=10;%载波频率
      w_lpf = 1;% 低通滤波器截止频率(理想)
      w_ipf=1; % 带通滤波器截止频率(理想)
      mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
      c=cos(2*pi*fc*t);%载波信号
      %获得各种信号
      st1=mt.*c;%DSB信号
      st2=(mt+A).*c;%AM信号
      st3= 0.5*mt.* c + 0.5*hilbert(mt).*hilbert(c); %SSB信号
      %给各种信号加高斯白噪声
      st11=awgn(st1,-10);%DSB信号加高斯白噪声
      st22=awgn(st2,-10);%AM信号加高斯白噪声
      st33=awgn(st3,-10);%SSB信号加高斯白噪声
      %解调
      sample = length(t);
      f = 1/dt/sample*(0:1:sample-1);
      st11=st11.*c;%DSB信号解调
      st111 = fft(st11, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
      st111 = st111.*(f<w_lpf); % 进过低通滤波
      st1111 = real(ifft(st111)); %解调后波形
      st22=st22.*c;%AM信号解调
      st222 = fft(st22, sample)/sample*2; %这里要/抽样次数*2 才是最后结果
      st222 = st222.*((f>w_ipf-fm) - (f>w_ipf+fm) );%进过低通滤波
      st2222 = real(ifft(st222)); %解调后波形
      st33=st33.*c;%SSB信号解调
      st333 = fft(st33, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
      st333 = st333.*((f>w_ipf-fm) - (f>w_ipf+fm) ); % 进过低通滤波
      st3333 = real(ifft(st333)); %解调后波形
      %DSB经过高斯白噪声后解调波形与原波形比较
      subplot(311);
      plot(t,st1111*sample);
      xlabel('t');
      ylabel('mt');
      hold on;
      plot(t,mt,'r--');
      title('经过高斯白噪声后波形比较');
      legend('DSB','基带信号');
      axis([-5,5,-1.5,1.5]);
      grid on;
      %AM经过高斯白噪声后解调波形与原波形比较
      subplot(312)
      plot(t,st2222*sample)
      xlabel('t');
      ylabel('mt');
      hold on;
      plot(t,mt,'r--')
      title('经过高斯白噪声后波形比较');
      legend('AM','基带信号');
      axis([-5,5,-1.5,1.5]);
      grid on;
      %SSB经过高斯白噪声后解调波形与原波形比较
      subplot(313)
      plot(t,st3333*sample)
      xlabel('t');
      ylabel('mt');
      hold on;
      plot(t,mt,'r--');
      title('经过高斯白噪声后波形比较');
      legend('SSB','基带信号')
      axis([-5,5,-1.5,1.5]);
      grid on;
      gtext('图2-5 基带信号与经过高斯白噪声后DSB、SSB、AM解调后波形比较')
  
 

 

文章来源: blog.csdn.net,作者:渣渣ye,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/yyfloveqcw/article/details/123811018

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。