双音频DTMF信号的产生与检测2综述Word文档下载推荐.docx
- 文档编号:21386901
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:27
- 大小:240.16KB
双音频DTMF信号的产生与检测2综述Word文档下载推荐.docx
《双音频DTMF信号的产生与检测2综述Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《双音频DTMF信号的产生与检测2综述Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。
分析其时域波形和频谱;
2、生成各个按键信号;
3、利用fft分析0~9十个数字拨号信息的频谱,观察频谱图中的峰值点的幅值以及它们出现的位置。
根据谱峰的幅值和位置,识别各DTMF信号所对应对应的数字;
4、编写Goertzel算法的程序,识别各DTMF信号所对应对应的数字;
进度安排
12月12日
选题
12月13日~12月29日
接受指导老师的指导
12月30日~1月17日
拟定论文大纲
1月18日~2月26日
搜集、查阅、整理相关资料
2月27日~3月27日
初稿形成
3月28日~4月8日
初稿审定
4月9日~4月17日
第一次修改
4月18日~4月22日
第一次审定
4月23日~5月3日
第二次修改
5月4日~5月9日
定稿
5月10日~5月18日
论文评阅小组评审论文(设计)
5月19日
毕业论文(设计)答辩
学生签字:
指导教师签字:
年月日
摘 要
双音多频DTMF(DualToneMulti-Frequency)信令在全世界范围内得到广泛应用,DTMF信令的产生与检测集成到含有数字信号处理器(DSP)的系统中,是一项较有价值的工程应用。
但绝大部分是用作电话的音频拨号,另外,它也可以在数据通信系统中广泛地用来实现各种数据流和语音等信息的远程传输,研究其在MATLAB下的仿真实现有助于其具体系统的优化设计。
本文给出一种实现方案,主要阐述了DTMF的原理及如何在Matlab上产生DTMF信号,并对用Goertzel算法提取的频谱进行分析,然后,得到用Goertzel算法在白噪声的环境下对输入的DTMF信号提取频谱信息,最后,根据提取的频谱信息对输入信号进行检测解码。
关键词:
双音多频DTMF;
Goertzel算法;
Matlab
[关键词与摘要内容隔行书写,词条用小四号宋体字,词条间用分号(;
)隔开,3-5个关键词]
DualToneMulti-frequency(DTMF)SignalGenerationandDetection
Abstract
DTMF(DualToneMulti-Frequency)signalinginthewidelyusedworldwide,signalingtheDTMFgenerationanddetectionintegratedwithdigitalsignalprocessor(DSP)system,isamorevalueengineering.DTMFtelephonenumberastoachieveafastandreliabletransmissiontechnology,ithasastronganti-interferenceabilityandhightransmissionspeed,itcanbewidelyusedfortelephonecommunicationsystem.Butthevastmajorityoftelephonetonedialingisused.Inaddition,itcanalsobeinthedatacommunicationsystemwidelyusedtoachieveavarietyofdatastreamsandremotetransmissionofvoiceandotherinformation.UnderstudyintheMATLABSimulationhelpsoptimizethedesignoftheirspecificsystems.Thispaperpresentsarealizationoftheprogram,mainlyontheprincipleofDTMFandhowtogenerateDTMFsignalsinMatlab,andextractedwithGoertzelalgorithmtoanalyzethespectrum,andthen,getwiththeGoertzelalgorithminthecontextofwhitenoiseontheinputoftheDTMFspectruminformationsignalextraction,andfinally,accordingtoinformationextractedfromtheinputsignalspectrumtodetectdecoding.
Keywords:
Dualtonemulti-frequency;
Goertzelalgorithm;
小提示:
当需要从网站或者文档复制到本文档时,先将文字复制到文本文档,然后再从文本文档复制到本文档的相应位置,这样就能够保证格式是正确的!
此行不会被打印
千万不要删除行尾的分节符,此行不会被打印。
(在word菜单-工具-选项-视图标签中,格式标记部分请全部打对号,这样就可以看到隐藏的分节符和空格等信息了)
目 录
第1章绪 论
1.1引言
电话中的双音多频信号(DTMF)有两种用途:
一是用于双音多频信号的拨号,去控制交换机接通被叫的用户话机;
二是利用双音多频信号遥控电话机各种动作,如播放留言、语音信箱等,并可以通过附加一些电路来是实现遥控家电设备的开启关闭等智能功能。
前者解决双音多频信号的发送和编码,后者是双音多频信号的接收和解码。
这些东西都离不开DTMF信号的正确检测。
目前,大多数的DTMF信号的检测均采用专用的发送、接收芯片,这种解码的原理都依赖于计算输入信号的过零率。
但这种方法有很大的局限性,无法检测多路DTMF信号,当混有语音和噪声时,专用芯片检测往往出现误差,如果音频信号频率改变应用于别的系统时,专用的芯片就发挥不了作用。
所以,用硬件实现DTMF信号的检测并不是一种很好的选择[1]。
信息化已经成为社会发展的大趋势,信息化是以数字化为背景的,而DSP技术则是数字化最重要的基本技术之一。
在过去的短短的二十来年里,DSP处理器的性能得到很大改善,软件和开发工具也得到相应的发展,价格却大幅度地下降,从而得到越来越广泛的应用。
通信领域(移动通信的交换设备、基站和手机,网络的路由和交换设备,智能天线,软件无线电,IP电话等),雷达和声纳系统,巡航导弹、灵巧炸弹及各种武器系统,自动测试系统,医疗诊断设备(CT、核磁共振、B超等),计算机及其外设,消费类电子设备(VCD、DVD、HDTV、机顶盒、MP3、家庭影院系统、数字照相机和摄象机等),机器人及各种自动控制系统,等等,应用范围不胜枚举[2]。
1.2课题意义
DTMF(DualToneMultiFrequency)中文译为双音多频信号,最初由美国AT&
T贝尔公司实验室研制,用于音频电话网络中的拨号信号。
一方面这种信号有非在常高的拨号速度,另一方面它便于自动检测识别及电话业务的扩展,所以很快代替了原有的脉冲计数方式的拨号形式在这里不得不提一下电话交换机的发展历史。
自1876年美国贝尔发明电话以来,电话交换技术发展主要经历了三个阶段:
人工交换、机电交换、电子交换。
早在1878年就出现了人工供电制交换机,它借助话务员进行话务接续。
15年后步进制的交换机问世,这种交换机属于“直接控制”方式,用户通过话机拨号脉冲直接控制步进接续器做升降和旋转动作。
从而自动完成用户间的接续。
这种交换机虽然实现了自动接续,但存在着速度慢、效率低、杂音大与机械磨损严重等特点。
直到1938年发明了纵横制交换机由直接控制过渡到间接控制方式,随后又出现了电子交换机及程控交换机等。
用户的拨号脉冲不再直接控制接线器动作,而先由记发器接收、存储,然后通过标志器驱动接线器,以完成用户间接续[3]。
DTMF双音多频拨号和解码在通信系统及其它方面有着广泛的应用。
DTMF信号是便于标志器记取的是标识信号,所以可以不采用不稳定的脉冲计数方式,逐步发展、到数字号码标识,所以快速,稳定灵活的DTMF音频拨号方式取代了脉冲拨号方式。
电子交换机程控交换机。
话网中常用的信令,无论是家用电话、移动电话还是程控交换机,多采用DTMF信号发送接收号码[4]。
语音芯片的应用前景也十分广阔,目前语音芯片已应用于微型固体录音机、通讯、电话、车船、飞机黑匣子、有声电子信函、语音信箱、高级玩具等。
此外,还可以利用语音芯片开发出“会说话”的电压表、电流表等语音型智能仪器仪表以及“会说话的电子称”、“出租车自动语音报价器”、“多路语音报警系统”等新颖电子电器产品。
该项设计可促进我们学习开发电子、通信产品的技术,培养和锻炼我们电子电路设计调试、文献资料检索、电路图绘制等多方面的能力和素质,同时也帮助我们熟练掌握常用双音多频信号编解码器和语音芯片的工作原理和使用方法,具有很强的实践指导意义和实用价值[5]。
第2章基本原理
2.1自动电话的制式
要弄清双音频的来龙去脉,必须从电话的制式谈起。
最早的电话机是带有一个“手摇把”的,后来慢慢的开始出现了“磁石电话”、“供电电话”、一直发展到现在人们广泛使用的“自动电话”。
由于“磁石电话”、“供电电话”早已淘汰,因此我们重点要谈的是自动电话的制式。
从自动电话的制式来分,可分为“脉冲制式”及“双音频制式”两种。
所谓“脉冲制式”,就是拨号的时候电话机发出的是一串一串的“无电流脉冲”。
比如拨号码“1”时,发出去的是一个“无电流脉冲”,也就是一个“断电脉冲”,拨号码“2”时,发出去的是两个连续的“无电流脉冲”,拨号码“0”时,发出去的是十个连续的“无电流脉冲”。
如图2-1所示是脉冲电话机拨武汉区号721时线路上出现的脉冲图谱[6]。
图2-1脉冲电话机拨号的脉冲图谱
从图2-1中可以看出,待机状态下线路上是没有电流的,摘机后线路上才有电流,拨号时,拨的号码是几,线路上就出现几个连续的、没有电流的脉冲间隙,比如拨2的时候,就好像电话线被快速的断开了两次一样,因此老式的电话机还能用拍打叉簧的办法拨号。
老式带有“拨号盘”的电话机就是脉冲电话。
脉冲电话容易出现拨错号的现象,当线路接触不良,刮风时线路接头时通断时,就会出现错号。
另外脉冲信号经过长途线路传送以后,由于线路电感和电容的影响,脉冲波形会发生严重畸变,本来上升沿和下降沿都是很陡的波形,传到对方以后很可能完全变样引起误判,因此这种电话也逐渐被淘汰[7]。
所谓“双音频制式”,就是拨电话的时候,拨每一个号码,发出去的都是由两个不同频率的音频信号组合起来的双音频信号。
如拨“0”的时候,发出去的两个音频信号分别是941HZ和1336HZ,拨“9”的时候发出去的两个音频信号分别是952HZ和1477HZ等等。
我们用电话进行拨号时都能从听筒中听到一种按键的声音,这种声音其实就是由两个不同的频率组合成的复合音。
每个号码都是由两个音频信号组合起来的,因此叫“双音频”。
图2-2列出了每个号码与双音频频率的对应关系[8]。
我们可以将脉冲拨号与双音多频拨号的性能进行一个比较:
(1)脉冲信号在线路传输中容易产生波形畸变,可能产生错号。
(2)脉冲信号的幅度较容易产生线间干扰。
(3)脉冲拨号速度慢。
例如:
拨打电话号码590850,它所用的时间为:
(5+9+10+8+5+10)×
100+800×
5=8700ms=8.7s
图2-2号码与频率对应关系
如果电话号码越长,所用的时间越长,占用交换机的时间也长,这就使程控交换机接续速度快的优点得不到发挥,从而影响了交换机的接通率。
双音多频电话机是两个单音频来代表一个数字,因此,采用音频信号传送的速度快,它发送的每位号码所用的时间都是相同的,它的发号速度主要取决于打电话者的拨号速度。
现在还以拨打电话号码590850为例,在双音多频方式下,单频持续时间为120ms,位间隔为108ms,则拨打上述电话号码所需的时间为120×
6+108×
5=1260ms=1.26s。
可见,脉冲拨号所用的时间是双音多频拨号的8.7s/1.26s=6.4倍[9]。
2.2DTMF技术
由以上分析可知,采用双音多频信号,可以提高电路的抗干扰能力,减少交换机的接续差错,从而提高交换机的接通率。
同时我们也可以知道DTMF技术就是用两个特定的单音频组合信号来代表数字信号以实现其功能的一种编码技术。
两个单音频的频率不同,代表的数字或实现的功能也不同。
这种电话机中通常有16个按键,其中有10个数字键0~9和6个功能键*、#、A、B、C、D。
由于按照组合原理,一般应有8种不同的单音频信号。
因此可采用的频率也有8种,故称之为多频,又因它采用从8种频率中任意抽出2种进行组合来进行编码,所以又称之为“8中取2”的编码技术[10]。
根据CCITT的建议,国际上采用的多种频率为687Hz、770Hz、852Hz、941Hz、1209Hz、1336Hz、1477Hz和1633Hz等8种。
用这8种频率可形成16种不同的组合,从而代表16种不同的数字或功能键,具体组合如表2-1所示。
表2-1键值频率组合表
1209
1336
1477
1633
697
1
2
3
A
770
4
5
6
B
852
7
8
C
941
*
#
D
DTMF信号由电话键盘使用相同幅度的两个不同的高频和低频来产生。
拨号的时候,需要将每一个号码都转换成一对双音频信号,这种转换叫做编码;
解(译)码,就是将接收到的双音频信号重新还原成数据信号[11]。
2.3Goertzel算法
Goertzel算法执行离散傅立叶变换(DiscreteFourierTransform),这个算法较为精简,而且每个频率只需要一个实数系数就可以决定值的振幅;
但是,正确计算数值振幅和相位时需要复数系数,故需要较复杂的程序,借助只计算音调频率的振幅而忽略相位的计算,我们可以简化DTMF信号的译码工作。
此外,Goertzel算法只要获得任何采样就可以立刻处理,不必获得全部采样之后才处理,可明显地提高速度。
Goertzel算法是DTMF信号检测的核心,它利用二极点的IIR滤波器计算离散傅立叶变换值,快速有效的提取输入信号的频谱信息。
Goertzel算法利用了相位因子{WNk}的周期性,允许我们将DFT的计算表示为线性滤波运算,因WN-kN=1,我们可以利用该因子乘上DFT,于是,可得
(2-1)
注意:
式(2-1)为卷积形式,的确,如果我们定义序列yk(n)为
(2-2)
很清楚,yk(n)是长度为N的有限时宽输入序列x(n)与滤波器的卷积,并且滤波器的冲激响应为:
(2-3)
当n=N时,该滤波器的输出为DFT在频率Wk=2πk/N处的值,亦即
(2-4)
如同将(2-3)与式(2-4)相比较就可验证一样,冲激响应为hk(n)的滤波器,他的系数函数可表示为
(2-5)
该滤波器在单位圆上的频率Wk=2πk/N处有一个极点。
因此,通过将输入的数据组输入到N个单极点并行滤波器(谐振器)组就可计算整个N点DFT,其中,每一滤波器在响应的DFT频率上有一个极点。
我们可以利用对应于式(2-5)给定的滤波器的差分方程来递推计算yk(n),而不是按式(2-1)通过卷积来实现DFT的计算,因此我们有
(2-6)
初始条件:
yk(-1)=0
所期望的输出是X(k)=yk(N),其中k=0,1,…,N-1,为了完成这一计算,我们可以一次计算并储存相位因子WN-k[12]。
通过将具有复共轭极点的谐波器结合成对,就可以避开式(2-6)所固有的复数乘法和加法,这就产生了具有两个极点的的滤波器,其系统函数为
(2-7)
该系统的直接型Ⅱ实现如图2-3所示:
图2-3用于计算DFT的两极点谐振器的直接型Ⅱ实现
该系统可以用差分方程描述为
(2-8)
(2-9)
初始条件为
。
对n=0,1,…,N,式(2-8)中的递推关系可迭代进行。
但式(2-9)中的程序仅当n=N时计算一次,每迭代需要一次实数乘法和两次加法。
因此,对实输入序列x(n),该算法通过N+1次实数乘法不仅得到X(k),而且由于对称性也得到X(N-k)的值。
当值M相对较小时,比如
,Goertzel算法特别有吸引力,在其他情况下,FFT算法更为有效[13]。
2.4Matlab简介
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平[14]。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域[12]。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用[15]。
2.5本章小结
音频分析利用时域分析、频域分析、失真分析等方法为手段,通过测量各类音频参数来评价音频系统的性能。
音频分析是一种综合性的分析,涉及到众多的测试仪器,对于普通用户而言,需要根据其感兴趣的参数合理的选择测试仪器,很难建立完整的音频测试分析系统。
除第一章绪论外,其他每一章都应该有一个本章小结
第3章DTMF信号产生与检测
3.1DTMF信号的产生
图3-1号码与频率关系
根据CCITT建议,国际上采用697Hz、770Hz、852z、941Hz、1209Hz、1336Hz、1477Hz、1633Hz8个频率,并将其分成两个群,即低频群和高频群。
从低频群和高频群中任意抽出一个频率进行叠加组合,具有16种组合形式,让其代表数字和功率,如下图电话机键盘的频率矩阵所列[16]。
当按下某个键时,所得到的按键信号是由相应两个频率的正弦信号相加而成。
设
为DTMF信号,产生方式为:
(3-1)
式中
=
/
和
=2∏
分别表示高频和低频频率,A、B分别为低群和高频群样值的量化基线。
电话信号的典型抽样频率为
=8kHZ。
CCITT对DTMF信号规定的指标是,传送/接收率为每秒10个数字,即每个数字100ms。
代表数字的音频信号必须持续至少45ms,但不超过55ms。
100ms内其他时间为静音(无信号),以便区别连续的两个按键信号[17]。
图3-2DTMF信号产生流程图
3.2DTMF信号的检测
3.2.1DTMF信号检测方法
DTMF解码即是在输入信号中搜索出有效的行频和列频。
计算数字信号的频谱可以采用DFT及其快速算法FFT,而在实现DTMF解码时,采用Goertzel算法要比FFT更快。
通过FFT可以计算得到信号所有谱线,了解信号整个频域信息,而对于DTMF信号只用关心其8个行频/列频及其二次谐波信息即可(二次谐波的信息用于将DTMF信号与声音信号区别开)。
此时Goertzel算法能更加快速的在输入信号中提取频谱信息[18]。
相对于DTMF编码过程,DTMF的解码过程复杂得多。
DTMF的解码主要完成对有效行列频率的检测以及对按键的判决。
和以往模拟电路通过过零检测来检测有效频率相比,采用DSP可以从频域直接分析有效频率的存在。
在检测DTMF信号时,不但要检测出DTMF的基波信息,而且还要考虑其二次谐波的信息。
贝尔试验室所特意选定的这8个频率,只在基波有较高的能量;
而在相同的基波上有较高能量的话音信号在其二次谐波上也叠加有较高的能量。
因此检测二次谐波的作用就是区别DTMF起后发送,解码时DSP则采用改进的Goertzel算法,从频域搜索两个正弦波的存在。
因此检测二次谐波的作用就是区别DTMF信号和话音信号[19]。
DTMF信号的解码是基于Goertzel算法。
我们不需要计算全部频域信息,只需要计算需要的频域的信息,而FFT需要计算全部的频域信息。
理论上证明当计算的点数小于log2N时,Goertzel算法比FFT更有效[20]。
在输入信号中检测DTMF信号,并将其转换为实际的数字,这一解码过程本质是连续的过程,需要在输入的数据信号流中连续地搜索DTMF信号频谱的存在。
整个检测过程分
两步:
(1)采用Goertzel算法在输入信号中提取频谱信息,计算出八个基频和八个二次谐波幅度的平方值。
(2)根据这些频率幅度平方值与所确定的各个门限值相比较,确定输入信号中是否是有DTMF信号并映射出双音多频信号的数字信息作检测结果的有效性检查[21]。
图3-3DTMF信号识别流程图
3.2.2DTMF信号有效性的检测
得到了DTMF信号的基波以及二次谐波的频谱平方信息后,需要通过一系列检测才能确定信号的有效性:
(1)DTMF信号的强度是否足够大,行列频率分量平方幅度和是否高于规定的门限值。
(2)如果DTMF信号存在,比较行列频率的最大频率分量差值,因为电话线具有低通特性,列频比行频衰减得要厉害。
因此,要设置一门限值。
(3)分别在行列频率组比较频谱分量,最强的谱线至少要比其他音频信号高一个门限值。
(4)二次谐波分量是否小于某个值。
(5)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 双音 DTMF 信号 产生 检测 综述