使用FMOD查找以Hz为单位的频率

时间:2018-08-12 18:47:24

标签: c# audio signal-processing fft fmod

我正在尝试为fft频谱中的每个频段找到以赫兹为单位的频率。下面是我的代码,只是将fft频谱值添加到浮动列表中。

for (int len = 0; len < nyquistLength; ++len)
    {
        for (int channel = 0; channel < numChannels; ++channel)
        {
            channs += dspFFT.spectrum[channel][len];
            if (channel == numChannels - 1)
            {
                spectrum.Add(Math.Abs(Mathf.Log10(channs)));
                Debug.Log(spectrum[len]);
                channs = 0;
            }
        }
    }

如何使用此信息获取频谱中每个条目的Hz? 谢谢。

1 个答案:

答案 0 :(得分:1)

p采样率为44100的信号的N点FFT产生频率仓,中心频率间隔为0400到44100 Hz,中间频率为44100 / N。从0到22050 Hz的奈奎斯特频率,包括N / 2 + 1点。因此,如果您想要中心频率,请计算i * 44100 / N,其中i = 0,1,...,N / 2。