




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、电 子 科 技 大 学实 验 报 告学生姓名: 学号: 指导教师: 一、实验室名称:数字信号处理实验室二、实验项目名称:双音多频信号的产生与检测三、实验原理:A. 双音多频信号产生与检测:1. 双音多频信号的工作原理及产生方法双音多频(DTMF, Dual-Tone Multi-Frequency)信号及其产生与检测技术广泛应用于电话信号处理,用来完成拨号、自动重播、自助电话查询等任务。现在所用的电话,每一个数字按键都是由两种频率的单音信号组成的,这两种单音信号被分为高频带和低频带。高低频带各由四个频率组成。每一位号码均由一个低频带频率和一个高频带频率叠加形成。如图1所示是国际标准认可的数字和
2、符号键的频率分配情况。图1 键盘的双音多频方案每个按键对应的DTMF信号为: (1)其中和分别是低频单音和高频单音。一般而言,电话中的双音多频信号有两个作用:(1) 用拨号信号去控制交换机接通被叫的用户电话机;(2) 控制电话机的各种动作,如播放留言等。2. 双音多频信号的常用产生方法如下:1) 直接计算法利用定义式(1),在MATLAB中用指令直接计算,但是运算量和实现成本较高。2) 查表法该方法的思想是构造一个正/余弦函数查找表,表中所列为正/余弦函数的值,通过将表中的值以不同幅度和不同采样间隔输出,就可以得到任意幅度、任意频率的正弦或余弦波。但此方法运算量虽低,但是对存储量的要求很高。3
3、) 数字振荡器法数字振荡器的本质是,使用一个IIR滤波器,通过把它的极点放在单位圆上来产生振荡。利用正弦波的指数形式,可以得到正弦序列的z变换为 (2)上式在时成立,且 根据Z变换的原理和性质,可知对于给定的,可以通过反Z变换,唯一确定。因此,产生正弦波就等价于用上式设计一个IIR滤波器,该IIR滤波器的传递函数为 (3)即如图所示系统。图2 二阶数字振荡器由传递函数可得输入/输出关系为: (4)假设系统的输入为单位冲激函数xn-1=n-1,即仅当n=1时,xn-1=1,带入上式得 (5)在n2以后,yn可以用yn-1和yn-2算出,这是一个递归方程。B. 双音多频信号的检测原理及方法DTMF
4、信号检测的目的,是判断被检测信号中是否含有相应的DTMF频率对。因此完成DTMF检测的基本方法就是对信号进行频谱分析,看对应的频率分量上是否出现能量峰值。双音多频信号的检测方法主要有以下几种:1) FFT或DFT用FFT(DFT)是对双音多频信号进行频谱分析,由信号的幅度谱,判断信号的两个频率,最后确定相应的数字或符号。FFT是DFT的快速算法,但当DFT的变换区间较小时,FFT快速算法的效果并不明显,而且还要占用很多内存,因此不如直接用DFT合适。DFT的计算式如下所示, (6)2)基于Goertzel算法的DTMF信号检测Goertzel算法的基本思想是将每一个频点的DFT运算转换成一个匹
5、配滤波器,通过滤波来实现DFT,对(6)式进行简单的变换可得, (7)式(7)的右边可以看作是两个序列和的卷积。如果定义,那么 (8)即可以看作是将和进行卷积,在第N个节拍输出的结果。如果将看作是一个系统(或滤波器)的单位冲激响应,那么,Xk就是经过该系统后的第 N 个输出点。改变 k 值,可以计算不同的频域采样点, k = 0, 1, , N-1。所以,点DFT可以通过如图3所示的方式实现:将时域序列xn输入到个系统中,这些系统的冲激响应分别为,, 将所有输出序列的第个输出点收集起来,就得到xn的点 DFT。图中的个滤波器构成了一组并行滤波器组,因此,Goertzel算法特 别适合DFT的并
6、行实现和模块化实现。图3 Goertzel算法原理如果只需要计算某一个单点DFT,如,那么将输入第个滤波器并输出第个时刻的响应即可。 对第个滤波器的冲激响应进行变换, 可以得到该滤波器的系统传输函数为, (9)由上式可知,该滤波器有一个极点在处,对应频率为,因此滤波器 在频率附近的响应较大。图4 Goertzel算法原理画出该滤波器的幅频响应和相频响应,如图4所示。由图可知 实际上可以看作是一个带通滤波器,通带中心为。因此,只有当输入信号的频率在附近时,系统才有较大的输出,从而检测到该频率成分。 同理,图3中的每一个滤波器都是一个带通滤波器,通带中心分别为0,。 基于式(9)画出滤波器的系统框
7、图,如图5(a)所示由式(9)可得系统输入输出差分方程为 (10)容易发现,式(10)的运算量与标准DFT运算量相同,计算单点DFT仍需要次复数乘法。但是,Goertzel算法不再需要存储旋转因子,节省了大量的存储空间。图5 Goertzel算法系统框架图另外,由于式(10)中仍然存在复数乘法和加法运算,而复数运算对运算量消耗 较大,因此,在实际应用中,常对式(10)做如下变形: (11) 其对应的系统框图如图5(b)所示。由此可得系统输入输出差分方程为 (12) 上式仍然涉及复数运算。但是,由于,因此计算DFT 只需要计算出即可,而并不需要其它的。基于这一思想,可以先只计算图 5(b)中的左
8、边部分,即计算出中间节点的值,然后在第步才计算右边部分,得到。计算过程如式(13)所示。这样一来,如果输入为实数序列,计算出只需要次实数乘法和1次复数乘法,其效率高于标准DFT和 5(a)所对应的Goertzel算法实现方式。When , (13)Then ,由于实际应用中,只需要检测对应频率成分的有无,因此只需要得到幅度即可,而不关心相位。因此,式(13)的最后一步可以简化为 (14)即完全消除了复数运算,并且整个系统只需要一个实系数。 除了以上优点外,和FFT算法相比,Goertzel算法还可以实时在线执行。 FFT算法需要等个输入信号都就绪后才能开始运算,而 Goertzel 算法并不要
9、求这一点,第0个节拍只需要,第1个节拍只需要和,以此类推。从理论上讲Goertzel算法只需要个节拍就能完成一个点的DFT。 另外,FFT算法对序列长度有要求,如基2-FFT要求必须为2的幂。而Goertzel算法可以根据实际检测要求自行决定的取值,甚至可以使用不同的来检测不同的DTMF 频率。 当然,需要指出的是,Goertzel算法各个滤波器的极点在单位圆上,因此并不是一个稳定的IIR系统,同时它对有限字长效应也更加敏感。这些在实际应用中都应该特别加以注意。图6 基于Goertzel算法的DTMF信号检测框图基于Goertzel算法的DTMF信号检测方案如图6所示,它由8个并行的检测器构成
10、,每个对应一个DTMF频率。每一个检测器检测两个频率,分别为DTMF频率和它的二次谐波。检测二次谐波的目的是为了区分一般语音信号和DTMF频率。C. 基于DTMF检测的应用:图7 基于DTMF检测的银行自助语音服务系统图7所示为DTMF在电话银行自动服务系统中的应用。在该系统中,客户根据事先设定好的语音提示通过键盘输入选项和指令,如银行账户号码等。客户输入的数字信息被转换成DTMF信号,接收端通过检测这些信号,还原客户输入的信息,并转换成用户指令,完成相应的数据访问和控制,并通过语音通道将客户需要的信息反馈给客户。D. 在计算中使用到的MATLAB命令:Goerztel函数的调用格式为是被变换
11、的时域序列,用于DTMF信号检测,就是信号的采样值序列。K是要求计算的DFT的频点序号向量,用N表示的长度,则要求1 k N。四、实验目的:a) 实验目的1. 理解DTMF信号的产生原理及其检测方法;2. 提高分析和解决问题的能力;3. 提高运用数字信号处理实际问题的能力。b) 实验任务在Matlab平台完成双音多频信号的产生与检测。五、实验内容:(1)分别基于直接计算法、查表法和数字振荡器法,产生各个按键对应的DTMF信号,完成相应的MATLAB仿真;(2)分别基于FFT算法和Goertzel算法设计DTMF信号的检测方案,完成相应的MATLAB仿真。六、实验器材(设备、元器件):Pc机,D
12、SP试验箱七、实验步骤:1) 产生DTMF信号2) 检测DTMF信号3) 分析结果八、实验数据及结果分析:程序:(1)基于三种方法产生DTMF信号的程序;#1 直接计算法产生DTMF信号,此处产生0信号, 其余信号只需改变FL和FH为他们独有的的频率即可% step 1 直接计算法生成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
13、(t,Y1);title('低频信号时域图');axis(0 0.01 -1 1);subplot(4,1,2);plot(t,Y2);title('高频信号时域图');axis(0 0.01 -1 1);subplot(4,1,3);plot(t,Y_DTFM0);title('叠加后数字0的时域图');axis(0 0.01 -2 2);subplot(4,1,4);plot(Ft/length(Y_DTFM0)*(1:length(Y_DTFM0),abs(fft(Y_DTFM0,length(Y_DTFM0);axis(900 1500
14、0 6000);title('叠加后数字0的频域图');结果#2 基于查表法产生DTMF%查表法产生各个按键对应的DTMF信号fl = 697 770 852 941;fh = 1209 1336 1477 1633;Fs = 8000; %采样频率为8000Hzt = 0:1:500;cosdata = cos(2*pi*(0:511)/512); %建立查找表i =4;j=2;%此为0坐标Y1 = cosdata(floor(mod(fl(i).*t/Fs)/(1/512),512)+1); %DTMF信号Y2 = cosdata(floor(mod(fh(j).*t/Fs
15、)/(1/512),512)+1);Y_DTFM0 = Y1 + Y2;figure,subplot(4,1,1);plot(t/Fs,Y1);axis(0 0.01 -1 1);title('低频信号时域图');subplot(4,1,2);plot(t/Fs,Y2);axis(0 0.01 -1 1);title('高频信号时域图');subplot(4,1,3);plot(t/Fs,Y_DTFM0);axis(0 0.01 -2 2);title('叠加后数字0的时域图');subplot(4,1,4);plot(8000/length(Y
16、_DTFM0)*(1:length(Y_DTFM0),abs(fft(Y_DTFM0,length(Y_DTFM0);title('叠加后数字0的频域图');axis(660 1660 0 400);仍然以数字零为例,图形为#3 数字振荡器法产生DTFM%数字式自激振荡器产生DTFM之0 clc,clear,close all,f1 = 941; %数字0的频率分量f2 = 1336;ft = 8000; %采样频率Ts = 1/ft; %采样时间t = 0:Ts:800*Ts; %时间序列Omega1 = 2*pi*f1;A1 = 2*cos(Omega1*Ts);B1=-1
17、;C1=sin(Omega1*Ts);%-差分方程y(n)=A*y(n-1)+B*y(n-2)+C*x(n-1)a1=1 -A1 -B1; %系统函数H(z)分母多项式系数?b1=0 C1 0; %系统函数H(z)分子多项式系数?uN1=1,zeros(1,length(t)-1);%单位冲击序列x1=uN1; %输入序列Y1=filter(b1,a1,x1);%滤波器输出序列即是f1正弦波Omega2 = 2*pi*f2;A2 = 2*cos(Omega2*Ts);B2=-1;C2=sin(Omega2*Ts);%-差分方程y(n)=A*y(n-1)+B*y(n-2)+C*x(n-1)a2=
18、1 -A2 -B2; %系统函数H(z)分母多项式系数?b2=0 C2 0; %系统函数H(z)分子多项式系数?uN1=1,zeros(1,length(t)-1);x2=uN1;Y2=filter(b2,a2,x2);Y_DTFM0 = Y1 + Y2;figure,subplot(4,1,1);plot(t,Y1);axis(0 0.01 -1 1);title('低频信号时域图');subplot(4,1,2);plot(t,Y2);axis(0 0.01 -1 1);title('高频信号时域图');subplot(4,1,3);plot(t,Y_DTF
19、M0);axis(0 0.01 -2 2);title('叠加后数字0的时域图');subplot(4,1,4);plot(8000/length(Y_DTFM0)*(1:length(Y_DTFM0),abs(fft(Y_DTFM0,length(Y_DTFM0);title('叠加后数字0的频域图');axis(660 1660 0 400);依旧是以数字0为例,画图如下(2)基于两种方法检测DTMF信号的程序。%用fft对DTFM信号检测hold onfigure,suptitle('FFT检测DTFM')for i = 1:16 H =
20、abs(fft(x(i,:),length(x(i,:); h = 8000/length(x(i,:)*(1:length(x(i,:); subplot(4,4,i),plot(h,H);end %用Geortzel算法对DTFM信号检测k = 18,20,22,24,31,34,38,42; %8各频率对应的K值hold on figure,suptitle('Geortzel检测DTFM')for i = 1:16 X = goertzel(x(i,:),k+1); subplot(4,4,i),stem(k,abs(X)end配合直接计算的DTFM信号%用直接计算法产生各个按键对应的DTFMfl = 697 770 852 941;fh = 1209 1336 1477 1633;Fs = 8000; %采样率8000HzTt = 1/Fs;N = 205; %采样点数205t = 0:N;figure,suptitle('DTMF with Direct Computation Method'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论