首页 › 技术知识 › 技术专题 › 卡尔曼滤波在 GNSS 位移监测里的误用:越"平滑"越危险
技术专题地质卡尔曼滤波GNSS位移监测去噪滑坡

卡尔曼滤波在 GNSS 位移监测里的误用:越"平滑"越危险

Kalman Filter Misuse in GNSS Displacement Monitoring

GNSS 位移监测数据噪声大,很多人第一反应是上卡尔曼滤波"平滑"。但卡尔曼滤波会把真实位移和噪声一起吃掉——平滑过的曲线很漂亮,却再也测不出真实形变。

约 1924 字· 5 分钟阅读

为什么 GNSS 位移数据需要处理

GNSS 单点定位的位移序列,噪声水平大致是:

  • 静态基线解算(静态 PPP / 相对定位):±2~5 mm
  • 动态实时解算(RTK / PPP-RTK):±10~30 mm
  • 单点伪距定位:±1~3 m

滑坡监测关心的是缓慢累积的位移:每天几毫米到几十毫米。这个量级和 RTK 的噪声同阶——也就是说,单日位移可能小于当日噪声。这正是处理算法容易翻车的地方。

卡尔曼滤波的基本假设

标准卡尔曼滤波(KF)假设:

  1. 系统模型是线性的,状态转移是已知的(匀速/匀加速等);
  2. 过程噪声 Q 和量测噪声 R 是已知常数(或已知变化规律);
  3. 噪声是高斯白噪声。

对 GNSS 位移序列,这三个假设几乎全部不成立:

  • 状态模型不成立:滑坡位移不是匀速或匀加速运动,而是"长期缓慢 + 突发加速(滑移)"的混合。用匀速模型做状态转移,突发加速会被当成噪声滤掉。
  • 噪声不是常数:GNSS 误差随时间、卫星几何、多路径环境变化。白天夜晚、雨季晴天,R 完全不同。
  • 噪声不是白噪声:多路径效应是有色噪声(相关时间几分钟到几十分钟),违背高斯白噪声假设。

三种典型误用

误用一:把卡尔曼当"万能平滑器"

直接用 KF 滤波,参数 Q、R 凭感觉填。Q 填太小(认为过程很"稳"),滤波输出几乎完全跟随预测,噪声被压平——但真实位移也被压平。用一段已知的真实滑坡数据测试:当真实位移是"平台期 + 突然 20 mm 加速"时,Q 过小的 KF 会把 20 mm 加速摊成 5 mm/天的假趋势,报警被延迟了 3~4 天。

误用二:滤波后直接拿结果报警

滤波输出不是"真值",是基于模型的估计。它把相邻时刻的数据关联起来了,所以滤波后序列的"噪声"变小了,看起来更平滑——但这只是估计方差变小,不是真实误差变小。用滤波后数据做阈值报警,会显著增加虚警(因为估计值被模型"锁死"在惯性上,真实跳变前会出现持续偏离)。

误用三:Q/R 只调一次,全年不动

滑坡进入加速期、或监测环境变化(树木生长遮挡、多路径恶化),噪声 R 实际变大。固定参数 KF 在噪声变大时仍然"信任"新量测,输出噪声跟着变大;在噪声变小时又过度平滑。参数必须在线估计,否则滤波性能随季节漂移。

正确做法:先想清楚"要滤什么"

处理 GNSS 位移序列前,先回答:你要保留什么样的信号,滤掉什么样的噪声?

对滑坡监测,目标是保留"缓慢累积趋势 + 突发加速事件",滤掉"高频抖动(采样噪声)+ 短期相关噪声(多路径)"。这不是标准 KF 的目标。

工程上更稳的组合方案:

方案 A:滑动中位数 + 变化率判据

  • 用滑动中位数(窗口 1~3 小时)代替均值:中位数对突发尖峰不敏感,且不会像 KF 那样"锁死"趋势。
  • 报警判据用滑动窗口内的变化率(如 24 h 位移增量 > 阈值),而不是单点滤波值。
  • 优点:无模型假设、可解释、现场可复算。缺点:对缓慢累积的"阶梯形"位移(如裂缝蠕滑)不如 KF 平滑。

方案 B:自适应卡尔曼(Q、R 在线估计)

如果坚持用 KF,必须做三件事:

  1. 状态向量包含加速度项(匀速模型升级为匀加速/变加速模型),给突发加速留出表达空间;
  2. R 在线估计:用新息序列(innovation)的方差在线更新量测噪声 R,多路径恶化时自动增大 R;
  3. Q 下限约束:Q 不能小于物理下限(如位移过程噪声 ≥ 0.1 mm/√h),否则滤波"锁死"真实信号。

方案 C:多速率融合(推荐)

GNSS 位移 + 加速度计/倾斜计的融合:用加速度计的短时动态信息补充 GNSS 的低频趋势。这是真正的"信息融合",比单序列滤波信息量大得多。Kalman 在这里的用法是多传感器融合,而不是单序列平滑——这才是 KF 的主场。

一个验收测试

无论用哪种算法,装好后做已知位移测试:在监测点上放置一个可移动的基准(如强制对中盘 + 量具),人为制造一段"10 天累积 30 mm"的真实位移,看算法输出能否还原:

  • 若输出把 30 mm 摊成"无位移"或"均匀渐变"→ 滤波过度,报警能力被吃掉;
  • 若输出能清晰分辨"平台期 → 加速期"的分界 → 算法可用;
  • 若输出在无位移时段频繁超阈值 → 虚警过高,参数需重调。

任何处理算法,都必须在已知位移的测试数据上验证过才能用于报警。

结语

卡尔曼滤波不是"平滑器",是"模型 + 观测"的最优估计器。在 GNSS 位移监测里,模型的错误假设(匀速、白噪声、常数 R)会让它把真实形变当噪声滤掉。先想清楚要保留什么信号,再选工具:求稳用滑动中位数 + 变化率判据,求最优用自适应 KF 做多传感器融合。平滑得越漂亮的曲线,越要问一句:真实位移还在里面吗?