《量化投资:以MATLAB为工具》

MATLAB技术论坛

 找回密码
 注册账号
查看: 212|回复: 0
收起左侧

[源码] 匹配滤波

[复制链接]
发表于 2020-2-4 23:11:34 | 显示全部楼层 |阅读模式
对一个cw信号加上带限白噪声后再匹配滤波,分析对比输入输出的时域波形图,以及频谱,信噪比结果等

  1. clear all;
  2. clc;
  3. close all;

  4. %输入信号的各项参数
  5. B=1000;   
  6. fc=100000;   
  7. fs=500000;   
  8. T=0.001;

  9. %产生一个单频信号
  10. k=B/T;
  11. NT=(fs*T);
  12. t=(-NT/2:NT/2-1)*T/NT;
  13. si=cos(2.*pi.*fc.*t);
  14. figure;
  15. plot(si);
  16. title('单频信号时域波形')

  17. %产生一个高斯白噪声
  18. noise=randn(1,length(t));

  19. %制作一个带通滤波器
  20. b=fir1(256,[fc-B/2,fc+B/2]/(fs/2));   
  21. [H,W]=freqz(b,1,512);
  22. Hf=abs(H);
  23. Hx=angle(H);
  24. figure
  25. plot(W,Hf)
  26. title('带通滤波器的幅频特性')
  27. figure;
  28. plot(W,Hx)
  29. title('带通滤波器的相频特性')
  30. w=0:1/511:1;
  31. w=w';
  32. [h,t]=impz(b);   


  33. %将白噪声通过带通滤波器
  34. noise_low=conv(noise,impz(b),'same');      
  35. f1=fft(noise_low);
  36. figure;
  37. plot(noise_low);
  38. title('通过带通滤波器后的白噪声');
  39. figure;
  40. plot(abs(f1));
  41. title('噪声信号频谱')

  42. %噪声归一化
  43. noise2=noise_low/std(noise_low);
  44. snr1=5;
  45. a=1/(10^(snr1/20));
  46. signal_input =si+a*noise2;
  47. f2=fftshift(fft(signal_input));

  48. figure;
  49. plot(abs(f2)/max(abs(f2)));
  50. title('输入信号频谱')
  51. figure;
  52. plot(signal_input);
  53. title('输入信号的时域波形图')

  54. %匹配滤波
  55. signal_input_before1=fliplr(signal_input);                %将信号反转
  56. signal_input_gonge=conj(signal_input_before1);        %对信号取共轭

  57. final=conv(signal_input_gonge, signal_input,'full');
  58. signal=conv(signal_input_gonge, si,'full');

  59. figure;
  60. plot(final);
  61. title('输出信号时域波形图')
  62. figure;
  63. plot(abs(fft(final)));
  64. title('输出信号频谱')

  65. %求输出信号功率及信噪比
  66. Signal_max=max(signal); %信号自相关幅值最大值
  67. N=conv(signal_input_gonge, noise_low,'full');
  68. pn2=sum(N.^2)/length(N);
  69. snr2=10*log10(Signal_max^2/(2*pn2));%输出信号信噪比
复制代码

您需要登录后才可以回帖 登录 | 注册账号

本版积分规则

QQ|网站地图|MATLAB技术论坛|Simulink仿真论坛 ( 蜀ICP备19014457号 

GMT+8, 2020-7-12 02:13 , Processed in 0.045071 second(s), 11 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表