FIR的设计步骤可为:
(1) 根据对阻带衰减以及过渡带的指标要求,选择窗函数类型(有:矩形窗、三角窗、汉宁窗、哈明窗、凯塞窗等),并估计窗口长度N。先按照阻带衰减选择窗函数类型。在保证阻带衰减满足要求的情况下,尽量选择主瓣集中的窗函数。
(2)构造希望逼近的频率响应函数。
(3) 计算h(n),有限长序列。
(4) 加窗得到设计结果。
3.2.1. 用窗函数法设计FIR滤波器
根据过渡带宽及阻带衰减要求,选择窗函数的类型并估计窗口长度N(或阶数M=N-1),窗函数类型可根据最小阻带衰减As独立选择,因为窗口长度N对最小阻带衰减As没有影响,在确定窗函数类型以后,可根据过渡带宽小于给定指标确定所拟用的窗函数的窗口长度N,设待求滤波器的过渡带宽为Δw,它与窗口长度N近似成反比,窗函数类型确定后,其计算公式也确定了,不过这些公式是近似的,得出的窗口长度还要在计算中逐步修正,原则是在保证阻带衰减满足要求的情况下,尽量选择较小的N,在N和窗函数类型确定后,即可调用MATLAB中的窗函数求出窗函数wd(n)[9]。
根据待求滤波器的理想频率响应求出理想单位脉冲响应hd(n),如果给出待求滤波器频率应为Hd,则理想的单位脉冲响应可以用下面的傅里叶反变换式求出:
(3.9)
在一般情况下,hd(n)是不能用封闭公式表示的,需要采用数值方法表示;从w=0到w=2π采样N点,采用离散傅里叶反变换(IDFT)即可求出。
用窗函数wd(n)将hd(n)截断,并进行加权处理,得到 (3.10)
如果要求线性相位特性, 则h(n)还必须满足:
根据上式中的正、 负号和长度N的奇偶性又将线性相位FIR滤波器分成四类。 要根据所设计的滤波特性正确选择其中一类。 例如, 要设计线性相位低通特性可选择 一类,而不能选 一类。
验算技术指标是否满足要求,为了计算数字滤波器在频域中的特性,可调用freqz子程序,如果不满足要求,可根据具体情况,调整窗函数类型或长度,直到满足要求为止。
在设计FIR滤波器的时候,MATLAB还提供了一个根据滤波器设计指标计算窗函数的参数的函数文件,其调用形式如下:[n1,wn1,beta,ftype]=kaiserord(fpts,mag,dev)。参数n1是滤波器的阶数(n1=N-1,N是滤波器的或窗口的长度);wn1是归一化的边界频率;beta就是凯瑟窗的参数β;ftype是滤波器类型,如低通滤波器为low 。
3.2.2. 所设计的IIR滤波器的频谱图`
图3-7 FIR低通滤波器
图3-8 FIR带通滤波器
图3-9 FIR高通滤波器
具体程序及运行结果如 附录(I-2)设计FIR和IIR数字滤波器。
3.3. 设计IIR滤波器与FIR滤波器的相同处与不同处
不论是IIR滤波器还是FIR滤波器的设计都包括三个步骤:
(1) 按照实际任务的要求,确定滤波器的性能指标。
(2) 用一个因果、稳定的离散线性时不变系统的系统函数去逼近这一性能指标。根据不同的要求可以用IIR系统函数,也可以用FIR系统函数去逼近。
(3) 利用有限精度算法实现系统函数,包括结构选择、字长选择等。
但IIR滤波器和FIR滤波器的设计方法完全不同。IIR滤波器设计方法有间接法和直接法,间接法是借助于模拟滤波器的设计进行的。其设计步骤是:先设计过渡模拟滤波器得到系统函数H(s),然后将H(s)按某种方法转换成数字滤波器的系统函数H(z)。FIR滤波器常采用间接法,如窗函数法、频率采样法和切比雪夫等波纹逼近法。对于线性相位滤波器,经常采用FIR滤波器[5]。 MATLAB的带噪声语音信号处理+滤波器设计(8):http://www.youerw.com/tongxin/lunwen_2230.html