减法是有效过滤的常用方法吗?

信息处理 过滤器 过滤器组
2022-02-01 20:34:58

我最近一直在做一些关于滤波器组的 DSP 编程。我遇到的一个主题是二元滤波器组。该滤波器组实质上将信号分解为对应于某个倍频程的子带信号。

查看一些图表,我注意到其中许多说明了同时实现高通滤波器和低通滤波器。这将基本上产生两个子带信号。从概念上讲,这是有道理的。

但是,实现两个单独的过滤器似乎效率很低。实现单个滤波器,然后从原始信号中减去输出以确定另一个信号不是更有效吗?

换句话说,只实现低通滤波器以获得较低的子带信号。然后简单地从输入信号中减去那个较低的子带信号。这应该产生更高频带的信号。

所以我的问题:

  • 这种技术普遍吗?
  • 此外,从低通滤波器的相位失真或滞后于低频带信号的意义上讲,它是否容易受到相位失真的影响?
2个回答

你对灵态的重要性是正确的。

时域的减法相当于频域的减法。如果被减去的复数和被减去的复数在某个频率的频域相位不相等,即使它们的幅度相同,结果也将非零:

复数减法
图 1. 等量复数的减法并不总是得到零。计算是黑色=红色-蓝色

如果黑点代表系统输出的组合频率响应 = 输入 -在您打算成为阻带一部分的频率下的滤波输入,则必须确保滤波器是零相位的。或者,如果滤波器是线性相位的,并且在某个时间在其脉冲响应中具有对称中心,则必须在减法之前将输入的副本延迟相同的时间。由于其非线性相位,这不适用于有效的无限脉冲响应 (IIR) 滤波器。

但是,实现两个单独的过滤器似乎效率很低。实现单个滤波器,然后从原始信号中减去输出以确定另一个信号不是更有效吗?

这实际上是一种非常常见的技术,正如 Olli指出的那样,只有在将滤波器的群延迟合并到原始信号的路径中以形成一个低通滤波器(HPF)。

orig -->LPF-->(·-1)-> (+) --->
     |                 ^
     |                 |
     -----> Delay -----/

如果您考虑这一点,假设该方案中的 LPF 恰好是半带滤波器,因此,生成的 HPF 也是 HB,只是它让我们通过频谱的“另一半”。

Nyquist 说您现在必须将输出过采样 2 - 信号现在仅包含在可用频谱的一半中。因此,您现在“可以”丢弃一半的样本,而不会产生混叠(暂时假设过渡宽度不存在)。丢弃一半的样本通常用↓2 表示。

orig -->LPF-->(·-1)-> (+) -> ↓2 -->
     |                 ^
     |                 |
     -----> Delay -----/

嗯,看起来我们做丢弃太晚了。如果我们稍后要忽略它们,添加样本是没有用的。因此,上面等同于:

orig -->LPF-->(·-1)-> ↓2 ->(+) -->
     |                      ^
     |                      |
     -----> Delay --> ↓2----/

这等同于:

orig -->LPF-> ↓2 -> (·-1)->(+) -->
     |                      ^
     |                      |
     -----> ↓2 --> Delay----/

现在,您的 LPF 是一个 FIR 滤波器。

不想解释所有的多相滤波器,您可以毫无问题地采用具有 N 个抽头的滤波器,并将其分解为抽头向量,一个包含 0., 2., 4., (even) … 另一个一个包含 1.、3.、...(奇数)抽头,然后将每隔一个偶数样本馈入第一个,将每个奇数样本馈入第二个子滤波器并将结果相加。如果您考虑这一点,您现在可以在添加这些过滤器输出的点上“拉入”↓2,很明显您可以节省大量计算。

这和你的问题有什么关系?如果你进一步思考这个想法,你可以将任何(足够长的)过滤器分解成一个数字L的子过滤器。如果您随后将每个子过滤器“旋转”一个elj2πLnl表示lth子过滤器,和n作为一个样本计数器,你最终会得到一个需要一个非常清晰的过滤器并复制它的东西L次,每次偏移1L总带宽,并为您提供L样本流,每个样本都包含这个所谓的多相分析滤波器组的一个组的输出,而无需支付计算成本L非常锐利的带通滤波器。

因此,如果您需要使用一个滤波器,并在一组滤波器中生成相同但频移的带通滤波器,其总和应该是原始信号:使用这些。他们真棒!