DTMF (Dual Tone Multi-Frequency)
本文參考來源以及RFC2833DTMF(Dual Tone Multi-Frequency)signaling,逐漸在全世界範圍內使用在按鍵式電話機上,因其提供更高的撥號速率,迅速取代了傳統轉盤式電話機使用的撥號脈衝信令。在VOIP中,DTMF仍是發揮著重要的作用。
一個DTMF信號由兩個頻率的音訊信號疊加構成。這兩個音訊信號的頻率來自兩組預分配的頻率組:行頻組或列頻組。每一對這樣的音訊信號唯一表示一個數位或符號。產生DTMF信號,就是利用兩個不同頻率的正弦波疊加以後形成的波形,解碼時則採用改進的Goertzel演算法,從頻域搜索兩個正弦波的存在。
1209 Hz 1336 Hz 1477 Hz 1633 Hz ABC DEF 697 Hz 1 2 3 A GHI JKL MNO 770 Hz 4 5 6 B PRS TUV WXY 852 Hz 7 8 9 C oper 941 Hz * 0 # D
DTMF在VOIP中的解決方案
由於在IP網中的通信傳輸是採packet switch而不是傳統領域中的circuit switch以及IP網的不穩定的特性,DTMF在VOIP中應用的解決方案和傳統有所不同,並且暫時還未統一,有多種解決方案。主要有下列幾種:
1.用SIP的INFO方法攜帶DTMF信號
2.在RTP媒體傳輸中攜帶DTMF信號(此種又有In band與Out of band之分)
3.動態生成DTMF音訊信號
關於DTMF信號的時間間隔,CCITT對DTMF信號規定的指標是,傳送/接收率為每秒10個數字,即每個數字100ms。代表數字的音頻信號必須持續至少45ms,但不超過55ms。100ms內其他時間為靜音,以便區別連續的兩個按鍵信號。
Goertzel演算法
DTMF解碼即是在輸入信號中搜索出有效的行頻和列頻。計算數位信號的頻譜可以採用DFT及其快速演算法FFT,而在實現DTMF解碼時,採用Goertzel演算法要比FFT更快。通過FFT可以計算得到信號所有譜線,瞭解信號整個頻域資訊,而對於DTMF信號只用關心其8個行頻/列頻及其二次諧波資訊即可(二次諧波的資訊用於將DTMF信號與聲音信號區別開)。此時Goertzel演算法能更加快速的在輸入信號中提取頻譜資訊。
Discrete Fourier Transform (DFT)
Fast Fourier Transform (FFT)
沒有留言:
張貼留言