2011-04-18 109 views
2

如何在iphone中以編程方式檢測dtmf音?我想檢測接收到的音頻信號(麥克風輸入)是否應該是dtmf音?如何在iphone中以編程方式檢測dtmf音調?

Plz幫助我?我真的爲此奮鬥了2天。 在此先感謝.....

+0

可能的重複http://stackoverflow.com/questions/5701596/how-to-detect-received-signal-to-be-dtmf-tone-in-iphone – visakh7 2011-04-18 11:48:07

回答

1

由於DTMF系統只使用8個純正弦音調,因此使用調諧濾波器組或Goertzel算法檢測這些頻率下的能量存在效率會高於做FFT。

Goertzel算法的維基百科頁面爲算法的工作原理提供了很好的僞代碼。它不應該是太難翻譯到這個(目的)C.

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

通過有運行音頻,並測量輸出功率每100個毫秒左右。這將是一個相當的工作 - 祝你好運!

0

您可以在小時間窗口上使用8個窄帶濾波器和振幅平均。這兩個過程通常使用Goertzel算法的變體一起完成。

可以做的另一件事是使用RMS平均器在同一時間窗口內的所有頻率上測量總平均幅度。當只有2個濾波窗口中的能量佔總信號能量的大部分時,則可能有DTMF信號。爲了解碼DTMF,您可以根據2個濾波器顯示能量來進行表格查找。如果音頻中任何地方的總能量比僅有2個濾波器的總能量多得多,則整個音頻信號可能是噪聲,而不是DTMF信號。

相關問題