4. 传感器输出信号采集与处理
土壤水分传感器输出的原始信号,无论来自模拟接口还是数字接口,都不能直接当作最终含水率使用。采集环节决定数据“拿得准不准”,预处理环节决定数据“用得稳不稳”。本节围绕两条采集路径展开,并给出从原始读数到可入库数据的完整预处理流程。
一、模拟信号采集:从电压到数字量
常见的模拟型土壤水分传感器(如电容式探头)输出 0~2.5 V 或 0.5~4.5 V 的电压信号,部分型号输出 4~20 mA 电流环。采集系统的核心是“激励—响应—量化”三步:由采集器提供稳定激励电压,探头输出随介电常数变化的电压,再经 ADC 转换为数字量。
以 12 位 ADC、参考电压 3.3 V 为例,量化步长为 3.3/4096 ≈ 0.806 mV。若传感器灵敏度为 1 V 对应 10% 体积含水率,则 1 个 LSB 约对应 0.008% 含水率,分辨率足够。但实际误差主要来自三处:激励电压漂移、线缆压降、ADC 参考源温漂。工程上应做到:激励与 ADC 参考同源;模拟线采用屏蔽双绞线并单端接地;长线(>20 m)改用 4~20 mA 电流输出,因为电流环对线路电阻不敏感。
采集时序上,建议每次读数前丢弃前 2~3 个采样点(等待激励建立与探头稳定),再连续采集 N=16 个点求均值。若采集器支持,可在探头供电端并联 100 μF 电容抑制上电冲击。
二、数字信号采集:协议与帧解析
数字型传感器常见接口有 SDI-12、RS-485(Modbus-RTU)、RS-232 及 I²C。以 RS-485 Modbus-RTU 为例,典型参数为 9600 bps、8N1,从站地址 1,功能码 0x03,读取保持寄存器 0x0000 起的 2 个寄存器,其中寄存器内容为含水率×100(单位 0.01%)。
请求帧: 01 03 00 00 00 02 C4 0B
响应帧: 01 03 04 0B B8 01 F4 XX XX
└┬┘ └┬┘ └┬┘ └──┬──┘ └──┬──┘
从站 功能 字节数 含水率=30.00% 温度=5.00℃
数字采集的关键不是“读到了”,而是“读对了”。必须校验 CRC、检查字节数与功能码,并设置 200~500 ms 超时与最多 3 次重试。SDI-12 则需注意其 1200 bps、字符间隔与“aM!”“aD0!”的握手顺序,命令发出后须等待传感器返回服务请求再取数。数字接口的优势是免除了 ADC 量化与参考漂移问题,但引入了通信误码与总线冲突风险,因此帧校验不可省略。
三、滤波与去噪:先中值后均值
田间噪声有两类:高频随机噪声(如电源纹波、电磁干扰)和脉冲噪声(如接触不良、雷击感应)。均值滤波对随机噪声有效,但会被脉冲“拉偏”;中值滤波能剔除脉冲,却对缓慢漂移无能为力。因此推荐“先中值、后均值”的串联结构:对连续 5 点做中值滤波去掉尖峰,再对中值序列做 5 点滑动平均平滑随机波动。
举例:某序列为 28.1、28.3、45.6、28.2、28.4(%),第 3 点为明显脉冲。5 点中值输出为 28.3,脉冲被直接替换;若改用 5 点均值,结果为 31.72,误差被放大到 3.5 个百分点。可见滤波顺序不是形式问题,而是直接影响结果。
对缓慢变化过程(如土壤入渗),还可采用一阶低通滤波:yk = α·xk + (1−α)·yk−1,α 取 0.2~0.3 时兼顾平滑与响应。需注意滤波会引入滞后,标定与阈值判断时应使用滤波后的同一口径数据。
四、异常值剔除:三类判据配合使用
异常值剔除不能只靠单一阈值。实践中建议三层判据:物理边界(含水率 0~60%、温度 −20~60 ℃,超出即判无效);统计判据(滑动窗口内 3σ 或 IQR 法,IQR 判据为 x < Q1−1.5·IQR 或 x > Q3+1.5·IQR,对非正态分布更稳健);时序判据(相邻点变化率超过设定阈值,如 10 min 内跳变 8% 以上,需结合前后点复核,避免把真实降雨入渗误删)。
被剔除的点不要直接删除,而应写入质量标志位(如 0=正常、1=可疑、2=无效),保留原始值以便追溯。对短时缺失(连续少于 3 个点),可用线性插值补齐;对长时缺失,应标记为缺测,不得插值伪造。
五、数据预处理流程与结果判读
完整流程为:原始读数 → 物理量转换 → 中值+均值滤波 → 三层异常判据 → 重采样对齐 → 质量标志 → 入库。每一步都应保留中间结果,便于排障时定位问题出在采集端还是处理端。
结果判读可看三个指标:有效率(正常点占比,长期低于 90% 说明采集链路有问题)、噪声水平(滤波前后标准差之比,理想情况下降 50% 以上)、异常类型分布(若脉冲型异常集中出现,优先排查接线与屏蔽)。下表为一段教学假设数据的处理前后对比:
| 指标 | 处理前 | 处理后 | 判读 |
|---|---|---|---|
| 样本数 | 288 | 281(7 点标记无效) | 有效率 97.6%,正常 |
| 标准差 | 2.41% | 0.86% | 降噪 64%,滤波有效 |
| 最大跳变 | 17.3% | 2.1% | 脉冲已剔除 |
| 异常类型 | 脉冲 5、超量程 2 | — | 建议检查探头接线 |
至此,传感器输出的原始信号已转化为带质量标志、时间对齐、可直接参与标定与修正的含水率序列,为后续的标定建模与数据修正打下可靠基础。