基于單片機的DTMF信號的譯碼算法研究
1、引言
本文引用地址:http://butianyuan.cn/article/170928.htm雙音多頻(DTMF)是由貝爾實驗室開發(fā)的信令方式,通過承載語音的模擬電話線傳送電話撥號信息。每個數(shù)字利用兩個不同頻率突發(fā)模式的正弦波編碼,選擇雙音方式是由于它能夠可靠地將撥號信息從語音中區(qū)分出來。一般情況下,聲音信號很難造成對DTMF接收器的錯誤觸發(fā)。DTMF是TouchTONe (早期ATT的商標(biāo))的基礎(chǔ), 替代機械式撥號轉(zhuǎn)盤的按鍵。
DTMF信號首先用于電話的撥號系統(tǒng),在頻率編碼遙控系統(tǒng)及數(shù)據(jù)編碼傳輸中的應(yīng)用也很普遍。目前的DTMF譯碼器中,大多采用通用集成器件(單音譯碼電路和組合門電路)或?qū)S肈TMF信號譯碼集成電路(如MC145436等)組成譯碼電路。在很多情況下,DTMF譯碼器輸出的數(shù)據(jù)仍需送入單片機進行相應(yīng)的運算及處理,進而控制其它各種設(shè)備的動作。因此,如果能找到一種基于單片機的DTMF信號的譯碼算法,再輔之以簡單的整形電路就可以,既可省去成套譯碼電路,又能達到簡化電路降低成本的目的。本文所要介紹的,就是這種構(gòu)想的初衷,結(jié)果通過計算機仿真計算數(shù)據(jù)論證認為完全能夠達到設(shè)計要求。
2、DTMF信號頻率組成及整形前DTMF信號的幅值密度
DTMF是由低頻組(fb)和高頻組(fa)兩組頻率信號構(gòu)成,每個數(shù)字信號由低頻組合高頻組的任意一個疊加而成。根據(jù)CCITT的建議,DTMF的編譯碼定義可用下式表示 f(t)=A_{a}sin(2f_{a}t)+A_sin(2f_t) 式中兩項分別表示低、高音頻的值,Ab好Aa分別表示低音群合高音群的樣值量化基線,而且兩者幅值比為K=Ab/Aa(0.7K0.9)。同時規(guī)定,對應(yīng)于DTMF編譯碼中的標(biāo)稱頻率在發(fā)送時,DTMF信號的頻率偏差不應(yīng)當(dāng)超過1.5%,每位數(shù)字的信號極限時長應(yīng)該大于40ms,而接收設(shè)備對2%的偏差應(yīng)能可靠地接收,對30ms~40ms時長的信號可以正常地接收。與單音編碼不同,DTMF信號是采用8中取2的方式,從高低兩個音組中各取一個音頻復(fù)合而成來代表0-9十個號碼和其他功能碼,再加上這8個音頻信號的各頻率同不存在諧波關(guān)系,大大減少了虛假信號燈干擾,因而DTMF信號工作可靠性特別是抗干擾能力很強。
在DTMF信號中,16個指令鍵均由兩個單音頻率信號組合(見表1)。單音頻率有兩組,高頻組為(1209Hz、1336Hz、1447Hz、1633Hz),低頻組為(697Hz、770Hz、852Hz、941Hz),每個指令鍵,對應(yīng)的都是一個高頻組的頻率和一個低頻組的頻率的組合。以*號指令鍵為例:其DTMF信號是由941Hz的低頻組信號和1209Hz的高頻組信號組成。圖1為其頻譜圖。
從圖1中可以看出,*號指令鍵的DTMF信號在941Hz和1209Hz處有譜線。在理想條件下,可計算出頻譜密度函數(shù)X(f)在f=941Hz和1209Hz時的模值為|X(941)|,|X(1209)|,即它們模值均不為零。也就是說,要是同時存在頻譜密度函數(shù)模值為|X(941)|,|X(1209)|,并且它們模值均不為零時,其表征的鍵號為*.以此類推(見表1),可分別計算出低頻組信號|X(697)|、|X(770)|、|X(852)|、|X(941)|和高頻組信號|X(1209)|、|X(1336)|、|X(1447)|、|X(1633)|的模值。如果高、低頻組中均各自有一個X(f)的模值不為零,則再通過f在表1查找出其表征的指令鍵。
評論