数字信号处理实验-滤波器设计.doc
文本预览下载声明
实 验 报 告
学生姓名: 学 号: 指导教师:
一、实验室名称:数字信号处理实验室
二、实验项目名称:数字滤波器的设计及实现
三、实验原理:
数字滤波器设计:
数字滤波器设计步骤:
根据给定的滤波器设计要求,得到参数化描述,即通带,阻带截止频率和,通带阻带纹波和等数据。
找一个数字系统函数G(z),使其频率响应逼近设计要求。
择合适的滤波器结构对满足要求的传递函数G(z)进行实现。
数字滤波器设计中的注意事项:
设计要求的参数化:图1给出了一个典型的数字低通滤波器的幅频特性说明。理解每个参数的物理含义。
滤波器类型选择:在数字滤波器实现中可选择IIR滤波器和FIR滤波器两种。在实现相同幅频特性时,IIR滤波器的阶数会相对FIR滤波器的更低;而在实现中,对相同阶数的两种滤波器来看,对每个采样值所做的乘法数量,IIR约为FIR的两倍;另外,FIR还可以方便地设计成线性相位滤波器。总的来说,IIR滤波器除不能实现线性相位这一点外,由于阶数的原因,从计算复杂度上较FIR滤波器有很大的优势。根据以上这些区别,结合实际的设计要求,就可以选择一款合适的滤波器。
波器设计的方法:由于IIR滤波器和FIR滤波器各自的结构特点,所以它们的设计方法也不一样。在IIR滤波器的设计中,常用的方法是:先根据设计要求寻找一个合适的模拟原型滤波器,然后根据一定的准则将此模拟原型滤波器转换为数字滤波器,即为我们需要设计的数字滤波器。在FIR滤波器设计中,一般使用比较直接的方法:根据设计的要求在时域对理想的冲击响应序列进行加窗逼近,或从频域对需要实现的频率响应特性进行采样逼近然后进行反FFT。
波器阶数估计:IIR滤波器的阶数就等于所选的模拟原型滤波器的阶数,所以其阶数确定主要是在模拟原型滤波器设计中进行的。FIR滤波器阶数估计可以根据很多工程中的经验公式,这些公式可以直接从设计的参数要求中估计滤波器阶数。例如,对FIR低通滤波器,已知通带截止频率,阻带截止频率,最大通带纹波和最大最带纹波,则可以使用下面的公式估计其阶数:
数字滤波器的设计方法:
IIR滤波器设计方法:
冲击响应不变法:
满足设计要求的模拟原型滤波器进行部分分式展开为:
由于 ,可以得到:
双线性变换法:
设计要求中给出的边界频率进行预畸处理,然后用得到的频率进行模拟滤波器设计,得到模拟原型滤波器。
B. 用双线性变换法求出数字滤波器:。
FIR滤波器设计方法:
窗函数法:
A. 根据设计的要求选择合适的窗函数,然后根据此窗计算阶数等参数N。
写出冲击响应序列的表达式:,其中,为理想的冲击响应序列,一般为无限长的,为长度为N的窗函数。
计算所得冲击响应序列的DTFT,然后验证其是否满足设计要求。
频率采样法:
根据设计要求估算滤波器阶数N。
对要求的频率响应特性进行采样,获得N个离散样点值H(k)。
对H(k)求N点IFFT,得到所需要的滤波器冲击响应序列h(n)。
计算所得冲击响应序列的DTFT,然后验证其是否满足设计要求。
滤波器的实现结构
FIR滤波器:
直接型实现结构
级联结构
并联结构
多相实现结构
线性相位型结构
IIR滤波器:
直接型实现结构:I型和II型
级联结构
并联结构
具体结构形式参见教材第六章内容。
在滤波器设计中使用到的MATLAB命令:
IIR滤波器设计函数:butter, buttord, chebwin, cheb1ord, cheb2ord, cheby1, cheby2, ellip, ellipord。
例如:用下面的MATLAB命令可估算一个Butterworth滤波器的阶数:
[N, Wn] = buttord(Wp, Ws, Rp, Rs)
FIR滤波器设计函数:fir1, fir2, remez, remezord, kaiser, kaiserord, hanning, hamming, blackman。
例如:用下面的MATLAB命令可根据式(7.18)估算一个FIR滤波器阶数:[N, fpts,mag,wt] = remezord(fedge,mval,dev)
MATLAB中提供的滤波器设计辅助设计软件(在命令窗口中键入“fdatool”即可启动),界面如下图1所示。在本界面中填写需要设计的滤波器参数,即可设计出需要的滤波器。还可以通过本工具提供的幅度,相位观察窗口观察设计出来的滤波器的幅度,相位特性等,并可以将设计好的滤波器冲激响应系数导出进行实现。
图1 MATLAB中滤波器辅助设计软件界面
四、实验目的:
从理论上讲,任何的线性时不变(LTI)离散时间系统都可以看做一个数字滤波器,因此设计数字滤波器实际就是设计离散时间系统。
本实验通过使用MATLA
显示全部