如何从DTMF音调中获得低频率

时间:2010-09-18 22:07:08

标签: python audio signal-processing

您已经在python中创建了一个源来获取音频文件的基本频率,我想用它来获取DTMF音频中的音调!

但如何从音频中获得低音?

THKS !!


完全即时应用FFT,但它的返回始终是高频。

这里的频率表

http://www.mediacollege.com/audio/tone/dtmf.html

例如,当我得到一个关键字“1”的.wav音频文件时,我只有频率1209

在这种情况下如何获得键“1”的低频是697,FFT不要给我这个:-(

2 个答案:

答案 0 :(得分:3)

要获得波形中出现的频率(任何声音,不仅是DTMF和所有其他波形),您都可以应用快速傅立叶变换。

当您将其应用于DTMF时,您将获得信号包含的两个频率的两个峰值。

http://en.wikipedia.org/wiki/Fast_Fourier_transform

答案 1 :(得分:3)

由于您只需要使用DTMF的几个频率的信息,您可能想尝试对每个频率使用Goertzel algorithm。你不需要所有的FFT箱;并且您可能能够更准确地定位感兴趣的频率,具体取决于时间窗口,然后FFT区间最终居中的位置。

将Goertzel滤波器的幅度输出与RMS总能量进行比较,以便对音调存在做出一些决定。然后查找表格中的DTMF frequencies以获取代码。