典型的过滤器订单

信息处理 过滤器 无限脉冲响应 有限脉冲响应
2022-01-28 10:16:56

我在我的第一个 DSP 项目中,我想为 ECG 应用程序实现低通/高通滤波器。我已经从 MATLAB 开始为我提供所需规格的订单和系数。我更喜欢使用 FIR 滤波器,但正如您所知,它们需要比 IIR 滤波器更高的阶数。由于这是我的第一个项目,我不知道对于在 DSP 中运行的过滤器顺序我应该考虑什么。(Analog Devices BlackFin)

所以我决定把这个问题作为一个一般性的建议,即 DSP 工程师愿意选择什么样的滤波器顺序来实现。DSP 的 100 个订单是否非常高?他们的订单少于 10 个吗?50?

我知道这在很大程度上取决于过滤器规格和我的应用程序。但我仍然想知道是否有一个范围要考虑。

我希望我能够传达我的问题。

2个回答

我在音频方面的经验是,对于 IIR 滤波器,通常每个小特征(用户故意放置的频率响应中的凸起或边缘)都有一个级联的二阶部分(SOS)。通常只有一个二阶 IIR 用于许多小工作,其中一些频率被略微提升或降低。我们将这些 IIR 滤波器称为参数均衡器

然而,对于一个固定且尖锐的特征(如某种砖墙),IIR 滤波器的顺序将与该特征的清晰度有关。对于砖墙,对于滤波器的每个整数阶,墙的每倍频程陡度为 6 dB。

对于 FIR,Fat 的回答很好。滤波器的阶数比 FIR 的抽头数少 1。最小阶数再次与频率响应中某些特定特征的锐度有关。有几个启发式公式可以初步猜测您需要什么顺序。我将尝试以一种比较苹果与苹果的方式来表达它们。

使用 Kaiser 窗 FIR 设计,滤波器阶数(比抽头数少一)约为:

N(A7.95)Fs14.357Δf

在哪里A是以 dB 为单位的砖墙衰减量,Δf是频率响应的标称未衰减部分和衰减部分之间的过渡频率宽度,以及Fs是采样率。

使用 Parks-McClellan 将减少N一点点:

N(12A+4.343rp29.7)Fs14.602Δf

新符号在哪里rp是以 dB 为单位的通带纹波。

这似乎是我预期的两倍。所以我不确定我做对了,但我对来自 O&S 的关于 P-McC alg 的方程非常小心。

应用程序本身根据过滤器规格确定所需的过滤器质量,并根据采样率确定所需的处理吞吐量。 Fs, 每秒样本数。

高质量过滤器往往具有严格的规格,并且对于给定类型的过滤器将需要高订单。然而,不同类型的过滤器可以以不同的顺序满足类似的规格。

过滤器的顺序和给定的数据(采样)率Fs,作为回报,决定了处理能力的要求。例如,一个 FIR 滤波器N将执行N+1长输入序列的每个典型输出样本的MAC(乘法累加) ;如果数据采样率是Fs每秒采样数,这意味着过滤器将执行(N+1)×Fs每秒 MAC 数。

给定一个时钟频率为M赫兹,和 MAC 效率L每赫兹的 MAC,那么您的处理器应该提供M×L>(N+1)×Fs,不包括由于索引、循环或内存操作引起的任何开销。

这是针对单核、单线程系统上的典型 FIR 实现。有多种架构可以实现基于多速率技术的 FIR/IIR 滤波器,或基于 SIMD 技术的并行化,这会影响处理能力。

最后,作为一个非常粗略的优点,对于音频应用44.1kHz,一个阶数小于的 FIR 滤波器20将具有大部分弱属性。之间的订单2090将具有(越来越)温和的质量,大于 128 的阶数可以具有良好到高质量的特性,其中高质量是指对滤波器频率响应的频谱形状进行更多控制。请注意,可能需要数千个抽头才能实现陡峭的过渡窄带 FIR 滤波器。

在对以下评论的后期回复中,可以通过使用基于 FFT 的频域乘法技术来大大提高 FIR 滤波器卷积的效率。我的回答是关于此时域的实现。