我是靠谱客的博主 轻松舞蹈,最近开发中收集的这篇文章主要介绍连续正弦信号使用FFT做频谱分析,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一个偶对称的连续波,如何用FFT做频谱分析,用正弦信号做了个例子,不论任何连续信号,都可以仿照这个例子进行频谱分析。
  1. %==========================================================================
  2. %Name: sinfft.m
  3. %Desc: 使用FFT求y=sin(2*pi*10*t)的频谱,抽样频率为40hz(大于信号最高频率2倍),
  4. % 抽样时间点从-t0~t0;FFT点数分别为32和1024,用来比较不同N点的频谱图变化。
  5. % 对每一个N,用两种方式生成抽样值,并分别画图
  6. %Parameter:
  7. %Return:
  8. %Author: yoyoba(stuyou@126.com)
  9. %Date: 2011-10-20
  10. %Modify: 2011-10-20
  11. % %========================================================================
  12. fs=40;
  13. N=[32,1024];
  14. for r=1:2
  15. %方式1:(FFT的数据位于主值区间[0,N-1])。由于采样时间从-t0~t0,得到的采样数
  16. %据也是从-t0~t0,如何变换到主值区间?注意偶对称序列是如何把采样数据变换到主
  17. %值区间的。画频谱图时,注意频率的生成方法,得到的频谱图的横轴频率从负到正。
  18. np=floor(0:(N(r)-1)/2);
  19. nn=floor(-(N(r)-1)/2:-1/2);
  20. n=[np,nn];
  21. t=n/fs;
  22. y=sin(2*pi*10*t);
  23. Y=fftshift(fft(y,N(r)));
  24. k=floor(-(N(r)-1)/2:(N(r)-1)/2);
  25. f=k*fs/N(r);
  26. subplot(2,2,2*r-1);
  27. plot(f,abs(Y));
  28. title(strcat('figure',num2str(2*r-1),' N=',num2str(N(r))));
  29.  
  30. %方式2:采样时间从-t0~t0,得到的采样数据直接作为FFT的数据使用。画频谱图时,
  31. %注意频率的生成方法,得到的频谱图的横轴频率从0开始。
  32. n=[nn,np];
  33. t=n/fs;
  34. y=sin(2*pi*10*t);
  35. Y=fftshift(fft(y,N(r)));
  36. k=0:N(r)-1;
  37. f=k*fs/N(r);
  38. subplot(2,2,2*r);
  39. plot(f,abs(Y));
  40. title(strcat('figure',num2str(2*r),' N=',num2str(N(r))));
  41. end

最后

以上就是轻松舞蹈为你收集整理的连续正弦信号使用FFT做频谱分析的全部内容,希望文章能够帮你解决连续正弦信号使用FFT做频谱分析所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(69)

评论列表共有 0 条评论

立即
投稿
返回
顶部