1

在某个时间在麦克风上,开始流动声音定义频率(500hz)。我怎么知道信号什么时候开始传到麦克风?为了解决这个问题,我知道我需要使用 FFT(快速傅里叶变换)。但是我不明白,FFT频率后我应该怎么取?我在 C# 上使用 NAudio。我的麦克风缓冲区是字节数组。

4

3 回答 3

2

为此使用 FFT 是多余的,而且不是特别合适。此类问题(音调检测/起始检测)的一个更简单的解决方案是Goertzel 滤波器

于 2012-10-22T11:24:21.903 回答
1

确定何时将信号采样到缓冲区是一个程序问题。

这与确定采样信号的频率内容是什么(使用 FFT)无关。其他问题见我的回复...

于 2012-10-22T11:14:10.503 回答
1

窄 IIR 带通滤波器后接包络检波器可能是一种可能的尝试方法。如果您知道音调爆发的上升时间,另一件要尝试的事情可能是与匹配滤波器的互相关。您还必须校准音频输入信号路径的延迟。

于 2012-10-23T05:49:49.867 回答