python - 是否可以使用 numpy 计算递归数据
问题描述
我想在 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 似乎是我正在寻找的。
解决方案
推荐阅读
- c# - C#、Winforms 设置
- node.js - Express-Cassandra 在单个列的同一查询中从 SET 数据类型进行多值搜索
- python - Python类变量更改未保存
- typescript - 是否可以在 TypeScript 中输入检查字符串别名?
- python - LEADER_NOT_AVAILABLE - 码头集装箱
- python - 芹菜函数未调用
- hiveql - 如何在 Hive 中进行逐行计数
- sql-server - 安装 SQL Server 2016
- math - 无法从 ESP8266/NodeMCU 上的 VMA320 热敏电阻获得准确的温度读数
- typescript - Google Firebase Cloud Functions 添加新的 Google 表格选项卡