参考此维基百科页面上的“Parallel 1st-order IIR filters” ,讨论了 4 并行 IIR 滤波器的结构。但是,实现它的格式似乎很奇怪。
为什么有必要将 IIR 方程迭代 N 次?你能不能直接以直接形式并行化它。请参阅下面我的小鸡划痕框图。
参考此维基百科页面上的“Parallel 1st-order IIR filters” ,讨论了 4 并行 IIR 滤波器的结构。但是,实现它的格式似乎很奇怪。
为什么有必要将 IIR 方程迭代 N 次?你能不能直接以直接形式并行化它。请参阅下面我的小鸡划痕框图。
OP 显示的形式与参考解决方案之间的主要区别在于,参考答案隔离了极点并将其移离单位圆更远,从而导致更稳定的设计适用于定点解决方案。特别是 OP 给出的解决方案具有来自反馈环路内的每个元素(四个乘法器和加法器元素)的延迟累积,这将限制它可以在可实现的实现中在稳定条件下运行的最大时钟速率。
这在下图中显示了同步和组合元素。为了使该图准确匹配一阶 IIR 滤波器(单个反馈抽头),显示的内部功能必须是组合的。这将以 1/4 的时钟速率运行,但与此图像下方复制的 OP 的 Wikipedia 链接中显示的实现相比,状态在时钟周期之间稳定所需的时间要长得多。
OP的图表
Wikipedia Diagram (请注意,这仅显示了 4 个输出中的两个(,),在 Ben 的回答中,他链接了一个 pdf,显示了第 35 页上的扩展版本,显示了所有四个输出在每个时钟周期之后都需要。在这个部分或完整的图表中,反馈回路是相同的,这是要点:它仅由 1 个加法器和 1 个以 1/4 时钟速率运行的乘法器组成,而不是关键反馈回路中的 4 个加法器和 4 个乘法器)。
与采样率相比,IIR 以较低的速率运行。例如,如果采样率为 100 MHz,则硬件时钟为 25 MHz。这就是为什么架构像你说的那样奇怪。
根据记录,当采样频率高于 100 MHz 时,由于触发器(延迟元件)之间的组合延迟,很难在 FPGA 中满足时序收敛。有一些策略可以解决这个问题:
将您的 2 阶或 1 阶 IIR 滤波器拆分为并行滤波器,并以降低的速率运行它们,然后组合输出以恢复原始采样率。
或者,使用分散前瞻等技术将 IIR 滤波器的阶数从 2 增加到 4。或从 1 增加到 2。通过使用巧妙的零极点消除,您可以更轻松地满足时序裕量。我过去使用过这种技术。
见http://people.ece.umn.edu/users/parhi/SLIDES/chap10.pdf
在下图中,我解释了导致简单 IIR 1 阶滤波器组合延迟的原因。归根结底,组合延迟必须小于时钟周期,否则将无法满足时序收敛。例如,如果时钟为 100 MHz 且 Tcomb = 25 ns,您将无法在 100 MHz 下运行此滤波器。您需要将其分成 3 或 4 个以 33 MHz 或 25 Mhz 运行的并行滤波器。然后将并行滤波器的输出组合回 100 MHz。
一旦系数的数量很高(假设 3 个分子系数和 2 个分母系数 a1、a2),我可以向您保证,满足时序收敛可能非常困难。这就是创建这些并行 IIR 滤波技术的原因。