
本文所述的MATLAB代码实现了粒子滤波(PF)与自适应粒子滤波(APF)在三维动态系统状态估计中的对比。
如需定制、答疑,可通过文末卡片联系作者
文章目录
代码结构介绍
环境和参数设置
-
环境清理:用于清理 MATLAB 的工作环境,确保每次运行时的状态一致。
-
参数设置:定义了粒子滤波的基本参数,包括粒子数、过程噪声和观测噪声的协方差矩阵、真实状态及观测值的初始化。
生成真实状态和观测值
- 状态更新:通过给定的动态模型更新真实状态,计算观测值并添加噪声。
粒子滤波(PF)实现
- 预测、权重计算与重采样:实现了粒子滤波的核心步骤,包括对粒子的状态进行预测、计算与观测值的距离、更新权重以及重采样。
自适应粒子滤波(APF)
- 自适应调整:在计算权重后,根据估计值与观测值的差异自适应地更新观测噪声的协方差。
结果可视化与输出
- 绘图:绘制真实状态和滤波后的状态,展示不同滤波器的效果。
- 误差分析:计算并输出未滤波、PF 和 APF 状态估计的误差。
运行结果
运行界面截图:

三维状态曲线:

误差曲线:

误差统计特性(命令行截图):

代码与详细讲解:
https://blog.csdn.net/callmeup/article/details/144676130?spm=1011.2415.3001.5331