我有一个问题。我在C#上使用NAudio。我的采样率=40960。我的麦克风,每100毫秒(4096字节)给我缓冲。我将其发送给fft。如果仅查看4096个元素,是否正确地说出超过2048 Hz的声音频率?还是我需要更多地用于此缓冲区大小?

最佳答案

您的采样率Fs = 40960 Hz,因此您的FFT将代表从0到Fs / 2(奈奎斯特)= 0 Hz到20480 Hz的真实正频率。

FFT的分辨率为Fs / N = 40960/4096 = 10 Hz。因此,每个bin的宽度为10 Hz,并且前2048个复数输出bin代表0到20480 Hz的频率(以10 Hz为增量)(您可以忽略其他2048个输出bin,因为它们不包含纯真实输入信号的附加信息)。

有关更完整的说明,请参见this answer

关于c# - 声音频率FFT,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13304390/

10-15 23:44