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

时间:2014-08-13 19:56:45

标签: python numpy signal-processing

我有以下信号要处理(raw data):

enter image description here

我想处理信号以消除异常值以获得"平滑"曲线。 注意:我不想更改任何实际值,我只想删除虚假点。一个特定的要求是曲线"包裹" (即曲线的起点应与其末端相邻)。图片可能更有用(我手动跟踪黑线来说明):

enter image description here

到目前为止,我已经尝试根据距离移动平均线的距离对函数进行阈值处理,但是失败的情况非常糟糕。我也试过计算基于它的一阶导数和阈值,这也是无益的。关于如何达到预期效果的任何想法?我仍然相信这里有一个相对简单的解决方案。我正在使用Python / NumPy / SciPy。

1 个答案:

答案 0 :(得分:3)

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

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