【问题标题】:How to get the fundamental frequency from FFT?如何从 FFT 中获得基频?
【发布时间】:2011-06-22 08:07:31
【问题描述】:

我正在开发一款闪光吉他,发现麦克风数据频率的唯一明显方法似乎是使用 FFT。然而,经过大约 30 小时的研究,我找不到最好的方法。我应该使用谐波乘积谱 (HPS)、倒谱还是最大似然?调谐器必须显示 25 到 3000Hz 的频率。

另外,如果有人知道一些准备找到基频的开源代码,请告诉我。我可以把它翻译成 ActionScript。

谢谢!

【问题讨论】:

    标签: fft microphone frequency frequency-analysis guitar


    【解决方案1】:

    我成功使用的最简单的技术是使用 FFT,然后执行Harmonic Product Spectrum。它实现起来很简单,资源也不是很密集,您只需要正确地对结果 FFT 进行下采样并制作产品。

    以下问题也应该有用:Detecting the fundamental frequency

    【讨论】:

      【解决方案2】:

      我试着用我的基本记忆来回答:当你对你的信号进行FFT时,基频不是最大幅度的吗?

      【讨论】:

      • 不,不是。它是频谱的一次谐波。
      • @Nemeth:据我所知,“一次谐波”是“基本”的同义词,而且它通常具有最大幅度。
      • @Jim:对于许多乐器来说,基本音不是的振幅最高 - 我不确定吉他,但这可能取决于音符和吉他的类型.无论哪种方式,最好使用适当的音高检测算法,而不是随意查看单个组件,例如基础。
      • @Paul:对于弹拨吉他弦,谐波系列中的最大幅度将是基音。对于铜管乐器,确实许多音符是作为基音的第二、第三、第四等泛音产生的。吉他通常比实际听起来高一个八度,这也会使事情变得有点混乱......
      • @Jim:弓形乐器,例如小提琴和大提琴的基本能量通常很少。请注意,即使基本音完全不存在,音高感知也能很好地发挥作用。
      【解决方案3】:

      FFT 并不是找到乐器基频的最佳方法。实际上,是的,使用倒谱会更好。你可以在这里找到类似的问题:Algorithm to determine fundamental frequency from potential harmonics 和这里:MATLAB - Missing fundamental from an FFT

      【讨论】:

      猜你喜欢
      • 2018-08-17
      • 2011-05-20
      • 1970-01-01
      • 2011-12-02
      • 1970-01-01
      • 2019-03-14
      相关资源
      最近更新 更多