系统所需的每秒乘法次数

信息处理 采样 低通滤波器 DSP核心 下采样 巴特沃思
2022-02-20 11:36:36

考虑一个实现 5/7 的合理采样率变化的系统:为此,我们级联 5 个上采样器、一个截止频率为 π/7 的低通滤波器和一个 7 个下采样器。低通滤波器是一个 4 阶巴特沃斯滤波器,具有传输功能

H(z)=b0+b1z1+b2z2+b3z3++b4z41a1z1a2z2a3z3a4z4
假设输入以每秒 1000 个样本的速率工作。系统每秒需要多少次乘法?假设乘以零不计算在内。

由于剩下 9 个滤波器系数和 5000 个样本(在上采样、滤波、下采样之后),9*5000 = 45000 是我的 MAC 计算,但这似乎是错误的方法,还有其他想法可以解决这个问题吗???

1个回答

一种可能的选择是将低通滤波器分成 FIR 部分和纯递归 IIR 部分。

H(z)=H1(z)H2(z)=11a1z1a2z2a3z3a4z4[b0+b1z1+b2z2+b3z3++b4z4]

您仍然需要将递归部分应用于上采样域中的每个样本,但您只需要在需要实际输出样本时运行 FIR。所以这可能是

N=50004+(50005)/7

就稳定性和噪音性能而言,这不是一个好主意,但如果你有足够的精度和头部空间,那就可以了。

更新:

还有其他方法可以潜在地减少乘法。Butterworth 的 FIR 部分可以分为两个二阶部分,它们很简单[121]所以你可以把它写成

H(z)=H3(z)H4(z)H4(z)=b01a1z1a2z2a3z3a4z4[1+z1+z1+z2][1+z1+z1+z2]

因此,在这种情况下,它可以降低到每秒 25000 次乘法,尽管它不是一个特别有用的实现。最后,有多种不同的方式来实现它们,哪一种更好取决于平台的属性。