【发布时间】:2019-01-19 13:34:13
【问题描述】:
我正在尝试为 fft 频谱中的每个 bin 找到以赫兹为单位的频率。下面是我的代码,只是在浮点列表中添加了 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? 谢谢。
【问题讨论】:
-
您需要知道以 Hz 为单位的采样率以及 FFT 长度,才能知道每个 FFT 滤波器 bin 的中心频率(以 Hz 为单位)。
-
@hotpaw2 所以我的采样率是 44100,我的窗口长度是 2048。我之前曾尝试通过执行以下操作来找到 bin Hz:(channs/_windowLength) * (44100/ 2) 但我得到的结果几乎不高于零。
标签: c# audio signal-processing fft fmod