首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 单片机栏
用单片机AT89S52实现DTMF信号译码
来源:本站整理  作者:佚名  2010-07-10 11:42:21



 DTMF信号首先用于电话的拨号系统,在频率编码遥控系统及数据编码传输中的应用也很普遍。目前的DTMF译码器中,大多采用通用集成器件(单音译码电路和组合门电路)或专用DTMF信号译码集成电路(如MC145436等)组成译码电路。在很多情况下,DTMF译码器输出的数据仍需送入单片机进行相应的运算及处理,进而控制其它各种设备的动作。因此,如果能找到一种基于单片机的DTMF信号的译码算法,再辅之以简单的整形电路就可以,既可省去成套译码电路,又能达到简化电路降低成本的目的。本文所要介绍的,就是这种构想的初衷,结果通过计算机仿真计算数据论证认为完全能够达到设计要求。

  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]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)
Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:74,703.13000 毫秒