数字信号处理
实验指导书
王武 编写
适用专业:测控技术与仪器
贵州大学 二OO 四年六月
1
前言
一、实验目的:
数字信号处理是一门工程技术基础性质的课程,因此实验方法的学习是本门课教学过程中的一个必不可少的环节。其目的为:
(一)依据理论课的内容对重要的原理加以验证,巩固和加深所学的理论知识,使学生更深入,形象地理解掌握所学知识。
(二)熟悉典型数字信号处理技术。
(三)熟悉数字信号处理软件Matlab的操作。
(四)学会处理实验数据,分析实验结果,编写实验报告;培养严谨、实事求是的科学作风,并从实验结果中分析出正确结论。
(五)学会查找实验故障,并排除故障。
(六)培养科学的工作态度,即认真地按要求完成操作。做到细致、周密,并勤于动手,善于思考。
二、实验要求:
(一)进入实验室以前,必须复习与此次实验的有关理论知识。了解本次实验的实验目的、原理、内容、仪器及注意事项等,并完成理论分析与计算,并做好预习报告。
(二)进入实验后,首先认真检查仪器、设备是否齐全、完好。
(三)实验中遇有异常气味和危险现象时,应立即切断电源并通知指导教师,只有在找出故障后方可继续实验。
实验室规则
1 进入实验室后,按预先编号小组进入相应实验台,自觉遵守纪律,做实验时不得大声喧哗和打闹,不准做其他有碍实验的活动。进行实验时,如违反实验室各项规定,指导教师有权停止实验。
2 实验时一定要亲自动手,独立操作,对实验数据与波形要认真、实事求是地做以记录,善始善终。对无故缺课者原则上不予补做,并以实验不及格处理。
3 测量数据和使用仪器时应注意设备及人身安全,要特别小心,防止触电故事的发生。 4 要以主人翁的态度爱护实验设备、仪器、仪表,按操作规程使用,不得无目的乱旋乱开,不得乱动与本次实验无关的仪器、设备。对违章使用造成仪器、仪表损坏者,视情节轻重按学校的有关规定严肃处理。
2
目录
1、实验一:离散时间信号分析···················································································· 4 2、实验二:离散时间系统分析···················································································· 7 3、实验三:用FFT进行谱分析····················································································11 4、实验四:利用FFT实现快速卷积·············································································15 5、实验五:无限冲激响应(IIR)数字滤波器的设计······················································18 6、实验六:有限冲激响应(FIR)数字滤波器的设计······················································21 7、实验七:数字信号处理综合设计·············································································25 8、实验报告基本内容要求····························································································27 9、实验报告格式··········································································································28
3
实验一 离散时间信号分析
实验学时:2 实验类型:验证 实验要求:必修 一、实验目的
1.掌握各种常用的序列,理解其数学表达式和波形表示。 2.掌握在计算机中生成及绘制数字信号波形的方法。
3.掌握序列的相加、相乘、移位、反褶等基本运算及计算机实现与作用。 4.掌握线性卷积软件实现的方法。
5.掌握计算机的使用方法和常用系统软件及应用软件的使用。 6.通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。
二、实验原理
1.序列的基本概念
离散时间信号在数学上可用时间序列{x(n)}来表示,其中x(n)代表序列的第n个数字,n代表时间的序列,n的取值范围为n的整数,n取其它值x(n)没有意义。离散时间信号可以是由模拟信号通过采样得到,例如对模拟信号xa(t)进行等间隔采样,采样间隔为T,得到{xa(nT)}一个有序的数字序列就是离散时间信号,简称序列。
2.常用序列
常用序列有:单位脉冲序列(单位抽样)(n)、单位阶跃序列u(n)、矩形序列RN(n)、实指数序列、复指数序列、正弦型序列等。
3.序列的基本运算
序列的运算包括移位、反褶、和、积、标乘、累加、差分运算等。 4.序列的卷积运算
y(n)mx(m)h(nm)x(n)h(n)
上式的运算关系称为卷积运算,式中代表两个序列卷积运算。两个序列的卷积是一个序列与另一个序列反褶后逐次移位乘积之和,故称为离散卷积,也称两序列的线性卷积。其计算的过程包括以下4个步骤。
(1)反褶:先将x(n)和h(n)的变量n换成m,变成x(m)和h(m),再将h(m)以纵轴为对称轴反褶成h(m)。
(2)移位:将h(m)移位n,得h(nm)。当n为正数时,右移n位;当n为负数时,
4
左移n位。
(3)相乘:将h(nm)和x(m)的对应点值相乘。
(4)求和:将以上所有对应点的乘积累加起来,即得y(n)。
三、主要实验仪器及材料
微型计算机、Matlab编程环境。
四、实验内容
1.知识准备
认真复习以上基础理论,理解本实验所用到的实验原理。 2.离散时间信号(序列)的产生
利用MATLAB或C语言编程产生和绘制下列有限长序列: (1)单位脉冲序列(n) (2)单位阶跃序列u(n) (3)矩形序列R8(n)
(4)正弦型序列x(n)Asin(n35)
(5)任意序列
x(n)(n)2(n1)3(n2)4(n3)5(n4) h(n)(n)2(n1)(n2)2(n3)
3.序列的运算
利用MATLAB或C语言编程完成上述两序列的移位、反褶、和、积、标乘、累加等运算,并绘制运算后序列的波形。
4.卷积运算
利用MATLAB或C语言编制一个计算两个序列线性卷积的通用程序,计算上述两序列
x(n)h(n),并绘制卷积后序列的波形。
5.上机调试并打印或记录实验结果。 6.完成实验报告。
五、思考题
1.如何产生方波信号序列和锯齿波信号序列?
2.实验中所产生的正弦序列的频率是多少?是否是周期序列?
六、实验报告要求
1.简述实验原理及目的。
2.列出计算卷积的公式,画出程序框图,并列出实验程序清单(可略)(包括必要的程
5
序说明)。
3.记录调试运行情况及所遇问题的解决方法。 4.给出实验结果,并对结果作出分析。 5.简要回答思考题。
6
实验二 离散时间系统分析
实验学时:2 实验类型:验证 实验要求:必修 一、实验目的
1.掌握离散时间信号与系统的时域分析方法。
2.掌握序列傅氏变换的计算机实现方法,利用序列的傅氏变换对离散信号、系统及系统响应进行频域分析。
3.熟悉理想采样的性质,了解信号采样前后的频谱变化,加深对采样定理的理解。
二、实验原理
1.离散时间系统
一个离散时间系统是将输入序列变换成输出序列的一种运算。若以T[]来表示这种运算,则一个离散时间系统可由下图来表示:
T[]
图 离散时间系统
输出与输入之间关系用下式表示
y(n)T[x(n)]
离散时间系统中最重要、最常用的是线性时不变系统。 2.离散时间系统的单位脉冲响应
设系统输入x(n)(n),系统输出y(n)的初始状态为零,这是系统输出用h(n)表示,即h(n)T[(n)],则称h(n)为系统的单位脉冲响应。
可得到:y(n)mx(m)h(nm)x(n)h(n)
该式说明线性时不变系统的响应等于输入序列与单位脉冲序列的卷积。 3.连续时间信号的采样
采样是从连续信号到离散时间信号的过渡桥梁,对采样过程的研究不仅可以了解采样前后信号时域何频域特性发生的变化以及信号内容不丢失的条件,而且有助于加深对拉氏变
7
换、傅氏变换、Z变换和序列傅氏变换之间关系的理解。
对一个连续时间信号进行理想采样的过程可以表示为信号与一个周期冲激脉冲的乘积,
ˆa(t)xa(t)T(t) 即:xˆa(t)是连续信号xa(t)的理想采样,T(t)是周期冲激脉冲 其中,xT(t)m(tmT)
ˆa(t)的傅立叶变换分别为设模拟信号xa(t),冲激函数序列T(t)以及抽样信号xˆ(j),即 Xa(j)、M(j)和XaXa(j)F[xa(t)]
M(j)F[T(t)] ˆ(j)F[xˆa(t)] Xa根据连续时间信号与系统中的频域卷积定理,式(2.59)表示的时域相乘,变换到频域为卷积运算,即
ˆ(j)1[M(j)X(j)] Xaa2其中
Xa(j)F[xa(t)]xa(t)ejtdt
1ˆ(j)由此可以推导出XXa(jjks) aTk由上式可知,信号理想采样后的频谱式原来信号频谱的周期延拓,其延拓周期等于采样频率。根据香农定理,如果原信号是带限信号,且采样频率高于原信号最高频率的2倍,则采样后的离散序列不会发生频谱混叠现象。 4.有限长序列的分析
对于长度为N的有限长序列,我们只观察、分析在某些频率点上的值。
x(n),x(n)00nN1其它n
一般只需要在0~2之间均匀的取M个频率点,计算这些点上的序列傅立叶变换:
X(ejk)x(n)ejnk
n0N1 8
其中,k2k/M,k0,1,,M1。X(e曲线。
j)是一个复函数,它的模就是幅频特性
三、主要实验仪器及材料
微型计算机、Matlab6.5教学版、TC编程环境。
四、实验内容
1.知识准备
认真复习离散信号与系统、单位脉冲响应、抽样定理等有关内容,阅读本实验原理与方法。
2.编制信号产生子程序,用于产生实验中要用到的信号序列 (1)系统单位脉冲响应序列
h(n)(n)2(n1)3(n2)2(n3)(n4)
(2)矩形序列
x(n)R6(n)
(3)理想采样信号序列 对信号xa(t)Aetcos(t)u(t)进行理想采样,可以得到一个理想的采样信号序列
x(nT)AenTcos(nT)u(n),0n100。其中A为幅度因子,是衰减因子,是频
率,T为采样周期。这几个参数要在实验过程中输入,以产生不同的x(n)。
3.离散信号、系统和系统响应的分析
观察信号x(n)和系统h(n)的时域和频域特性;利用线性卷积求信号通过系统以后的响应。比较系统响应和系统的时域和幅频特性。注意它们之间有无差异,绘出图形。
4.分析理想采样信号序列的特性 产生理想采样信号序列,使:
(1)首先选用采样频率为1000Hz,T=1/1000,观察所得理想采样信号的幅频特性,在折叠频率以内和给定的理想幅频特性无明显差异,并作记录。
(2)改变采样频率为300Hz,T=1/300,观察所得理想采样信号的幅频特性曲线的变化,并作记录。
(3)进一步减小采样频率为200Hz,T=1/200,观察频谱混叠现象是否明显存在,说明原因,并记录此时的幅频特性曲线。
9
五、思考题
1.线性时不变系统的输出的长度与输入和系统的单位冲激响应的长度有什么关系? 2. 对信号进行理想抽样时,抽样频率不同,相应理想采样序列傅立叶变换频谱的数字频率度量是否都相同7它们所对应的模拟频率是否相同?为什么?
六、实验报告要求
1.简述实验原理及目的。
2. 总结在上机实验内容中要求比较时域、幅频曲线差异部分内容的结果,定性分析它们正确与否,并简要说明这些结果的含义。
3.总结实验所得主要结论。 4.简要回答思考题。
10
实验三 用FFT进行谱分析
实验学时:2 实验类型:设计 实验要求:必修 一、实验目的
1.进一步加深对DFT算法原理和基本性质的理解(因为FFT只是DFT的一种快速算法,
所以FFT的运算结果必然满足DFT的基本性质)。 2.熟悉FFT算法原理和FFT子程序的应用。
3.学习用FFT对连续信号和时域离散信号进行谱分析的方法,了解可能出现的分析误差及其原因,以便在实际中正确应用FFT。
二、实验原理
1.快速傅立叶变换(FFT)算法
长度为N的序列x(n)的离散傅立叶变换X(k)为:
nkX(k)x(n)WN,k0,....,N1
n0N1N点的DFT可以分解为两个N/2点的DFT,每个N/2点的DFT又可以分解为两个N/4点的DFT。依此类推,当N为2的整数次幂时(N2),由于每分解一次降低一阶幂次,所以通过M次的分解,最后全部成为一系列2点DFT运算。以上就是按时间抽取的快速傅立叶变换(FFT)算法。当需要进行变换的序列的长度不是2的整数次方的时候,为了使用以2为基的FFT,可以用末尾补零的方法,使其长度延长至2的整数次方。
序列X(k)的离散傅立叶反变换为
M1x(n)NX(k)Wk0N1nkN,1n0,....,N1
离散傅立叶反变换与正变换的区别在于WN变为WN,并多了一个1N的运算。因为WN和
1WN对于推导按时间抽取的快速傅立叶变换算法并无实质性区别,因此可将FFT和快速傅立
叶反变换(IFFT)算法合并在同一个程序中。
2.利用FFT进行频谱分析
11
若信号本身是有限长的序列,计算序列的频谱就是直接对序列进行FFT运算求得X(k),
X(k)就代表了序列在0,2之间的频谱值。
幅度谱 X(k)2XR(k)XI2(k)
相位谱 (k)arctanXI(k)
XR(k)若信号是模拟信号,用FFT进行谱分析时,首先必须对信号进行采样,使之变成离散信号,然后就可按照前面的方法用FFT来对连续信号进行谱分析。按采样定理,采样频率fs应大于2倍信号的最高频率,为了满足采样定理,一般在采样之前要设置一个抗混叠低通滤波器。用FFT对模拟信号进行谱分析的方框图如下所示。
抗混叠低通滤波器 采样T=1/fs N点FFT
三、主要实验仪器及材料
微型计算机、Matlab6.5教学版、TC编程环境。
四、实验内容
1.知识准备
实验前学生应认真复习DFT和FFT有关的知识,掌握快速傅里叶变换的基本原理以及如何用FFT等计算信号频谱。
2.离散时间信号(序列)的产生
利用MATLAB或C语言编程产生和绘制下列两有限长序列:
cos(nT)、
8sin(nT)、sin(0.25nT)2*cos(0.5nT) nTcos(0.125nT)2cos(0.25nT)、sin(0.25nT)
3.用一种语言编写FFT的通用程序块
4.画主程序实现框图并编写主程序,实现信号的谱分析。 5.记录下实验内容中各信号x(n)的X(k)值,作出频谱图。
五、思考题
1. 根据实验中各x(n)的X(k)值以及频谱图,说明参数的变化对信号频谱产生哪些影响?
12
2.如果周期信号的周期预先不知道,如何用FFT进行分析?
六、实验报告要求
1.简述实验原理及目的。
2.结合实验中所得给定典型序列幅频特性曲线,与理论结合比较,并分析说明误差产生的原因以及用FFT作谱分析时有关参数的选择方法。
3.总结实验所得主要结论。 4.简要回答思考题。
FFT参考子程序
void fft(double *dr,double *di,int N) {
int lh,m; lh=N/2;
m=int(log(N)/log(2)+0.9999); int j=lh; int k;
for(int i=1;i<(N-1);i++) { }
for(i=1;i<=m;i++) {
int b=int(pow(2.0,(i-1))); for(j=0;jdouble p;
p=j*pow(2.0,(m-i))*2.0*PI/N; if(i double tr,ti; tr=dr[i];ti=di[i]; dr[i]=dr[j];di[i]=di[j]; dr[j]=tr;di[j]=ti; 13 for(k=j;k } } dr[k+b]=dr[k]-tr; di[k+b]=di[k]-ti; dr[k]=dr[k]+tr; di[k]=di[k]+ti; k=int(k+pow(2.0,i)); } 14 实验四 利用FFT实现快速卷积 实验学时:2 实验类型:设计 实验要求:必修 一、实验目的 1.加深理解FFT在实现数字滤波(或快速卷积)中的重要作用,更好的利用FFT进行数字信号处理。 2.掌握循环卷积和线性卷积两者之间的关系。 二、实验原理 数字滤波器根据系统的单位脉冲响应h(n)是有限长还是无限长可分为有限长单位脉冲响应(Finite Impulse Response)系统(简记为FIR系统)和无限长单位脉冲响应(Infinite Impulse Response)系统(简记为IIR系统)。 对于FIR滤波器来说,除了可以通过数字网络来实现外,也可以通过FFT的变换来实现。 首先我们知道,一个信号序列x(n)通过FIR滤波器时,其输出应该是x(n)与h(n)的卷积: y(n)x(n)*h(n)mx(m)h(nm) 当h(n)是一个有限长序列,即h(n)是FIR滤波器,且0nN1时 y(n)h(m)x(nm) m0N1在数字网络类的FIR滤波器中,普遍使用的横截型结构就是按这个卷积公式构成的。 应用FFT实现数字滤波器实际上就是用FFT来快速计算有限长度序列的线性卷积。 这种方法就是先将输入信号x(n)通过FFT变换为它的频谱采样值X(k),然后再和FIR滤波器的频响采样值H(k)相乘,H(k)可事先存放在存储器中,最后再将乘积H(k)X(k)通过快速傅里叶变换(简称IFFT)还原为时域序列,即得到输出y(n)。 H(k) x(n) FFT H(k)X(k) IFFT 现以FFT求有限长序列间的卷积及求有限长度序列与较长序列间的卷积为例来讨论FFT的快速卷积方法。 1.序列x(n)和h(n)的长差不多。设x(n)的长为N1,h(n)的长为N2,要求 N1X(k) y(n) y(n)x(n)y(n)h(m)x(nm) m0 15 用FFT完成这一卷积的具体步骤如下: ①为使两有限长序列的线性卷积可用其循环卷积代替而不发生混叠,必须选择循环卷积长度NN1N21,若采用基2-FFT完成卷积运算,要求N2m(m为整数)。 ②用补零方法使x(n)和h(n)变成列长为N的序列。 0nN11x(n) x(n)N1nN100nN21h(n) h(n)N2nN10③用FFT计算x(n)和h(n)的N点离散傅里叶变换 ④完成X(k)和H(k)乘积,Y(k)x(k)H(k) ⑤用FFT计算Y(k)的离散傅里叶反变换得 *1nkN11*nk y(n)Y(k)WNY(k)WNk0Nk0N2.当x(n)长度很长时,即N1N2,通常不允许等x(n)全部采集齐后再进行卷积,否则使输出相对于输入有较长的延时,另外,若N1N21太大,h(n)要补上太多的零点,很不经济,且FFT的计算时间也要很长。为此,采用分段卷积的方法,即把x(n)分成长度与h(n)相仿的一段段,分别求出每段卷积的结果,然后用相应的方式把它们结合起来,便是总的输出。分段卷积方法主要有两种,即重叠相加法和重叠保留法。具体内容请参考数字信号处理教材中“快速离散傅里叶变换”一章中的线性卷积的FFT算法部分,本实验这部分不作重点要求。 N1三、主要实验仪器及材料 微型计算机、Matlab6.5教学版、TC编程环境。 四、实验内容 1.数字滤波器的脉冲响应为h(n)1/2RN2(n),N2取8。 n输入序列x(n)可选下列几种情况 ①x(n)RN1(n) ,N1取8。 ②x(n)cos2RN(n) ,N1取8。 N11n1③x(n)RN1(n) ,N1取8。 32.实验前,预先计算好x(n)*h(n)的值。 3.实验前,预先编制一个应用FFT实现数字滤波器的通用程序。 4.上机独立调试,并打印或记录实验结果。 5.将实验结果与预先笔算的结果比较,验证其正确性。 五、思考题 16 1.N同时取8、16、32时,线性卷积和循环卷积的结果有何不同,为什么? 2.分析直接计算线性卷积和利用FFT计算线性卷积的时间。 六、实验报告要求 1.简述实验原理及目的。 2.记录调试运行情况及所遇问题的解决方法。 3. 给出实验结果,并对结果作出分析。 4.简要回答思考题。 17 实验五 IIR数字滤波器的设计 实验学时:2 实验类型:设计 实验要求:必修 一、实验目的 1.掌握双线性变换法及脉冲相应不变法设计IIR数字滤波器的具体设计方法及其原理,熟悉用双线性变换法及脉冲响应不变法设计低通、高通和带通IIR数字滤波器的计算机编程。 2.观察双线性变换及脉冲响应不变法设计的滤波器的频域特性,了解双线性变换法及脉冲响应不变法的特点。 3.熟悉Butterworth滤波器、Chebyshev滤波器和椭圆滤波器的频率特性。 二、实验原理 1.利用模拟滤波器设计IIR数字滤波器方法 (1)根据所给出的数字滤波器性能指标计算出相应的模拟滤波器的设计指标。 (2)根据得出的滤波器性能指标设计出相应的模拟滤波器的系统函数H(S)。 (3)根据得出的模拟滤波器的系统函数H(S),经某种变换得到对该模拟滤波器相应的数字仿真系统——数字滤波器。 将模拟滤波器转换成数字滤波器的实质是,用一种从s平面到z平面的映射函数将Ha(s)转换成H(z)。对这种映射函数的要求是:(1) 因果稳定的模拟滤波器转换成数字滤波器,仍是因果稳定的。 (2)数字滤波器的频率响应模仿模拟滤波器的频响,s平面的虚轴映射z平面的单位圆,相应的频率之间成线性关系。脉冲响应不变法和双线性变换法都满足如上要求。 2.脉冲响应不变法 用数字滤波器的单位脉冲响应序列h(n)模仿模拟滤波器的冲激响应ha(t),让h(n)正好等于ha(t)的采样值,即h(n)=ha(nT),其中T为采样间隔。 3.双线性变换法 s平面与z平面之间满足以下映射关系: 1z1s 1z1s平面的虚轴单值地映射于z平面的单位圆上,s平面的左半平面完全映射到z平面的单位圆内。双线性变换不存在混叠问题。 18 双线性变换时一种非线性变换tg(/2),这种非线性引起的幅频特性畸变可通过预畸而得到校正。 以低通数字滤波器为例,将设计步骤归纳如下: (1)确定数字滤波器的性能指标:通带临界频率fp、阻带临界频率fs;通带内的最大衰减Ap;阻带内的最小衰减As; (2)确定相应的数字角频率,ωp=2πfp;ωs=2πfs; (3)计算经过预畸的相应模拟低通原型的频率,tg(/2); (4)根据Ωp和Ωs计算模拟低通原型滤波器的阶数N,并求得低通原型的传递函数Ha(s); (5)用上面的双线性变换公式代入Ha(s),求出所设计的传递函数H(z); (6)分析滤波器特性,检查其指标是否满足要求。 三、主要实验仪器及材料 微型计算机、Matlab6.5教学版、TC编程环境。 四、实验内容 1.知识准备 在实验前复习数字信号处理理论课中有关滤波器设计的知识,认真阅读本实验的原理部分。 2.编制用脉冲响应不变法和用双线性变换法设计IIR数字滤波器的程序。采样周期、通带和阻带临界频率以及相应的衰减等参数在程序运行时输入;根据这些输入参数,计算阶数N、传递函数;输出分子分母系数;绘制幅频特性曲线,绘制点数为50点。 (1)利用脉冲响应不变法设计Butterworth、Chebyshev和椭圆数字低通滤波器,要求满足p0.2,s0.6,Ap2dB,Aa15dB。 (2)利用双线性变换法设计Butterworth、Chebyshev和椭圆数字滤波器,要求满足 p0.2,s0.6,Ap2dB,Aa15dB。 (3)设计Butterworth、Chebyshev和椭圆高通数字滤波器,3dB数字截止频率为 c0.2rad,阻带下边频s0.05rad,阻带衰减As48dB。 五、实验思考 1.双线性变换法中Ω和ω之间的关系是非线性的,在实验中你注意到这种非线性关系了吗?从那几种数字滤波器的幅频特性曲线中可以观察到这种非线性关系? 2.能否利用公式完成脉冲响应不变法的数字滤波器设计?为什么? 六、实验报告要求 19 1.简述实验原理及目的。 2.按照实验步骤及要求,比较各种情况下的滤波性能。 3.总结实验所得主要结论。 4.简要回答思考题。 20 实验六 FIR数字滤波器的设计 实验学时:2 实验类型:设计 实验要求:必修 一、实验目的 1.熟悉FIR滤波器的设计基本方法 2.掌握用窗函数设计FIR数字滤波器的原理与方法,熟悉相应的计算机高级语言编程。 3.熟悉线性相位FIR滤波器的幅频特性和相位特性。 4.了解各种不同窗函数对滤波器性能的影响。 二、实验原理与方法 FIR滤波器的设计问题在于寻求一系统函数H(z),使其频率响应H(e求的理想频率响应Hd(ejj)逼近滤波器要 ),其对应的单位脉冲响应hd(n)。 1.用窗函数设计FIR滤波器的基本方法 设计思想:从时域从发,设计h(n)逼近理想hd(n)。设理想滤波器Hd(e冲响应为hd(n)。以低通线性相位FIR数字滤波器为例。 j)的单位脉 Hd(e)hd(n)12jnhjn(n)ed Hd(ej)ejndhd(n)一般是无限长的,且是非因果的,不能直接作为FIR滤波器的单位脉冲响应。要 想得到一个因果的有限长的滤波器h(n),最直接的方法是截断h(n)hd(n)w(n),即截取为有限长因果序列,并用合适的窗函数进行加权作为FIR滤波器的单位脉冲响应。按照线性相位滤波器的要求,h(n)必须是偶对称的。对称中心必须等于滤波器的延时常数,即 h(n)hd(n)w(n) a(N1)/2用矩形窗设计的FIR低通滤波器,所设计滤波器的幅度函数在通带和阻带都呈现出振荡现象,且最大波纹大约为幅度的9%,这个现象称为吉布斯(Gibbs)效应。为了消除吉布斯效应,一般采用其他类型的窗函数。 2.典型的窗函数 (1)矩形窗(Rectangle Window) w(n)RN(n) 21 其频率响应和幅度响应分别为: sin(N/2)jW(e)esin(/2)jN12,WR()sin(N/2) sin(/2)(2)三角形窗(Bartlett Window) 2nN1,w(n)2n2,N1jN12 N1nN120nN122sin(N/4)2j其频率响应为:W(e)[]eNsin(/2)(3)汉宁(Hanning)窗,又称升余弦窗 12nw(n)[1cos()]RN(n) 2N1其频率响应和幅度响应分别为: j(22W(e){0.5WR()0.25[WR()WR()]}eN1N1W()ejajN1)2 W()0.5WR()0.25[WR(22)WR()]N1N1(4)汉明(Hamming)窗,又称改进的升余弦窗 2nw(n)[0.540.46cos()]RN(n) N1其幅度响应为:W()0.54WR()0.23[WR(22)WR()] N1N1(5)布莱克曼(Blankman)窗,又称二阶升余弦窗 2n4nw(n)[0.420.5cos()0.08cos()]RN(n) N1N122W()0.42WR()0.25[WR()WR()]N1N1其幅度响应为: 440.04[WR()WR()]N1N1(6)凯泽(Kaiser)窗 I0(1[12n/(N1)]2)w(n),0nN1 I0()其中:β是一个可选参数,用来选择主瓣宽度和旁瓣衰减之间的交换关系,一般说来,β越 22 大,过渡带越宽,阻带越小衰减也越大。I0(·)是第一类修正零阶贝塞尔函数。 若阻带最小衰减表示为As20log10s,β的确定可采用下述经验公式: 00.5842(As21)0.40.07886(As21)0.1102(A8.7)sAs2121As50 As50若滤波器通带和阻带波纹相等即δp=δs时,滤波器节数可通过下式确定: NAs7.951 14.36Fsp式中:F 223.利用窗函数设计FIR滤波器的具体步骤如下: (1)按允许的过渡带宽度△ω及阻带衰减AS,选择合适的窗函数,并估计节数N: 其中A由窗函数的类型决定。 (2)由给定的滤波器的幅频响应参数求出理想的单位脉冲响应hd(n)。 (3)确定延时值 (4)计算滤波器的单位取样响应h(n),h(n)hd(n)w(n)。 (5)验算技术指标是否满足要求。 三、主要实验仪器及材料 微型计算机、Matlab6.5教学版、TC编程环境。 四、实验内容及步骤 1.知识准备 在实验编程之前,认真复习有关FIR滤波器设计的有关知识,尤其是窗函数的有关内容,阅读本次实验指导,熟悉窗函数及四种线性相位FIR滤波器的特性,掌握窗函数设计滤波器的具体步骤。 2.编制窗函数设计FIR滤波器的主程序及相应子程序。绘制它的幅频和相位曲线,观察幅频和相位特性曲线的变换情况,注意长度N对曲线的影响。 (1) 设计一线性相位FIR数字低通滤波器,截止频率c0.2,过渡带宽度0.4,阻带衰减As40dB。 (2) 设计一线性相位FIR数字高通滤波器,要求通带截止频率p0.5,阻带截止频率 s0.25,通带最大衰减Ap1dB,阻带最小衰减As40dB。 (3) 用Kaiser窗设计满足下列指标的线性相位FIR低通滤波器。p0.3, 23 s0.5,Ap=1dB, As=40dB。 五、实验思考 1.定性地说明用本实验程序设计的FIR滤波器的3dB截止频率在什么位置?它等于理想频率响应Hd(ejω)的截止频率吗? 2.如果没有给定h(n)的长度N,而是给定了通带边缘截止频率ωc和阻带临界频率ωp,以及相应的衰减,你能根据这些条件用窗函数法设计线性相位FIR低通滤波器吗? 六、实验报告要求 1.简述实验原理及目的。 2.按照实验步骤及要求,比较各种情况下的滤波性能。 3.总结实验所得主要结论。 4.简要回答思考题。 24 实验七 数字信号处理综合设计 实验学时:2 实验类型:设计 实验要求:必修 一、实验目的 1.学会MATLAB的使用,掌握MATLAB的程序设计方法; 2.掌握在Windows环境下语音信号采集的方法; 3.掌握数字信号处理的基本概念、基本理论和基本方法; 4.掌握MATLAB设计FIR和IIR数字滤波器的方法; 5.学会用MATLAB对信号进行分析和处理。 二、实验原理 参考《数字信号处理》教材。 三、主要实验仪器及材料 微型计算机、Matlab6.5教学版、TC编程环境。 四、实验内容 1.语音信号的采集 要求利用windows下的录音机或其他软件,录制一段自己的话音,时间控制在1秒左右。然后在MATLAB软件平台下,利用函数wavread对语音信号进行采样,记住采样频率和采样点数。通过wavread函数的使用,要求理解采样频率、采样位数等概念。 wavread函数调用格式: y=wavread(file),读取file所规定的wav文件,返回采样值放在向量y中。 [y,fs,nbits]=wavread(file),采样值放在向量y中,fs表示采样频率(Hz),nbits表示采样位数。 y=wavread(file,N),读取前N点的采样值放在向量y中。 y=wavread(file,[N1,N2]),读取从N1点到N2点的采样值放在向量y中。 2.语音信号的频谱分析 要求首先画出语音信号的时域波形;然后对语音信号进行频谱分析,在MATLAB中,可以利用函数fft对信号进行快速付立叶变换,得到信号的频谱特性;从而加深对频谱特性的理解。 25 3.设计数字滤波器和画出频率响应 根据语音信号的特点给出有关滤波器的性能指标:1)低通滤波器性能指标,fp=1000Hz,fc=1200 Hz, As=100dB,Ap=1dB;2)高通滤波器性能指标,fc=4800 Hz,fp=5000 Hz As=100dB,Ap=1dB;3)带通滤波器性能指标,fp1=1200 Hz,fp2=3000 Hz,fc1=1000 Hz,fc2=3200 Hz,As=100dB,Ap=1dB。要求学生首先用窗函数法设计上面要求的三种滤波器,在MATLAB中,可以利用函数fir1设计FIR滤波器;然后在用双线性变换法设计上面要求的三种滤波器,在MATLAB中,可以利用函数butte、cheby1和ellip设计IIR滤波器;最后,利用MATLAB中的函数freqz画出各滤波器的频率响应。 4.用滤波器对信号进行滤波 比较两种滤波器的性能,然后用性能好的各滤波器分别对采集的信号进行滤波,在MATLAB中,FIR滤波器利用函数fftfilt对信号进行滤波,IIR滤波器利用函数filter对信号进行滤波。 5.比较滤波前后语音信号的波形及频谱 要求在一个窗口同时画出滤波前后的波形及频谱。 6.回放语音信号 在MATLAB中,函数sound可以对声音进行回放。其调用格式: sound(x,fs,bits); 可以感觉滤波前后的声音有变化。 五、实验思考 1.双线性变换法中Ω和ω之间的关系是非线性的,在实验中你注意到这种非线性关系了吗?从那几种数字滤波器的幅频特性曲线中可以观察到这种非线性关系? 2.能否利用公式完成脉冲响应不变法的数字滤波器设计?为什么? 六、实验报告要求 1.简述实验原理及目的。 2.按照实验步骤及要求,比较各种情况下的滤波性能。 3.总结实验所得主要结论。 4.简要回答思考题。 26 附件五:(学生实验报告基本内容要求) 实验报告的基本内容及要求 每门课程的所有实验项目的报告必须以课程为单位装订成册,格式参见附件五。 实验报告应体现预习、实验记录和实验报告,要求这三个过程在一个实验报告中完成。 1.实验预习 在实验前每位同学都需要对本次实验进行认真的预习,并写好预习报告,在预习报告中 要写出实验目的、要求,需要用到的仪器设备、物品资料以及简要的实验步骤,形成一个操作提纲。对实验中的安全注意事项及可能出现的现象等做到心中有数,但这些不要求写在预习报告中。 设计性实验要求进入实验室前写出实验方案。 2.实验记录 学生开始实验时,应该将记录本放在近旁,将实验中所做的每一步操作、观察到的现象 和所测得的数据及相关条件如实地记录下来。 实验记录中应有指导教师的签名。 3.实验总结 主要内容包括对实验数据、实验中的特殊现象、实验操作的成败、实验的关键点等内容 进行整理、解释、分析总结,回答思考题,提出实验结论或提出自己的看法等。 27 附件六:实验报告格式 贵州大学实验报告 学院: 专业: 班级: 姓名 实验时间 实验项目名称 实验 目的 实验 要求 实验 原理 实验 仪器 实验 步骤 学号 指导教师 实验组 成绩 28 实验 内容 实验 数据 实验 总结 指导教师意见 签名: 年 月 日 注:各学院可根据教学需要对以上栏木进行增减。表格内容可根据内容扩充。 29 因篇幅问题不能全部显示,请点此查看更多更全内容