倔强的笨蛋 发表于 2012-11-6 15:55

请问做完FFT后怎么求幅度最大值的频率

请问各位大侠,做完FFT后怎么求幅度最大值的频率?

党大当家 发表于 2012-11-6 23:05

Xk=fft(xn);
mag=abs(Xk);
=max(mag);
m就是振幅的最大值,i是他所在的位置。
希望对你能有帮助

倔强的笨蛋 发表于 2012-11-7 09:42

党大当家 发表于 2012-11-6 23:05 static/image/common/back.gif
Xk=fft(xn);
mag=abs(Xk);
=max(mag);


嗯,谢谢啊,弱弱再问一句,比如一个sin(2*t);我对其做FFT,那么可以做一个频谱,那为什么频谱不在2HZ处,而是周围都有幅值啊?这应该是FFT算法问题吧,比如有用信号为sin(2*t),加了个噪声,我能不能通过FFT变换只将2HZ附近的幅值保留,而将其他的置零,这样滤波可以吗?这不是理想的滤波器吗?然后在做IFFT得到原始信号.这样做为什么不准确啊?

党大当家 发表于 2012-11-7 17:37

倔强的笨蛋 发表于 2012-11-7 09:42 static/image/common/back.gif
嗯,谢谢啊,弱弱再问一句,比如一个sin(2*t);我对其做FFT,那么可以做一个频谱,那为什么频谱不在2HZ处,而是周 ...

首先,频率为f的正弦信号,是sin(2*pi*f*t),所以sin(2*t),的频率不是2Hz.另外用FFT的时候注意采样点是2的N次方。我做了一下,没有任何问题。看下图:

你的滤波器设计我不太好评判,应该可行吧。不过真要用滤波器还是建议照着书本来

倔强的笨蛋 发表于 2012-11-7 17:42

党大当家 发表于 2012-11-7 17:37 static/image/common/back.gif
首先,频率为f的正弦信号,是sin(2*pi*f*t),所以sin(2*t),的频率不是2Hz.另外用FFT的时候注意采样点是2 ...

不好意思那个频率写错了,主要是我这样做有很大的频谱泄露,恢复时有困难,这样做能频谱校正吗?我想在问下关于kaiser窗滤波后的数据怎么校正?不好意思本人没有学过信号,问的问题有些低
页: [1]
查看完整版本: 请问做完FFT后怎么求幅度最大值的频率