是否可以使用numpy计算递归数据

时间:2019-02-12 15:47:45

标签: python numpy scipy

我想在Python中实现指数平滑过滤器。目前,我计算:

y[n] = alpha * x[n] + (1 - alpha) * y[n-1],

其中x[n]是“当前样本”,y[n]是新样本,y[n-1]是先前的输出样本,而alpha是过滤器参数。

正如您可能想像的那样,我使用普通的Python迭代进行计算,它非常缓慢(例如,已经很难获得10000个数据点)。

可以使用numpy和矢量运算对这种演算进行编码吗?

我不确定我是否对scipy.signal感兴趣。我的主要目的是研究输入向量长度和系数alpha分辨率对输出精度的影响。

编辑: 看来我没有正确地提出问题-我对这种特定的解决方案不感兴趣,但是对“这种问题”不感兴趣。我使用此方程式作为基础,但是我对其进行了其他处理,特别是将整数分辨率的舍入和限制为alpha(编码为二进制补码)和y [n](修剪为特定位宽),因此它给出了结果与参数的分辨率一样好(基本上是模拟硬件行为)。因此,来自scipy的lfilter不是我可以使用的。另一方面,提议的Numba似乎正是我想要的。

0 个答案:

没有答案