当前位置:  开发笔记 > IOS > 正文

FFT - 计算频率仓之间的精确频率

如何解决《FFT-计算频率仓之间的精确频率》经验,为你挑选了0个好方法。

我正在网上找到一个很好的FFT库,看看我是否可以编写音高检测程序.到目前为止,我已经能够成功地让磁带库对包含少量正弦波的测试音频信号进行FFT计算,包括440Hz的一个正弦波(我使用16384个样本作为大小,采样率为44100Hz).

FFT输出如下:

433.356Hz - Real: 590.644 - Imag: -27.9856 - MAG: 16529.5
436.047Hz - Real: 683.921 - Imag: 51.2798 - MAG: 35071.4
438.739Hz - Real: 4615.24 - Imag: 1170.8 - MAG: 5.40352e+006
441.431Hz - Real: -3861.97 - Imag: 2111.13 - MAG: 8.15315e+006
444.122Hz - Real: -653.75 - Imag: 341.107 - MAG: 222999
446.814Hz - Real: -564.629 - Imag: 186.592 - MAG: 105355

正如您所看到的,441.431Hz和438.739Hz频段都显示出相同的高幅度输出("MAG:"后面的最右侧数字),因此很明显目标频率440Hz介于两者之间.提高分辨率可能是一种关闭方式,但这会增加计算时间.

如何计算两个频率箱之间的确切频率?

更新:

我在DSPGuru网站上尝试了Barry Quinn的"Second Estimator",并取得了优异的成绩.以下显示440Hz方波的结果 - 现在我只有0.003Hz!

FFT频率估算成功

这是我使用的代码.我只是改编了我发现的这个例子,这是针对Swift的.谢谢大家的宝贵意见,这是一次很棒的学习之旅:)

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有