即使施加恒定音调,FFT频率桶幅度也会变化

时间:2018-04-26 18:05:59

标签: android fft

我正在尝试使用FFT来解码莫尔斯码,但我发现当我检查我感兴趣的结果频率仓/桶时,即使呈现恒定音调,绝对值也会发生很大变化。这使我无法使用阈值附近的上升和下降,因此解码音频莫尔斯。 我甚至尝试了似乎在任何地方都被复制的简单例子,但它也有所不同...... 我无法弄清楚我做错了什么,而且我的数学不够聪明,无法理解与FFT相关的所有公式。 我现在一定是可能的,但是我无法知道......有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

确保使用FFT结果的幅度,而不仅仅是复杂结果的实部或虚部。

通常,当较长的恒定幅度正弦波被馈送到一系列较短的FFT(窗口STFT)时,如果正弦波的周期在FFT长度中恰好是整数周期,则幅度结果将仅是恒定的。 e.g。

f_tone modulo (f_sampling_rate / FFT_length) == 0

如果您只对一个选定音频的幅度感兴趣,Goertzel算法将作为比完整FFT更有效的滤波器。并且,根据所选FFT库所需的设置和长度限制,可能更容易改变Goertzel的长度以匹配目标音频的要求,以及所需的时间/频率分辨率权衡。

相关问题