主要内容

IIR滤波器的设计

IIR与FIR过滤器

IIR过滤器在FIR滤波器上的主要优点是它们通常符合给定的规格集,其具有比相应的FIR滤波器更低的过滤器顺序。虽然IIR过滤器具有非线性阶段,但MATLAB中的数据处理®软件通常是“脱机”执行的,也就是说,整个数据序列在过滤之前是可用的。这允许一个非因果的,零相位滤波方法(通过<一个href="//www.tatmou.com/help/signal/ref/filtfilt.html">filtfilt功能),消除了IIR滤波器的非线性相位失真。

古典IIR过滤器

经典的IIR滤波器Butterworth、Chebyshev type I和II、椭圆型和Bessel都以不同的方式逼近理想的“砖墙”滤波器。

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

其他IIR过滤器

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

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

广义Butterworth设计函数<一个href="//www.tatmou.com/help/signal/ref/maxflat.html">maxflat课上有讨论吗<一个href="//www.tatmou.com/help/signal/ug/iir-filter-design.html" class="intrnllnk">广义巴特沃思滤波器设计

IIR过滤方法摘要

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

工具箱过滤器方法和可用功能

过滤方法 描述 过滤功能

模拟原型设计

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

完整的设计功能:

besself,<一个href="//www.tatmou.com/help/signal/ref/butter.html">黄油,<一个href="//www.tatmou.com/help/signal/ref/cheby1.html">cheby1,<一个href="//www.tatmou.com/help/signal/ref/cheby2.html">cheby2,<一个href="//www.tatmou.com/help/signal/ref/ellip.html">椭圆形

订单估计函数:

纽扣,<一个href="//www.tatmou.com/help/signal/ref/cheb1ord.html">cheb1ord,<一个href="//www.tatmou.com/help/signal/ref/cheb2ord.html">cheb2ord,<一个href="//www.tatmou.com/help/signal/ref/ellipord.html">埃利双标

低通模拟原型函数:

besselap,<一个href="//www.tatmou.com/help/signal/ref/buttap.html">buttap,<一个href="//www.tatmou.com/help/signal/ref/cheb1ap.html">cheb1ap,<一个href="//www.tatmou.com/help/signal/ref/cheb2ap.html">cheb2ap,<一个href="//www.tatmou.com/help/signal/ref/ellipap.html">ellipap

频率变换功能:

LP2BP.,<一个href="//www.tatmou.com/help/signal/ref/lp2bs.html">LP2BS.,<一个href="//www.tatmou.com/help/signal/ref/lp2hp.html">lp2hp,<一个href="//www.tatmou.com/help/signal/ref/lp2lp.html">lp2lp

过滤器离散化功能:

双线性,<一个href="//www.tatmou.com/help/signal/ref/impinvar.html">撞击声

直接设计

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

yulewalk

广义设计巴特沃斯

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

maxflat

参数化建模

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

时域建模功能:

lpc的,<一个href="//www.tatmou.com/help/signal/ref/prony.html">普龙尼,<一个href="//www.tatmou.com/help/signal/ref/stmcb.html">stmcb

频域建模功能:

invfreqs,<一个href="//www.tatmou.com/help/signal/ref/invfreqz.html">invfreqz

使用模拟原型设计经典IIR滤波器

本工具箱提供的主要IIR数字滤波器设计技术基于经典低通模拟滤波器转换为其数字等同物。以下部分描述了如何设计过滤器并总结支持的过滤器类型的特性。金宝app看到<一个href="//www.tatmou.com/help/signal/ug/special-topics-in-iir-filter-design.html" class="a">IIR过滤器设计的特殊主题有关过滤器设计过程的详细步骤。

完整的经典IIR滤波器设计

您可以使用过滤器设计功能轻松创建任何具有低通,高通,带通或BandStop配置的订单的过滤器。

滤波器设计功能

过滤器类型

设计功能

贝塞尔(仅限模拟)

[b] =<一个href="//www.tatmou.com/help/signal/ref/besself.html">besself(n, n,选项

(z,磷、钾)= besself (n, n,选项

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

巴特沃斯

[b] =<一个href="//www.tatmou.com/help/signal/ref/butter.html">黄油(n, n,选项

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

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

切比雪夫型

[b] =<一个href="//www.tatmou.com/help/signal/ref/cheby1.html">cheby1(n,rp,wn,选项

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

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

Chebyshev Type II

[b] =<一个href="//www.tatmou.com/help/signal/ref/cheby2.html">cheby2(n,rs,wn,选项

[z,p,k] = chby2(n,rs,wn,选项

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

椭圆

[b] =<一个href="//www.tatmou.com/help/signal/ref/ellip.html">椭圆形(n, Rp, Rs、Wn选项

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

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

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

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

[b,a] =黄油(5,0.4);%lowpass butterworth.[b,a] = cheby1(4,1,[0.4 0.7]);%带通切比雪夫类型I[b,a] = chebby2(6,60,0.8,'高的');%高通切比雪夫类型II[B,A] =椭圆(3,1,60,[0.4 0.7],'停止');% Bandstop椭圆

为了设计一个模拟滤波器,也许是为了模拟,使用一个拖尾“年代”以rad/s表示截止频率:

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

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

请注意

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

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

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

过滤器类型

订单估计函数

巴特沃斯

[n,wn] = buttord(wp,ws,rp,rs)

切比雪夫型

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

Chebyshev Type II

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

椭圆

[n,wn] = ellipord(wp,ws,rp,rs)

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

[n,Wn] =黄油([1000 2000]/5000,[500 2500]/5000,1,60)[b,a] =黄油(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过滤器,在某种程度上都是最佳的。本节示出了每个的基本模拟原型形式,并总结了主要特征。

Butterworth Filter.

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

Chebyshev类型i过滤器

切比雪夫型滤波器最小化理想和实际频率响应之间的绝对差异在整个通带通过合并一个相等的纹波rp.dB在通带。阻带响应最大程度平坦。从通带到阻带的过渡比巴特沃斯滤波器快。 | H j Ω | 10. - rp. / 20. Ω= 1

Chebyshev Type II筛选器

Chebyshev类型II滤波器通过结合相同的纹波,最小化整个阻挡的理想和实际频率响应之间的绝对差异卢比dB在阻带内。通带响应最大程度平坦。

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

椭圆滤波器

椭圆滤波器在通带和阻带均具有等纹波。它们通常以最低的顺序满足任何支持的过滤器类型的过滤要求。金宝app给定一个过滤顺序n,通带波纹rp.在分贝中,并阻止纹波卢比在分贝中,椭圆滤波器最小化过渡宽度。 | H j Ω | 10. - rp. / 20. Ω= 1

贝塞尔滤波器

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

贝塞尔过滤器通常需要比其他滤波器更高的过滤器,以获得令人满意的停止衰减。 | H j Ω | < 1 / 2 Ω= 1并随过滤顺序递减n增加。

请注意

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

要创建类似的情节,请使用n5根据需要,rp.0.5卢比20..例如,要创建椭圆滤波器图:

(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.tatmou.com/help/signal/ref/yulewalk.html">yulewalk功能,专门用于过滤器设计;<一个href="//www.tatmou.com/help/signal/ug/parametric-modeling.html" class="a">参数化建模讨论其他可能被视为直接的方法,例如PRONY方法,线性预测,Steiglitz-McBRide方法和逆频率设计。

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

[b] = yulewalk (n、f m)

返回行向量b一个包含n + 1分子分母系数n阶IIR滤波器,其频率幅值特性与矢量给出的近似ff为0 ~ 1的频率点向量,其中1表示Nyquist频率。在点处的矢量是否包含特定幅度的响应ff可以描述任何分段线性形状幅度响应,包括多频带响应。FIR对应的函数是<一个href="//www.tatmou.com/help/signal/ref/fir2.html">FiR2.,它还设计了一个基于任意分段线性幅度响应的滤波器。看到<一个href="//www.tatmou.com/help/signal/ug/fir-filter-design.html" class="a">数字滤波器设计获取详细信息。

请注意,<一个href="//www.tatmou.com/help/signal/ref/yulewalk.html">yulewalk不接受阶段信息,没有关于所得滤波器的最优性的陈述。

设计多频玻片过滤器<一个href="//www.tatmou.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,a] = yulewalk(10,f,m);[h,w] = freqz(b,a,128)图(f,m,w / pi,abs(h))

广义巴特沃思滤波器设计

工具箱功能<一个href="//www.tatmou.com/help/signal/ref/maxflat.html">maxflat使您可以设计广义的Butterworth滤波器,即Butterworth滤波器,具有不同数量的零和杆。这在一些实施方式中是期望的,在几个计算上比零计算得更昂贵。<一个href="//www.tatmou.com/help/signal/ref/maxflat.html">maxflat就像<一个href="//www.tatmou.com/help/signal/ref/butter.html">黄油函数,但您可以指定它(分子1分母1)而不是1。这些过滤器是最大限度地平.这意味着所得到的滤波器对于任何分子和分母顺序最佳,具有0和Nyquist频率的最大衍生物数量ωπ两者都设置为0。

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

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

然而,<一个href="//www.tatmou.com/help/signal/ref/maxflat.html">maxflat更多功能,因为它允许你设计一个滤波器有更多的零比极点:

[b,a] = maxflat(3,1,0.25)
B = 0.0950 0.2849 0.2849 0.0950 A = 1.0000 -0.2402

第三个输入<一个href="//www.tatmou.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.tatmou.com/help/signal/ref/maxflat.html">maxflat算法,见Selesnick和Burrus<一个href="//www.tatmou.com/help/signal/ug/selected-bibliography.html" class="a">[2]