您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 电子科大DSP第五次实验报告---副本
电子科技大学实验报告学生姓名:学号:指导教师:一、实验室名称:数字信号处理实验室二、实验项目名称:双音多频信号的产生与检测三、实验原理:A.双音多频信号产生与检测:1.双音多频信号的工作原理及产生方法双音多频(DTMF,Dual-ToneMulti-Frequency)信号及其产生与检测技术广泛应用于电话信号处理,用来完成拨号、自动重播、自助电话查询等任务。现在所用的电话,每一个数字按键都是由两种频率的单音信号组成的,这两种单音信号被分为高频带和低频带。高低频带各由四个频率组成。每一位号码均由一个低频带频率和一个高频带频率叠加形成。如图1所示是国际标准认可的数字和符号键的频率分配情况。图1键盘的双音多频方案每个按键对应的DTMF信号为:[]cos(2)cos(2)LSHSxnfnTfnT(1)其中Lf和Hf分别是低频单音和高频单音。一般而言,电话中的双音多频信号有两个作用:(1)用拨号信号去控制交换机接通被叫的用户电话机;(2)控制电话机的各种动作,如播放留言等。2.双音多频信号的常用产生方法如下:1)直接计算法利用定义式(1),在MATLAB中用指令直接计算,但是运算量和实现成本较高。2)查表法该方法的思想是构造一个正/余弦函数查找表,表中所列为正/余弦函数的值,通过将表中的值以不同幅度和不同采样间隔输出,就可以得到任意幅度、任意频率的正弦或余弦波。但此方法运算量虽低,但是对存储量的要求很高。3)数字振荡器法数字振荡器的本质是,使用一个IIR滤波器,通过把它的极点放在单位圆上来产生振荡。利用正弦波的指数形式,可以得到正弦序列[]xn的z变换为11001[]sin21122SSSSSSjnTjnTSnnjnTjnTjTjTnnnxnTneejXzeezezezjj222011222cos1SSSSjTjTjTjTnSzzzzezzejzezejzzT(2)12212sin()2cos()11SSzTCzCzzzTzAzBAzBz上式在1z时成立,且2cos,1,sinssATBCT根据Z变换的原理和性质,可知对于给定的Xz,可以通过反Z变换,唯一确定[]xn。因此,产生正弦波就等价于用上式设计一个IIR滤波器,该IIR滤波器的传递函数为1121CzHzAzBz(3)即如图所示系统。图2二阶数字振荡器由传递函数可得输入/输出关系为:121121YzAzYzBzYzCzXzynAynBynCxn(4)假设系统的输入为单位冲激函数x[n-1]=δ[n-1],即仅当n=1时,x[n-1]=1,带入上式得(5)在n≥2以后,y[n]可以用y[n-1]和y[n-2]算出,这是一个递归方程。B.双音多频信号的检测原理及方法DTMF信号检测的目的,是判断被检测信号中是否含有相应的DTMF频率对。因此完成DTMF检测的基本方法就是对信号进行频谱分析,看对应的频率分量上是否出现能量峰值。双音多频信号的检测方法主要有以下几种:1)FFT或DFT用FFT(DFT)是对双音多频信号进行频谱分析,由信号的幅度谱,判断信号的两个频率,最后确定相应的数字或符号。FFT是DFT的快速算法,但当DFT的变换区间较小时,FFT快速算法的效果并不明显,而且还要占用很多内存,因此不如直接用DFT合适。DFT的计算式如下所示,21100,0,1,,1knNNjknNNnnXkxnWxnekN(6)2)基于Goertzel算法的DTMF信号检测Goertzel算法的基本思想是将每一个频点的DFT运算转换成一个匹配滤波器,通过滤波来实现DFT,对(6)式进行简单的变换可得,111()000NNNkNmknkmNNNnmmXkxnWxmWxmW(7)式(7)的右边可以看作是两个序列xn和knkNhnWun的卷积。如果定义kkynxnhn,那么10||,0,1,,1NknmknNNnNmXkynxmWkN(8)即Xk可以看作是将xn和khn进行卷积,在第N个节拍输出的结果。如果将khn看作是一个系统(或滤波器)的单位冲激响应,那么,X[k]就是xn经过该系统后的第N个输出点。改变k值,可以计算不同的频域采样点Xk,k=0,1,…,N-1。所以,N点DFT可以通过如图3所示的方式实现:将时域序列x[n]输入到N个系统中,这些系统的冲激响应分别为00nNhnWun,11nNhnWun,…,nkkNhnWun,…,(1)1nNNNhnWun将所有输出序列的第N个输出点收集起来,就得到x[n]的N点DFT。图中的N个滤波器构成了一组并行滤波器组,因此,Goertzel算法特别适合DFT的并行实现和模块化实现。图3Goertzel算法原理如果只需要计算某一个单点DFT,如Xk,那么将xn输入第K个滤波器khn并输出第N个时刻的响应即可。对第K个滤波器的冲激响应nkkNhnWun进行Z变换,可以得到该滤波器的系统传输函数kHz为,101,11nknnkkNknnNHzhnzWzzWz(9)由上式可知,该滤波器有一个极点在kNzW处,对应频率为2kkN,因此滤波器在频率k附近的响应较大。图4Goertzel算法原理画出该滤波器的幅频响应和相频响应,如图4所示。由图可知kHz实际上可以看作是一个带通滤波器,通带中心为2kkN。因此,只有当输入信号的频率在k附近时,系统才有较大的输出,从而检测到该频率成分。同理,图3中的每一个滤波器都是一个带通滤波器,通带中心分别为0,2,4,,2,2(1)NNkNNN。基于式(9)画出滤波器kHz的系统框图,如图5(a)所示由式(9)可得系统输入输出差分方程为1kkNkynxnWyn0,1,,1kN(10)容易发现,式(10)的运算量与标准DFT运算量相同,计算单点DFT仍需要N次复数乘法。但是,Goertzel算法不再需要存储旋转因子,节省了大量的存储空间。图5Goertzel算法系统框架图另外,由于式(10)中仍然存在复数乘法和加法运算,而复数运算对运算量消耗较大,因此,在实际应用中,常对式(10)做如下变形:111111111kNkkkkNNNWzHzWzWzWz1121,112cos2kNWzzkNzz(11)其对应的系统框图如图5(b)所示。由此可得系统输入输出差分方程为12cos212kkNkkynxnWxnkNynyn0,1,,1kN(12)上式仍然涉及复数运算。但是,由于kXkyN,因此计算DFT只需要计算出kyn即可,而并不需要其它的kyn。基于这一思想,可以先只计算图5(b)中的左边部分,即计算出中间节点的值kvn,然后在第N步才计算右边部分,得到kyn。计算过程如式(13)所示。这样一来,如果输入xn为实数序列,计算出kyn只需要N次实数乘法和1次复数乘法,其效率高于标准DFT和5(a)所对应的Goertzel算法实现方式。When0,1,,nN,2cos212,kkkvnxnkNvnvn(13)Then,1kkkNkyNvNWvN由于实际应用中,只需要检测对应频率成分的有无,因此只需要得到幅度22kyNXk即可,而不关心相位。因此,式(13)的最后一步可以简化为22222cos211kkkkkyNXkvNkNvNvNvN(14)即完全消除了复数运算,并且整个系统只需要一个实系数2cos2kN。除了以上优点外,和FFT算法相比,Goertzel算法还可以实时在线执行。FFT算法需要等N个输入信号xn都就绪后才能开始运算,而Goertzel算法并不要求这一点,第0个节拍只需要0x,第1个节拍只需要0x和1x,以此类推。从理论上讲Goertzel算法只需要1N个节拍就能完成一个N点的DFT。另外,FFT算法对序列长度N有要求,如基2-FFT要求N必须为2的幂。而Goertzel算法可以根据实际检测要求自行决定N的取值,甚至可以使用不同的N来检测不同的DTMF频率。当然,需要指出的是,Goertzel算法各个滤波器的极点在单位圆上,因此并不是一个稳定的IIR系统,同时它对有限字长效应也更加敏感。这些在实际应用中都应该特别加以注意。图6基于Goertzel算法的DTMF信号检测框图基于Goertzel算法的DTMF信号检测方案如图6所示,它由8个并行的检测器构成,每个对应一个DTMF频率。每一个检测器检测两个频率,分别为DTMF频率和它的二次谐波。检测二次谐波的目的是为了区分一般语音信号和DTMF频率。C.基于DTMF检测的应用:图7基于DTMF检测的银行自助语音服务系统图7所示为DTMF在电话银行自动服务系统中的应用。在该系统中,客户根据事先设定好的语音提示通过键盘输入选项和指令,如银行账户号码等。客户输入的数字信息被转换成DTMF信号,接收端通过检测这些信号,还原客户输入的信息,并转换成用户指令,完成相应的数据访问和控制,并通过语音通道将客户需要的信息反馈给客户。D.在计算中使用到的MATLAB命令:Goerztel函数的调用格式为(,)nXgkgoertzelxKnx是被变换的时域序列,用于DTMF信号检测,nx就是信号的采样值序列。K是要求计算的DFT[nx]的频点序号向量,用N表示nx的长度,则要求1≤k≤N。四、实验目的:a)实验目的1.理解DTMF信号的产生原理及其检测方法;2.提高分析和解决问题的能力;3.提高运用数字信号处理实际问题的能力。b)实验任务在Matlab平台完成双音多频信号的产生与检测。五、实验内容:(1)分别基于直接计算法、查表法和数字振荡器法,产生各个按键对应的DTMF信号,完成相应的MATLAB仿真;(2)分别基于FFT算法和Goertzel算法设计DTMF信号的检测方案,完成相应的MATLAB仿真。六、实验器材(设备、元器件):Pc机,DSP试验箱七、实验步骤:1)产生DTMF信号2)检测DTMF信号3)分析结果八、实验数据及结果分析:程序:(1)基于三种方法产生DTMF信号的程序;#1直接计算法产生DTMF信号,此处产生0信号,其余信号只需改变FL和FH为他们独有的的频率即可%step1直接计算法生成DTMF0Ft=8000;Tt=1/Ft;%采样时间t=0:Tt:1;FL=941;FH=1336;%数字0对应的两个频率Y1=cos(2*pi*FL.*t);Y2=cos(2*pi*FH.*t);Y_DTFM0=Y1+Y2;figure,subplot(4,1,1);plot(t,Y1);title('低频信号时域图');axis([00.01-11]);subplot(4,1,2);plot(t,Y2);title('高频信号时域图');axis([00.01-11]);subplot(4,1,3);plot(t,Y_DTFM0);title('叠加后数字0的时域图');axis([00.01-22]);subplot(4,1,4);plot(Ft/length(Y_DTFM0)*(1:length(Y_DTFM0)),abs(fft(Y_DTFM0,length
本文标题:电子科大DSP第五次实验报告---副本
链接地址:https://www.777doc.com/doc-5696222 .html