与FIR滤波器相比,IIR滤波器的主要优点是它们通常以比相应的FIR滤波器低得多的滤波顺序满足给定的一组规格。虽然IIR滤波器具有非线性相位,但在MATLAB中进行数据处理®软件通常是“离线”执行的,也就是说,在过滤之前,整个数据序列是可用的。这允许一种非因果的、零相位的滤波方法(通过<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/filtfilt.html">filtfilt
函数),消除了IIR滤波器的非线性相位失真。
经典的IIR滤波器、Butterworth滤波器、Chebyshev I型和II型滤波器、椭圆滤波器和贝塞尔滤波器都以不同的方式近似于理想的“砖墙”滤波器。
这个工具箱提供了在模拟和数字领域(除了贝塞尔,它只支持模拟情况)以及低通、高通、带通和带阻配置中创建所有这些类型的经典IIR滤波器的功能。万博1manbetx对于大多数滤波器类型,您还可以找到符合给定滤波器规格的最低滤波器顺序,包括通带和阻带衰减,以及过渡宽度。
直接设计滤波器功能<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/yulewalk.html">yulewalk
找到一个具有近似于指定频率响应函数的幅度响应的滤波器。这是创建多频带带通滤波器的一种方法。
您还可以使用参数建模或系统识别功能来设计IIR过滤器。这些函数将在<一个href="//www.tianjin-qmedu.com/de/help/signal/ug/parametric-modeling.html" class="a">参数化建模一个>.
广义Butterworth设计函数<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/maxflat.html">maxflat
章节中有讨论吗<一个href="//www.tianjin-qmedu.com/de/help/signal/ug/iir-filter-design.html" class="intrnllnk">广义巴特沃斯滤波器设计一个>.
下表总结了工具箱中的各种筛选器方法,并列出了可用于实现这些方法的函数。
工具箱筛选方法和可用函数
过滤方法 | 描述 | 过滤功能 |
---|---|---|
模拟原型 |
利用经典低通原型滤波器在连续(拉普拉斯)域的极点和零点,通过频率变换和滤波器离散化得到数字滤波器。 |
完整的设计功能:<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/besself.html"> 订单估计函数:<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/buttord.html"> 低通模拟原型函数:<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/besselap.html"> 频率变换功能:<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/lp2bp.html"> 过滤器离散化功能:<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/bilinear.html"> |
直接设计 |
直接在离散时域设计数字滤波器,通过逼近分段线性幅度响应。 |
|
广义设计巴特沃斯 |
设计零多于极点的低通巴特沃斯滤波器。 |
|
参数化建模 |
找到一个数字滤波器,近似规定的时间或频域响应。(有关参数化建模工具的广泛集合,请参阅System Identification Toolbox™文档。) |
时域建模功能:<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/lpc.html"> 频域建模功能:<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/invfreqs.html"> |
这个工具箱提供的主要IIR数字滤波器设计技术是基于将经典的低通模拟滤波器转换为它们的数字等效滤波器。以下部分描述如何设计过滤器,并总结支持的过滤器类型的特征。万博1manbetx看到<一个href="//www.tianjin-qmedu.com/de/help/signal/ug/special-topics-in-iir-filter-design.html" class="a">IIR滤波器设计专题一个>有关过滤器设计过程的详细步骤。
使用滤波器设计函数,您可以轻松创建具有低通、高通、带通或带阻配置的任何顺序的滤波器。
滤波器设计功能
过滤器类型 |
设计功能 |
---|---|
贝塞尔(模拟) |
|
巴特沃斯 |
|
切比雪夫型 |
|
切比雪夫II型 |
|
椭圆形 |
|
默认情况下,每个函数都返回一个低通滤波器;你只需要指定你想要的截止频率,Wn
,以标准化单位表示,奈奎斯特频率为1 Hz)。对于高通过滤器,请使用append“高”
到函数的参数列表。对于带通或带阻滤波器,请指定Wn
作为包含通频带边缘频率的二元矢量。附加“停止”
用于带阻配置。
下面是一些数字滤波器的例子:
[b] =黄油(5,0.4);%巴特沃斯低通滤波器[b,a] = cheby1(4,1,[0.4 0.7]);带通切比雪夫I型[b] = cheby2(0.8 6, 60岁,“高”);高速切比雪夫II型[b,a] = ellip(3,1,60,[0.4, 0.7]),“停止”);% Bandstop椭圆
为了设计一个模拟滤波器,也许是为了模拟,使用一个尾随器“年代”
并指定截止频率,单位为rad/s:
[b] =黄油(5,0.4,“年代”);模拟巴特沃斯滤波器
所有滤波器设计函数都返回传递函数、零极增益或状态空间线性系统模型表示中的滤波器,这取决于有多少输出参数存在。一般来说,应该避免使用传递函数形式,因为可能会发生舍入误差引起的数值问题。相反,使用零极增益形式,您可以转换为一个二阶部分(SOS)形式使用<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/zp2sos.html">zp2sos
然后使用SOS表格来分析或实现你的过滤器。
请注意
所有经典的IIR低通滤波器对于极低的截止频率都是病态的。因此,与其设计一个窄带低通IIR滤波器,不如设计一个更宽的通带并对输入信号进行抽取。
此工具箱提供顺序选择函数,用于计算满足给定需求集的最小过滤器顺序。
过滤器类型 |
订单估计函数 |
---|---|
巴特沃斯 |
|
切比雪夫型 |
|
切比雪夫II型 |
|
椭圆形 |
|
这些都是有用的结合滤波器设计功能。假设您想要一个带通滤波器,其通频带从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((1000 2000) / 5000(500 - 2500) / 5000, 1、60)[b] = ellip (60 n 1, Wn);
n = 5 Wn = 0.2000 0.4000
这些功能也适用于其他标准频带配置,以及模拟滤波器。
工具箱提供了五种不同类型的经典IIR滤波器,每一种都以某种方式是最优的。本节展示了每一种的基本模拟原型形式,并总结了主要特征。
巴特沃斯滤波器提供了最佳泰勒级数近似的理想低通滤波器响应在模拟频率Ω= 0和Ω=∞;对于任何一个订单N,大小的平方响应2N- 1这些位置的导数为零(最大限度地平在Ω= 0和Ω=∞).响应总体上是单调的,从Ω= 0来Ω=∞. 在Ω= 1.
切比雪夫I型滤波器在整个通频带内通过合并相等的纹波,使理想和实际频率响应之间的绝对差值最小化Rp
dB在通频带内。阻带响应是最平坦的。从通带到阻带的过渡比巴特沃斯滤波器更快。
在Ω= 1.
切比雪夫II型滤波器通过合并一个相等的纹波,使整个阻带的理想和实际频率响应之间的绝对差最小Rs
dB在阻带中。通频带响应是最平坦的。
阻带不像I型滤波器那样快地接近零(并且对于偶数滤波器顺序根本不接近零n).然而,通带中没有纹波通常是一个重要的优点。 在Ω= 1.
椭圆滤波器在通带和阻带上都是等波纹的。它们通常以任何支持的滤波器类型中的最低阶数满足滤波器要求。给定滤波器阶数万博1manbetxn,通带纹波Rp
分贝和阻带波纹Rs
在分贝中,椭圆滤波器使过渡宽度最小。
在Ω= 1.
模拟贝塞尔低通滤波器在零频率下具有最大的组延迟,并在整个通频带内保持几乎恒定的组延迟。因此,滤波后的信号在通频带频率范围内保持其波形。当模拟贝塞尔低通滤波器通过频率映射转换为数字贝塞尔低通滤波器时,它不再具有这种最大平坦特性。信号处理工具箱™仅支持模拟情况下完整的贝塞尔滤波器设计万博1manbetx功能。
贝塞尔滤波器通常要求比其他滤波器更高的滤波器阶数以获得满意的阻带衰减。 在Ω= 1并随过滤顺序递减n增加。
请注意
上面所示的低通滤波器是用模拟原型函数创建的<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/besselap.html">besselap
,<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/buttap.html">buttap
,<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/cheb1ap.html">cheb1ap
,<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/cheb2ap.html">cheb2ap
,<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/ellipap.html">ellipap
.这些函数求一个的零点、极点和增益n
适当类型的th阶模拟滤波器,截止频率为1 rad/s。完整的滤波器设计功能(<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/besself.html">besself
,<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/butter.html">黄油
,<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/cheby1.html">cheby1
,<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/cheby2.html">cheby2
,<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/ellip.html">ellip
)将原型功能称为设计过程的第一步。看到<一个href="//www.tianjin-qmedu.com/de/help/signal/ug/special-topics-in-iir-filter-design.html" class="a">IIR滤波器设计专题一个>获取详细信息。
要创建类似的情节,请使用n
=5
根据需要,Rp
=0.5
和Rs
=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设计技术。与模拟原型方法不同,直接设计方法不受标准低通、高通、带通或带阻配置的限制。相反,这些函数设计的滤波器具有任意的,可能是多频带的频率响应。本节讨论<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/yulewalk.html">yulewalk
功能,专为滤波器设计;<一个href="//www.tianjin-qmedu.com/de/help/signal/ug/parametric-modeling.html" class="a">参数化建模一个>讨论了其他可能被认为是直接的方法,如Prony的方法,线性预测,Steiglitz-McBride方法,和反频率设计。
的<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/yulewalk.html">yulewalk
函数通过拟合指定的频率响应来设计递归IIR数字滤波器。<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/yulewalk.html">yulewalk
的名称反映了其寻找滤波器分母系数的方法:它找到理想的指定幅度平方响应的逆FFT,并使用得到的自相关函数样本求解修正的Yule-Walker方程。该声明
[b,a]=yulewalk(n,f,m)
返回行向量b
和一个
包含n + 1
分子和分母的系数n
其频率幅度特性近似于矢量中给定值的第三阶IIR滤波器f
和米
.f
为频率点的向量,取值范围为0到1,其中1为奈奎斯特频率。米
一个向量是否包含在点的指定的大小响应f
.f
和米
可以描述任何分段线性形状幅值响应,包括多频带响应。此函数的FIR对应项为<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/fir2.html">的故事
,设计了基于任意分段线性幅值响应的滤波器。看到<一个href="//www.tianjin-qmedu.com/de/help/signal/ug/fir-filter-design.html" class="a">数字滤波器设计一个>获取详细信息。
请注意,<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/yulewalk.html">yulewalk
不接受阶段信息,并且不会对结果筛选器的最优性做出任何声明。
设计一个多频带滤波器<一个href="//www.tianjin-qmedu.com/de/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/de/help/signal/ref/maxflat.html">maxflat
使你能够设计广义的巴特沃斯滤波器,也就是说,巴特沃斯滤波器具有不同数目的零和极点。在一些极点比零的计算代价更大的实现中,这是可取的。<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/maxflat.html">maxflat
就像<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/butter.html">黄油
函数,除了它可以指定两个阶数(分子1,分母1)而不是1。这些过滤器是最大限度地平.这意味着得到的滤波器对于任何分子和分母阶都是最优的,在0和奈奎斯特频率处的导数数最大ω=π两者都设置为0。
例如,当两个订单相同时,maxflat
是一样的黄油
:
[b] = maxflat (3, 3, 0.25)
a = 1.0000 -1.4590 0.9104 -0.1978
[b] =黄油(0.25)
a = 1.0000 -1.4590 0.9104 -0.1978
然而,<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/maxflat.html">maxflat
是更多功能的,因为它允许您设计的滤波器有更多的零比极点:
[b] = maxflat(3、1、0.25)
a = 1.0000 -0.2402
第三个输入<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/maxflat.html">maxflat
是半功率频率,频率在0到1之间,幅值响应为
.
您也可以设计线性相位滤波器,具有最大的平坦性质使用“符号”
选项:
maxflat (4“符号”, 0.3)
ans=0.0331 0.2500 0.4337 0.2500 0.0331
查阅有关的详细资料<一个href="//www.tianjin-qmedu.com/de/help/signal/ref/maxflat.html">maxflat
参见Selesnick和Burrus<一个href="//www.tianjin-qmedu.com/de/help/signal/ug/selected-bibliography.html" class="a">[2]一个>.