雙音多頻DTMF

2021-04-12 14:59:59 字數 1774 閱讀 2212

雙音多頻

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信令,是一項...