版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字信号处理实验指导数字信号处理实验指导书电子科技大学通信学院朱学勇 潘晔 杨鍊 林静然目 录数字信号处理实验总体介绍3实验一 离散时间信号的产生4实验二 FFT的实现11实验三 采样的时域及频域分析16实验四 数字滤波器的设计及实现24- 34 -数字信号处理实验总体介绍一、 本课程实验的教学要求通过本课程的实验,要求学生深入掌握对数字信号的基本分析方法;理解离散时间信号和系统的时域和频域描述,采样及恢复、快速傅里叶变换等内容;讨论以数字滤波器为代表的数字系统的各种特性描述间的数学概念、物理概念与工程概念,要求学生掌握数字系统的基本分析理论与设计方法,并建立解决实际问题的思想、方法及严谨的科
2、学态度。会用MATLAB软件和信号处理工具箱相关函数编程,仿真分析和实现离散时间信号和系统。能正确观察、记录实验数据,并用分析工具或图表对数据进行分析并给出结论。二、 本课程实验内容简介本课程实验包含五个实验:离散时间信号的产生、FFT的实现、采样的时域及频域分析、数字滤波器的设计及实现、双音多频信号的产生与检测。实验设备包括:微型计算机(PC); MATLAB仿真软件。三、 适用专业通信工程以及电子信息类专业。四、 考核方式实验报告+机考 五、 总学时 五个实验项目共需要20学时。六、 教材名称Sanjit K.Mitra, DIGITAL SIGNAL PROCESSING - A CON
3、PUTER BASED APPROACH(3rd EDITION), McGraw-Hill and Tsinghua University Press, 2006七、 参考资料1. S.K.Mitra著,孙洪,于翔宇等译,数字信号处理试验指导书(MATLAB版),电子工业出版社,2005年1月2. Vinay K. I. and John G. P. 著,刘树棠译,数字信号处理使用MATLAB,西安电子科技大学出版社,2002年6月实验一 离散时间信号的产生一、实验目的和任务:目的:掌握离散信号与系统的时域表达式;会用MATLAB软件和信号处理工具箱函数编程,产生典型的离散时间信号。任务:1
4、、 能够熟练利用MATLAB产生基本的离散时间信号(包括单位采样序列,单位阶跃序列,单频正弦序列,单频复指数序列,实指数序列等)。2、 理解双音多频DTMF信号、ASK、FSK、BPSK等信号的产生原理。能运用MATLAB产生各种通信中的调制信号及双音多频信号。二、实验原理:1、基本离散时间信号常见的基本信号可以简要归纳如下:(1)单位采样序列 在MATLAB中可以利用zeros()函数实现。如果在时间轴上延迟了k个单位,得到即: (2)单位阶跃序列 在MATLAB中可以利用ones()函数实现。 (3)正弦序列采用MATLAB的实现方法,如:(4)实指数序列其中,A、a为实数。采用MATLA
5、B的实现方法,如:(5)复指数序列采用MATLAB的实现方法,如:为了画出复数信号xn,必须要分别画出实部和虚部,或者幅值和相角。MATLAB函数real、imag、abs和angle可以逐次计算出一个复数向量的这些函数。2、基本数字调制信号(1)二进制振幅键控(2ASK)最简单的数字调制技术是振幅键控(ASK),即二进制信息信号直接调制模拟载波的振幅。二进制幅度键控信号的时域表达式:其中,an为要调制的二进制信号,g(t)是单极性脉冲信号的时间波形,Ts 表示调制的信号间隔。典型波形如图1-1:图1-1 二进制振幅键控信号时间波形(2)二进制频移键控(2FSK)在二进制数字调制中,若正弦载波
6、的频率随二进制基带信号在f1和f2两个频率点间变化,则产生二进制移频键控信号(2FSK信号)。二进制频域键控已调信号的时域表达式为:这里,。典型波形如图1-2:an1011001ttt2FSK信号载波信号1载波信号2图1-2 二进制频移键控信号时间波形(3)二进制相移键控(2PSK或BPSK)在二进制数字调制中,当正弦载波的相位随二进制数字基带信号离散变化时,则产生二进制移相键控(2PSK)信号。通常用已调信号载波的0°和 180°分别表示二进制数字基带信号的 1 和 0。二进制移相键控信号的时域表达式为:典型波形如图1-3:Tst2PSK信号an 1 0 0 1图1-3
7、二进制相移键控信号时间波形数字调制信号可以根据调制原理采用基本的MATLAB命令实现,也可以用现成的命令:Y = DMOD(X, Fc, Fd, Fs, METHOD.),其中,X为要调制的二进制信号;Fc为载波频率(Hz);Fd为符号频率(Hz);Fs为采样频率。要求:Fs > Fc,同时Fs/Fd 是一个正整数。参数METHOD是可以选择的调制方式:ask 、psk、qask、fsk、msk等。 三、实验内容1、用MATLAB编程产生几种基本离散时间信号(包括单位采样序列,单位阶跃序列,正弦序列,复指数序列,实指数序列等)。2、利用MATLAB编程产生2ASK,2FSK,2PSK等数
8、字调制信号。4、利用MATLAB编程产生高斯白噪声序列。5、利用MATLAB中的谱分析函数对正弦信号的频谱进行分析。四、实验步骤:1、 在内,画出单位下列信号:(a).单位采样序列和单位阶跃序列的时域波形图。(b).、的波形。说明与、与之间的关系。2、画出下列信号在内的波形。观察是否周期信号。如果是周期信号,信号的基波周期是什么?如果不是周期信号,说明原因。3、在内,画出下列信号:对于复数序列,要求分别画出实部和虚部;幅值和相角。若把中的底数0.8分别改为1.2、-0.8,讨论产生的时域波形有何变化。总结指数序列的底数对序列变化的影响。4、 设计产生数字二进制序列:1 0 1 0 1 0 的2
9、ASK、2FSK、2PSK调制信号。已知符号速率Fd10Hz(即时间间隔Ts为0.1),输出信号的采样频率为20Hz。(a).2ASK信号的载波频率Fc5Hz, (b).2FSK信号载波1频率F15Hz,载波2频率F21Hz。(c).2PSK载波频率Fc1Hz。分别画出以上信号调制前后的时域波形图。5、 MATLAB函数randn(1,N)可以产生均值为0,方差为1的高斯随机序列,也就是白噪声序列。试利用randn函数产生均值为0.15,方差为0.1的高斯白噪声序列,要求序列时域范围为。画出时域波形图。同时将实验步骤2中产生的信号与相加,将得到的波形与的波形做比较。6、 利用MATLAB中的谱
10、分析函数画出的频谱。与理论上根据傅立叶变换的定义计算出的的频谱进行比较。五、实验数据及结果分析:程序:(1)产生序列的程序(2)产生2ASK、2FSK、2PSK调制信号的程序(4)高斯白噪声序列的产生程序(5)正弦信号频谱分析的程序结果:(1)的时域波形(2)信号的时移:与、与之间的关系。(2)正弦序列周期的判断(3)指数序列底数与序列变化的关系总结(4)2ASK、2FSK、2PSK调制信号时域波形(6)高斯白噪声序列的时域波形;正弦序列加上高斯白噪声后的时域波形(7)正弦序列的频谱图实验二 FFT的实现一、实验目的和任务:目的:通过直接计算DFT,利用FFT算法思想计算DFT,以及使用MAT
11、LAB函数中的FFT命令计算离散时间信号的频谱,以加深对离散信号的DFT变换及FFT算法的理解;理解频谱分辨率的概念。任务:分别用三种方法计算余弦和方波序列的DFT,并比较性能。二、实验原理:1 DFT的定义:对于有限长离散数字信号xn,0 £ n £ N-1,其离散谱xk可以由离散付氏变换(DFT)求得。DFT的定义为:,k=0,1,N-1通常令,称为旋转因子。2直接计算DFT的问题及FFT的基本思想:由DFT的定义可以看出,在xn为复数序列的情况下,完全直接运算N点DFT需要(N-1)2次复数乘法和N(N-1)次加法。因此,对于一些相当大的N值(如1024)来说,直接计
12、算它的DFT所作的计算量是很大的。FFT的基本思想在于,将原有的N点序列分成两个较短的序列,这些序列的DFT可以很简单的组合起来得到原序列的DFT。例如,若N为偶数,将原有的N点序列分成两个(N/2)点序列,那么计算N点DFT将只需要约(N/2)2 ·2=N2/2次复数乘法。即比直接计算少作一半乘法。因子(N/2)2表示直接计算(N/2)点DFT所需要的乘法次数,而乘数2代表必须完成两个DFT。上述处理方法可以反复使用,即(N/2)点的DFT计算也可以化成两个(N/4)点的DFT(假定N/2为偶数),从而又少作一半的乘法。这样一级一级的划分下去一直到最后就划分成两点的FFT运算的情况
13、。a) 基2按时间抽取(DIT)的FFT算法思想:设序列长度为,L为整数(如果序列长度不满足此条件,通过在后面补零让其满足)。将长度为的序列,先按n的奇偶分成两组:,r=0,1,N/2-1DFT化为:上式中利用了旋转因子的可约性,即:。又令,则上式可以写成:(k=0,1,N/2-1)可以看出,分别为从中取出的N/2点偶数点和奇数点序列的N/2点DFT值,所以,一个N点序列的DFT可以用两个N/2点序列的DFT组合而成。但是,从上式可以看出,这样的组合仅表示出了前N/2点的DFT值,还需要继续利用表示的后半段本算法推导才完整。利用旋转因子的周期性,有:,则后半段的DFT值表达式:,同样, (k=
14、0,1,N/2-1),所以后半段(k=N/2,N-1)的DFT值可以用前半段k值表达式获得,中间还利用到,得到后半段的值表达式为:(k=0,1,N/2-1)。这样,通过计算两个N/2点序列的N/2点DFT,可以组合得到N点序列的DFT值,其组合过程如下图所示: -1 比如,一个N = 8点的FFT运算按照这种方法来计算FFT可以用图2-1来表示:图2-1 8点FFTb) 基2按频率抽取(DIF)的FFT算法思想:设序列长度为,L为整数(如果序列长度不满足此条件,通过在后面补零让其满足)。在把按k的奇偶分组之前,把输入按n的顺序分成前后两半:因为,则有,所以:按k的奇偶来讨论,k为偶数时:k为奇
15、数时:前面已经推导过,所以上面的两个等式可以写为:通过上面的推导,的偶数点值和奇数点值分别可以由组合而成的N/2点的序列来求得,其中偶数点值为输入xn的前半段和后半段之和序列的N/2点DFT值,奇数点值为输入xn的前半段和后半段之差再与相乘序列的N/2点DFT值。令,则有:这样,也可以用两个N/2点DFT来组合成一个N点DFT,组合过程如下图所示: -1 三、实验内容:1. 计算实数序列的256点DFT。2. 计算周期为1kHz的方波序列(占空比为50,幅度取为/-512,采样频率为25kHz,取256点长度) 256点DFT。四、实验步骤:(1) 先利用DFT定义式,编程直接计算2个要求序列
16、的DFT值。(2) 利用MATLAB中提供的FFT函数,计算2个要求序列的DFT值。(3) 不改变序列的点数,仅改变DFT计算点数(如变为计算1024点DFT值),观察画出来的频谱与前面频谱的差别,并解释这种差别。通过这一步骤的分析,理解频谱分辨率的概念,解释如何提高频谱分辨率。(4) 利用FFT的基本思想(基2-DIT或基2-DIF),自己编写FFT计算函数,并用该函数计算要求序列的DFT值。并对前面3个结果进行对比。(5) (拓展要求)尝试对其他快速傅立叶变换算法(如Goertzel算法)进行MATLAB编程实现,并用它来计算要求的序列的DFT值。并与前面的结果进行对比。五、实验数据及结果
17、分析:程序:(1) 对要求的2种序列直接进行DFT计算的程序(2) 对要求的2种序列进行基2-DIT和基2-DIF FFT算法程序(3) 对要求的2种序列用MATLAB中提供的FFT函数进行计算的程序结果:(1)对2种要求的序列直接进行DFT计算的频域波形(2)对2种要求的序列进行基2-DIT和基2-DIF FFT算法频域波形(3)对2种要求的序列用MATLAB中提供的FFT函数计算的频域波形。(4)分析利用上面的方法画出的信号频谱与理论计算出来的频谱之间的差异,并解释这种差异。(5)保持序列点数不变,改变DFT计算点数(变为1024点),观察频谱的变化,并分析这种变化,由此讨论如何提高频谱分
18、辨率的问题。 实验三 采样的时域及频域分析一、实验目的和任务:目的:深刻理解连续信号的数字处理过程和频域概念;理解内插和抽取的过程。任务:用MATLAB编程实现可变采样率采样程序;对比分析各种采样(临界采样、过采样、欠采样)时域频域的情况。二、实验原理:1采样的概念:采样是将连续信号变化为离散信号的过程。A、理想采样:即将被采样信号与周期脉冲信号相乘B、实际采样:将被采样信号与周期门信号相乘,当周期门信号的宽度很小,可近似为周期脉冲串。根据傅里叶变换性质式中T代表采样间隔,由上式可知:采样后信号的频谱是原信号频谱以为周期的搬移叠加结论:时域离散化,频域周期化;频谱周期化可能造成频谱混迭。C、低
19、通采样和Nyquist采样定理设且,即为带限信号。则当采样频率满足时,可以从采样后的信号无失真地恢复。称为奈奎斯特频率,为奈奎斯特间隔。注意:实际应用中,由于被采信号的频谱是未知的,可以在ADC前加一个滤波器(防混叠滤波器)。2、低通采样中的临界采样、欠采样、过采样的时域及频域变化情况。低通采样中的临界采样是指在低通采样时采样频率低通采样中的欠采样是指在低通采样时采样频率低通采样中的欠采样是指在低通采样时采样频率设一带限信号的频谱如下:00(1)临界采样0 (2)过采样0 (3)欠采样由上图可知,当为临界采样和过采样时,理论上可以无失真的恢复采样信号,但是实际在临界采样时,由于实际滤波器的性能
20、限制,无法无失真的恢复,在欠采样时只能部分恢复原信号的频谱特性。因此过采样时使用最为广泛的采样方式,当需要注意的是对临界采样和欠采样由于采样频率可以降低,在不需要恢复出信号的全部频谱特征时,则往往使用这两种采样方式。随着信号处理技术的发展,信号的频率越来越高,这两种方式也有着广泛的应用前景。在理论分析中使用的带限信号在实际应用是并不存在的,因为要求该信号在时域上是无限长的,因此无论采样频率有多大,实际采样的信号都是会发生混叠的,如下图所示:00在实际应用中,我们只需使采样频率满足能够恢复出我们需要的信号即可。3、带通采样过程及带通采样定理。带通采样是对于带通信号进行采样的过程。称为带通信号的带
21、宽。此时采样频率为其中m是当采样频率满足时最大的正整数。此时信号可以被无失真的恢复,这就是带通采样定理。原理:采样后的带通信号同样是原信号的周期搬移叠加,但由于带通信号在某个频带不存在信号分量,采样后得到信号频谱存在间隔,当采样频率满足一定条件(不满足底通采样定理)时,同样可以无失真的恢复。示意图如下:(1)当最高频率是带宽的整数倍,即,而选择的抽样频率,此时有:000从图中可以看出,当把该采样信号通过一个理想带通滤波器时,可以恢复出原信号。(2)当最高频率不是带宽的整数倍,我们可以认为的扩展带宽,使得该带通信号的,而选择的抽样频率,此时有000从上图可以看出同样能无失真的恢复出原带通信号4、
22、变采样率的数字信号处理A、降采样率(整数倍抽取)的实现原理,时域和频域的变化情况。xnyn降采样率是指每次抽样保留输入序列中的第M个样本,而除去中间的M-1个样本:用框图表示为可以得到 ,以2倍下抽样器为例,即L=2,可得,如下图所示混叠可以知道,在降采样率时,的原形状会丢失,即发生混叠现象。M倍下抽样器的输出和输入之间傅氏变换的关系为:在下抽样以前,为了避免引起混叠,信号需要通过一个低通滤波器带限到,即:xnynB、升采样率(整数倍内插)的实现原理,时域和频域的变化情况。升采样率是指通过在对原离散信号的两个连续样本间插入L-1个等距的样本值(不一定为零),亦即抽样因子为L的上抽样。上抽样后的
23、序列长度为原来的L倍: ,框图表示为xnxun可以得到:,对于L=2时,可得下图:如图,2倍的抽样率扩展导致频谱的2倍重复,表明傅里叶变换以2倍压缩。因此可得输入频谱的一个额外镜像,这个过程也叫做映射。上采样后不必要的镜像必须用一个称为内插滤波器的低通滤波器H(z)来消除,即:xnxunynC、分数倍变采样率的实现原理,时域和频域的变化情况。采样率的分数转换可以用M倍抽取器和L倍内插器级联而成,其中M和L都是正整数。这样级联有两种可能的形式三、实验内容:本实验要求学生运用MATLAB编程完成可变采样率采样(抽取)程序,并对提供的离散时间信号分别进行临界采样、过采样、欠采样时信号时域和频域的信号
24、变化情况,以加深对相关教学内容的深刻理解。进而拓展到可变采样率信号处理的基本方法的MATLAB实现,得到信号的时频域变化情况,使学有余力的同学进一步加深对变采样率信号处理相关知识的理解。四、实验步骤:1、 对比观察、分析各种采样(临界采样、过采样、欠采样)时域频域的情况。2、设计完成整数倍内插的MATLAB程序,观察时域频域的变化情况,提出相应滤波器设计要求。3、设计完成整数倍抽取的MATLAB程序,观察时域频域的变化情况,提出相应滤波器设计要求。4、(拓展要求)设计分数倍变采样率的MATLAB程序,观察时域频域的变化情况,提出相应滤波器设计要求。五、实验数据及结果分析:程序:可变采样率采样(
25、抽取)程序;整数倍内插程序;分数倍变采样率程序(拓展要求)结果:各种采样(临界采样、过采样、欠采样)频域变化图;内插和抽取后频域变化图。实验四 数字滤波器的设计及实现一、实验目的和任务:目的:熟练掌握数字滤波器的双线性变换法(IIR)和窗函数法(FIR)两种设计方法;加深学生对数字滤波器的常用指标、设计过程及实现的理解。任务:通过使用MATLAB函数和滤波器辅助设计软件对给定指标的数字滤波器进行设计和实现。二、实验原理:1. 数字滤波器设计步骤:(1) 根据给定的滤波器设计要求,得到参数化描述,即通带,阻带截止频率和,通带阻带纹波和等数据。(2) 找一个数字系统函数G(z),使其频率响应逼近设
26、计要求。(3) 择合适的滤波器结构对满足要求的传递函数G(z)进行实现。2. 数字滤波器设计中的注意事项:)(wjeGPd+1Pd-1·sdSw-Pw-PwSw通带阻带过渡带w图4-1典型的数字LPF幅频特性(1) 设计要求的参数化:图4-1给出了一个典型的数字低通滤波器的幅频特性说明。理解每个参数的物理含义。(2) 滤波器类型选择:在数字滤波器实现中可选择IIR滤波器和FIR滤波器两种。在实现相同幅频特性时,IIR滤波器的阶数会相对FIR滤波器的更低;而在实现中,对相同阶数的两种滤波器来看,对每个采样值所做的乘法数量,IIR约为FIR的两倍;另外,FIR还可以方便地设计成线性相位滤
27、波器。总的来说,IIR滤波器除不能实现线性相位这一点外,由于阶数的原因,从计算复杂度上较FIR滤波器有很大的优势。根据以上这些区别,结合实际的设计要求,就可以选择一款合适的滤波器。(3) 波器设计的方法:由于IIR滤波器和FIR滤波器各自的结构特点,所以它们的设计方法也不一样。在IIR滤波器的设计中,常用的方法是:先根据设计要求寻找一个合适的模拟原型滤波器,然后根据一定的准则将此模拟原型滤波器转换为数字滤波器,即为我们需要设计的数字滤波器。在FIR滤波器设计中,一般使用比较直接的方法:根据设计的要求在时域对理想的冲击响应序列进行加窗逼近,或从频域对需要实现的频率响应特性进行采样逼近然后进行反F
28、FT。(4) 波器阶数估计:IIR滤波器的阶数就等于所选的模拟原型滤波器的阶数,所以其阶数确定主要是在模拟原型滤波器设计中进行的。FIR滤波器阶数估计可以根据很多工程中的经验公式,这些公式可以直接从设计的参数要求中估计滤波器阶数。例如,对FIR低通滤波器,已知通带截止频率,阻带截止频率,最大通带纹波和最大最带纹波,则可以使用下面的公式估计其阶数:3. 数字滤波器的设计方法:(1) IIR滤波器设计方法:(a) 冲击响应不变法:A.满足设计要求的模拟原型滤波器进行部分分式展开为: B.由于 ,可以得到:(b) 双线性变换法:A. 设计要求中给出的边界频率进行预畸处理,然后用得到的频率进行模拟滤波
29、器设计,得到模拟原型滤波器。B. 用双线性变换法求出数字滤波器:。(2) FIR滤波器设计方法:窗函数法:A. 根据指标的要求选择合适的窗函数,然后根据此窗计算阶数等参数N。C. 写出冲击响应序列的表达式:,其中,为理想的冲击响应序列,一般为无限长的,为长度为N的窗函数。D. 计算所得冲击响应序列的DTFT,然后验证其是否满足设计要求。4. 滤波器的实现结构A. FIR滤波器:i. 直接型实现结构ii. 级联结构iii. 并联结构iv. 多相实现结构v. 线性相位型结构B. IIR滤波器:i. 直接型实现结构:I型和II型ii. 级联结构iii. 并联结构三、实验内容:对给定的输入信号(基带二
30、进制码元为500Hz,两个载频分别为2kHz和4kHz的FSK调制信号)进行滤波。利用MATLAB编程设计一个数字低通滤波器,指标要求如下:通带截止频率:;阻带截止频率:;采样频率;通带峰值起伏:;最小阻带衰减:。要求分别用MATLAB中的IIR和FIR设计命令进行滤波器设计,得出需要的滤波器系数。再将得到的滤波器系数在MATLAB中编程进行实现(选择直接型实现结果),对输入信号进行滤波,观察滤波结果。提示:在滤波器设计中使用到的MATLAB命令:1IIR滤波器设计函数:butter, buttord, chebwin, cheb1ord, cheb2ord, cheby1, cheby2,
31、ellip, ellipord。例如:用下面的MATLAB命令可估算一个Butterworth滤波器的阶数:N, Wn = buttord(Wp, Ws, Rp, Rs)2 FIR滤波器设计函数:fir1, fir2, remez, remezord, kaiser, kaiserord, hanning, hamming, blackman。例如:用下面的MATLAB命令可根据式(7.18)估算一个FIR滤波器阶数:N, fpts,mag,wt = remezord(fedge,mval,dev)3 MATLAB中提供的滤波器设计辅助设计软件(在命令窗口中键入“fdatool”即可启动),界
32、面如图4-2所示。在此界面中填写需要设计的滤波器参数,即可设计出需要的滤波器。还可以通过此工具提供的幅度,相位观察窗口观察设计出来的滤波器的幅度,相位特性等,并可以将设计好的滤波器冲激响应系数导出进行实现。图4-2 MATLAB中滤波器辅助设计软件界面四、实验步骤:(1) 给定输入信号:FSK信号(输入的二进制待调信号为随机信号,码元频率为500Hz,两个载频分别为2kHz和4kHz,采样频率为20kHz,)。利用MATLAB编程产生本信号,画出其时域和频域的图像。(2) 利用MATLAB编程设计一个数字低通滤波器,指标要求如下:通带截止频率:;阻带截止频率:;采样频率;通带峰值起伏:;最小阻
33、带衰减:。(3) 分别用MATLAB中的IIR和FIR设计命令进行滤波器设计,得出需要的滤波器系数。(4) 用MATLAB滤波器辅助设计软件对上述滤波器进行设计,并将得到的滤波器系数对输入信号进行滤波,观察滤波实现。(5) 将得到的滤波器系数在MATLAB中编程进行实现(选择直接型实现结果进行实现),对(1)中的输入信号进行滤波(分别用FIR和IIR滤波器进行),观察滤波结果,画出时域和频域图像。(6) 修改需要设计的滤波器的指标要求,比如:将通带截止频率修改为2kHz,或者将最小阻带衰减改为,这时再重复(3)和(5)的步骤,观察所得到的滤波器效果,并对这一结果进行解释。五、实验数据及结果分析
34、:程序:(1)产生输入FSK信号的程序(4) FIR滤波器设计程序(5) IIR滤波器设计程序(6) FIR滤波器实现程序(用滤波器系数对输入信号进行滤波)(7) IIR滤波器实现程序(用滤波器系数对输入信号进行滤波)。结果:(1)产生的输入FSK信号的时域和频域波形(2)FIR滤波结果,时域和频域波形。(3)IIR滤波结果,时域和频域波形。实验五 双音多频信号的产生与检测一、 实验目的和任务:a) 实验目的1. 理解DTMF信号的产生原理及其检测方法;2. 提高分析和解决问题的能力;3. 提高运用数字信号处理实际问题的能力。b) 实验任务在Matlab平台完成双音多频信号的产生与检测。二、
35、实验原理A. 双音多频信号产生与检测:1. 双音多频信号的工作原理及产生方法双音多频(DTMF, Dual-Tone Multi-Frequency)信号及其产生与检测技术广泛应用于电话信号处理,用来完成拨号、自动重播、自助电话查询等任务。现在所用的电话,每一个数字按键都是由两种频率的单音信号组成的,这两种单音信号被分为高频带和低频带。高低频带各由四个频率组成。每一位号码均由一个低频带频率和一个高频带频率叠加形成。如图1所示是国际标准认可的数字和符号键的频率分配情况。图1 键盘的双音多频方案每个按键对应的DTMF信号为: (1)其中和分别是低频单音和高频单音。一般而言,电话中的双音多频信号有两
36、个作用:(1) 用拨号信号去控制交换机接通被叫的用户电话机;(2) 控制电话机的各种动作,如播放留言等。2. 双音多频信号的常用产生方法如下:1) 直接计算法利用定义式(1),在MATLAB中用指令直接计算,但是运算量和实现成本较高。2) 查表法该方法的思想是构造一个正/余弦函数查找表,表中所列为正/余弦函数的值,通过将表中的值以不同幅度和不同采样间隔输出,就可以得到任意幅度、任意频率的正弦或余弦波。但此方法运算量虽低,但是对存储量的要求很高。3) 数字振荡器法数字振荡器的本质是,使用一个IIR滤波器,通过把它的极点放在单位圆上来产生振荡。利用正弦波的指数形式,可以得到正弦序列的z变换为 (2
37、)上式在时成立,且 根据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信号检测的目的,是判断被检测信号中是否含有相应的DTMF频率对。因此完成DTMF检测的基本方法就是对信号进行频谱分析,看对应的频率分量上是否出现能量峰
38、值。双音多频信号的检测方法主要有以下几种:1) FFT或DFT用FFT(DFT)是对双音多频信号进行频谱分析,由信号的幅度谱,判断信号的两个频率,最后确定相应的数字或符号。FFT是DFT的快速算法,但当DFT的变换区间较小时,FFT快速算法的效果并不明显,而且还要占用很多内存,因此不如直接用DFT合适。DFT的计算式如下所示, (6)2)基于Goertzel算法的DTMF信号检测Goertzel算法的基本思想是将每一个频点的DFT运算转换成一个匹配滤波器,通过滤波来实现DFT,对(6)式进行简单的变换可得, (7)式(7)的右边可以看作是两个序列和的卷积。如果定义,那么 (8)即可以看作是将和
39、进行卷积,在第N个节拍输出的结果。如果将看作是一个系统(或滤波器)的单位冲激响应,那么,Xk就是经过该系统后的第 N 个输出点。改变 k 值,可以计算不同的频域采样点, k = 0, 1, , N-1。所以,点DFT可以通过如图3所示的方式实现:将时域序列xn输入到个系统中,这些系统的冲激响应分别为,, 将所有输出序列的第个输出点收集起来,就得到xn的点 DFT。图中的个滤波器构成了一组并行滤波器组,因此,Goertzel算法特 别适合DFT的并行实现和模块化实现。图3 Goertzel算法原理如果只需要计算某一个单点DFT,如,那么将输入第个滤波器并输出第个时刻的响应即可。 对第个滤波器的冲
40、激响应进行变换, 可以得到该滤波器的系统传输函数为, (9)由上式可知,该滤波器有一个极点在处,对应频率为,因此滤波器 在频率附近的响应较大。图4 Goertzel算法原理画出该滤波器的幅频响应和相频响应,如图4所示。由图可知 实际上可以看作是一个带通滤波器,通带中心为。因此,只有当输入信号的频率在附近时,系统才有较大的输出,从而检测到该频率成分。 同理,图3中的每一个滤波器都是一个带通滤波器,通带中心分别为0,。 基于式(9)画出滤波器的系统框图,如图5(a)所示由式(9)可得系统输入输出差分方程为 (10)容易发现,式(10)的运算量与标准DFT运算量相同,计算单点DFT仍需要次复数乘法。但是,Goertzel算法不再需要存储旋转因子,节省了大量的存储空间。图5 Goertzel算法系统框架图另外,由于式(10)中仍然存在复数乘法和加法运算,而复数运算对运算量消耗 较大,因此,在实际应用中,常对式(10)做如下变形: (11) 其对应的系统框图如图5(b)所示。由此可得系统输入输出差分方程为 (12) 上式仍然涉及复数运算。但是,由于,因此计算DFT 只需要计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年面试时间管理与效率提升
- 2026年地铁电力系统的可靠性与优化配置题
- 2026年发改系统要素市场化配置题库
- 2026年物流数据安全应用题库
- 2026年青年海外志愿服务政策题库
- 2026年房地产经纪人考试备考指南及模拟题
- 2026年商业案例分析测试决策过程中的逻辑思维应用
- 2026年从基础到高级题型全解析
- 2026年科技人员实验数据记录与管理考核题库
- 2026年乡镇区域养老服务中心建设测试题
- 内部控制工作小组成立方案
- 心理健康志愿者培训课件
- 2026秋招:太平洋保险集团笔试题及答案
- 低钙血症诊疗指南(2025年版)
- 果园土地租赁合同范本
- 乳牙治疗知情同意书
- 2026年浙江高考地理真题试卷+参考答案
- 中医护理在风湿科的应用
- 中国临床肿瘤学会(csco)乳腺癌诊疗指南
- 污水处理厂设备采购及安装供货方案
- 数据安全管理员(高级技师)职业技能鉴定考试题库(共500题)
评论
0/150
提交评论