双音多频信号检测的df算法和goervel算法_第1页
双音多频信号检测的df算法和goervel算法_第2页
双音多频信号检测的df算法和goervel算法_第3页
全文预览已结束

下载本文档

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

文档简介

双音多频信号检测的df算法和goervel算法

1.信号信号的信号比较单音多频dtmf(多音多频广播)是一种通信形式,可以将广播信息与语音信息区分开来。即使是具有声音的模拟电话线。这种具备强抗干扰能力以及较快的传输速度的DTMF信号,已经被广泛地应用于音频电话系统以及交互式控制系统中。标准的DTMF双音多频信号是由一组四个低音频及一组四个高音频叠加而成,一个有效的DTMF信号包括上述一个低频频率和一个高频频率。其低音频信号的标准值可以为:697Hz、770Hz、852Hz、941Hz。高音频信号的标准值可以为:1209H、1336Hz、1477Hz、1633Hz,这两组音频可得到16个编码频率的组合信号。这些标准频率的选定原则:一是要排除拨号音、忙音及交流电源的杂音,二是为了避免出现谐波干扰,所列最高标准频率应小于最低标准频率的三次谐波频率。2.接收端信号不稳定DTMF编码通信技术产品虽然广泛地应用于人们的生产生活中,但还存在不少问题。例如:信号发起端由于没有统一的标准而发送的编码信号不规范;信号传输过程中有变形失真等现象;传输信号的音频双绞线上的直流电压不够稳定;接收端接收译码有可能出现收不到信号、译码错误的现象等。导致上述问题的关键是对DTMF编码和解码原理、过程认识不深。例如错误的认为DTMF编码信号的宽度就是译码器输出的时间长度;或者没有采取有效的抗干扰措施,如果DTMF编码信号的频率在话音信号的频率范围内,那么它们就可能相互干扰,导致编码数据通信不准确,甚至使双绞线上的直流电压下降,系统工作不稳定。3.dtmf信号DTMF双音多频信号是由两个二阶数字正弦振荡器产生,在DTMF制式的话机上,每按下一个拨号键就会产生一个DTMF信号,该信号由两个正弦音频信号叠加构成如公式(1)所示。根据CCITT(InternationalconsultativecommitteeontelecommunicationsandTelegraph),DTMF通信系统中用到的4个高频音和4个低频音都是研究了大量人体声学后得到的,它排除了人说话过程中经常使用的频率,这正是DMTF可避免人的话音干扰的原因。另外DTMF信号每秒最多按10个键,并且为了识别两个DTMF信号,这种信号的持续时间介于45ms到55ms之间,其余时间为静音。设每个DTMF信号持续时间为50ms,采样频率为8000Hz,则有400个采样点。本文采用差分方程迭代产生DTMF信号,设正弦序列为:其中ωk为数字频率,则h(n)的z变换为:对式(3)两边进行z反变换得:每个DTMF信号h(n)是两个频率的正弦序列相叠加,设为hL(n)和hH(n),分别求得两者所对应的差分方程如式(5)和(6):fs=8KHz为采样频率,那么4.dtmf信号检测前面介绍了DTMF信号的产生原理,然而各种DTMF信号的应用都离不开DTMF信号的检测。本文主要通过MATLAB软件编程来实现DTMF信号的仿真检测,着重从频域分析了DFT和GOERTZEL两种算法,并对后者进行了详细的推导,得出采用GOERTZEL算法检测信号的优越性。4.1时频点的dtmf信号转换DFT算法是用FFT算法解码,每帧信号要做N=256点FFT,然而组成所有DTMF信号的频率只有8个,那么可以对每帧信号只算8点含有DTMF信号频率的FFT,以减少FFT中许多无意义的计算量。DFT算法解码过程如下:在8个特定的频率上对每帧DTMF信号做DFT画幅频谱图,从中找出代表各信号的特征值。DFT算法描述如公式(8)所示,其中x(n)为DTMF信号,ωk=2πfk/fs为数字频率,所用的8个频率分成如引言部分介绍的高频带和低频带两组,每一个DTMF信号均由高、低频带中各一个频率组成:4.2gortzel算法迭代法即“GOERTZEL算法”,它实质是一个两极点的IIR滤波器,首先在卷积法的基础上找到hk(n)对应的差分方程,再用迭代手段解此差分方程。其算法原理如图1所示,x(n)为DTMF信号的输入,那么n=N时刻的输出yk(n)就是X(k),画X2(k)即可对各信号进行频谱分析,而且能避免复数计算。GOERTZEL算法可以有效又准确的提取DTMF输入信号的DFT值,它的迭代过程用式(9)和式(10)来描述,式(9)代表这种算法的递归部分,它对每一个输入样本进行计算。式(10)在递归结束后只需计算一次,这样便可以计算出所需要的DFT信息。5.采样点个数n值的选取前面推导了DTMF信号的两种检测算法,为了验证GOERTZEL算法的有效性和快速性,本文设计了MATLAB仿真程序,其程序流程图如图2所示。利用公式(11)可以推出最高点k值:以fk=697Hz为例,采样个数N=205,计算Kmax为17.861,K必须为整数,那么取K=18。采样点个数N值的选取对GOERTZEL算法的准确性有很大的影响,好的N值可以保证X(K)最大值和相邻值有很大的幅度差,且远远大于其他值,所以N值的选择还必须使得最大X(K)的K值是唯一的。按照这样的原则,当取N=205,且输入“123456”时,程序运行结果如图3所示。从图中可以看出,利用GOERTZEL算法,只需计算出八个点的功率谱就可以进行拨号的判断,减少了运算量,提高了计算效率,最重要的是能够实时地进行判断。6.仿真结果与分析DTMF信号作为音频电话系统以及数据通信系统等领域的一项重要技术,快速正确的检测这种信号就显得极其重要。本文重点推导了两种检测DTMF信号的算法,并且

温馨提示

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

评论

0/150

提交评论