基于CRLB与多种非线性滤波算法的跟踪性能评价系统
本项目是一个集理论下限计算与多种先进非线性滤波算法于一体的性能评估平台。系统通过构建复杂的非线性运动与观测模型,实现对扩展卡尔曼滤波(EKF)、交互式多模型扩展卡尔曼滤波(IMM-EKF)以及非线性粒子滤波(NPF)的量化对比,旨在为雷达跟踪、导航定位等领域的算法选择提供科学依据。
功能特性
- 多算法集成评估:系统同时集成了经典的线性化算法(EKF)、处理机动目标的模型切换算法(IMM-EKF)以及基于统计采样技术的非线性粒子滤波(NPF),涵盖了目前主流的非线性状态估计方案。
- 理论极限对标:内置了基于Fisher信息矩阵递归的克拉美-罗下限(CRLB)计算功能,为各滤波算法提供了一个绝对的性能参考基准。
- 复杂机动场景模拟:仿真过程预设了混合运动模型,能够在单次仿真中模拟目标从匀速直线运动(CV)到协同转弯运动(CT)的平滑切换,有效检验算法在目标机动时的鲁棒性。
- 统计性能分析:系统通过多轮蒙特卡洛实验,自动计算并汇总均值误差(Mean Error)与均方根误差(RMSE),通过图形化界面直观展示误差收敛过程与跟踪精度。
系统要求
- 软件环境:MATLAB R2016b 或更高版本。
- 硬件要求:由于粒子滤波涉及大量采样计算,建议配备 8GB 以上内存的计算机。
- 依赖项:仅需基础版 MATLAB,无需额外安装特定工具箱。
实现逻辑与核心功能
系统的主体流程通过一个集成化的仿真架构实现,具体逻辑如下:
- 参数初始化:
程序首先定义采样周期为 1 秒,总仿真时长为 100 步。设置状态维数为 5 维,包含位置、速度及转弯率;量测维数为 2 维,包含距离和方位角。同时设定了过程噪声协方差矩阵(区分 CV 和 CT 模型)和量测噪声协方差。为了获得稳健的统计结果,默认配置 50 次蒙特卡洛运行。
- 理论下限计算:
在仿真开始前,系统依据预设的理论轨迹,通过递归更新 Fisher 信息矩阵的方法计算 CRLB。该计算不依赖具体的滤波器实现,而是基于状态转移阵的雅可比矩阵和量测阵的雅可比矩阵,得出位置估计在当前噪声强度下的最小理论方差。
- 轨迹与量测生成:
系统生成一段混合运动轨迹。前 50 步采用匀速直线运动模型,后 50 步切换为包含转弯率的协同转弯模型。同时,根据当前的真实位置计算雷达的非线性量测值(距离和角度),并添加符合高斯分布的观测噪声。
- 核心算法实现:
滤波仿真:
- 扩展卡尔曼滤波(EKF):通过对非线性量测方程进行一阶泰勒展开,利用雅可比矩阵更新状态估值与协方差,并包含角度归一化处理。
- 交互式多模型滤波(IMM-EKF):同时维护 CV 和 CT 两个匹配滤波器。根据预测概率进行模型交互与混合,通过似然函数动态调整模型权重,最后进行权重化融合,提升对机动目标的捕捉能力。
- 非线性粒子滤波(NPF):采用 200 个随机粒子表征后验分布。利用 SIR(采样重要性重采样)方案进行预测与更新。系统包含多项式重采样机制,当粒子有效性下降时自动进行重采样,避免粒子匮乏问题。
- 指标评估与可视化:
在所有蒙特卡洛实验结束后,系统计算三种算法在每个时间点上的位置均值误差和 RMSE。最终绘制两张对比图:第一张展示均值误差随时间的变化曲线,用以观察算法的偏差平衡能力;第二张展示 RMSE 与 CRLB 的对比曲线,用以评价算法的精度表现及是否达到理论最优界限。
关键函数与算法细节说明
- 运动模型转换:系统内部实现了转弯率 w 接近 0 时的模型退化处理。当转弯率极小时,自动将协同转弯(CT)阵切换为匀速直线(CV)阵,确保数值计算的稳定性。
- 量测算子线性化:在 EKF 和 IMM-EKF 的实现中,通过专门的导数计算函数提取量测矩阵的雅可比算子,将极坐标下的距离-角度量测映射回直角坐标状态空间。
- 状态更新机理:所有算法均加入了角度残差归一化操作,使用 atan2 函数确保角度误差始终保持在正负 pi 之间,防止滤波器的发散。
- CRLB 递归:采用信息矩阵叠代公式,综合考虑了过程噪声对不确定性的增加以及量测信息对不确定性的修正。
使用方法
- 打开 MATLAB 并将工作目录切换至项目文件夹。
- 在命令行窗口直接运行主程序脚本。
- 程序将开始执行 50 次蒙特卡洛循环,命令行会实时显示执行进度。
- 仿真结束后,系统会自动弹出两个图窗,显示不同滤波算法在位置跟踪性能上的详细对比结果。
- 用户可以根据需要修改脚本开头的仿真步数、粒子数量或蒙特卡洛运行次数来获取更精确的评估。