通信原理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调制信号及其功率谱密度;


  
  1. clc,clear,close all;
  2. dt=0.001;
  3. t=-10:dt:10; % 仿真时间
  4. fm=1;%基带信号频率
  5. fc=10;%载波频率
  6. mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
  7. c=cos(2*pi*fc*t);%载波信号
  8. st=mt.*c;%DSB
  9. %求功率谱
  10. T=20;
  11. df=1/T;% 抽样精度
  12. N=length(st);%确定抽样个数
  13. f=-N/2*df:df:N/2*df-df;%功率谱范围
  14. sf=fft(st);%傅里叶变化
  15. sf=T/N*fftshift(sf);%将零频点移到频谱的中间
  16. psf=(abs(sf).^2)/T;%求功率
  17. %绘制基带信号
  18. subplot(311)
  19. plot(t,mt)
  20. xlabel('t');
  21. ylabel('mt');
  22. %plot(t,mt,'r--')
  23. title('基带信号波形');
  24. axis([-5,5,-1.5,1.5]);
  25. grid on;
  26. %绘制DSB波形
  27. subplot(312)
  28. plot(t,st)
  29. xlabel('t');
  30. ylabel('st');
  31. hold on;
  32. plot(t,mt,'r--');
  33. title('DSB调制波形');
  34. legend('DSB','基带信号')
  35. axis([-5,5,-1.5,1.5]);
  36. grid on;
  37. %绘制DSB功率谱
  38. subplot(313)
  39. plot(f,psf);
  40. xlabel('f');
  41. ylabel('psf');
  42. %plot(f,abs(st1));
  43. axis([-2*fc 2*fc 0 max(psf)]);
  44. title('DSB信号功率谱');
  45. grid on;
  46. gtext('图2-1 DSB调制信号及其功率谱密度波形')

 

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

 


  
  1. clc,clear,close all;
  2. dt=0.001;
  3. t=-10:dt:10;% 仿真时间
  4. fm=1;%基带信号频率
  5. fc=10;%载波频率
  6. w_lpf = 1; % 低通滤波器截止频率(理想)
  7. mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
  8. c=cos(2*pi*fc*t);%载波信号
  9. st=mt.*c;%DSB
  10. %解调
  11. st1=st.*c;
  12. sample = length(t);
  13. st2 = fft(st1, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
  14. f = 1/dt/sample*(0:1:sample-1);
  15. st3 = st2.*(f<w_lpf); % 进过低通滤波
  16. st4 = real(ifft(st3)); %解调后波形
  17. %绘制基带信号
  18. subplot(311)
  19. plot(t,mt)
  20. xlabel('t');
  21. ylabel('mt');
  22. %plot(t,mt,'r--')
  23. title('基带信号波形');
  24. axis([-5,5,-1.5,1.5]);
  25. grid on;
  26. %绘制DSB波形
  27. subplot(312)
  28. plot(t,st)
  29. xlabel('t');
  30. ylabel('st');
  31. hold on;
  32. plot(t,mt,'r--');
  33. title('DSB调制波形');
  34. legend('DSB信号','基带信号')
  35. axis([-5,5,-1.5,1.5]);
  36. grid on;
  37. %绘制解调后信号与原信号波形对比
  38. subplot(313)
  39. plot(t,st4*sample);
  40. hold on;
  41. plot(t,mt)
  42. xlabel('t');
  43. ylabel('st1');
  44. %plot(f,abs(st1));
  45. axis([-5,5,-1.5,1.5]);
  46. hold on;
  47. %plot(t,mt,'r--');
  48. title('解调后波形');
  49. legend('解调后信号','基带信号')
  50. grid on;
  51. gtext('图2-2 时域内DSB解调后的波形与原信号进行对比')

 

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

 


  
  1. clc,clear,close all;
  2. dt=0.001;
  3. t=-10:dt:10;% 仿真时间
  4. A=2;
  5. fm=1;%基带信号频率
  6. fc=10;%载波频率
  7. w_lpf = 1; % 低通滤波器截止频率(理想)
  8. w_ipf = 1; % 带通滤波器截止频率(理想)
  9. fm = 0.3; % 带通滤波器通带
  10. mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
  11. c=cos(2*pi*fc*t);%载波信号
  12. st=(mt+A).*c;%AM
  13. %解调
  14. st1=st.*c;
  15. sample = length(t);
  16. st2 = fft(st1, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
  17. f = 1/dt/sample*(0:1:sample-1);
  18. st3 = st2.*(f<w_lpf); % 进过低通滤波
  19. st4 = real(ifft(st3)); %解调后波形
  20. %求功率谱
  21. T=20;
  22. df=1/T;%抽样精度
  23. N=length(st);%确定抽样个数
  24. f=-N/2*df:df:N/2*df-df;%功率谱范围
  25. sf=fft(st);%傅里叶变化
  26. sf=T/N*fftshift(sf);%将零频点移到频谱的中间
  27. psf=(abs(sf).^2)/T;%求功率
  28. %绘制基带信号
  29. subplot(411)
  30. plot(t,mt)
  31. xlabel('t');
  32. ylabel('mt');
  33. %plot(t,mt,'r--')
  34. title('基带信号波形');
  35. axis([-5,5,-1.5,1.5]);
  36. grid on;
  37. %绘制AM波形
  38. subplot(412)
  39. plot(t,st)
  40. xlabel('t');
  41. ylabel('st');
  42. hold on;
  43. plot(t,mt+2,'r--');
  44. title('AM调制波形');
  45. legend('AM','基带信号')
  46. axis([-5,5,-5,5]);
  47. grid on;
  48. %绘制AM功率谱
  49. subplot(413)
  50. plot(f,psf);
  51. xlabel('f');
  52. ylabel('psf');
  53. %plot(f,abs(st1));
  54. axis([-2*fc 2*fc 0 max(psf)]);
  55. title('AM信号功率谱');
  56. grid on;
  57. %绘制解调后信号与原信号波形对比
  58. subplot(414)
  59. plot(t,st4*sample-2)
  60. xlabel('t');
  61. ylabel('st4');
  62. %plot(f,abs(st1));
  63. axis([-10,10,-3,3]);
  64. hold on;
  65. plot(t,mt,'r--');
  66. title('解调后波形');
  67. legend('解调后信号','基带信号')
  68. grid on;
  69. gtext('图2-3 A=2的AM调制信号及其功率谱密度波形')

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


  
  1. clc,clear,close all;
  2. dt=0.001;
  3. t=-10:dt:10;% 仿真时间
  4. fm=1;%基带信号频率
  5. fc=10;%载波频率
  6. w_lpf = 1; % 低通滤波器截止频率(理想)
  7. w_ipf = 1; % 带通滤波器截止频率(理想)
  8. fm = 0.3; % 带通滤波器通带
  9. mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
  10. c=cos(2*pi*fc*t);%载波信号
  11. st=real(hilbert(mt).*exp(j*2*pi*fc*t));%SSB
  12. %解调
  13. st1=st.*c;
  14. sample = length(t);
  15. st2 = fft(st1, sample)/sample*2; % 这里要/抽样次数*2
  16. f = 1/dt/sample*(0:1:sample-1);
  17. st3 = st2.*(f<w_lpf); % 进过低通滤波
  18. st4 = real(ifft(st3)); %解调后波形
  19. %求功率谱
  20. T=20;
  21. df=1/T;%抽样精度
  22. N=length(st);%确定抽样个数
  23. f=-N/2*df:df:N/2*df-df;%功率谱范围
  24. sf=fft(st);%傅里叶变化
  25. sf=T/N*fftshift(sf);%将零频点移到频谱的中间
  26. psf=(abs(sf).^2)/T;%求功率
  27. %绘制基带信号
  28. subplot(411)
  29. plot(t,mt)
  30. xlabel('t');
  31. ylabel('mt');
  32. %plot(t,mt,'r--')
  33. title('基带信号波形');
  34. axis([-5,5,-2,2]);
  35. grid on;
  36. %绘制SSB波形
  37. subplot(412)
  38. plot(t,st)
  39. xlabel('t');
  40. ylabel('st');
  41. hold on;
  42. plot(t,mt,'r--');
  43. title('SSB调制波形');
  44. legend('SSB','基带信号')
  45. axis([-5,5,-2,2]);
  46. grid on;
  47. %绘制SSB功率谱
  48. subplot(413)
  49. plot(f,psf);
  50. xlabel('f');
  51. ylabel('psf');
  52. %plot(f,abs(st1));
  53. axis([-2*fc 2*fc 0 max(psf)]);
  54. title('SSB信号功率谱');
  55. grid on;
  56. %绘制解调后信号与原信号波形对比
  57. subplot(414)
  58. plot(t,st4*sample)
  59. xlabel('t');
  60. ylabel('st4');
  61. %plot(f,abs(st1));
  62. axis([-10,10,-2,2]);
  63. hold on;
  64. plot(t,mt,'r--');
  65. title('解调后波形');
  66. legend('解调后信号','基带信号')
  67. grid on;
  68. gtext('图2-4 SSB调制信号及其功率谱密度波形')

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


  
  1. clc,clear,close all;
  2. A=2;
  3. dt=0.001;
  4. t=-10:dt:10;% 仿真时间
  5. fm=1;%基带信号频率
  6. fc=10;%载波频率
  7. w_lpf = 1;% 低通滤波器截止频率(理想)
  8. w_ipf=1; % 带通滤波器截止频率(理想)
  9. mt=sqrt(2)*cos(2*pi*fm*t);%基带信号
  10. c=cos(2*pi*fc*t);%载波信号
  11. %获得各种信号
  12. st1=mt.*c;%DSB信号
  13. st2=(mt+A).*c;%AM信号
  14. st3= 0.5*mt.* c + 0.5*hilbert(mt).*hilbert(c); %SSB信号
  15. %给各种信号加高斯白噪声
  16. st11=awgn(st1,-10);%DSB信号加高斯白噪声
  17. st22=awgn(st2,-10);%AM信号加高斯白噪声
  18. st33=awgn(st3,-10);%SSB信号加高斯白噪声
  19. %解调
  20. sample = length(t);
  21. f = 1/dt/sample*(0:1:sample-1);
  22. st11=st11.*c;%DSB信号解调
  23. st111 = fft(st11, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
  24. st111 = st111.*(f<w_lpf); % 进过低通滤波
  25. st1111 = real(ifft(st111)); %解调后波形
  26. st22=st22.*c;%AM信号解调
  27. st222 = fft(st22, sample)/sample*2; %这里要/抽样次数*2 才是最后结果
  28. st222 = st222.*((f>w_ipf-fm) - (f>w_ipf+fm) );%进过低通滤波
  29. st2222 = real(ifft(st222)); %解调后波形
  30. st33=st33.*c;%SSB信号解调
  31. st333 = fft(st33, sample)/sample*2; % 这里要/抽样次数*2 才是最后结果
  32. st333 = st333.*((f>w_ipf-fm) - (f>w_ipf+fm) ); % 进过低通滤波
  33. st3333 = real(ifft(st333)); %解调后波形
  34. %DSB经过高斯白噪声后解调波形与原波形比较
  35. subplot(311);
  36. plot(t,st1111*sample);
  37. xlabel('t');
  38. ylabel('mt');
  39. hold on;
  40. plot(t,mt,'r--');
  41. title('经过高斯白噪声后波形比较');
  42. legend('DSB','基带信号');
  43. axis([-5,5,-1.5,1.5]);
  44. grid on;
  45. %AM经过高斯白噪声后解调波形与原波形比较
  46. subplot(312)
  47. plot(t,st2222*sample)
  48. xlabel('t');
  49. ylabel('mt');
  50. hold on;
  51. plot(t,mt,'r--')
  52. title('经过高斯白噪声后波形比较');
  53. legend('AM','基带信号');
  54. axis([-5,5,-1.5,1.5]);
  55. grid on;
  56. %SSB经过高斯白噪声后解调波形与原波形比较
  57. subplot(313)
  58. plot(t,st3333*sample)
  59. xlabel('t');
  60. ylabel('mt');
  61. hold on;
  62. plot(t,mt,'r--');
  63. title('经过高斯白噪声后波形比较');
  64. legend('SSB','基带信号')
  65. axis([-5,5,-1.5,1.5]);
  66. grid on;
  67. 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个月内不可修改。