用AT89S52單片機(jī)實(shí)現(xiàn)DTMF信號(hào)譯碼
DTMF信號(hào)首先用于電話的撥號(hào)系統(tǒng),在頻率編碼遙控系統(tǒng)及數(shù)據(jù)編碼傳輸中的應(yīng)用也很普遍。目前的DTMF譯碼器中,大多采用通用集成器件(單音譯碼電路和組合門電路)或?qū)S?a class="contentlabel" href="http://butianyuan.cn/news/listbylabel/label/DTMF信號(hào)譯碼">DTMF信號(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ì)要求。
1、DTMF信號(hào)頻率組成及整形前DTMF信號(hào)的幅值密度
在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 DTMF信號(hào)頻率組成表
從圖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ì)有限時(shí)間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 整形前DTMF信號(hào)的幅值密度表
從表2看出:由于時(shí)域無(wú)限長(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í)別提供了必要的條件。
評(píng)論