- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP课程设计DTMF信号产生及检测
DSP课程设计
实 验 报 告
DTMF信号的产生及检测
院(系): 电子信息工程学院通信工程专业
设计人员:宋佳阳 学号目录
一、 设计任务书 - 3 -
二、 设计内容 - 3 -
三、 设计方案、算法原理说明 - 4 -
1. DTMF信号的产生 - 4 -
2. DTMF信号的检测 - 5 -
四、 程序设计、调试与结果分析 - 7 -
1.程序设计部分: - 7 -
2.调试与结果分析部分: - 28 -
五、 设计(安装)与调试的体会 - 33 -
六、 参考文献 - 33 -
设计任务书
设计要求及目标
基本部分:
(1)使用C语言编写DTMF信号的发生程序,要求循环产生0~9、*、#、A、B、C、D对应的DTMF信号,并且符合CCITT对DTMF信号规定的指标。
(2)使用C语言编写DTMF信号的检测程序,检测到的DTMF编码在屏幕上显示。
发挥部分:
利用DTMF信号完成数据通讯的功能,并试改进DTMF信号的规定指标,使每秒内传送的DTMF编码越多越好。
设计内容
双音多频DTMF(Dual Tone Multi Frequency)是在按键式电话机上得到广泛应用的音频拨号信令,一个DTMF信号由两个频率的音频信号叠加构成。这两个音频信号的频率分别来自两组预定义的频率组:行频组和列频组。每组分别包括4个频率,分别抽出一个频率进行组合就可以组成16种DTMF编码,分别记作0~9、*、#、A、B、C、D。如图2-1所示。
图2-1 DTMF信令的编码
要用DSP产生DTMF信号,只要产生两个正弦波叠加在一起即可;DTMF检测时采用改进的Goertzel算法,从频域有哪些信誉好的足球投注网站两个正弦波的存在。
设计方案、算法原理说明
DTMF信号的产生
DTMF发生器基于两个二阶数字正弦振荡器,一个用于产生行频,一个用于产生列频。DSP只要装载相应的系数和初始条件,就可以只用两个振荡器产生所需的八种音频信号。典型的DTMF信号频率范围是700~1700Hz,选取8000Hz作为采样频率,即可满足奈奎斯特定理。
正弦波是任何波形构成的基本元素,产生正弦波的方法一般有:查表法和计算法(泰勒级数展开法或数字正弦振荡器法)。
这里我们使用计算法产生正弦波,有以下两种方案:
方案一:使用数字正弦振荡器计算法产生正弦波
图3-1 DTMF数字振荡器对
由图3-1所示数字振荡器对的框图,可以得到DTMF数字振荡器对的二阶系统函数的差分方程为:
其中 , , , 为采样频率, 为输出正弦波的频率, 为输出正弦波的幅度。该式初值为 , 。
其中,上面一个数字振荡器用于产生行频,下面一个数字振荡器用于产生列频,将行频信号和列频信号通过加法器进行叠加即可产生DTMF信号。
方案二:使用sin函数产生正弦波
直接利用sin函数生成离散的正弦值,其生成DTMF信号的方程为:
y[t]=sin(t*2*pi*f1/fs)+sin(t*2*pi*f2/fs)
其中t为采样序数,由0开始递增;f1,f2为生成DTMF信号的两个正弦波的频率;fs为采样频率,由前面的分析可知,采样频率应该设定为8000Hz。
将行频信号的采样值与列频信号的采样值进行叠加,即可得到序数为t时的采样值,即为y[t]。
将两种方案进行比较后,我们认为,使用正弦振荡器计算法这种方法计算时所需的计算量小,但是由于使用了迭代的方法产生样点值,所以当前时刻的输出序列需要反馈到输入端。在程序中实现,就需要不断对y(n-1)和y(n-2)的值进行更新。同时,当前时刻的输出序列也会影响下一时刻和下两个时刻的输出。因此,如果用这种方法来产生长时间连续的正弦信号和余弦信号,则累积误差较大。
直接使用sin函数产生正弦波的方法,其计算时所需的计算量与方案一相当,并且也能达到误差要求。同时,由于使用方案二的方法产生正弦波,其当前时刻的输出序列只与当前时刻行频和列频的输入有关,所以不会产生累积误差,适合用来产生长时间连续的DTMF信号。
综上所述,我们使用方案二来产生DTMF信号。
根据CCITT的规定,数字之间必须有适当长度的静音,因此编码器有两个任务,一是产生双音频信号的任务,二是静音任务。由于采样频率为8000Hz,所以DSP有足够的计算时间,可以使用查询模式通过D/A转换器输出DTMF信号。CCITT规定每秒传送/接收10个数字,即每个数字持续100ms。由于1秒采样8000个点,则每个数字采样800个点。由于代表45ms,但不超55ms。100ms
DTMF信号的检测
DTMF检测是对进入解码端的信号进行检测,并把双音频信号转换成对应的数字信息。由于数据流是连续的,为了保证DTMF检测的实时性,因此要求检测过程必须是实时连续
文档评论(0)