是否可以一步结合抽取和低通滤波?不一定只适用于图像,也适用于一般信号。
是的,这就是人们在实现下采样时通常会做的事情:既然抗混叠滤波器的输出,你会丢弃 N-1 个样本,为什么还要计算这些?
诀窍是将您的滤波器分解为多相分量,这使您能够对每个下采样的输出只运行一次生成的滤波器操作,而不是每个输入一次。有很多参考实现——从 GNU Radio 的抽取 FIR 滤波器到图像处理硬件中的重新缩放器。
这样想:
诀窍是使用您的原始过滤器[h0,h1,h2,h3,…,hN,hN+1,hN+2,…,h2N,h2N+1,…]并将其拆分为过滤器,其中每个过滤器只有一个非零条目N系数。选择非零值位置,使第一个多相分量滤波器得到h0,hN,h2N,…,第二个得到h1,hN+1,h2N+1,…等等。
当您输入相同的输入时,将这些过滤器的结果相加,以“撤消”拆分。这不会改变任何东西,它是相同的过滤器,只是分成N过滤器中有许多零,但非零元素位于不同的位置。
加法后,您抽取N. 好的,你可以在添加之前这样做,所以现在你有一个输入流,输入N子过滤器,每个都有很多零,每个后跟一个抽取N.
现在你有一种特殊的滤波器,它只占用每个第 N 个滤波器抽头,所以第一个子滤波器的系数向量是[h0,0,…,0,hN,0,…,0,h2N,0…], 你会抽取N之后,您也可以交换抽取和过滤器,然后使用过滤器[h0,hN,h2N,…]. 这两件事实际上是相同的。这被称为贵族身份。
因此,我们可以为该过滤器“提前抽取抽取”。实际上,您可以对所有子滤波器执行此操作(您必须添加延迟,以便它在数学上适用于非零相位多相分量,但想法不会改变。您有一个输入流,进入N不同的延迟,逐级抽取N抽取器、子滤波器和求和。
碰巧的是,这意味着每次只有一个“分支”实际上在每个输入周期获得输入。