雙音多頻
dtmf(dual tone multi-frequency)信令,逐漸在全世界範圍內使用在按鍵式**機上,因其提供更高的撥號速率,迅速取代了傳統轉盤式**機使用的撥號脈衝信令。近年來dtmf也應用在互動式控制中,諸如語言選單、語言郵件、**銀行和atm終端等。
由於 dtmf在傳統通訊領域中的廣泛使用,所以在voip中,dtmf仍是發揮著重要的作用。
乙個 dtmf訊號由兩個頻率的音訊訊號疊加構成。這兩個音訊訊號的頻率來自兩組預分配的頻率組:行頻組或列頻組。每一對這樣的音訊訊號唯一表示乙個數字或符號。產生dtmf訊號,就是利用兩個不同頻率的正弦波疊加以後形成的波形,解碼時則採用改進的
goertzel演算法,從頻域搜尋兩個正弦波的存在。
下表描述了每個
dtmf訊號的頻率。
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音訊訊號當程式需要產生乙個dtmf音訊數碼訊號時,當然可以讀取已經錄製好的檔案。
在這裡介紹如何利用演算法程式動態產生單個dtmf音訊數碼訊號。
前面介紹過dtmf訊號的原理是兩個不同頻率的正弦波疊加。
簡單的生成正弦波的公式:sample=sin(n*2*pi*f/samplerate)
n:取樣序數,由0開始遞增
f:正弦波的頻率
samplerate:取樣頻率
sample:序數n時的得出的取樣值
如果要生成乙個取樣頻率是8000hz,取樣位是8bit的dtmf訊號,則公式:
sample(n) = 128 + 63*sin(n*2*pi*f1/8000) + 63*sin(n*2*pi*f2/8000)
f1和f2分別是該dtmf訊號的兩個正弦波頻率
其中128 = 256/2
63 = 128 /2 – 1
同樣地,如果要生成16bit的dtmf訊號,則公式:
sample(n) = 32768 + 16383*sin(n*2*pi*f1/8000) + 16383*sin(n*2*pi*f2/8000)
計算dtmf訊號是乙個耗費資源的過程,你可以通過不同途徑去優化你的**,最簡單的是預先計算好2*pi*f1和2*pi*f2的值,減少cpu的計算時間。
關於dtmf訊號的時間間隔,ccitt對dtmf訊號規定的指標是,傳送/接收率為每秒10個數字,即每個數字100ms。代表數字的音訊訊號必須持續至少45ms,但不超過55ms。100ms內其他時間為靜音,以便區別連續的兩個按鍵訊號。
雙音多頻 DTMF
雙音多頻 dtmf dual tone multi frequency 雙音多頻,由高頻群和低頻群組成,高低頻群各包含4個頻率。乙個高頻訊號和乙個低頻訊號疊加組成乙個組合訊號,代表乙個數字。dtmf訊號有16個編碼。利用dtmf信令可選擇呼叫相應的對講機。雙音多頻訊號 dtmf 系統中 機與交換機之...
知識 雙音多頻 DTMF 訊號
雙音多頻訊號 dual tone multi frequency,dtmf 系統中 機與交換機之間的一種使用者信令,通常用於傳送被叫號碼。在使用雙音多頻訊號之前,系統中使用一連串的斷續脈衝來傳送被叫號碼,稱為脈衝撥號。脈衝撥號需要電信局中的操作員手工完成長途接續。雙音多頻訊號是貝爾實驗室發明的,其目...
DTMF雙音多頻按鍵訊號的定義
雙音多頻dtmf dual tone multi frequency 信令,逐漸在全世界範圍內使用在按鍵式 機上,因其提供更高的撥號速率,迅速取代了傳統轉盤式 機使用的撥號脈衝信令。近年來dtmf也應用在互動式控制中,諸如語言選單 語言郵件 銀行和atm終端等。通過軟體產生與檢測dtmf信令,是一項...