IIR滤波器设计

IIR和FIR滤波器

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

经典的IIR滤波器

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

该工具箱提供了在模拟域和数字域中创建所有这些类型的经典IIR滤波器的功能(Bessel除外,仅支持模拟情况),以及低通、高通、带通和带阻配置。对于大多数滤波器类型,您还可以在通带和阻带衰减以及过渡宽度方面找到符合给定滤波器规格的最低滤波器阶数。万博1manbetx

其他IIR滤波器

直接设计滤波器功能<一个href="//www.tianjin-qmedu.com/help/signal/ref/yulewalk.html">yulewalk找到一个具有近似于指定频率响应函数的幅度响应的滤波器。这是创建多频带带通滤波器的一种方法。

您还可以使用参数建模或系统识别功能来设计IIR过滤器。这些函数将在<一个href="//www.tianjin-qmedu.com/help/signal/ug/parametric-modeling.html" class="a">参数化建模

广义巴特沃斯设计函数<一个href="//www.tianjin-qmedu.com/help/signal/ref/maxflat.html">maxflat章节中有讨论吗<一个href="//www.tianjin-qmedu.com/help/signal/ug/iir-filter-design.html" class="intrnllnk">广义巴特沃斯滤波器设计

IIR过滤方法概述

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

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

过滤方法 描述 过滤功能

模拟原型

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

完整的设计功能:

besself,<一个href="//www.tianjin-qmedu.com/help/signal/ref/butter.html">黄油,<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheby1.html">cheby1,<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheby2.html">cheby2,<一个href="//www.tianjin-qmedu.com/help/signal/ref/ellip.html">ellip

订单估计函数:

buttord,<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheb1ord.html">cheb1ord,<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheb2ord.html">切布罗德,<一个href="//www.tianjin-qmedu.com/help/signal/ref/ellipord.html">ellipord

低通模拟原型功能:

圈套,<一个href="//www.tianjin-qmedu.com/help/signal/ref/buttap.html">buttap,<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheb1ap.html">cheb1ap,<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheb2ap.html">cheb2ap,<一个href="//www.tianjin-qmedu.com/help/signal/ref/ellipap.html">ellipap

频率变换功能:

lp2bp,<一个href="//www.tianjin-qmedu.com/help/signal/ref/lp2bs.html">lp2bs,<一个href="//www.tianjin-qmedu.com/help/signal/ref/lp2hp.html">lp2hp,<一个href="//www.tianjin-qmedu.com/help/signal/ref/lp2lp.html">lp2lp

过滤器离散化功能:

双线性,<一个href="//www.tianjin-qmedu.com/help/signal/ref/impinvar.html">impinvar

直接设计

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

yulewalk

广义巴特沃斯设计

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

maxflat

参数化建模

找到一个近似于规定的时域或频域响应的数字滤波器。(参见系统识别工具箱™ 大量参数化建模工具集合的文档。)

时域建模功能:

lpc,<一个href="//www.tianjin-qmedu.com/help/signal/ref/prony.html">普罗尼,<一个href="//www.tianjin-qmedu.com/help/signal/ref/stmcb.html">stmcb

频域建模功能:

因弗雷克斯,<一个href="//www.tianjin-qmedu.com/help/signal/ref/invfreqz.html">因弗雷兹

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

这个工具箱提供的主要IIR数字滤波器设计技术是基于将经典的低通模拟滤波器转换为它们的数字等效滤波器。以下部分描述如何设计过滤器,并总结支持的过滤器类型的特征。万博1manbetx看到<一个href="//www.tianjin-qmedu.com/help/signal/ug/special-topics-in-iir-filter-design.html" class="a">IIR滤波器设计专题有关过滤器设计过程的详细步骤。

完整的经典IIR滤波器设计

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

滤波器设计功能

过滤器类型

设计功能

贝塞尔(模拟)

[b] =<一个href="//www.tianjin-qmedu.com/help/signal/ref/besself.html">besself(n, n,选择权

(z,磷、钾)= besself (n, n,选择权

[A, B, C, D] = besself (n, n,选择权

巴特沃斯

[b] =<一个href="//www.tianjin-qmedu.com/help/signal/ref/butter.html">黄油(n, n,选择权

(z,磷、钾)=黄油(n, n,选择权

[A, B, C, D] =黄油(n, n,选择权

切比雪夫Ⅰ型

[b] =<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheby1.html">cheby1(Wn n, Rp选择权

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

[A, B, C, D] = cheby1 (Wn n, Rp,选择权

切比雪夫II型

[b] =<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheby2.html">cheby2(n, Rs、Wn选择权

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

[A, B, C, D] = cheby2 (Wn n, Rs,选择权

椭圆

[b] =<一个href="//www.tianjin-qmedu.com/help/signal/ref/ellip.html">ellip(n, Rp, Rs、Wn选择权

[z,p,k]=ellip(n,Rp,Rs,Wn,选择权

[A,B,C,D]=省略号(n,Rp,Rs,Wn,选择权

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

以下是一些数字滤波器示例:

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

为了设计一个模拟滤波器,也许是为了模拟,使用一个尾随器“年代”并以rad/s为单位指定截止频率:

[b,a]=黄油(5,0.4,“年代”);模拟巴特沃斯滤波器

所有滤波器设计函数都返回传递函数、零极增益或状态空间线性系统模型表示中的滤波器,这取决于有多少输出参数存在。一般来说,应该避免使用传递函数形式,因为可能会发生舍入误差引起的数值问题。相反,使用零极增益形式,您可以转换为一个二阶部分(SOS)形式使用<一个href="//www.tianjin-qmedu.com/help/signal/ref/zp2sos.html">zp2sos然后使用SOS表格来分析或实现你的过滤器。

请注意

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

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

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

过滤器类型

订单估计函数

巴特沃斯

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

切比雪夫Ⅰ型

[n,Wn]=支票(Wp,Ws,Rp,Rs)

切比雪夫II型

[n,Wn]=cheb2ord(Wp,Ws,Rp,Rs)

椭圆

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

这些功能与滤波器设计功能结合使用非常有用。假设您想要一个通带为1000到2000 Hz的带通滤波器,阻带从两侧500 Hz开始,采样频率为10 kHz,通带纹波最多为1 dB,阻带衰减至少为60 dB。您可以使用黄油函数如下。

[n,Wn]=buttord([10002000]/5000,[5002500]/5000,1,60)[b,a]=butter(n,Wn);
n=12 Wn=0.1951 0.4080

给出了一种满足相同要求的椭圆滤波器

(n, Wn) = ellipord((1000 2000) / 5000(500 - 2500) / 5000, 1、60)[b] = ellip (60 n 1, Wn);
n = 5 Wn = 0.2000 0.4000

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

经典IIR滤波器类型的比较

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

巴特沃斯滤波器

巴特沃斯滤波器提供了最佳泰勒级数近似的理想低通滤波器响应在模拟频率Ω = 0Ω=∞; 任何订单N,大小的平方响应2N– 1这些位置的导数为零(最大平坦Ω = 0Ω=∞).响应总体上是单调的,从Ω = 0Ω=∞ | H j Ω | 1 / 2 Ω = 1

切比雪夫I型滤波器

切比雪夫I型滤波器通过加入相同的纹波,使整个通带上的理想和实际频率响应之间的绝对差异最小化Rp通带中的dB。阻带响应最大平坦。从通带到阻带的转换比Butterworth滤波器更快。 | H j Ω | 10 Rp / 20. Ω = 1

切比雪夫II型滤波器

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

阻带不像I型滤波器那样快地接近零(并且对于偶数滤波器顺序根本不接近零n)然而,通带中没有波纹通常是一个重要的优点。 | H j Ω | 10 Rs / 20. Ω = 1

椭圆滤波器

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

贝塞尔滤波器

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

贝塞尔滤波器通常要求比其他滤波器更高的滤波器阶数以获得满意的阻带衰减。 | H j Ω | < 1 / 2 Ω = 1并随过滤顺序递减n增加。

请注意

上面显示的低通滤波器是使用模拟原型功能创建的<一个href="//www.tianjin-qmedu.com/help/signal/ref/besselap.html">圈套,<一个href="//www.tianjin-qmedu.com/help/signal/ref/buttap.html">buttap,<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheb1ap.html">cheb1ap,<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheb2ap.html">cheb2ap,<一个href="//www.tianjin-qmedu.com/help/signal/ref/ellipap.html">ellipap.这些函数求一个的零点、极点和增益n适当类型的th阶模拟滤波器,截止频率为1 rad/s。完整的滤波器设计功能(<一个href="//www.tianjin-qmedu.com/help/signal/ref/besself.html">besself,<一个href="//www.tianjin-qmedu.com/help/signal/ref/butter.html">黄油,<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheby1.html">cheby1,<一个href="//www.tianjin-qmedu.com/help/signal/ref/cheby2.html">cheby2,<一个href="//www.tianjin-qmedu.com/help/signal/ref/ellip.html">ellip)将原型功能称为设计过程的第一步。看到<一个href="//www.tianjin-qmedu.com/help/signal/ug/special-topics-in-iir-filter-design.html" class="a">IIR滤波器设计专题获取详细信息。

要创建类似的绘图,请使用n5根据需要,Rp0.5Rs20.。例如,要创建椭圆过滤器绘图:

(z,磷、钾)= ellipap (5 0.5 20);w = logspace (1, 1, 1000);h =频率(k *聚(z),聚(p), w);semilogx (w、abs (h)、网格包含(‘频率(rad/s)’) ylabel (“级”

直接IIR滤波器设计

这个工具箱使用了这个术语直接的方法描述基于离散域规范查找过滤器的IIR设计技术。与模拟原型方法不同,直接设计方法不受标准低通、高通、带通或带阻配置的限制。相反,这些函数设计的滤波器具有任意的,可能是多频带的频率响应。本节讨论<一个href="//www.tianjin-qmedu.com/help/signal/ref/yulewalk.html">yulewalk功能,专为滤波器设计;<一个href="//www.tianjin-qmedu.com/help/signal/ug/parametric-modeling.html" class="a">参数化建模讨论了其他可能被认为是直接的方法,如Prony的方法,线性预测,Steiglitz-McBride方法,和反频率设计。

的<一个href="//www.tianjin-qmedu.com/help/signal/ref/yulewalk.html">yulewalk函数通过拟合指定的频率响应来设计递归IIR数字滤波器。<一个href="//www.tianjin-qmedu.com/help/signal/ref/yulewalk.html">yulewalk其名称反映了其查找滤波器分母系数的方法:它查找理想指定幅值平方响应的逆FFT,并使用得到的自相关函数样本求解修正的Yule-Walker方程

[b] = yulewalk (n、f m)

返回行向量b一个包含n + 1分子和分母的系数n频率-幅值特性近似于矢量的th阶IIR滤波器ff为频率点的向量,取值范围为0到1,其中1为奈奎斯特频率。一个向量是否包含在点的指定的大小响应ff可以描述任何分段线性形状幅值响应,包括多频带响应<一个href="//www.tianjin-qmedu.com/help/signal/ref/fir2.html">的故事,设计了基于任意分段线性幅值响应的滤波器。看到<一个href="//www.tianjin-qmedu.com/help/signal/ug/fir-filter-design.html" class="a">FIR滤波器设计获取详细信息。

注意<一个href="//www.tianjin-qmedu.com/help/signal/ref/yulewalk.html">yulewalk不接受阶段信息,并且不会对结果筛选器的最优性做出任何声明。

设计一个多频带滤波器<一个href="//www.tianjin-qmedu.com/help/signal/ref/yulewalk.html">yulewalk并绘制指定的和实际的频率响应:

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))

广义巴特沃斯滤波器设计

工具箱函数<一个href="//www.tianjin-qmedu.com/help/signal/ref/maxflat.html">maxflat使你能够设计广义的巴特沃斯滤波器,也就是说,巴特沃斯滤波器具有不同数目的零和极点。在一些极点比零的计算代价更大的实现中,这是可取的。<一个href="//www.tianjin-qmedu.com/help/signal/ref/maxflat.html">maxflat就像<一个href="//www.tianjin-qmedu.com/help/signal/ref/butter.html">黄油函数,但您可以指定它两个顺序(一个用于分子,一个用于分母)而不是一个。这些过滤器是最大平坦.这意味着得到的滤波器对于任何分子和分母阶都是最优的,在0和奈奎斯特频率处的导数数最大ωπ两者都设置为0。

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

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

然而,<一个href="//www.tianjin-qmedu.com/help/signal/ref/maxflat.html">maxflat更通用,因为它允许您设计零点多于极点的滤波器:

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

第三个输入是<一个href="//www.tianjin-qmedu.com/help/signal/ref/maxflat.html">maxflat半工频,频率在0到1之间,幅值响应为 1 / 2

您还可以使用“符号”选择:

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

查阅有关的详细资料<一个href="//www.tianjin-qmedu.com/help/signal/ref/maxflat.html">maxflat参见Selesnick和Burrus<一个href="//www.tianjin-qmedu.com/help/signal/ug/selected-bibliography.html" class="a">[2]