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

從圖1中可以看出,"*"號(hào)指令鍵的DTMF信號(hào)在941Hz和1209Hz處有譜線。在理想條件下,可計(jì)算出頻譜密度函數(shù)X(f)在f=941Hz和1209Hz時(shí)的模值為|X(941)|,|X(1209)|,即它們模值均不為零。也就是說,要是同時(shí)存在頻譜密度函數(shù)模值為|X(941)|,|X(1209)|,并且它們模值均不為零時(shí),其表征的鍵號(hào)為"*".以此類推(見表1),可分別計(jì)算出低頻組信號(hào)|X(697)|、|X(770)|、|X(852)|、|X(941)|和高頻組信號(hào)|X(1209)|、|X(1336)|、|X(1447)|、|X(1633)|的模值。如果高、低頻組中均各自有一個(gè)X(f)的模值不為零,則再通過f在表1查找出其表征的指令鍵。
在用單片機(jī)進(jìn)行X(f)運(yùn)算即離散傅立葉變換(DFT)時(shí),只能對(duì)有限長(zhǎng)的DTMF信號(hào)進(jìn)行分析與處理,即對(duì)有間Tp=NT內(nèi)的N個(gè)數(shù)據(jù)進(jìn)行離散傅立葉變換(N為采樣點(diǎn)數(shù),T為采樣時(shí)間間隔)。
根據(jù)DFT定義式:

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

從表2看出:由于時(shí)域無限長(zhǎng)DTMF信號(hào)被截?cái)嗨鸬男孤┬?yīng),如"2"、"3"號(hào)鍵對(duì)應(yīng)的DTMF信號(hào)雖然不含有頻率為1209 Hz和941 Hz的信號(hào)成份,可是|X(17)|、|X(13)|不為零,理想時(shí)應(yīng)為零,也就是說存在一定的幅值密度誤差。但對(duì)于含有f=1209 Hz高頻組信號(hào)的DTMF信號(hào)(如"1"、"4"、"7"、"*"鍵),其|X(17)|值遠(yuǎn)大于不含f=1209 Hz高頻組信號(hào)的DTMF信號(hào)的|X(17)|值。同樣,對(duì)于含有f=941 Hz低頻組信號(hào)的DTMF信號(hào)的|X(13)|值遠(yuǎn)大于不含f=941Hz低頻組信號(hào)的DTMF信號(hào)的|X(13)|值,這樣就為實(shí)際DTMF信號(hào)譯碼識(shí)別提供了必要的條件。
因在實(shí)際DTMF信號(hào)譯碼應(yīng)用時(shí),任一鍵號(hào)所對(duì)應(yīng)的DTMF信號(hào)的譯碼過程為:
?。?)分別采樣DTMF信號(hào)計(jì)算出譜線為697Hz、770Hz、852Hz、941Hz的幅值密度|X(k)|.
?。?)從中排序找到低頻組頻率fL對(duì)應(yīng)幅值密度|X(k)|的值。
?。?)同法計(jì)算,譜線為1209Hz、1336Hz、1467Hz、1633Hz的幅值密度|X(k)|.
?。?)從中排序找到高頻組頻率fH對(duì)應(yīng)幅值密度|X(k)|的值。
?。?)根據(jù)fL、fH查表1,即可得到其所表征的鍵號(hào)。
3、整形后DTMF信號(hào)的幅值密度及其實(shí)驗(yàn)數(shù)據(jù)誤差分析
為了把DTMF信號(hào)送入單片機(jī)進(jìn)行DTMF信號(hào)譯碼,還必須要對(duì)DTMF信號(hào)進(jìn)行整形,見圖2所示。DTMF信號(hào)經(jīng)比較限幅,整形為方波后。從DFT變換定義式看出:式中x(nT)的值只能為0或者1,因此計(jì)算|X(k)|的運(yùn)算量大大降低,表3即為通過整形后DTMF信號(hào)采用計(jì)算機(jī)仿真計(jì)算出的幅值密度。


對(duì)比表3和表2可以發(fā)現(xiàn),整形為方波后的DTFM信號(hào)泄漏譜線的幅值密度有所增大,而有效譜線的幅值密度也相應(yīng)變小。例如7號(hào)指令鍵產(chǎn)生的泄漏譜線的幅值密度其值從14.09增大到22.38,而有效幅值密度其值從127.9減小到107.26.造成此類問題的主要原因是:
?。?)由于N,T只能選擇整數(shù),1/f不可能被N×T所整除,所以這必然會(huì)帶來柵欄效應(yīng),此時(shí)計(jì)算所得的有效譜線的幅值密度必然 小 于 實(shí) 際 值 .同 時(shí) ,由于采樣時(shí)間Tp=NT有限長(zhǎng)而引起的泄漏效應(yīng),也必然會(huì)導(dǎo)致泄漏譜線的幅值密度增大。
?。?)DTMF信號(hào)經(jīng)整形為方波后會(huì)產(chǎn)生了十分豐富的諧波干擾,這些干擾信號(hào)的頻率如果接近泄漏譜線的頻率,也會(huì)使泄漏譜線的幅值密度增大。
因此在譯碼過程中,如果有效譜線的幅值密度值變小,而泄漏譜線的幅值密度增大,當(dāng)泄漏譜線的幅值密度大于有效譜線的幅值密度時(shí),就會(huì)引起錯(cuò)譯和漏譯現(xiàn)象。所以在N×T值選擇過小,或者與待測(cè)周期的整數(shù)倍相差過大,再加上整形為方波后諧波干擾,將有可能引起錯(cuò)譯和漏譯。
但是從表3中可見泄漏譜線的幅值密度值為22.38,而有效譜線的幅值密度值為87.92兩者相差近4倍,還存在較大的冗余量。例如:對(duì)于含有f=1209 Hz高頻組信號(hào)的DTMF信號(hào)(如"1"、"4"、"7"、"*"鍵),其|X(17)|值仍遠(yuǎn)大于不含f=1209 Hz高頻組信號(hào)的DTMF信號(hào)的|X(17)|值。同樣,對(duì)于含有f=941 Hz低頻組信號(hào)的DTMF信號(hào)的|X(13)|值也遠(yuǎn)大于不含f=941Hz低頻組信號(hào)的DTMF信號(hào)的|X(13)|值,二者仍可在排序中明顯區(qū)分出來,所以對(duì)DTMF信號(hào)整形后產(chǎn)生的一定幅值密度誤差增大,完全可以忽略不計(jì),只要譯碼應(yīng)用程序設(shè)計(jì)得當(dāng),合理選取N、T值,不會(huì)出現(xiàn)錯(cuò)譯和漏譯現(xiàn)象。
在DTMF信號(hào)比較準(zhǔn)確或干擾較小的場(chǎng)合,甚至還可以通過減少N,T的值來提高運(yùn)算速度,減少譯碼時(shí)間。
4、重點(diǎn)參數(shù)的選取
為了能更好的確保用單片機(jī)實(shí)現(xiàn)DTMF信號(hào)譯碼,避免出現(xiàn)錯(cuò)譯和漏譯現(xiàn)象,在軟件設(shè)計(jì)時(shí),采樣點(diǎn)數(shù)N,采樣時(shí)間間隔T,譜線系數(shù)K,是至關(guān)重要的參數(shù),它們的選取應(yīng)遵循以下原則:
(1)N×T盡可能接近信號(hào)周期的整數(shù)倍。
(2)通過增大N×T,可有效提高分辨率,但N增大會(huì)導(dǎo)致運(yùn)算量增大,且N一般應(yīng)滿足N=2n,增大T時(shí),一定需注意滿足香農(nóng)定理。
?。?)K=f×N×T
表4為推薦的參數(shù)選擇表。

5、DTMF信號(hào)譯碼應(yīng)用程序設(shè)計(jì)
5.1 DTMF信號(hào)譯碼記錄子程序流程圖
圖中DL1為運(yùn)行a、b、c、d、e、f、g所需時(shí)間,DL2為運(yùn)行c、d、e、f、g所需時(shí)間。

5.2 DTMF信號(hào)譯碼主流程圖

6、結(jié)論
通過對(duì)DTMF信號(hào)譯碼算法的探討和計(jì)算機(jī)仿真實(shí)驗(yàn)檢測(cè)數(shù)據(jù)論證,認(rèn)為完全可使用單片機(jī)來進(jìn)行DTMF信號(hào)的譯碼,并且效果能達(dá)到設(shè)計(jì)要求。從而可省去成套譯碼電路,又能達(dá)到簡(jiǎn)化電路降低成本的目的。
參考文獻(xiàn):
[1]. MC145436 datasheet http://www.hbjingang.com/datasheet/MC145436_2414102.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 單片機(jī)技術(shù)特性與嵌入式開發(fā)實(shí)踐指南2026/1/7 10:00:02
- 單片機(jī)(MCU)與數(shù)字信號(hào)處理器(DSP)分類及選型技術(shù)指南2025/12/30 10:02:37
- 工業(yè)級(jí)DSP信號(hào)處理系統(tǒng):硬件適配與抗干擾工程方案2025/12/15 14:41:00
- HOLTEK推出HT32F65533G/733G內(nèi)建N/N預(yù)驅(qū)電機(jī)專用SoC單片機(jī)2025/11/26 14:11:41
- 什么是C51數(shù)據(jù)類型擴(kuò)充定義2025/10/27 13:59:22
- PCB焊盤與過孔設(shè)計(jì)核心實(shí)操規(guī)范(含可焊性與可靠性保障)
- 汽車電子常用電子元器件選型指南
- MOSFET驅(qū)動(dòng)與隔離方案設(shè)計(jì)
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法









