《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 基于單片機的DTMF信號的譯碼算法
基于單片機的DTMF信號的譯碼算法
電子發(fā)燒友
摘要: 1,、引言DTMF信號首先用于電話的撥號系統(tǒng),,在頻率編碼遙控系統(tǒng)及數(shù)據(jù)編碼傳輸中的應用也很普遍。目前的DTMF譯碼器中,,大多采用通用集成器件(單音譯碼電路和組合門電路)或?qū)S肈TMF信號譯碼集成電路(如MC145436等)組成譯碼電路。在很多情況下,,DTMF譯碼器輸出的數(shù)據(jù)仍需送入單片機進行相應的運算及處理,,進而控制其它各種設備的動作,。因此,如果能找到一種基于單片機的DTMF信號的譯碼算法,,再輔之以簡單的整形電路就可以,,既可省去成套譯碼電路,又能達到簡化電路降低成本的目的,。本文所要介紹的,,就是這種構(gòu)想的初衷,結(jié)果通過計算機仿真計算數(shù)據(jù)論證認為完全能夠達到設計要求,。2,、DTMF信號頻率組成及整形前DTMF信號的幅值密度在DTMF信號中,16個指令鍵均由兩個單音頻率信號組合(見表1),。單音頻率有兩組,,高頻組為(1209Hz、1336Hz,、1447Hz,、1633Hz),低頻組為(697Hz,、770Hz,、852Hz、941Hz),,每個指令鍵,,對應的都是一個高頻組的頻率和一個低頻組的頻率的組合。以“*”號指令鍵為例:其DTMF信號是由941Hz的低頻組信號和1209Hz的高頻組信號組成,。圖1為其頻譜圖,。表1DTMF信號頻
關鍵詞: 51單片機 DTMF 單片機
Abstract:
Key words :

1、 引言

DTMF信號首先用于電話的撥號系統(tǒng),,在頻率編碼遙控系統(tǒng)及數(shù)據(jù)編碼傳輸中的應用也很普遍,。目前的DTMF譯碼器中,大多采用通用集成器件(單音譯碼電路和組合門電路)或?qū)S肈TMF信號譯碼集成電路(如MC145436等)組成譯碼電路,。在很多情況下,,DTMF譯碼器輸出的數(shù)據(jù)仍需送入單片機進行相應的運算及處理,進而控制其它各種設備的動作,。因此,,如果能找到一種基于單片機的DTMF信號的譯碼算法,再輔之以簡單的整形電路就可以,,既可省去成套譯碼電路,,又能達到簡化電路降低成本的目的。本文所要介紹的,就是這種構(gòu)想的初衷,,結(jié)果通過計算機仿真計算數(shù)據(jù)論證認為完全能夠達到設計要求,。

2、DTMF信號頻率組成及整形前DTMF信號的幅值密度

在DTMF信號中,,16個指令鍵均由兩個單音頻率信號組合(見表1),。單音頻率有兩組,高頻組為(1209Hz,、1336Hz,、1447Hz、1633Hz),,低頻組為(697Hz,、770Hz、852Hz,、941Hz),,每個指令鍵,對應的都是一個高頻組的頻率和一個低頻組的頻率的組合,。以“*”號指令鍵為例:其DTMF信號是由941Hz的低頻組信號和1209Hz的高頻組信號組成,。圖1為其頻譜圖。
 

表1 DTMF信號頻率組成表


從圖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查找出其表征的指令鍵,。

在用單片機進行X(f)運算即離散傅立葉變換(DFT)時,,只能對有限長的DTMF信號進行分析與處理,即對有限時間Tp=NT內(nèi)的N個數(shù)據(jù)進行離散傅立葉變換(N為采樣點數(shù),,T為采樣時間間隔),。

根據(jù)DFT定義式:
 


同樣以“*” 指令鍵信號為例,在高頻率組f=1209 Hz,,采樣點數(shù)N=256,,采樣時間間隔T=55×10-6 S時,由式K=f×N×T,,可得K=17,,即|X(17)|為DTMF信號在頻率為1209 Hz處的幅值密度其值為121.5。在低頻率組f=941 Hz,,采樣點數(shù)N=256,,采樣時間間隔T=54×10-6 S時,由式K=f×N×T,,可得K=13,,即|X(13)|為DTMF信號在頻率為941 Hz處的幅值密度其值為123.6。同理,,可計算出其它15個指令鍵的幅值密度,,見表2(表2為對16個指令鍵的DTMF信號采用計算機仿真計算后的幅值密度)。
 

表2 整形前DTMF信號的幅值密度表


從表2看出:由于時域無限長DTMF信號被截斷所引起的泄漏效應,,如“2”,、“3”號鍵對應的DTMF信號雖然不含有頻率為1209 Hz和941 Hz的信號成份,可是|X(17)|,、|X(13)|不為零,,理想時應為零,也就是說存在一定的幅值密度誤差,。但對于含有f=1209 Hz高頻組信號的DTMF信號(如“1”,、“4”、“7”,、“*”鍵),,其|X(17)|值遠大于不含f=1209 Hz高頻組信號的DTMF信號的|X(17)|值。同樣,,對于含有f=941 Hz低頻組信號的DTMF信號的|X(13)|值遠大于不含f=941Hz低頻組信號的DTMF信號的|X(13)|值,,這樣就為實際DTMF信號譯碼識別提供了必要的條件。

因在實際DTMF信號譯碼應用時,,任一鍵號所對應的DTMF信號的譯碼過程為:

(1)分別采樣DTMF信號計算出譜線為697Hz,、770Hz、852Hz、941Hz的幅值密度|X(k)|,。

(2)從中排序找到低頻組頻率fL對應幅值密度|X(k)|最大的值,。

(3)同法計算,譜線為1209Hz,、1336Hz,、1467Hz、1633Hz的幅值密度|X(k)|,。

(4)從中排序找到高頻組頻率fH對應幅值密度|X(k)|最大的值,。

(5)根據(jù)fL、fH查表1,,即可得到其所表征的鍵號,。

2、整形后DTMF信號的幅值密度及其實驗數(shù)據(jù)誤差分析

為了把DTMF信號送入單片機進行DTMF信號譯碼,,還必須要對DTMF信號進行整形,,見圖2所示。DTMF信號經(jīng)比較限幅,,整形為方波后,。從DFT變換定義式看出:式中x(nT)的值只能為0或者1,因此計算|X(k)|的運算量大大降低,,表3即為通過整形后DTMF信號采用計算機仿真計算出的幅值密度,。  

 

圖2 DTMF信號比較限幅示意圖

 

表3 整形后DTMF信號的幅值密度表


對比表3和表2可以發(fā)現(xiàn),整形為方波后的DTFM信號泄漏譜線的幅值密度有所增大,,而有效譜線的幅值密度也相應變小,。例如7號指令鍵產(chǎn)生的泄漏譜線的幅值密度其值從14.09增大到22.38,而有效幅值密度其值從127.9減小到107.26,。造成此類問題的主要原因是:

(1)由于N,,T只能選擇整數(shù),1/f不可能被N×T所整除,,所以這必然會帶來柵欄效應,,此時計算所得的有效譜線的幅值密度必然 小 于 實 際 值 。同 時 ,,由于采樣時間Tp=NT有限長而引起的泄漏效應,,也必然會導致泄漏譜線的幅值密度增大。

(2)DTMF信號經(jīng)整形為方波后會產(chǎn)生了十分豐富的諧波干擾,,這些干擾信號的頻率如果接近泄漏譜線的頻率,也會使泄漏譜線的幅值密度增大,。

因此在譯碼過程中,,如果有效譜線的幅值密度值變小,而泄漏譜線的幅值密度增大,當泄漏譜線的幅值密度大于有效譜線的幅值密度時,,就會引起錯譯和漏譯現(xiàn)象,。所以在N×T值選擇過小,或者與待測周期的整數(shù)倍相差過大,,再加上整形為方波后諧波干擾,,將有可能引起錯譯和漏譯。

但是從表3中可見泄漏譜線的幅值密度最大值為22.38,,而有效譜線的幅值密度最小值為87.92兩者相差近4倍,,還存在較大的冗余量。例如:對于含有f=1209 Hz高頻組信號的DTMF信號(如“1”,、“4”,、“7”、“*”鍵),,其|X(17)|值仍遠大于不含f=1209 Hz高頻組信號的DTMF信號的|X(17)|值,。同樣,對于含有f=941 Hz低頻組信號的DTMF信號的|X(13)|值也遠大于不含f=941Hz低頻組信號的DTMF信號的|X(13)|值,,二者仍可在排序中明顯區(qū)分出來,,所以對DTMF信號整形后產(chǎn)生的一定幅值密度誤差增大,完全可以忽略不計,,只要譯碼應用程序設計得當,合理選取N,、T值,不會出現(xiàn)錯譯和漏譯現(xiàn)象,。

在DTMF信號比較準確或干擾較小的場合,,甚至還可以通過減少N,T的值來提高運算速度,,減少譯碼時間,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。