- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)式
定义序列:
您可能关注的文档
最近下载
- 资料员工作内容.docx VIP
- P气瓶充装证考试题库及答案.doc VIP
- 上海市杨浦区2023-2024学年七年级下学期期中英语试卷 .docx VIP
- 2025年高考真题解析课件:2025年全国新高考二卷英语读后续写(课件).pptx VIP
- 贵阳市中心城区控制性详细规划(总则)——乌当组团.pdf VIP
- 图书出版合同(合同范本)7篇.docx VIP
- (正式版)D-L∕T 1770-2017 抽水蓄能电站输水系统充排水技术规程.docx VIP
- 《结构全寿命维护》课程教学大纲(本科).docx VIP
- SI、PI协同的EMI分析—打印版.pdf
- Unit2 Travelling Around Discovering Useful Structures 课件-2024-2025学年高中英语人教版(2019)必修第一册.pptx VIP
原创力文档


文档评论(0)