我有一个问题。我在 C# 上使用 NAudio。我的采样率 = 40960。我的麦克风,每 100 毫秒(4096 字节)给我一个缓冲区。我把这个发给fft。如果我只看 4096 个元素,关于声音频率超过 2048 Hz 的说法是否正确?或者我需要使用这个缓冲区大小而不是这个?
问问题
925 次
您的采样率 Fs = 40960 Hz,因此您的 FFT 将代表从 0 到 Fs / 2(奈奎斯特)= 0 Hz 到 20480 Hz 的真实正频率。
FFT的分辨率为 Fs / N = 40960 / 4096 = 10 Hz。因此,每个 bin 的宽度为 10 Hz,前 2048 个复数输出 bin 以 10 Hz 的增量表示从 0 到 20480 Hz 的频率(您可以忽略其他 2048 个输出 bin,因为它们不包含纯实输入信号的附加信息)。
有关更完整的解释,请参阅此答案。