
代码实现了经典的扩展卡尔曼滤波(EKF)与自适应扩展卡尔曼滤波(AEKF)在一个三维非线性动态系统中的对比。代码通过模拟一个三维状态变量的运动模型,展示了两种滤波算法在状态估计中的性能差异。
代码介绍
以下是代码的详细介绍:
主要功能
- 系统初始化:设定时间序列、过程噪声和观测噪声的协方差矩阵,以及初始状态和观测值。
- 运动模型:使用非线性运动模型更新真实状态和带有噪声的状态估计。
- 扩展卡尔曼滤波:通过预测和更新步骤计算 EKF 的状态估计,包括状态协方差的更新。
- 自适应扩展卡尔曼滤波:在 EKF 的基础上,增加了自适应机制,根据观测值与预测值的偏差动态调整观测噪声协方差。
- 结果可视化:绘制真实值、滤波后值和未滤波值的时序图,以及各状态的误差和误差的累积概率密度函数(CDF)。
代码结构
-
准备工作:
- 清理工作空间,设置随机数种子以确保结果可重复。
-
滤波模型初始化:
- 定义时间序列
t,过程噪声和观测噪声的协方差矩阵Q和R,并生成相应的噪声。 - 初始化状态协方差矩阵
P0和真实状态X,以及滤波后的估计状态
- 定义时间序列
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



