过滤级联:每个输入样本的加法和乘法

信息处理 matlab 过滤器 抽取
2022-02-09 11:10:15

最近我正在阅读Crochiere 和 Rabiner (1975) 的“用于抽取、插值和窄带滤波的最佳 FIR 数字滤波器实现”。为了估计抽取阶段和因子的数量,他们的目标是优化乘法的总数和添加(每秒)呼叫此号码RT. RT是每个阶段的乘法和加法的总和:

RT=iKRi.

在使用 Matlab 时,我发现了 Matlab 函数designMultistageDecimator ,在一个示例中,他们通过计算成本(使用函数cost )将多级方法与单个滤波器进行比较,然而,这里是每个输入样本的乘法和加法。

我会假设成本的行为方式是,它是每个阶段所有成本的总和。

对于单个滤波器,然后将其与级联进行比较,我理解具有 753 个系数和 48 抽取因子的结果,每个输入样本大约有 16 个乘法器和 16 个加法器。

但是当涉及到滤波器级联时,在Matlab给出的示例中

  • 第一阶段有 17 个系数(13 个非零)和 3 的抽取因子
  • 第二阶段有 11 个系数(7 个非零)和 2 的抽取因子
  • 第三阶段有 15 个系数(9 个非零)和 2 的抽取因子
  • 第四阶段有 63 个系数(49 个非零)和 4 的抽取因子

每个输入样本的估计乘法约为 7.2,加法约为 6.6。

这让我很困惑,我假设大约是 ~25 乘法和 ~25 加法。仅采用具有或多或少 50 个非零元素且抽取因子为 4 的最后阶段将至少增加 12.5 次操作,或者不?

所以我的问题是,

  • 在 matlab 中使用函数 cost 计算级联设计的乘法和加法的成本是如何计算的?(感谢@TimWescott)

  • 为什么它不是每个阶段的乘法和加法的总和?输出端的样本必须至少在最后阶段的多相树上看到至少 12 个系数?

跟进问题:

  • 在@TimWescott 的回答之后,我现在明白了成本函数结果背后的数学原理。但是,我问自己如何解释成本函数的输出?在示例中,给出这个例子,真的只看到〜7乘法/〜7加法?
  • 在 dsp-terminolgy 中,操作的计算方式如下:

13/3 + 7/2 +9/2 +49/4 = ~25

代表?

1个回答

如果您在舞台前进行规定的抽取,他们的数字就会正确,并且您要注意抽取是累积的这一事实。

因此,第一级以输入速率的 1/3 运行,第二级以 1/6 运行,第三级以 1/12 运行,第四级以 1/48 运行。如果您将加法和乘法乘以这些数字,那么它们声明的数字就会起作用。