资源描述:
《基于matlab 的dtmf 技术计算机模拟》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、基于MATLAB的DTMF技术计算机模拟徐阿勇李方洲罗蔚华(温州师范学院物理与电子信息学院浙江温州325027)摘要:主要阐述了DTMF编码的原理以及通过MATLAB产生DTMF信号的方法,并对Goertzel算法和快速傅里叶变换FFT算法提取的频谱进行了分析比较,设计了两种算法的MATLAB程序。利用Goertzel算法对输入的DTMF信号提取频谱信息,从而对输入信号进行检测、解码。关键词:DTMFGoertzel算法MatlabTheSimulateDesignofDTMFBasedonMATLABXuay
2、ong,LIfangzhou,Luoweihua(Departmentofphysicsandelectroninformationscience,wenzhounormalcollege,wenzhou325027,china)Abstract:ThisarticleismainlyabouttheprincipleofDTMFandtheproducesignalofDTMFunderMATLABenvironment.ThenanalyzeandcomparetheFrequencyinformation
3、distilledbyarithmeticofGoertzelandFFT,ThedesignofGoertzelarithmeticbasedonMATLABisgiven,weeducethatusingarithmeticofGoertzeltodistilltheFrequencyinformation.Finally,wegetcodeofDTMFbasedontheFrequencyinformation.Keywords:;DTMF;Goertzelalgorithm;Matlab1、引言DTMF
4、(DoubleToneMultiFrequency,双音多频)信号是音频电话拨号信号,由美国AT&T贝尔实验室开发。作为实现电话号码快速可靠传输的一种技术,它具有很强的抗干扰能力和较高的传输速度,因此,可广泛用于电话通信系统中。但绝大部分是用作电话的音频拨号。另外,它也可以在数据通信系统中广泛地用来实现各种数据流和语音等信息的远程传输。这种拨号方法取代了脉冲拨号,在DTMF通信系统中共有8个频率,分为4个高频音和4个低频音.用1个高频音和1个低频音的组合来表示一个信号.这样,共能提供16种组合,分别代表16种信
5、号.图一为电话按键与信号频率的对应关系。124758*A3AB609C#D679HZ770HZ852HZ941HZ1290HZ1366HZ1477HZ1633HZ行频率列频率5图一DTMF编码各种DTMF信号的应用都离不开DTMF信号的检测,这是DTMF信号应用的关键。对它的检测,主要通过数字信号处理的算法以及硬件实现。本文主要通过MATLAB的软件编程来实现DTMF信号的仿真检测,从频域分析了快速傅立叶变换(FFT)和GOERTZEL两种方法,并对GOERTZEL算法进行了详细的推导,提出采用Goertzel
6、算法来实现DTMF信号的检测。2、Matlab简介Matlab(MatrixLaboratory,矩阵实验室)是由美国MathWorks公司于1982年推出的一个完整的并可扩展的高性能的数值计算和可视化软件,是一种进行科学和工程计算的交互式程序语言。MATLAB还具有功能丰富和完备的数学函数库及工具箱,大量繁杂的数学运算和分析可通过调用MATLAB函数直接求解,大大提高了编程效率,其程序编译和执行速度远远超过了BASIC、FORTRAN和C等语言。Matlab采用开发式的环境,你可以读到它的原码、了解它的算法,
7、并能改变当前的函数或增添你自己编写的函数。在欧美的大学和研究机构中,Matlab是一种非常流行的计算机语言,许多重要的学术刊物上发表的论文均是用Matlab来分析计算和绘制各种图形。它还是一种有力的教学工具,它在大学的线性代数、自动控制理论、数理统计、数字信号处理、动态系统仿真等课程的教学中,已成为标准的教学工具[1,2]。3、 信号的产生及算法实现DTMF编码,是将电话拨号盘上的数字0~9,字母A~D,及*/E、#/F,共16个字符,用音频范围的8个频率表示出来。具体来说,将8个频率分为高频群和低频群两组,分
8、别作为列频和行频。每一个键的频率模式由来自于列频和行频的两个频率叠加而成。DTMF信号所规定的指标是:传送/接收率为每秒10个数字,或每个数字100ms。每个数字传送过程中,信号必须存在至少45ms,且不得多于55ms,100ms里的其余时间是静音。1)、DTMF信号的产生DTMF信号的产生比较简单,可直接利用两行频、列频的正弦函数的叠加实现,MATLAB程序及DTMF信号(电话拨号“