Python中的信号分析 - 从曲线中去除异常值

use*_*029 5 python signal-processing numpy

我有以下信号要处理(原始数据):

在此处输入图片说明

我想处理信号以消除异常值以获得“平滑”曲线。注意:我不想更改任何实际值,我只对去除虚假点感兴趣。一个特定的要求是曲线“环绕”(即曲线的起点应与其终点相邻)。一张图片可能更有帮助(我已经手动追踪黑线来说明):

在此处输入图片说明

到目前为止,我已经尝试根据与移动平均线的距离对函数进行阈值处理,但失败得很惨。我也尝试过基于此计算一阶导数和阈值,这也无济于事。关于如何达到预期结果的任何想法?我仍然相信我在这里缺少一个相对简单的解决方案。我正在使用 Python/NumPy/SciPy。

ely*_*ely 6

使用 SciPy 中的滚动中值滤波器:< http://docs.scipy.org/doc/scipy-0.14.0/reference/ generated/ scipy.ndimage.filters.median_filter.html >。

您还可以使用其他形式的滚动平均或滚动顺序统计过滤器。