概述
一个偶对称的连续波,如何用FFT做频谱分析,用正弦信号做了个例子,不论任何连续信号,都可以仿照这个例子进行频谱分析。
- %==========================================================================
- %Name: sinfft.m
- %Desc: 使用FFT求y=sin(2*pi*10*t)的频谱,抽样频率为40hz(大于信号最高频率2倍),
- % 抽样时间点从-t0~t0;FFT点数分别为32和1024,用来比较不同N点的频谱图变化。
- % 对每一个N,用两种方式生成抽样值,并分别画图
- %Parameter:
- %Return:
- %Author: yoyoba(stuyou@126.com)
- %Date: 2011-10-20
- %Modify: 2011-10-20
- % %========================================================================
- fs=40;
- N=[32,1024];
- for r=1:2
- %方式1:(FFT的数据位于主值区间[0,N-1])。由于采样时间从-t0~t0,得到的采样数
- %据也是从-t0~t0,如何变换到主值区间?注意偶对称序列是如何把采样数据变换到主
- %值区间的。画频谱图时,注意频率的生成方法,得到的频谱图的横轴频率从负到正。
- np=floor(0:(N(r)-1)/2);
- nn=floor(-(N(r)-1)/2:-1/2);
- n=[np,nn];
- t=n/fs;
- y=sin(2*pi*10*t);
- Y=fftshift(fft(y,N(r)));
- k=floor(-(N(r)-1)/2:(N(r)-1)/2);
- f=k*fs/N(r);
- subplot(2,2,2*r-1);
- plot(f,abs(Y));
- title(strcat('figure',num2str(2*r-1),' N=',num2str(N(r))));
- %方式2:采样时间从-t0~t0,得到的采样数据直接作为FFT的数据使用。画频谱图时,
- %注意频率的生成方法,得到的频谱图的横轴频率从0开始。
- n=[nn,np];
- t=n/fs;
- y=sin(2*pi*10*t);
- Y=fftshift(fft(y,N(r)));
- k=0:N(r)-1;
- f=k*fs/N(r);
- subplot(2,2,2*r);
- plot(f,abs(Y));
- title(strcat('figure',num2str(2*r),' N=',num2str(N(r))));
- end
最后
以上就是轻松舞蹈为你收集整理的连续正弦信号使用FFT做频谱分析的全部内容,希望文章能够帮你解决连续正弦信号使用FFT做频谱分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复