时序数据:极值滤波(保留原始数据长度)

用于事件阈值分割方法的滤波

 原始数据:

 极值滤波后:

# import numpy as np

def Compare_P(a,b): #输出绝对值较大的值
    a1 = np.absolute(a)
    b1 = np.absolute(b)
    if (a1 < b1):

        return b
    else:
        return a

def moving_peak_filter(data, window_size):
    # 创建一个与数据长度相同的空数组,并填充为NaN
    smoothed_data = np.full_like(data, np.nan)

    # 计算滑动窗口内数据的绝对值最大的值,并填充到结果数组中
    half_window = window_size // 2
    for i in range(len(data)):
        start = max(0, i - half_window)
        end = min(len(data), i + half_window + 1)
        a = np.max(data[start:end])
        b = np.min(data[start:end])
        smoothed_data[i] = Compare_P(a,b)

    return smoothed_data

window_size = 20 # 滤波窗口大小
# data = ... 读取需要降噪的数据
print("滤波前的数据长度:", len(data)) 

# 使用滑动均值滤波
smoothed_data = moving_peak_filter(data, window_size)

print("滤波后的数据长度:", len(smoothed_data))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值