基于DSP的双音多频DTMF技术 (综合实验)(汇编语言).doc

基于DSP的双音多频DTMF技术 (综合实验)(汇编语言).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于DSP的双音多频DTMF技术 (综合实验)(汇编语言)

双音多频DTMF技术 (综合实验) 一、实验目的 1.了解数字信号处理理念中差分方程、DFT与Z变换的基本原理; 2.观察双音多频DTMF信号的产生及检测; 3.掌握DTMF信令的产生及其检测在实际工程应用中的实现; 二、实验原理 双音多频DTMF(Dual Tone Multi Frequency)信令,逐渐在全世界范围内使用在按键式电话机上,因其提供更高的拨号速率,迅速取代了传统转盘式电话机使用的拨号脉冲信令。近年来DTMF 也应用在交互式控制中,诸如语言菜单、语言邮件、电话银行和ATM 终端等。 DTMF 编解码器在编码时将击键或数字信息转换成双音信号并发送,解码时在收到的DTMF 信号中检测击键或数字信息的存在性。电话机键盘上每一个键通过由图12.1 所示的行频与列频唯一确定。DTMF 的编解码方案无需过多的计算量,可以很容易的在DSP系统里与其他任务并发执行。 图12.1 电话机键盘的频率矩阵 由图12.1 可知,一个DTMF 信号由两个频率的音频信号叠加构成。这两个音频信号的频率来自两组预分配的频率组:行频组或列频组。每一对这样的音频信号唯一表示一个数字或符号。为了产生DTMF 信号,DSP 用软件产生两个正弦波叠加在一起后发送,解码时DSP 则采用改进的Goertzel 算法,从频域搜索两个正弦波的存在。本实验即讨论DTMF 编解码在TI 的定点DSPTMS320VC54xx 上的实现。 1. DTMF 信号的产生 DTMF 编码器基于两个二阶数字正弦波振荡器,一个用于产生行频,一个用于产生列频。向DSP 装入相应的系数和初始条件,就可以只用两个振荡器产生所需的八个音频信号。典型的DTMF 信号频率范围是700Hz~1700Hz,选取8000Hz 作为采样频率,即可满足Nyquist 条件。 图 12.2 为数字振荡器对的框图。由图知每个数字正弦振荡器可以表示为如下二阶系统函数:,其中,,,。 图12.2 DTMF数字振荡器对 因为H(z)的极点为:,表明H(z)含有位于单位圆上的复共轭极点。另外,H(z)的冲击响应函数为:,对其施加一个冲击响应,该系统即可输出一纯净的正弦波。据此可设计一个数字振荡器。上述二阶系统函数的差分方程为: 其初始值y(-1)=y(-2)=0. 可以看到施加到该系统的冲击函数用于激发系统振荡,此后系统可以自行维持稳幅的振荡。为了避免计算输入冲击函数,可以将y(?2)作为系统初值,从而得到等价差分方程如下: 其初值改变为,其中,。式中, 是采 样频率,是输出正弦波的频率, A 是输出正弦波的幅度。可以注意到正弦波的实际幅度由初值y(?2)决定。 CCITT 对DTMF 信号规定的指标是,传送/接收率为每秒10 个数字,即每个数字100ms。代表数字的音频信号必须持续至少45ms,但不超过55ms。100ms 了其他时间为静音,以便区别连续的两个按键信号。 编程流程如图12.3 所示, 图12.3 DTMF编码流程 由CCITT 的规定,数字之间必须有适当长度的静音,因此编码器有两个任务,其一是音频信号任务,产生双音样本,其二是静音任务,产生静音样本。每个任务结束后,启动下一个任务前(音频信号任务或静音任务),都必须复位定时器变量。因为音频信号任务和静音任务都通过定时器变量,决定音频或静音的持续时间。在静音任务结束后,从数字缓存中调出下一个数字,判决该数字信号所对应的行频和列频信号,并根据不同频率确定其初始化参数与 整个程序可以置于 DSP 发射串口中断服务子程序里,由外部送入的8000Hz 串口时钟触发中断,即可实时处理和恒定样本输出。 2. DTMF信号的检测 在输入信号中检测DTMF信号,并将其转换为实际的数字,这一解码过程本质是连续的过程,需要在输入的数据信号流中连续地搜索DTMF 信号频谱的存在。整个检测过程首先要确定检测算法,这是最重要的一步。采用Goertzel 算法,这是一种在输入信号中提取频谱信息的快速有效方法。其次作检测结果的有效性检查。 3. 收集频谱信息 DTMF 解码即是在输入信号中搜索出有效的行频和列频。计算数字信号的频谱可以采用DFT 及其快速算法FFT,而在实现DTMF 解码时,采用Goertzel 算法要比FFT更快。通过FFT 计算可以得到信号所有谱线,可以了解信号整个频域信息,而对于DTMF信号只用关心其8 个行频/列频及其二次谐波信息即可(二次谐波的信息用于将DTMF信号与声音信号区别开)。此时Goertzel 算法则具有更优的运算效率。Goertzel 算法实质是一个两极点的IIR 滤波器,简要证明如下。 一个 N 点数据的DFT 定义如下: 长度为N的序列x(n)的N点DFT用X(k) (1)式 定义序列:

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档