我有一些我想模拟的 VHDL 代码。它使用整数 FIR 系数并执行整数加法。我使用的系数是从 scipy.signal.firwin 重新调整的。我在我的真实硬件中看到了一些干扰,这些干扰来自过滤器,我想在 python 中模拟。
然而,Python 用于 lfilter 浮点运算,这并不是我所需要的。我只需要整数算术,使用舍入来获得最接近的整数并通过滤波器传播信号。
有这样的功能还是我必须自己做?
谢谢
.d。
我有一些我想模拟的 VHDL 代码。它使用整数 FIR 系数并执行整数加法。我使用的系数是从 scipy.signal.firwin 重新调整的。我在我的真实硬件中看到了一些干扰,这些干扰来自过滤器,我想在 python 中模拟。
然而,Python 用于 lfilter 浮点运算,这并不是我所需要的。我只需要整数算术,使用舍入来获得最接近的整数并通过滤波器传播信号。
有这样的功能还是我必须自己做?
谢谢
.d。
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
开关避免在数据不足的情况下计算样本。您可以尝试不同的开关以获得边缘效果所需的行为。
此函数可能会在内部计算浮点数,然后舍入为整数。正如您所意识到的,这对最终答案没有影响。但是,如果您的目标是节省计算时间,您应该检查整数输入实际上是否比浮点输入更快。我敢打赌是的。