我正在努力寻找一种有效的方法来实现 FIR 梳状/抽取滤波器。对于给定的“原型”低通滤波器,“重复”的梳子频域中的时间可以通过上采样(填充每个样本之间的零),产生(Proakis 和 Manolakis 342)。我们将梳状滤波器的脉冲响应表示为.
我还希望将梳状滤波器输出减少一个因子. 我不希望级联积分器来制作 CIC 滤波器,并且我知道将引入混叠。我对此没意见。为了实现抽取 FIR 滤波器,我选择使用多相实现。这意味着我将拥有分支,每个分支都将包含基本 FIR 滤波器(Proakis 和 Manolakis 767)的下采样和延迟版本,即
然而,由于是-稀疏,即每一个中只有一个样本是非零的,每个多相分支,即使它们都被下采样,仍然会有很多零。一般来说,对于我的应用程序,每个分支过滤器都很有效是重新采样的版本因数(在上采样和下采样步骤之间没有插值/抽取滤波器)。
有没有一种计算上有效的方法来利用大多数抽头为零的事实?在浮点运算中乘以零是否需要更少的计算量或与乘以两个非零数相同的量?如果是这样,那么也许一个简单的实现就足够了。
参考文献:
Proakis、约翰和 Dimitris Manolakis。数字信号处理:原理、算法和应用。第 4 版。新泽西州上马鞍河:Pearson 2006。印刷。