相关疑难解决方法(0)

删除时间序列中的峰值和阶跃等跳跃

我在现场有很多传感器可以测量水压。过去,这些传感器的高度已经改变了很多次,导致时间序列发生跳跃。由于这些时间序列是连续的,并且我有一个手动测量,所以从技术上来说,我应该能够消除跳跃(手动这很容易,但是测量太多,所以我需要在 python 中完成)。

我尝试过使用中值滤波器消除跳跃,但这并没有真正起作用。

我的代码:

    # filter out noise in signal (peaks)
    minimumPeak = 0.03 # filter peaks larger than 0.03m
    filtered_value = np.array(im.median_filter(data['value'], 5))
    noise = np.array((filtered_value-data['value']).abs() > minimumPeak)
    data.loc[noise, 'value'] = filtered_value[noise]
Run Code Online (Sandbox Code Playgroud)

数据是包含两列的 pandas 数据框:“日期时间”和“值”。

我也尝试过手动执行此操作,并使其在简单的情况下工作,但在其他情况下效果不佳。知道如何过滤掉跳跃吗?

下图显示了一个示例(黄色表示跳跃,红色表示手动测量(很可能该测量不是像本示例中那样在开始时进行))

具有跳跃的时间序列

python signal-processing

9
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×1

signal-processing ×1