1

我有一些我想模拟的 VHDL 代码。它使用整数 FIR 系数并执行整数加法。我使用的系数是从 scipy.signal.firwin 重新调整的。我在我的真实硬件中看到了一些干扰,这些干扰来自过滤器,我想在 python 中模拟。

然而,Python 用于 lfilter 浮点运算,这并不是我所需要的。我只需要整数算术,使用舍入来获得最接近的整数并通过滤波器传播信号。

有这样的功能还是我必须自己做?

谢谢

.d。

4

1 回答 1

0

numpy.convolve怎么样?

这是一个使用过滤器添加前两个样本的简单示例。

signal, coeffs = np.array([1,2,3,4,5]), np.array([1, 1])
output = np.convolve(signal, coeffs, mode='valid')

结果:

array([3, 5, 7, 9])

请注意,输出比输入短一点,因为mode=valid开关避免在数据不足的情况下计算样本。您可以尝试不同的开关以获得边缘效果所需的行为。

此函数可能会在内部计算浮点数,然后舍入为整数。正如您所意识到的,这对最终答案没有影响。但是,如果您的目标是节省计算时间,您应该检查整数输入实际上是否比浮点输入更快。我敢打赌是的。

于 2012-12-17T09:26:17.337 回答