2013-08-30 36 views
1

我想知道数据的频率。我有一点想法,它可以使用FFT完成,但我不知道该怎么做。一旦我将整个数据传递给FFT,那么它会给我2个峰值,但我怎样才能得到频率?如果有任何方法可以获得声音的频率。

非常感谢。

+2

峰的位置是频率。 –

+0

[如何从FFT结果中获取频率]的可能重复(http://stackoverflow.com/questions/4364823/how-to-get-frequency-from-fft-result) –

+1

这在SE上经常被问到我写了博客文章用代码解释它:http://blog.bjornroche.com/2012/07/frequency-detection-using-fft-aka-pitch.html –

回答

3

看一看这个网页的解释如何计算它: FFT Fundamentals

也请检查这个答案(它的C#代码,但我认为你可以很容易地理解它)
How do I obtain the frequencies of each value in an FFT?

最后看看这个,它使用DFT代替FFT:
Determining the magnitude of a certain frequency on the iPhone

我也发现这个实现,你可以在Obj中使用ective-C:

一个lib使用上述文库https://github.com/jkells/sc_listener_sample

问候

1

的FFT会给你的信号的所有的正弦分量的频率以找到频率https://github.com/jkells/sc_listener
甲例子。相反,如果您只需要像由语音和音乐产生的普通波形的周期性频率(更有趣的发声和看起来像纯正弦波),那么您可能需要使用基音检测/估计算法,而不是仅使用FFT峰值。

相关问题