哪些 IIR 滤波器近似于高斯滤波器?

信息处理 过滤器 过滤器设计 高斯
2022-01-17 00:48:08

因此,我最近意识到贝塞尔过滤器尽管与其他常见类型一起列出,但实际上是属于不同“类别”的奇怪球,我正在尝试了解更多有关它的信息。

矩形幅度响应代表理想的频域响应,因为过渡带为零,阻带具有无限衰减。另一方面,高斯幅度响应代表理想的时域响应,因为在脉冲响应和阶跃响应中没有出现过冲。在实践中获得的许多响应都是这些理想响应的近似值

因此,brickwall 滤波器是与 sinc 函数的卷积,并且具有以下频域属性:

  • 扁平通带
  • 零阻带
  • 无限滚降率/无过渡带

它是非因果的和无法实现的,因为在两个方向上都有无限的尾巴。它由这些 IIR 滤波器近似,随着阶数的增加,近似值得到改善:

  • 巴特沃斯(最大平坦通带)
  • Chebyshev(阻带或通带纹波的最大滚降率)
  • 椭圆(阻带和通带纹波的最大滚降率)
  • Legendre (单调通带的最大滚降率)

随着订单的增加,4 种过滤器类型接近砖墙响应


高斯滤波器是与高斯函数的卷积,具有以下时域特性:

  • 零超调
  • 最小的上升和下降时间
  • 最小群延迟

由于与 sinc 函数相同的原因,它无法实现,并且可以通过这些 IIR 滤波器来近似,随着阶数的增加更接近:

  • 根据12的贝塞尔(最大平坦群延迟)

这是递增阶的贝塞尔滤波器以及我选择的高斯虚线,仅仅是因为它似乎符合趋势(e12(πω)2):

贝塞尔滤波器应该随着阶数的增加接近高斯响应,猜测高斯

所以我的问题是:

到目前为止一切正常吗?如果是这样,是否还有其他近似高斯的 IIR 滤波器?它们针对什么进行了优化?也许可以最大限度地减少过冲?

如果您搜索“IIR Gaussian”,您可以找到一些东西(Deriche?van Vliet?),但我不知道它们是否真的与 Bessel 相同,或者它们是否针对其他属性进行了优化等。

3个回答

Derichevan Vliet过滤器是启发式的。在这两种情况下,他们都会选择极点和零点的位置,以最小化 RMS 差异或滤波器脉冲响应与高斯的最大差异。

两个过滤器都是因果-反因果对。所以我认为它们没有相位误差或群延迟,但您需要能够在数据上向后和向前运行它们。这使得它们在图像处理中很受欢迎,但可能限制了它们在其他地方的适用性。

大量调整它们的论文证明了它们是启发式的。例如,谷歌搜索(当我在寻找 Deriche 论文的链接时)出现了这个试图解决 Deriche 高斯导数滤波器没有精确为 0 DC 响应的问题。还有一些关于正确初始化边界条件的有趣问题

我发现以下概述是一个很好的资源:Dave Hale,递归高斯滤波器,科罗拉多矿业学院波浪现象中心报告 CWP-546。

我认为您对离散时间 IIR 滤波器的现有分析解决方案进行了很好的总结。但我也会将贝塞尔滤波器添加到近似理想频率选择滤波器特性的滤波器列表中。它的幅度响应不像其他相同阶数的滤波器类型那样急剧转变,但这是您为通带中几乎线性相位付出的代价。因此,贝塞尔滤波器是频率选择幅度响应和良好相位响应之间的折衷。

为了用 IIR 滤波器逼近高斯滤波器,除了您提到的贝塞尔滤波器之外,我不知道任何解析解决方案。但请注意,贝塞尔滤波器并不是要逼近高斯滤波器,所以我不确定它在逼近这种滤波器时到底有多好。如果您真的需要为此目的使用 IIR 滤波器,我建议您使用高斯滤波器的数值近似。有几种方法可以做到这一点。

您可以尝试在频域中近似高斯滤波器。问题是您必须对所需的相位响应做出一些决定。具有最小相位响应的纯幅度近似很可能导致非常差的时域特性。如果你指定一个线性的期望相位,那么你会得到一个复杂的近似问题(因为你用幅度和相位来近似复杂的频率响应)。尽管这样的近似问题可能很难解决,但文献中存在一些方法。

一种更简单且可能更好的方法是在时域中近似高斯滤波器。Prony 的方法将是一个很好的起点。

请注意,这些只是我对这个话题的想法。我没有尝试自己设计 IIR 高斯滤波器。除非有充分的理由反对它,否则我实际上会选择 FIR 实施。

编辑:关于贝塞尔滤波器是否近似于高斯的问题,还有一些评论。我不知道贝塞尔滤波器在逼近高斯滤波器时最小化的任何有意义的误差标准。不过,我很乐意了解它。人们可能会声称贝塞尔滤波器的脉冲响应看起来类似于高斯,或者它的频率响应类似于高斯,但我还没有看到任何证据表明贝塞尔滤波器在任何意义上都近似于高斯,并且近似误差达到随着滤波器阶数的增加为零。我不否认它比其他标准滤波器(Butterworth、Chebyshev 等)更类似于高斯滤波器,但这对于这个问题并不重要。

请参见下面四个贝塞尔滤波器的脉冲响应图(5、10、15、20 阶),用 Octave(函数 besself)设计。如您所见,尾部的振铃不会随着滤波器阶数的增加而减少,而且我看不到这些滤波器如何逼近高斯,如果是,则根据哪个最优标准。但是,如果有人能告诉我这一点,我会非常高兴。

在此处输入图像描述

我可能有点晚了,但我只会回复关于(模拟)贝塞尔和高斯之间“相似之处”的部分。

她们不一样。贝塞尔滤波器旨在近似理想延迟:

(1)B(s)=esτ

而高斯滤波器试图逼近高斯钟形:

(2)|G(jω)|2=eαω2α=ln2ωp

在制作滤波器时,贝塞尔滤波器是从需要平坦群延迟的前提开始构建的,因此推导从那里开始并到达贝塞尔多项式(例如,参见ee.se 上的这个)。

另一方面,高斯从生成函数的泰勒展开开始:

eαω21+k=1Nαkk!ω2k

如果误差似乎随着阶数的增加而变得越来越小,那是因为近似值越来越高,所以误差实际上是非常高多项式的残差。但他们的特点有很大的不同。而对于高阶,在寻找差异时,需要在对数尺度上寻找。

以下是两个 8 阶滤波器的比较,其中贝塞尔滤波器应用了频率缩放以匹配高斯的 -3 dB 频率。通常,这会扰乱群延迟(可能与ee.se 有关),但这里只是为了比较:

bg

贝塞尔滤波器具有平坦(三)群延迟,而高斯滤波器具有较慢的相位滚降,因此具有更好的时间延迟。在两者之间,贝塞尔滤波器具有更好的更高衰减。此外,贝塞尔滤波器总是会有一点过冲,即使是小阶的高斯滤波器,但无过冲标准适用于高斯滤波器,而不是贝塞尔滤波器。

简而言之,两者都用于时间滤波,但贝塞尔用于平坦群延迟,而高斯用于无过冲——不是最小延迟,这可以通过非常差的滤波器来实现,但最小延迟和最快的上升时间和没有过冲。