精确的音调开始/持续时间测量?

时间:2010-12-16 02:05:32

标签: audio signal-processing fft

我有一个工作音调检测器,它使用FFT来确定特定频率的音调(或音调对)是否存在于音频流中(如果充分高于本底噪声)。我可以使用什么方法更精确地定位该音调的开始时间和持续时间?我正在寻找比FFT帧持续时间(大约50毫秒)更精确的东西。假设音调比FFT帧长得多。

2 个答案:

答案 0 :(得分:3)

听起来像DTMF检测。标准技术是Goertzel algorithm。对于每个感兴趣的频率,您需要一个Goertzel检测器,因此您需要知道先验的频率。

答案 1 :(得分:1)

如果提前知道特定频率,您可以设计一个以该频率为中心的带通滤波器,然后在输出端使用能量检测器。您必须考虑通过滤波器的批量延迟,以及可能还有稳态响应的上升和下降时间。

如果您正在使用FFT输出来实际检测音调,并且您有足够的内存来保存最近的过去样本,您可以粗略估计FFT的起始时间,并在几百毫秒内回溯之前,并开始以检测到的频率通过正弦曲线混合样本。然后通过低通滤波器运行混合样品。您的音调检测,混音器和LPF频率分辨率/带宽必须匹配,您需要再次考虑LPF特性。