FIR 等波纹滤波器的行为如何接近 DC?

信息处理 过滤器设计
2022-02-09 10:07:48

我将两个具有相同频率 (f) 的正弦波相乘,但相位差可能为 0 <-> 90 度。乘积是两频正弦波,f1 = ff = DC 和 f2 = f+f = 2f。我现在想过滤掉 2f 组件。我目前在 Fs = 32 x f 采样。我在 Matlab 中得到了一个 40 阶等波纹 FIR 滤波器,这没问题,但如果我以后将采样率提高到 64xf、128xf 等,滤波器阶数会变得非常高。

但是,我假设 f1 不会完全是 0 Hz,而是接近 0 Hz。在该区域上,通带中的纹波可能是不需要的。在如此狭窄的范围内,涟漪会发生如此大的变化吗?(在通带中设置为最大纹波的任何限制范围内)。

我正在使用 Matlab 中的滤波器设计和分析工具,发现等波纹滤波器似乎没有任何接近 DC (0<->1Hz) 的波纹?它是否正确?

我需要一个能够以 60dB 衰减 2f 分量并且需要尽可能少的计算能力的滤波器。(使用定点在没有 FPU 的 MCU 上工作)。

对于我所描述的内容,是否有任何其他过滤器可以比 equiripple 做得更好?如果有人能让我相信它们的优势,我愿意接受其他类型的过滤器,如 IIR。

2个回答

如果您想知道滤波器的确切直流增益,请取系数之和。这适用于等波纹滤波器以及任何其他 FIR 滤波器。DC 不存在纹波之类的东西,因为“纹波”是用于描述某个频率范围内幅度变化的术语。

如果您正在寻找的是扁平通带,那么 equiripple 可以满足要求。在 Matlab 中使用fdatool时,请注意等波纹 FIR 滤波器允许您指定参数Apass此参数可让您调整通带中波纹的最大允许幅度,如下所示。默认情况下,它设置为 1,这意味着通带中的最大纹波为 1 dB。

MATLAB 滤波器规格图

如果您不受 FIR 滤波器的限制,那么您可能需要考虑使用 IIR 滤波器,具体取决于您的需要。使用 IIR 时,通常可以使用较低的滤波器阶数来获得所需的结果。这意味着更少的计算和更少的延迟。

你是对的;如果您应用到滤波器输入的信号不完全是 DC (0 Hz),那么由于滤波器的通带纹波,您可能会看到输出幅度略有不同。我会断言,对于大多数应用来说,这对于通带纹波的典型值(1 dB 或更小)来说要么是不可察觉的,要么可以忽略不计。您确定您的应用需要这种插入损耗一致性吗?

如果你确定,那么你可以做一些事情来缓解这个问题:

  • 设计一个更好的等波纹滤波器。如果 1 dB 的通带纹波太大,请尝试设计一个 0.5 dB 的通带纹波。如果这太多了,请考虑 0.1 dB。你看我要去哪里。诚然,将有一些限制,超过该限制将难以生成具有足够小的纹波的数值可实现滤波器,但我再次希望您的应用程序不太可能不能容忍 0.1 dB 的通带纹波。此外,降低允许的纹波将对所需的滤波器阶数产生直接影响,考虑到系统的限制,可能会达到不再可行的程度。

  • 不要使用等波纹滤波器。在您对问题的最新编辑中,您声明您的目标是使用尽可能少的处理能力将在这种情况下,这可能是IIR 滤波器的一个很好的应用数字 IIR 滤波器通常被实现为几类标准模拟原型滤波器之一的近似值。具体来说,对于您的应用程序,您可能会查看ButterworthChebyshev II 型结构。2f

    这两类滤波器都不会在其通带上提供纹波,因此如果您对在 DC 附近看到的衰减量很挑剔,它们可能更适合您的应用。此外,与等波纹 FIR 方法相比,您可以使用低阶滤波器满足相同的滤波器性能规格(即,将不需要的分量衰减至少 60 dB)。如果计算速度是您系统中的一个限制因素,那么这可能很有吸引力。

    你放弃了 IIR 结构的什么?FIR 滤波器很好,因为它们总是 BIBO 稳定的。此外,它们更容易在有限精度算术中稳健地实现(IIR 实现可能需要使用噪声整形技术来减轻反馈到滤波器的量化误差的影响)。最后,对称 FIR 滤波器提供线性相位响应,这对于某些应用来说可能很好。

    线性相位响应意味着对于正弦输入,滤波器引起的相位滞后等于恒定的时间延迟,无论正弦频率是多少。如果您关心滤波器输出相对于其他一些未滤波信号的相位,这将很有用。虽然可以设计线性相位 IIR 滤波器,但通常它们不具有此属性。