第2章:概率论与随机过程回顾:高斯分布、协方差传播、随机游走、马尔可夫假设

各位同学,欢迎来到第二讲。

做组合导航,说白了就是在跟不确定性打交道。传感器有噪声,模型有误差,连你手里的卫星信号都可能被高楼反射一下。那怎么处理这些不确定性?靠的就是概率论和随机过程这套工具。

我个人习惯,在讲卡尔曼滤波之前,先把这几块硬骨头啃下来。别怕,咱们一个一个来。

2.1 高斯分布:为什么到处都是它?

你想想看,为什么卡尔曼滤波里默认所有噪声都是高斯分布?

原因很简单:高斯分布数学性质好,而且现实中大量噪声确实近似高斯。中心极限定理告诉我们,很多独立随机变量加起来,分布就趋近于高斯。传感器热噪声、量化误差,基本都是这个路子。

一维高斯分布的概率密度函数:

p(x) = (1 / sqrt(2πσ²)) * exp(-(x - μ)² / (2σ²))

其中 μ 是均值,σ² 是方差。

多维情况呢?我们写成向量形式:

p(x) = (1 / sqrt((2π)^n |Σ|)) * exp(-0.5 * (x - μ)^T Σ^{-1} (x - μ))

这里的 Σ 就是协方差矩阵。它描述的不只是每个维度的方差,还有维度之间的相关性。

我在项目中遇到过一件事:有一次做车辆定位,IMU的加速度计噪声我一开始当成独立高斯处理,结果发现滤波效果很差。后来仔细一查,三个轴的噪声其实有相关性——因为芯片内部供电有耦合。加上协方差矩阵的非对角项之后,效果立马好了。

小技巧:实际工程中,如果不知道噪声分布,先假设高斯。然后通过残差分析验证假设是否合理。残差如果明显偏态,那就得考虑其他分布了。

2.2 协方差传播:误差是怎么传递的?

做组合导航,我们经常要问一个问题:已知输入量的误差,输出量的误差是多少?

比如,我知道陀螺的角速度测量有噪声,那积分出来的角度误差有多大?这就是协方差传播要解决的问题。

假设我们有非线性函数 y = f(x),x 的协方差是 P_x。那么 y 的协方差近似为:

P_y ≈ J * P_x * J^T

其中 J 是 f 对 x 的雅可比矩阵。

这个公式太重要了。卡尔曼滤波的预测步,本质上就是在做协方差传播。

注意:这个公式只对线性或弱非线性系统成立。如果非线性很强,就得用无迹变换或者粒子滤波了。我曾经在一个无人机项目中硬套这个公式,结果协方差矩阵发散——因为模型非线性太强,雅可比近似失效了。

举个具体例子。假设位置 p = p0 + v * dt,其中 v 是速度,dt 是时间间隔。如果 v 的方差是 σ_v²,那么 p 的方差就是:

σ_p² = σ_p0² + dt² * σ_v²

你看,时间越长,速度误差对位置误差的贡献就越大。这就是为什么纯惯性导航会随时间漂移——误差在积分中不断累积。

2.3 随机游走:为什么陀螺会漂移?

随机游走,英文叫 Random Walk。这个名字很形象——就像喝醉了酒的人走路,下一步往哪走完全随机。

在组合导航里,随机游走最常见的应用就是描述陀螺的零偏漂移。你开机时陀螺的零偏是一个值,过一会儿它就慢慢变了。这个变化过程,就可以建模为随机游走。

数学上,离散时间的随机游走可以写成:

x_k = x_{k-1} + w_{k-1}

其中 w_{k-1} 是高斯白噪声。你看,每一步都在前一步的基础上加一个随机量。

随机游走有个重要性质:它的方差随时间线性增长。也就是说,时间越长,不确定性越大。这跟前面协方差传播的例子是一个道理。

工程经验:我建议你在标定IMU时,一定要做艾伦方差分析。它能帮你把噪声拆解成角度随机游走、速率随机游走、零偏不稳定性等不同成分。这样你才能给卡尔曼滤波器设置正确的噪声参数。

我曾经遇到一个案例:某款MEMS陀螺,数据手册上写的零偏稳定性是 10°/h。但实际跑起来,半小时后航向角就偏了 30 度。为什么?因为手册给的是静态指标,而实际使用中温度变化、振动都会加剧随机游走。后来我们在滤波器里把过程噪声调大了两倍,才勉强压住。

2.4 马尔可夫假设:让问题变得可解

马尔可夫假设,说白了就是一句话:未来只与现在有关,与过去无关。

用数学语言说:

p(x_k | x_{k-1}, x_{k-2}, ..., x_0) = p(x_k | x_{k-1})

这个假设在卡尔曼滤波里至关重要。为什么?因为如果没有这个假设,我们要考虑所有历史状态,计算量会爆炸。

你想想看,如果每次更新都要回溯过去所有的状态,那滤波器根本跑不起来。有了马尔可夫假设,我们只需要记住当前状态和它的协方差,就可以递推下去了。

实际含义:在组合导航中,马尔可夫假设意味着:当前时刻的状态已经包含了所有历史信息。你不需要知道十分钟前发生了什么,只需要知道当前的位置、速度、姿态和它们的协方差,就能预测下一秒。

当然,这个假设在现实中并不完全成立。比如,陀螺的零偏变化其实是有时间相关性的——它可能是一个一阶马尔可夫过程,而不是纯随机游走。这时候我们就需要扩展状态,把零偏也作为状态量估计。

避坑指南:我曾经在一个项目中,把陀螺零偏建模为随机游走(即白噪声驱动),结果滤波器估计的零偏总是滞后于真实变化。后来改成了一阶马尔可夫模型,才跟上。所以,选择什么模型,取决于你对物理过程的了解程度。

2.5 知识体系总览

下面这张图,是我自己总结的本章知识脉络。你可以把它当作一个思维导图来看:

概率论与随机过程 高斯分布 中心极限定理 协方差矩阵 残差分析验证 协方差传播 P_y = J * P_x * J^T 雅可比矩阵 非线性近似 随机游走 x_k = x_{k-1} + w 方差线性增长 艾伦方差分析 马尔可夫假设 未来只与现在有关 递推计算基础 一阶马尔可夫模型 核心:不确定性建模 → 误差传播 → 递推估计 卡尔曼滤波基础

这张图把四个核心概念串起来了。高斯分布是基础假设,协方差传播是计算工具,随机游走是常见噪声模型,马尔可夫假设让递推成为可能。它们共同构成了卡尔曼滤波的理论基石。

好了,这一章就到这里。记住,这些概念不是孤立的——在后面的章节里,我们会反复用到它们。尤其是协方差传播和马尔可夫假设,几乎是卡尔曼滤波的骨架。

本章要点回顾:

  • 高斯分布:数学性质好,实际噪声近似,是卡尔曼滤波的基础假设
  • 协方差传播:P_y = J * P_x * J^T,误差通过雅可比矩阵传递
  • 随机游走:x_k = x_{k-1} + w,方差随时间线性增长,用于建模陀螺零偏漂移
  • 马尔可夫假设:未来只与现在有关,使递推估计成为可能

公众号:蓝海资料掘金营,微信deep3321