![](https://csdnimg.cn/release/download_crawler_static/88019035/bga.jpg)
2 IIR 数字滤波器设计的方案选择及原理分析
2.1 总体方案比较
基于 MATLAB 的 IIR 数字滤波器的设计方案如下:
方案一:程序设计法。MATLAB 信号处理工具箱提供了几个直接设计 IIR 数字滤波器的函
数,直接调用就可以设计滤波器,这为设计通用滤波器提供了方便。
方案二:FDATool 界面设计。FDATool(Filter Design&Analysis Tool)是 MATLAB 信号处
理工具箱里专用的滤波器设计分析工具。FDATool 可以设计几乎所有的常规滤波器,包括 FIR
和 IIR 的各种设计方法。它操作简单,方便灵活。
方案三:模拟原型法。采用经典低通滤波器作为连续域上的设计模型,通过频域变换得
到 IIR 数字滤波器,最后还要进行离散化处理。MATLAB 提供的低通模拟滤波器原型函数包括:
besselap,buttap,cheb1lp,cheb2ap,ellipap;频域变换函数包括:lp2bp,lp2bs,
lp2hp,lp2lp;离散化处理函数有 bilinear 和 impinvar。
方案四:直接设计法。直接设计方法的思想是基于给定的滤波器参数直接在离散域上寻
找合适的数字滤波器,他不限于常规的滤波器类型,如低通、高通、带通和带阻等。这种方
法甚至可以设计多带的频率响应,MATLAB 提供 yulewalk 函数用于辅助设计。
方案五:通用 Butterworth 设计方法。使用这种方法设计的 Butterworth 数字滤波器可
以有不同数目的零点和极点,MATLAB 提供的 maxflat 函数实现了这一功能。这个函数与
butter 函数很相似,但他可以指定两个阶参数,其中归一化和非归一化各一个。如果这两个
参数的值相同,那么他与 butter 函数的结果就是相同的。
方案六:参数建模法。寻找接近于所需要设计的滤波器的通用模型,时域上的建模函数
为 lpc,prony,Stmcb;频域上的建模函数有 invfreqs 和 invfreqz。
比较上述方案,在该课题里,我将采用方案一设计一个低通滤波器,采用方案二设计一
个带阻滤波器。
2.2 IIR 滤波器的基本原理
2.2.1 IIR 和 FIR 的性能对比
1. FIR 滤波器的一个重要特点就是能够提供准确的线性相位
[1]
, 所以在对相位要求较严格
的地方, FIR 占据了统治地位, 但是严格的线性相位的IIR 滤波器也已经被提出, 只是其阶数比
普通IIR 滤波器要提高一倍, 其基本思路如下: