[英]in python how to force lfilter from scipy.signal to work over integers
我有一些要模拟的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
开关可避免在数据不足的情况mode=valid
计算样本。 您可以尝试使用不同的开关来获得所需的边缘效果。
此函数内部可能会计算浮点,然后四舍五入为整数。 如您所知,这对最终答案没有影响。 但是,如果您的目标是节省计算时间,则应检查整数输入的实际速度是否比浮点输入的速度更快。 我打赌是这样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.