基于单片机的DTMF信号的译码算法研究
1、引言
本文引用地址://m.amcfsurvey.com/article/170928.htm双音多频(DTMF)是由贝尔实验室开发的信令方式,通过承载语音的模拟电话线传送电话拨号信息。每个数字利用两个不同频率突发模式的正弦波编码,选择双音方式是由于它能够可靠地将拨号信息从语音中区分出来。一般情况下,声音信号很难造成对DTMF接收器的错误触发。DTMF是TouchTONe (早期ATT的商标)的基础, 替代机械式拨号转盘的按键。
DTMF信号首先用于电话的拨号系统,在频率编码遥控系统及数据编码传输中的应用也很普遍。目前的DTMF译码器中,大多采用通用集成器件(单音译码电路和组合门电路)或专用DTMF信号译码集成电路(如MC145436等)组成译码电路。在很多情况下,DTMF译码器输出的数据仍需送入单片机进行相应的运算及处理,进而控制其它各种设备的动作。因此,如果能找到一种基于单片机的DTMF信号的译码算法,再辅之以简单的整形电路就可以,既可省去成套译码电路,又能达到简化电路降低成本的目的。本文所要介绍的,就是这种构想的初衷,结果通过计算机仿真计算数据论证认为完全能够达到设计要求。
2、DTMF信号频率组成及整形前DTMF信号的幅值密度
DTMF是由低频组(fb)和高频组(fa)两组频率信号构成,每个数字信号由低频组合高频组的任意一个叠加而成。根据CCITT的建议,DTMF的编译码定义可用下式表示 f(t)=A_{a}sin(2f_{a}t)+A_{b}sin(2f_{b}t) 式中两项分别表示低、高音频的值,Ab好Aa分别表示低音群合高音群的样值量化基线,而且两者幅值比为K=Ab/Aa(0.7K0.9)。同时规定,对应于DTMF编译码中的标称频率在发送时,DTMF信号的频率偏差不应当超过1.5%,每位数字的信号极限时长应该大于40ms,而接收设备对2%的偏差应能可靠地接收,对30ms~40ms时长的信号可以正常地接收。与单音编码不同,DTMF信号是采用8中取2的方式,从高低两个音组中各取一个音频复合而成来代表0-9十个号码和其他功能码,再加上这8个音频信号的各频率同不存在谐波关系,大大减少了虚假信号灯干扰,因而DTMF信号工作可靠性特别是抗干扰能力很强。
在DTMF信号中,16个指令键均由两个单音频率信号组合(见表1)。单音频率有两组,高频组为(1209Hz、1336Hz、1447Hz、1633Hz),低频组为(697Hz、770Hz、852Hz、941Hz),每个指令键,对应的都是一个高频组的频率和一个低频组的频率的组合。以*号指令键为例:其DTMF信号是由941Hz的低频组信号和1209Hz的高频组信号组成。图1为其频谱图。
从图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查找出其表征的指令键。
评论