新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 用單片機AT89S52實現DTMF信號譯碼

        用單片機AT89S52實現DTMF信號譯碼

        作者: 時間:2010-07-01 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/173284.htm

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

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

        表1 DTMF信號頻率組成表

        在DTMF信號中

        頻譜圖

          從圖1中可以看出,“*”號指令鍵的DTMF信號在941Hz和1209Hz處有譜線。在理想條件下,可計算出頻譜密度函數X(f)在f=941Hz和1209Hz時的模值為|X(941)|,|X(1209)|,即它們模值均不為零。也就是說,要是同時存在頻譜密度函數模值為|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個數據進行離散傅立葉變換(N為采樣點數,T為采樣時間間隔)。

          根據DFT定義式:

        公式

          同樣以“*” 指令鍵信號為例,在高頻率組f=1209 Hz,采樣點數N=256,采樣時間間隔T=55×10-6 S時,由式K=f×N×T,可得K=17,即|X(17)|為DTMF信號在頻率為1209 Hz處的幅值密度其值為121.5。在低頻率組f=941 Hz,采樣點數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信號的幅值密度表

        整形前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信號譯碼識別提供了必要的條件。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 鄂温| 黎平县| 清新县| 太原市| 博兴县| 屏南县| 晋宁县| 杨浦区| 青河县| 怀安县| 临颍县| 三台县| 安多县| 清徐县| 金秀| 凉城县| 沽源县| 吐鲁番市| 大荔县| 永仁县| 连平县| 金溪县| 漳州市| 沁水县| 白朗县| 调兵山市| 东方市| 汝南县| 玛纳斯县| 丹江口市| 嘉定区| 石屏县| 额尔古纳市| 四会市| 玉田县| 建瓯市| 高州市| 北辰区| 桦甸市| 新昌县| 云梦县|