【问题标题】:Optimal value of sampling frequency for guitar notes detection吉他音符检测的最佳采样频率值
【发布时间】:2016-04-21 19:13:22
【问题描述】:

我正在运行 FFT 算法来检测吉他上演奏的音符。

我感兴趣的频率范围是 65.41Hz (C2) 到 1864.7Hz (A#6)。

如果我将输入的采样频率设置为 16KHz,FFT 的输出将线性地产生从 0Hz 到 16KHz 的 N 个点。我感兴趣的所有输入大约在前 N/8 点。其他 N*7/8 点对我没有用。他们实际上正在降低我的分辨率。

根据 Nyquist 的理论 (https://en.wikipedia.org/wiki/Nyquist_frequency),所需的采样频率只是人们期望的最大频率的两倍。就我而言,这大约是 4KHz。

4KHz 真的是吉他调音应用的理想采样频率吗?

直觉上,人们会觉得更好的采样频率会给你更准确的结果。但是,在这种情况下,似乎具有较小的采样频率对于提高分辨率更好。问候。

【问题讨论】:

    标签: signal-processing fft fftw


    【解决方案1】:

    是的,如果您只对高达 2 kHz 的频率感兴趣,那么您只需要 4 kHz 的采样频率。这应该包括在 ADC 或任何下变频器前面的抗混叠滤波器,以防止任何较高频率分量混叠到较低频率。

    如果您只对特定频率(一个或两个)感兴趣,那么您可能需要查看 Goertzel 算法,该算法比单个频率的 FFT 更有效。此外,chirp-Z 变换可用于有效地获得缩放的 FFT(在较小的带宽上产生较高的分辨率,而无需具有相同分辨率的 FFT 的计算复杂性)。您可能想查看this CZT tutorial

    【讨论】:

    • 另一个技巧是看相位。如果我们知道我们正在使用具有少量谐波的单音,我们就不需要那么多 FFT 箱。假设我们正在寻找接近 440A 某个音调的准确频率。假设我们的 FFT 中有一个 [400, 500) Hz bin。这很粗,对吧?但只要 440 分量是那个 bin 中的 only 内容,我们就可以做到:我们可以查看那个 bin 的 phase 正在做什么,从一个 FFT 窗口到下一个:阶段以何种方式爬行以及多快。通过查看相位,我们可以将其解析为 443 Hz 或其他。
    【解决方案2】:

    您将吉他音符的音高与频谱频率混淆了。吉他以比弹奏音符的音高高得多的频率产生大量泛音和谐波。那些较高的谐波和泛音,在某些情况下比可能较弱的基频更多,是人耳所听到的并将其解释为较低的感知音高。

    在以 4 kHz 采样之前未完全滤除的 2 kHz 附近或以上的任何泛音和谐波都会导致混叠,从而损坏您的采样数据及其频谱。

    如果您想创建精确的调谐器,请使用音高估计算法,而不是 FFT 峰值频率 bin 估计器。并且根据您选择的音高估计方法,每单位时间的样本密度越高,在背景噪声下的准确度或可靠性可能会更高,或者响应速度更快。

    【讨论】:

      【解决方案3】:

      4KHz 真的是吉他调音应用的理想采样频率吗?

      如果你这样问,你就误读了奈奎斯特定理。

      声明每个采样频率高于最大信号频率的两倍将使您能够完美地重建原始信号。所以没有“理想”的频率。只是一组足够的频率。什么是理想因此取决于很多其他的事情:主要是,你的数字化仪真正支持什么(提示:大多数声卡可以做到 44.1kHz,但不是 4kHz),什么您希望过滤器等工作的余量,以及您可以花费什么样的处理能力(提示:现代智能手机、个人电脑甚至袖珍计算器真的很难真正处理几百 kHz时间)。

      还要注意@hotpaw2 是对的,谐波很重要,是基音频率的倍数。

      但是,在这种情况下,似乎具有较低的采样频率更有利于提高分辨率。

      没有。不管从哪里来,都是错的。信息论的首要结果是,基于更多信息,您无法做出更差的估计。过采样信号只是关于同一信号的更多信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-10
        • 1970-01-01
        • 2017-09-15
        • 2017-03-04
        • 2017-05-30
        • 2011-05-28
        相关资源
        最近更新 更多