如何从FFT中得到基频?
我正在开发一把闪光吉他,发现麦克风数据频率的唯一明显方法似乎是使用 FFT。然而,经过大约 30 个小时的研究,我找不到最好的方法。我应该使用谐波积谱 (HPS)、倒谱还是最大似然?调谐器必须显示 25 到 3000Hz 的频率。
另外,如果有人知道一些可以找到基频的开源代码,请告诉我。我可以将其翻译为 ActionScript。
谢谢!
I am developing a flash guitar, and the only apparent method to discover the frequency of the mic's data looks to be using FFT. Nevertheless, after something like 30 hours of research I could not discover the best way to do that. Should I use Harmonic Product Spectrum (HPS), Cepstrum or Maximum Likelihood? The tuner will have to show frequencys from 25 to 3000Hz.
Also, if someone knows about some open source code ready to find the fundamental frequency, please tell me. I can translate it to ActionScript.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我成功使用的最简单的技术是使用 FFT,然后执行谐波乘积频谱。它实现起来很简单,并且资源消耗不是很大,您只需要正确地对结果 FFT 进行下采样并制作产品即可。
以下问题也应该有用:检测基频
The simplest technique I've had success with is to use FFT and then perform a Harmonic Product Spectrum. It is simple to implement and not very resource intensive, you just need to correctly downsample your result FFT and make products.
The following question should also be useful: Detecting the fundamental frequency
我尝试用我的基本记忆来回答:当你对信号进行 FFT 时,基波不是具有最大幅度的吗?
I try to reply with my basic remembrance: when ytou have the FFT of your signal, the fundamental isn't te one with the maximum amplitude ?
FFT 并不是查找乐器基频的最佳方法。事实上,是的,使用倒谱是一个更好的主意。您可以在此处找到类似的问题:算法从潜在谐波确定基频 和此处:MATLAB - FFT 中缺少基波
The FFT it's not the best way to find a fundamental frequency of a musical instrument. Actually, yes, it would be a better idea to use cepstrum. You can find a similar questions here: Algorithm to determine fundamental frequency from potential harmonics and here : MATLAB - Missing fundamental from an FFT