使用 FMOD 以 Hz 为单位查找频率
Find the frequency in Hz using FMOD
我试图找到 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?
谢谢
采样率为 44100 的信号的 N 点 FFT 生成中心频率在 0 Hz 到 44100 Hz 之间间隔 44100/N 的频率仓。从0到22050赫兹的奈奎斯特频率,有N/2+1个点。因此,如果您想要中心频率,则计算 i*44100/N 其中 i=0,1,...,N/2.
我试图找到 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? 谢谢
采样率为 44100 的信号的 N 点 FFT 生成中心频率在 0 Hz 到 44100 Hz 之间间隔 44100/N 的频率仓。从0到22050赫兹的奈奎斯特频率,有N/2+1个点。因此,如果您想要中心频率,则计算 i*44100/N 其中 i=0,1,...,N/2.