1. 粒子滤波基础概念
粒子滤波(Particle Filter, PF)是一种基于蒙特卡洛采样的非线性非高斯系统状态估计方法。我第一次接触这个概念是在2015年做无人机目标跟踪项目时,当时被传统卡尔曼滤波在非线性场景下的表现所困扰,直到发现了粒子滤波这个强大的工具。
1.1 为什么需要粒子滤波
在工程实践中,我们经常会遇到这样的场景:系统动态模型高度非线性,噪声分布也不符合高斯假设。比如:
- 自动驾驶汽车跟踪行人时,行人的运动模式突然改变(从走到跑)
- 工业机器人手臂受到突发性干扰(如碰撞)
- 金融时间序列中出现尖峰波动
这些情况下,传统的卡尔曼滤波(KF)及其变种(如EKF、UKF)就会失效,因为它们都基于高斯假设。而粒子滤波通过一组带权重的粒子来近似任意分布,完美解决了这个问题。
1.2 核心思想图解
想象你在一个黑暗的房间里寻找一只猫,你只能通过听声音来判断位置。PF的工作方式就像:
- 你撒出一把会发光的球(粒子)到房间各处
- 根据猫叫声音的强弱(观测似然)给每个球赋予不同亮度(权重)
- 把最暗的球收回,在最亮的球附近撒更多新球(重采样)
- 最后所有亮球的中心位置就是你对猫位置的估计
这个过程中,粒子数量、撒布策略、亮度计算方式都会影响最终定位效果。下面我们就深入解析这个过程的数学原理。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 粒子滤波的数学基础
2.1 贝叶斯滤波框架
粒子滤波的理论基础是贝叶斯滤波,其核心是递推地更新状态后验概率:
code复制p(x_k|z_{1:k}) ∝ p(z_k|x_k) · ∫ p(x_k|x_{k-1}) p(x_{k-1}|z_{1:k-1}) dx_{k-1}
这个公式包含两个关键部分:
- 预测步(积分部分):通过状态转移模型传播不确定性
- 更新步(乘积部分):通过观测数据修正预测
对于非线性非高斯系统,这个积分没有解析解。粒子滤波的突破在于用蒙特卡洛方法近似这个积分。
2.2 重要性采样原理
重要性采样是蒙特卡洛积分的一种变体,基本思路是:
- 从一个容易采样的建议分布q(x)中抽取样本
- 通过重要性权重w(x)=p(x)/q(x)校正偏差
- 用加权样本近似目标分布p(x)
在PF中,通常选择状态转移概率p(x_k|x_{k-1})作为建
