但是,实现两个单独的过滤器似乎效率很低。实现单个滤波器,然后从原始信号中减去输出以确定另一个信号不是更有效吗?
这实际上是一种非常常见的技术,正如 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πLn和l表示lth子过滤器,和n作为一个样本计数器,你最终会得到一个需要一个非常清晰的过滤器并复制它的东西L次,每次偏移1L总带宽,并为您提供L样本流,每个样本都包含这个所谓的多相分析滤波器组的一个组的输出,而无需支付计算成本L非常锐利的带通滤波器。
因此,如果您需要使用一个滤波器,并在一组滤波器中生成相同但频移的带通滤波器,其总和应该是原始信号:使用这些。他们真棒!