You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于前序值与阈值实现传感器数据滤波(Jupyter Notebook环境)

传感器数据滤波器实现(Jupyter Notebook)

需求说明

现有每秒采集的传感器读数数组SenorData,需实现以下滤波逻辑:

  • 初始化空数组FilterData,依次将SenorData的元素存入其中
  • 当FilterData包含至少两个元素时,检查最后一个元素是否大于阈值500
  • 若超过阈值,用FilterData的倒数第二个元素更新SenorData中对应的当前元素
  • 循环执行上述逻辑完成数据滤波

代码实现

首先定义原始传感器数据:

SenorData= [110.3244118,
 110.3244118,
 110.3244118,
 110.3244118,
 110.3244118,
 110.3244118,
 110.3244118,
 170.7510605,
 170.7510605,
 2180.280465,
 2417.867061,
 2793.702506,
 2883.198035,
 2822.542497,
 2822.542497,
 2862.483596,
 2862.483596,
 2723.776971,
 2694.70809,
 2812.700278,
 2812.700278,
 2812.700278,
 2596.400342,
 2269.66155,
 1902.867214,
 833.9564196,
 457.4343089,
 160.3366192,
 131.0388501,
 131.0388501,
 91.09775079,
 91.09775079,
 91.09775079,
 91.09775079,
 91.09775079,
 91.09775079,
 91.09775079,
 91.09775079,
 91.09775079,
 91.09775079]

基础滤波实现(单次遍历)

FilterData = []
threshold = 500

# 遍历传感器数据进行滤波
for idx, value in enumerate(SenorData):
    FilterData.append(value)
    # 当FilterData至少有两个元素时触发检查
    if len(FilterData) >= 2:
        if FilterData[-1] > threshold:
            # 用前一个有效值替换当前超阈值数据
            SenorData[idx] = FilterData[-2]
            # 更新FilterData,保证后续处理一致性
            FilterData[-1] = FilterData[-2]

# 打印滤波结果
print("滤波后的传感器数据:")
for num in SenorData:
    print(num)

循环校验实现(确保无遗漏)

如果需要应对极端场景(比如替换后仍出现超阈值的连锁情况),可以循环遍历直到无超阈值元素:

FilterData = []
threshold = 500
has_over_threshold = True

# 循环校验直到没有超阈值元素
while has_over_threshold:
    has_over_threshold = False
    FilterData = []
    for idx, value in enumerate(SenorData):
        FilterData.append(value)
        if len(FilterData) >= 2:
            if FilterData[-1] > threshold:
                SenorData[idx] = FilterData[-2]
                FilterData[-1] = FilterData[-2]
                has_over_threshold = True

# 打印最终滤波结果
print("最终滤波后的传感器数据:")
for num in SenorData:
    print(num)

逻辑说明

  • 通过FilterData维护相邻两个传感器读数,实现实时的前后值对比
  • 超阈值数据直接被前一个有效值覆盖,快速过滤异常波动
  • 单次遍历适用于常规场景,循环校验可应对特殊的连锁异常情况

内容的提问来源于stack exchange,提问作者Jason

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 16:45:44