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