Python 将数字信号平滑转换为模拟信号但保留峰值

Python smooth digital signal into analog but retain peaks

我有一个 pandas 系列,主要是零和一些零,我想“创造尾巴”或“平滑”那些,但我缺少所需的统计背景来表达我的意思想google吧。

用代码表示,我有source,想把它变成target

source = pd.Series([0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0])
target = pd.Series([0.0, 1.0, 0.7, 0.4, 0.1, 0.0, 0.0, 1.0, 0.7, 0.4, 0.1, 1.0, 0.7, 0.4])


source.plot(drawstyle="steps-pre")
target.plot(drawstyle="steps-pre")

蓝线是源,橙色是目标

这个操作是怎么调用的?在 pandas/numpy/scipy

中如何操作的奖励积分

这是一个卷积:涉及两个函数。一个是您的原始数据,另一个称为“内核”或“过滤器”。在你的例子中,内核是 [1.0, 0.7, 0.4, 0.1]。将两者相乘,同时逐级偏移核得到结果。在“数字过滤”的一般主题下可以找到比蛮力更有效的算法。