跳到正文
智能传感启蒙

噪声:不要被一次读数骗走

10 分钟

把传感器放着不动,读数仍可能在 48、51、49、55 之间跳。这些不代表土壤几秒内忽干忽湿,而可能来自电源波动、接触不稳、电磁干扰和传感器自身随机变化。我们把不想要的波动叫噪声

先区分变化和噪声

真正变化通常有过程,土壤不会一秒从湿润变成干燥;光照却可能因为有人挡住窗户突然下降。判断要结合对象变化速度,不能用同一套过滤规则处理所有传感器。

多测几次取平均

连续读取五次再取平均,可以让随机的高低波动互相抵消。中位数也很有用:五个数里若有一个突然跳到极大值,排序后取中间那个,不会被异常点拖走。平均适合平缓噪声,中位数擅长处理偶发尖峰。

过滤有代价

把一分钟内数据全部平均,曲线会很平滑,但真正的快速变化也会被推迟发现。过滤越强,通常反应越慢。植物湿度变化慢,可以平滑得多一些;碰撞传感器要立刻响应,就不能等很久。

先修连接,再谈算法

读数乱跳可能是接线松动、电源不稳或探头损坏。不要用越来越复杂的滤波掩盖硬件故障。先检查电源、共地、接口和原始读数,再决定软件怎样处理。

保存原始值

调试时同时记录原始数据和过滤后的数据。只留平滑曲线,会看不到系统究竟过滤掉了什么,也难以判断参数是否过头。

练一练:读数为 50, 51, 49, 98, 50,比较平均数和中位数,哪一个更能代表稳定状态?为什么?

小纸条

过滤越强越好吗?