基于MSP430的嵌入式DTMF拨号解码器实现方案.docx

上传人:安*** 文档编号:73283275 上传时间:2023-02-17 格式:DOCX 页数:5 大小:18.34KB
返回 下载 相关 举报
基于MSP430的嵌入式DTMF拨号解码器实现方案.docx_第1页
第1页 / 共5页
基于MSP430的嵌入式DTMF拨号解码器实现方案.docx_第2页
第2页 / 共5页
点击查看更多>>
资源描述

《基于MSP430的嵌入式DTMF拨号解码器实现方案.docx》由会员分享,可在线阅读,更多相关《基于MSP430的嵌入式DTMF拨号解码器实现方案.docx(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于MSP430的嵌入式DTMF拨号解码器实现方案基于MSP430的嵌入式DTMF拨号解码器实现方案caojing导语:本文介绍了一种基于MSP430的嵌入式DTMF拨号解码器实现方案。DTMF拨号局部使用4根I/O线的电阻网络,配合软件产生DTMF信号。摘要:本文介绍了一种基于MSP430的嵌入式DTMF拨号解码器实现方案。DTMF拨号局部使用4根I/O线的电阻网络,配合软件产生DTMF信号。利用MSP430F133内置的ADC,并采用改良的Goertzel算法,实现DTMF信号的实时解码。该方案本钱低、性能可靠,已经得到了实际应用。关键词:DTMF拨号DTMF解码改良的Goertzel算法

2、MSP430F133DTMF双音多频信号是网中常用的信令,无论是家用、挪动还是程控交换机上,多采用DTMF信号发送接收号码。DTMF技术还可以用于电力线载波通讯等场合。可见,DTMF拨号和解码在通讯系统及其它方面有着广泛的应用。通常DTMF信号的检测采用专用芯片或者DSP来实现,但其本钱较高。本文介绍了一种低本钱的基于MSP430F133的DTMF拨号解码器实现方案。MSP430F133是TI的一款16位RISC构造MCU,最短指令周期为150ns,含有8KBFlashROM,256BRAM并内置12位ADC。DTMF信号是将拨号盘上的09、AD/E、#/F共16个字符,用音频范围的8个频率来

3、表示的一种编码方式。8个频率分为高频群和低频群两组,分别作为列频和行频。每个字符的信号来历自列频和行频的两个频率的正弦信号叠加而成。频率组合方式如图1所示。根据CCITTQ.23建议,DTMF信号的技术指标是:传送/接收率为每秒10个号码,或者每个号码100ms。每个号码传送经过中,信号存在时间至少45ms,且不多于55ms,100ms的其余时间是静音。在每个频率点上允许有不超过1.5%的频率误差。任何超过给定频率3.5%的信号,均被以为是无效的,回绝成认接收。另外,在最坏的检测条件下,信噪比不得低于15dB。DTMF拨号局部的电路原理图如图2所示。电路主要由4根I/O线构成的电阻网络和滤波器

4、组成。电阻网络构成4位的DAC,高通滤波器和低通滤波器组成一个带通滤波器用来滤除双音频的谐波信号。在输出端采用600的1:1变压器与线接口,线的输出电平可通过改变Rx来进展调节。软件上使用查表方式模拟产生两个不同频率的正弦波。首先确定一个适宜的采样间隔,对每个频率的正弦波进展采样并规格化成073位数据,制成相应的正弦表。正弦表的制定要保证合成信号的频率误差在1.5%以内,同时使采样点数尽量少。为使波形失真度小,正弦表记录的总信号时间对应原始信号的整数个周期,并且采样出发点选在正波形的峰值上。本设计采样间隔选定为122us,保证频率误差均在1%以内,各个频率信号的采样点数及频率误差见图3所示。采

5、用软件方式进展DTMF解码,首先要将模拟信号转换成数字信号,然后再送入CPU处理。利用MSP430F133内置的12位ADC加上简单的接口就可以实现模数转换,ADC接口电路如图5所示。其中应选1%精度的金属膜电阻。ADC参考电压选内部2.5V:DTMF解码可以通过计算所接收到的信号在8个既定频率点的频谱值来确定是否为有效的DTMF信号及接收到的是哪个号码。另外,需要通过一系列的有效性检验以防止误判。FFT可用来计算N点频率处的频谱值,但不合适于此处应用。由于它计算了很多不需要的值,计算量太大;而且为保证频率分辨率,FFT的点数较大。另外,它不能按逐个样点的方式处理,不利于实时实现。由于只需要知

6、道8个特定点的频谱值,采用一种称为Goertzel算法的DFT算法可以有效地进步计算效率。它相当于一个含两个极点的IIR滤波器,8个频点对应各自相匹配的滤波器,其传递函数为然而Goertzel算法还是有一个缺点,那就是它计算的是频率处的频谱值,而准确的频率值fsubi/sub通常只能对应某个近似的整数k,为了到达要求的分辨率,就需要较大的样点数N。改良的方法是:修改传递函数,不计算角频率处的频谱值,而计算准确角频率处的频谱值。这样分辨率能到达数据自然加窗矩形窗的分辨率。改良的Goertzel算法运算步骤如下:1.对每个采样点递归计算n=0,1,N2.当N个样点收集并计算完成后,计算8个频谱值:

7、在选定采样频率为6Khz根底上,选取N=86个样点即可到达所需的频率分辨率。这对应约15ms信号,可以保证一位号码能接收到两个完好的DTMF信号周期。当8个频谱值计算出来后,还要进展DTMF有效性检验,以断定是否为有效的DTMF信号。有效性检验包括以下几项内容:1高、低频段的最大幅值都必须大于某个门限值,而且二者之和也要大于某个门限值。2高、低频段的最大幅值与各自频段其它三个幅值相比,其差值必须大于某个门限值。3逆向绞度检验即低频段最大幅值不得超过高频段最大幅值8dB,标准绞度检验即高频段最大幅值不得超过低频段最大幅值4dB。4高、低频段最大幅值之和与其它6个幅值之和之比,必须大于某个门限值。

8、假设上述检验通过,断定当前周期DTMF信号有效,根据频率组合可确定是对应哪个号码。但要确认接收到一个有效的号码,还要知足两个条件,一是要有两个以上连续周期的有效且一样的DTMF信号,以保证信号持续时间,二是前面有足够的静音时间,以防止重复识别。解码时每次迭代需要八次乘法,由于F133没有硬件乘法器,要用移位加做乘法,因此优化乘法运算将大大进步计算效率。优化从几个方面考虑:尽量使用存放器寻址方式,充分利用150ns指令;另外每个频点的乘数是固定已知的,因此移位加可以不用逐位循环并判定的方式,而用按位完全展开的方式以省去判定动作;此外,在前端增加简单的增益控制可以保证后续运算不发生溢出,省去溢出处理。经过上述优化,实现了DTMF的实时解码。该DTMF拨号解码器方案本钱低、性能可靠,已经得到了实际应用。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁