FIR 梳状/抽取滤波器的高效实现

信息处理 抽取 有限脉冲响应 梳子
2022-02-03 20:30:42

我正在努力寻找一种有效的方法来实现 FIR 梳状/抽取滤波器。对于给定的“原型”低通滤波器H(z),“重复”的梳子L频域中的时间可以通过上采样(填充L1每个样本之间的零),产生H(zL)(Proakis 和 Manolakis 342)。我们将梳状滤波器的脉冲响应表示为c[k].

我还希望将梳状滤波器输出减少一个因子D. 我不希望级联积分器来制作 CIC 滤波器,并且我知道将引入混叠。我对此没意见。为了实现抽取 FIR 滤波器,我选择使用多相实现。这意味着我将拥有D分支,每个分支都将包含基本 FIR 滤波器(Proakis 和 Manolakis 767)的下采样和延迟版本,即

pi[n]=c[nD+i]

然而,由于c[k]L-稀疏,即每一个中只有一个L样本是非零的,每个多相分支,即使它们都被下采样,仍然会有很多零。一般来说,L>D对于我的应用程序,每个分支过滤器都很有效pi[k]是重新采样的版本h[k]因数L/D(在上采样和下采样步骤之间没有插值/抽取滤波器)。

有没有一种计算上有效的方法来利用大多数抽头为零的事实?在浮点运算中乘以零是否需要更少的计算量或与乘以两个非零数相同的量?如果是这样,那么也许一个简单的实现就足够了。

参考文献:

Proakis、约翰和 Dimitris Manolakis。数字信号处理:原理、算法和应用。第 4 版。新泽西州上马鞍河:Pearson 2006。印刷。

1个回答

“有没有一种计算上有效的方法来利用大多数抽头为零的事实?”

这些抽头(或可能非零的抽头)是否有模式?你能跳过那些事先知道系数为零的抽头吗?

其它你可能感兴趣的问题