基于MATLAB的DTMF技术计算机模拟.doc_第1页
基于MATLAB的DTMF技术计算机模拟.doc_第2页
基于MATLAB的DTMF技术计算机模拟.doc_第3页
基于MATLAB的DTMF技术计算机模拟.doc_第4页
基于MATLAB的DTMF技术计算机模拟.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于MATLAB 的DTMF 技术计算机模拟 徐阿勇 李方洲 罗蔚华 (温州师范学院物理与电子信息学院 浙江 温州 325027)摘要: 主要阐述了DTMF编码的原理以及通过MATLAB产生DTMF信号的方法,并对Goertzel算法和快速傅里叶变换FFT算法提取的频谱进行了分析比较,设计了两种算法的MATLAB程序。利用Goertzel算法对输入的DTMF信号提取频谱信息, 从而对输入信号进行检测、解码。关键词: DTMF Goertzel算法 Matlab The Simulate Design of DTMF Based on MATLABXu ayong ,LI fangzhou , Luo weihua(Department of physics and electron information science, wenzhou normal college , wenzhou 325027, china)Abstract: This article is mainly about the principle of DTMF and the produce signal of DTMF under MATLAB environment. Then analyze and compare the Frequency information distilled byarithmetic of Goertzel and FFT ,The design of Goertzel arithmetic based on MATLAB is given, we educe that using arithmetic of Goertzel to distill the Frequency information. Finally, we get code of DTMF based on the Frequency information. Key words : ;DTMF ;Goertzel algorithm; Matlab1、引言DTMF(Double Tone Multi Frequency,双音多频)信号是音频电话拨号信号,由美国AT&T贝尔实验室开发。作为实现电话号码快速可靠传输的一种技术,它具有很强的抗干扰能力和较高的传输速度,因此,可广泛用于电话通信系统中。但绝大部分是用作电话的音频拨号。另外,它也可以在数据通信系统中广泛地用来实现各种数据流和语音等信息的远程传输。这种拨号方法取代了脉冲拨号,在DTMF 通信系统中共有8 个频率,分为4 个高频音和4 个低频音. 用1 个高频音和1 个低频音的组合来表示一个信号. 这样,共能提供16 种组合,分别代表16 种信号. 图一为电话按键与信号频率的对应关系。124758*A3AB609C#D679HZ770HZ852HZ941HZ1290HZ1366HZ1477HZ1633HZ行 频 率列 频 率 图一 DTMF编码各种DTMF信号的应用都离不开DTMF信号的检测,这是DTMF信号应用的关键。对它的检测,主要通过数字信号处理的算法以及硬件实现。本文主要通过MATLAB的软件编程来实现DTMF信号的仿真检测,从频域分析了快速傅立叶变换(FFT)和GOERTZEL两种方法,并对GOERTZEL算法进行了详细的推导,提出采用Goertzel 算法来实现DTMF 信号的检测。2、Matlab简介Matlab(MatrixLaboratory,矩阵实验室)是由美国MathWorks公司于1982年推出的一个完整的并可扩展的高性能的数值计算和可视化软件,是一种进行科学和工程计算的交互式程序语言。MATLAB还具有功能丰富和完备的数学函数库及工具箱,大量繁杂的数学运算和分析可通过调用MATLAB函数直接求解,大大提高了编程效率,其程序编译和执行速度远远超过了BASIC、FORTRAN和C等语言。Matlab采用开发式的环境,你可以读到它的原码、了解它的算法,并能改变当前的函数或增添你自己编写的函数。在欧美的大学和研究机构中,Matlab是一种非常流行的计算机语言,许多重要的学术刊物上发表的论文均是用Matlab来分析计算和绘制各种图形。它还是一种有力的教学工具,它在大学的线性代数、自动控制理论、数理统计、数字信号处理、动态系统仿真等课程的教学中,已成为标准的教学工具1,2。3、信号的产生及算法实现DTMF编码, 是将电话拨号盘上的数字0 9, 字母AD,及*/E、#/F, 共16 个字符, 用音频范围的8 个频率表示出来。具体来说, 将8个频率分为高频群和低频群两组, 分别作为列频和行频。每一个键的频率模式由来自于列频和行频的两个频率叠加而成。DTMF 信号所规定的指标是: 传送/接收率为每秒10 个数字, 或每个数字100m s。每个数字传送过程中, 信号必须存在至少45 ms, 且不得多于55ms, 100ms 里的其余时间是静音。1)、DTMF信号的产生DTMF信号的产生比较简单,可直接利用两行频、列频的正弦函数的叠加实现,MATLAB程序及DTMF信号(电话拨号“7”为例)波形如下: 图二 电话拨号“7”的DTMF编码信号波形2)、DTMF信号的检测检测中采用了频域的方法,N 点数据的DFT公式为:它的好处是可以得到DFT的所有N 点的值。也就是通过DFT可以计算出信号中所包含的频率成分。具体实现时,由于它的计算量非常大,因而主要使用它的快速算法快速傅立叶变换(FFT)3,4。对上述产生的DTMF信号,经过200点FFT运算得到DTMF信号的频谱X(K)(如图三所示)。根据结果中两条谱线的位置K值可知其频率分别为820HZ和1290HZ,即对应了电话号码盘的数字“7”。从图中可以看出,FFT运算中出现了两个问题:1、由于数据的截断,带来了频谱泄漏误差;2、通过FFT运算,计算出了200点的频谱,而DTMF信号只需8个频率点,计算效率大大降低。为解决这个问题,文中采用了GOERTZEL算法5。 图三 “7”的DTMF编码FFT频谱 GOERTZEL算法本身也是对DFT的快速运算,但可以有选择地计算个别点处的DFT,而对不需要的点不进行计算。GOERTZEL算法原理如下:GOERTZEL算法实质是一个两极点的IIR滤波器,其算法原理框图如图四所示:Yk(n)Vk (n)X(n)图四 GOERTZEL算法原理框图由图可知:具体推导如下: 令n=m=(n=N) 所以对序列X(n)的DFT等价于X(n)与系统传递函数的第N个卷积值.对进行Z变换可得:=因此, H(z)可看作是级联型网络:因此 其中V(-1)=V(-2)=0. .因而,系统输出的功率谱为: 其中n = N 图五 “7”的DTMF编码GOERTZEL功率谱根据以上算法,使用MATLAB语言具体实现,程序如下:k=f/fn;vk(1)=0;vk(2)=0;for i1=1:8 w=2*cos(2*pi*k(i1)/N); for i2=3:202 vk(i2)=w.*vk(i2-1)-vk(i2-2)+x(i2); end; Xk(i1)=vk(202).2+vk(201).2-w*vk(202)*vk(201); end;程序运行结果如图五所示。从图中可以看出,利用GOERTZEL算法,只需计算出八个点的功率谱就可以进行拨号的判断,减少了运算量,提高了计算效率,使判断可以实时进行。4、结束语基于以上的算法, 可以在PC机中通过MATLAB语言实现DTMF的编解码。试验结果表明基于MATLAB 的DTMF 编解码具有速度快、精度高、稳定性好以及便于灵活应用等特点。而利用MATLAB语言,可以较好地、快速地进行算法的仿真,对系统的快速开发起到了推动作用。当然,DTMF信号还要进行有效性检测:(1)、DTMF信号的强度是否足够大,行列频率分量平方幅度和是否高于规定的门限值。(2)、如果DTMF信号存在,比较行列频率的最大频率分量差值,因为电话线具有低通特性,列频比行频衰减得厉害,因此需要设置一个门限。(3)、分别在行列频率组比较频谱分量,最强的谱线至少要比其他高频信号高一个门限值。(4)、二次谐波分量是否小于某个值。(5)、判断DTMF信号是否包含稳定的数字信息,只有数字信息被连续检测到两次,才认为数字信息是稳定的。(6)、最后要检测数字信息之后是否有停顿状态,只有这样才将当前的数字作为有效数字。参考文献:1 陈怀琛.MATLAB及其在理工课程中的应用指南.西安电子科技大学出版社,20002 王立宁.MATLAB与通信仿真.北京:人民邮电出版社,20003 胡广书.数字信号处理-理论算法与

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论