主要内容

IIR滤波器的设计

IIR和FIR滤波器

与FIR滤波器相比,IIR滤波器的主要优点是它们通常以比相应的FIR滤波器低得多的滤波顺序满足给定的一组规格。虽然IIR滤波器具有非线性相位,但在MATLAB中进行数据处理®软件通常是“离线”执行的,也就是说,在过滤之前,整个数据序列都是可用的。这允许采用非因果零相位滤波方法(通过过滤函数),消除了IIR滤波器的非线性相位失真。

经典的IIR滤波器

经典的IIR滤波器Butterworth、切比雪夫I型和II型、椭圆滤波器和贝塞尔滤波器都以不同的方式近似于理想的“砖墙”滤波器。

这个工具箱提供了在模拟和数字领域(除了贝塞尔,它只支持模拟情况)以及低通、高通、带通和带阻配置中创建所有这些类型的经典IIR滤波器的功能。金宝app对于大多数滤波器类型,您还可以找到符合给定滤波器规格的最低滤波器顺序,包括通带和阻带衰减,以及过渡宽度。

其他IIR滤波器

直接滤波器设计函数递归数字滤波器查找幅值响应接近指定频率响应函数的滤波器。这是创建多频带带通滤波器的一种方法。

您还可以使用参数建模或系统识别功能来设计IIR过滤器。这些函数将在参数化建模.

广义巴特沃斯设计函数maxflat在本节中讨论广义巴特沃斯滤波器设计.

IIR过滤方法概述

下表总结了工具箱中的各种筛选方法,并列出了可用于实现这些方法的函数。

工具箱筛选方法和可用函数

过滤方法 描述 过滤函数

模拟原型

利用经典低通原型滤波器在连续(拉普拉斯)域的极点和零点,通过频率变换和滤波器离散化得到数字滤波器。

完整的设计功能:贝塞尔,黄油,切比1,车比2,ellip

订单估计函数:buttord,切诺德,cheb2ord,ellipord

低通模拟原型函数:besselap,巴特普,cheb1ap,cheb2ap,埃利帕普

频率变换功能:lp2bp,lp2bs,lp2hp,lp2lp

过滤器离散化功能:双线性,impinvar

直接设计

直接在离散时域设计数字滤波器,通过逼近分段线性幅度响应。

递归数字滤波器

广义设计巴特沃斯

设计零多于极点的低通巴特沃斯滤波器。

maxflat

参数化建模

找到一个数字滤波器,近似规定的时间或频域响应。(有关参数化建模工具的广泛集合,请参阅System Identification Toolbox™文档。)

时域建模功能:lpc的,普龙尼,stmcb

频域建模功能:invfreqs,invfreqz

基于模拟原型的经典IIR滤波器设计

这个工具箱提供的主要IIR数字滤波器设计技术是基于将经典的低通模拟滤波器转换为它们的数字等效滤波器。以下部分描述如何设计过滤器,并总结支持的过滤器类型的特征。金宝app看到IIR滤波器设计专题有关过滤器设计过程的详细步骤。

完整的IIR滤波器设计

使用滤波器设计函数,您可以轻松创建具有低通、高通、带通或带阻配置的任何顺序的滤波器。

滤波器设计功能

过滤器类型

设计功能

贝塞尔(模拟)

[b] =贝塞尔(北区,,选项)

[z,p,k]=besself(n,Wn,选项)

[A, B, C, D] = besself (n, n,选项)

巴特沃斯

[b] =黄油(北区,,选项)

[z,p,k]=黄油(n,Wn,选项)

[A,B,C,D]=黄油(n,Wn,选项)

切比雪夫型

[b] =切比1(Wn n, Rp选项)

(z,磷、钾)= cheby1 (Wn n, Rp,选项)

[A,B,C,D]=cheby1(n,Rp,Wn,选项)

切比雪夫II型

[b] =车比2(n, Rs、Wn选项)

(z,磷、钾)= cheby2 (Wn n, Rs,选项)

[A,B,C,D]=cheby2(n,Rs,Wn,选项)

椭圆

[b] =ellip(北、北、南、北),选项)

(z,磷、钾)= ellip (Wn n, Rp, Rs,选项)

[A, B, C, D] = ellip (Wn n, Rp, Rs,选项)

默认情况下,每个函数都返回一个低通滤波器;你只需要指定你想要的截止频率,Wn,以标准化单位表示,以便奈奎斯特频率为1 Hz)。对于高通滤波器,附加“高”到函数的形参列表。对于带通或带阻滤波器,请指定Wn作为包含通频带边缘频率的二元矢量。附加“停止”用于带阻配置。

下面是一些数字滤波器的例子:

[b] =黄油(5,0.4);%巴特沃斯低通滤波器[b,a] = cheby1(4,1,[0.4 0.7]);%带通切比雪夫Ⅰ型[b] = cheby2(0.8 6, 60岁,“高”);高速切比雪夫II型[b,a] = ellip(3,1,60,[0.4, 0.7]),“停止”);%带阻椭圆

要设计模拟滤波器(可能是为了模拟),请使用尾随滤波器's'并指定截止频率,单位为rad/s:

[b] =黄油(5,0.4,'s');%模拟巴特沃斯滤波器

所有滤波器设计函数都会在传递函数、零极点增益或状态空间线性系统模型表示中返回一个滤波器,具体取决于存在多少输出参数。通常,应避免使用传递函数形式,因为可能会出现舍入误差引起的数值问题。相反,应使用零极点增益form,您可以使用zp2sos然后使用SOS表单分析或实施过滤器。

笔记

所有经典的IIR低通滤波器对于极低的截止频率都是病态的。因此,与其设计一个窄带低通IIR滤波器,不如设计一个更宽的通带并对输入信号进行抽取。

根据频域规范设计IIR滤波器

此工具箱提供顺序选择函数,用于计算满足给定需求集的最小过滤器顺序。

过滤器类型

阶次估计函数

巴特沃斯

(n, Wn) = buttord (Wp、Ws Rp, Rs)

切比雪夫型

(n, Wn) = cheb1ord (Wp、Ws Rp, Rs)

切比雪夫II型

(n, Wn) = cheb2ord (Wp、Ws Rp, Rs)

椭圆

(n, Wn) = ellipord (Wp、Ws Rp, Rs)

这些都是有用的结合滤波器设计功能。假设您想要一个带通滤波器,其通频带从1000到2000赫兹,停止频带从500hz开始在两侧,采样频率为10khz,通频带纹波最多为1db,阻频带衰减至少为60db。您可以通过使用黄油函数如下。

[n,Wn] = buttord([1000 2000]/5000,[500 2500]/5000,1,60) [b,a] = butter(n,Wn);
n = 12 Wn = 0.1951 0.4080

满足相同要求的椭圆滤波器如下所示:

[n,Wn]=ellipord([10002000]/5000,[5002500]/5000,1,60)[b,a]=ellip(n,1,60,Wn);
n = 5 Wn = 0.2000 0.4000

这些功能也适用于其他标准频带配置,以及模拟滤波器。

经典IIR滤波器类型的比较

工具箱提供了五种不同类型的经典IIR滤波器,每一种都以某种方式是最优的。本节展示了每一种的基本模拟原型形式,并总结了主要特征。

巴特沃斯滤波器

巴特沃斯滤波器为模拟频率下的理想低通滤波器响应提供了最佳泰勒级数近似Ω= 0Ω=∞;对于任何一个订单N,振幅平方响应2.N- 1这些位置的零导数(最大限度地平Ω= 0Ω=∞).响应总体上是单调的,从Ω= 0Ω=∞ | H ( J Ω ) | = 1. / 2. Ω= 1

切比雪夫I型滤波器

切比雪夫I型滤波器在整个通频带内通过合并相等的纹波,使理想和实际频率响应之间的绝对差值最小化RpdB在通频带内。阻带响应是最平坦的。从通带到阻带的过渡比巴特沃斯滤波器更快。 | H ( J Ω ) | = 10 Rp / 20. Ω= 1

切比雪夫II型滤波器

切比雪夫II型滤波器通过合并一个相等的纹波,使整个阻带的理想和实际频率响应之间的绝对差最小Rs阻带中的dB。通带响应最大平坦。

阻带不会像I型滤波器那样快地接近零(对于偶数值滤波器阶数,阻带也不会接近零)N).然而,通带中没有纹波通常是一个重要的优点。 | H ( J Ω ) | = 10 Rs / 20. Ω= 1

椭圆滤波器

椭圆滤波器在通带和阻带都是等纹波的。它们通常满足任何支持的过滤器类型的最低顺序的过滤器要求。金宝app给定一个过滤命令N,通带纹波Rp分贝和阻带波纹Rs在分贝中,椭圆滤波器使过渡宽度最小。 | H ( J Ω ) | = 10 Rp / 20. Ω= 1

贝塞尔滤波器

模拟贝塞尔低通滤波器在零频率下具有最大的组延迟,并在整个通频带内保持几乎恒定的组延迟。因此,滤波后的信号在通频带频率范围内保持其波形。当模拟贝塞尔低通滤波器通过频率映射转换为数字贝塞尔低通滤波器时,它不再具有这种最大平坦特性。信号处理工具箱™仅支持模拟情况下完整的贝塞尔滤波器设计金宝app功能。

贝塞尔滤波器通常要求比其他滤波器更高的滤波器阶数以获得满意的阻带衰减。 | H ( J Ω ) | < 1. / 2. Ω= 1并随着滤波器阶数的增加而减小N增加。

笔记

上面所示的低通滤波器是用模拟原型函数创建的besselap,巴特普,cheb1ap,cheb2ap,埃利帕普.这些函数求一个的零点、极点和增益N适当类型的th阶模拟滤波器,截止频率为1 rad/s。完整的滤波器设计功能(贝塞尔,黄油,切比1,车比2,ellip)调用原型功能作为设计过程的第一步。请参阅IIR滤波器设计专题详情请参阅。

要创建类似的情节,请使用N=5.根据需要,Rp=0.5Rs=20..例如,要创建椭圆滤镜图:

[z,p,k]=ellipap(5,0.5,20);w=logspace(-1,11000);h=freqs(k*poly(z),poly(p),w);semilogx(w,abs(h)),网格xlabel(“频率(rad / s)”) ylabel (“震级”)

直接IIR滤波器设计

这个工具箱使用这个术语直接法描述基于离散域规范的IIR设计技术。与模拟原型法不同,直接设计方法不受标准低通、高通、带通或带阻配置的限制。相反,这些功能设计具有任意(可能是多频带)频率响应的滤波器本节讨论递归数字滤波器功能,专门用于过滤器设计;参数化建模讨论了其他可能被认为是直接的方法,如Prony的方法,线性预测,Steiglitz-McBride方法,和反频率设计。

这个递归数字滤波器函数通过拟合指定的频率响应来设计递归IIR数字滤波器。递归数字滤波器的名称反映了其寻找滤波器分母系数的方法:它找到理想的指定幅度平方响应的逆FFT,并使用得到的自相关函数样本求解修正的Yule-Walker方程。该声明

[b] = yulewalk (n、f m)

返回行向量BA.包含n + 1分子和分母系数N频率-幅值特性近似于矢量的th阶IIR滤波器FMF是从0到1的频率点矢量,其中1表示奈奎斯特频率。M是一个向量,包含中各点的指定幅值响应FFM可以描述任何分段线性形状大小响应,包括多频带响应。与此函数对应的FIR是的故事,它还设计了基于任意分段线性幅度响应的滤波器。看见数字滤波器设计详情请参阅。

请注意,递归数字滤波器不接受阶段信息,并且不会对结果筛选器的最优性做出任何声明。

设计一个多频带滤波器递归数字滤波器并绘制指定的和实际的频率响应:

M = [0 0 1 1 0 0 1 1 0 0];F = [0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 1];[b] = yulewalk (10 f m);[h,w] = freqz(b,a,128) plot(f,m,w/pi,abs(h))

广义巴特沃斯滤波器设计

工具箱函数maxflat使你能够设计广义的巴特沃斯滤波器,也就是说,巴特沃斯滤波器具有不同数目的零和极点。在一些极点比零的计算代价更大的实现中,这是可取的。maxflat就像黄油函数,除了它可以指定两个阶数(分子1,分母1)而不是1。这些过滤器是最大限度地平.这意味着得到的滤波器对于任何分子和分母阶都是最优的,在0和奈奎斯特频率处的导数数最大ω=π两者都设置为0。

例如,当两个订单相同时,maxflat是一样的黄油:

[b] = maxflat (3, 3, 0.25)
b=0.0317 0.0951 0.0951 0.0317 a=1.0000-1.4590 0.9104-0.1978
[b] =黄油(0.25)
b=0.0317 0.0951 0.0951 0.0317 a=1.0000-1.4590 0.9104-0.1978

然而,maxflat是更多功能的,因为它允许您设计的滤波器有更多的零比极点:

[b] = maxflat(3、1、0.25)
a = 1.0000 -0.2402

第三个输入maxflat半功率频率,频率介于0和1之间,幅值响应为 1. / 2.

您也可以设计线性相位滤波器,具有最大的平坦性质使用“sym”选择:

maxflat(4,“sym”, 0.3)
Ans = 0.0331 0.2500 0.4337 0.2500 0.0331

有关maxflat参见Selesnick和Burrus[2].