数字信号处理课程设计——双音频电话拨号音的检测

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

*******************实践教学*******************兰州理工大学计算机与通信学院2015年春季学期《信号处理》课程设计报告题目:双音频电话拨号音的检测班级:姓名:设计质量(30分):学号:说明书质量(10分):同组成员:指导教师:兰州理工大学课程设计报告1摘要电话拨号有两种,脉冲和音频,所谓音频也称双音多频(DualToneMultiFrequency,DTMF)信号的拨号方式,双音多频既是电话拨号时每按一个键,有两个音频频率叠加成一个双音频信号,十二个按键由七个音频频率区分。双音多频信号(DTMF),电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。在使用双音多频信号之前,电话系统中使用一连串的断续脉冲来传送被叫号码,称为脉冲拨号。脉冲拨号需要电信局中的操作员手工完成长途接续。双音多频信号是贝尔实验室发明的,其目的是为了自动完成长途呼叫。双音多频的拨号键盘是4×4的矩阵,每一行代表一个低频,每一列代表一个高频。每按一个键就发送一个高频和低频的正弦信号组合,比如'1'相当于697和1209赫兹(Hz)。交换机可以解码这些频率组合并确定所对应的按键。DTMF作为实现电话号码快速可靠传输的一种技术,它具有很强的抗干扰能力和较高的传输速度,因此,可广泛用于电话通信系统中。但绝大部分是用作电话的音频拨号,另外,它也可以在数据通信系统中广泛地用来实现各种数据流和语音等信息的远程传输,研究其在MATLAB下的仿真实现有助于其具体系统的优化设计。本文给出一种实现方案,主要阐述了DTMF的原理及如何在Matlab上产生DTMF信号,并对用Goertzel算法提取的频谱进行分析,然后,得到用Goertzel算法在白噪声的环境下对输入的DTMF信号提取频谱信息,最后,根据提取的频谱信息对输入信号进行检测解码。关键词:双音多频DTMF;Goertzel算法;Matlab兰州理工大学课程设计报告2目录摘要.................................................................................................................................1目录.................................................................................................................................2一、基本原理.......................................................................................................................31.1自动电话的制式......................................................................................................31.2DTMF技术..............................................................................................................31.3Goertzel算法............................................................................................................41.4Matlab简介..............................................................................................................41.5DTMF信号的检测..................................................................................................5二、设计实现步骤...............................................................................................................7三、运行过程及结果分析.................................................................................................103.1运行过程...............................................................................................................103.2结果分析...............................................................................................................11结论...............................................................................................................................12参考文献...............................................................................................................................13致谢...............................................................................................................................14兰州理工大学课程设计报告3一、基本原理1.1自动电话的制式从自动电话的制式来分,可分为“脉冲制式”及“双音频制式”两种。所谓“脉冲制式”,就是拨号的时候电话机发出的是一串一串的“无电流脉冲”。比如拨号码“1”时,发出去的是一个“无电流脉冲”,也就是一个“断电脉冲”,拨号码“2”时,发出去的是两个连续的“无电流脉冲”,拨号码“0”时,发出去的是十个连续的“无电流脉冲”。脉冲电话容易出现拨错号的现象,当线路接触不良,刮风时线路接头时通断时,就会出现错号。另外脉冲信号经过长途线路传送以后,由于线路电感和电容的影响,脉冲波形会发生严重畸变,本来上升沿和下降沿都是很陡的波形,传到对方以后很可能完全变样引起误判,因此这种电话也逐渐被淘汰。所谓“双音频制式”,就是拨电话的时候,拨每一个号码,发出去的都是由两个不同频率的音频信号组合起来的双音频信号。如拨“0”的时候,发出去的两个音频信号分别是941HZ和1336HZ,拨“9”的时候发出去的两个音频信号分别是952HZ和1477HZ等等。我们用电话进行拨号时都能从听筒中听到一种按键的声音,这种声音其实就是由两个不同的频率组合成的复合音。每个号码都是由两个音频信号组合起来的,因此叫“双音频”。1.2DTMF技术由以上分析可知,采用双音多频信号,可以提高电路的抗干扰能力,减少交换机的接续差错,从而提高交换机的接通率。同时我们也可以知道DTMF技术就是用两个特定的单音频组合信号来代表数字信号以实现其功能的一种编码技术。两个单音频的频率不同,代表的数字或实现的功能也不同。这种电话机中通常有16个按键,其中有10个数字键0~9和2个功能键*、#、备用键部分。由于按照组合原理,一般应有8种不同的单音频信号。因此可采用的频率也有8种,故称之为多频,又因它采用从8种频率中任意抽出2种进行组合来进行编码,所以又称之为“8中取2”的编码技术。根据CCITT的建议,国际上采用的多种频率为687Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和1633Hz等8种。用这8种频率可形成16种不同的组合,从而代表16种不同的数字或功能键,具体组合如表1所示。兰州理工大学课程设计报告4表1:DTMF频率表DTMF信号由电话键盘使用相同幅度的两个不同的高频和低频来产生。拨号的时候,需要将每一个号码都转换成一对双音频信号,这种转换叫做编码;解(译)码,就是将接收到的双音频信号重新还原成数据信号。1.3Goertzel算法Goertzel算法执行离散傅立叶变换(DiscreteFourierTransform),这个算法较为精简,而且每个频率只需要一个实数系数就可以决定值的振幅;但是,正确计算数值振幅和相位时需要复数系数,故需要较复杂的程序,借助只计算音调频率的振幅而忽略相位的计算,我们可以简化DTMF信号的译码工作。此外,Goertzel算法只要获得任何采样就可以立刻处理,不必获得全部采样之后才处理,可明显地提高速度。Goertzel算法是DTMF信号检测的核心,它利用二极点的IIR滤波器计算离散傅立叶变换值,快速有效的提取输入信号的频谱信息。1.4Matlab简介MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。列行1209Hz1336Hz1477Hz633Hz697Hz123备用770Hz456852Hz789942Hz*0#兰州理工大学课程设计报告5MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。1.5DTMF信号的检测DTMF解码即是在输入信号中搜索出有效的行频和列频。计算数字信号的频谱可以采用DFT及其快速算法FFT,而在实现DTMF解码时,采用Goertzel算法要比FFT更快。通过FFT可以计算得到信号所有谱线,了解信号整个频域信息,而对于DTMF信号只用关心其8个行频/列频及其二次谐波信息即可(二次谐波的信息用于将DTMF信号与声音信号区别开)。此时Goertzel算法能更加快速的在输入信号中提取频谱信息。DTMF信号的解码是基于Goertzel算法。我们不需要计算全部频域信息,只需要计算需要的频域的信息,而FFT需要计算全部的频域信息。理论上证明当计算的点数小于log2N时,Goertzel算法比FFT更有效。在输入信号中检测DTM

1 / 15
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功