多周期多传感器时空数据融合与决策系统
项目简介
本项目构建了一个基于MATLAB的综合信息融合仿真平台,旨在解决多异构传感器(雷达、激光雷达、相机)在复杂环境下的时空数据融合问题。系统实现了从数据生成、时空配准、状态估计到决策级融合的全流程仿真。通过结合扩展卡尔曼滤波(EKF)与Dempster-Shafer(D-S)证据理论,系统不仅能够对非线性运动目标进行精确的轨迹跟踪,还能利用多周期历史信息进行鲁棒的目标分类决策。
功能特性
- 异构传感器仿真:模拟雷达(极坐标测距测角)、激光雷达(笛卡尔坐标定位)和相机(高置信度分类)三种不同体制传感器的特性,包含不同的采样频率(0.1s, 0.2s, 0.5s)、噪声分布及视场位置。
- 时空数据配准:处理异步采样数据,通过线性插值将不同传感器的时间戳统一对齐到主融合周期;同时完成从传感器局部坐标系到全局坐标系的转换。
- 非线性状态估计:采用序贯更新的扩展卡尔曼滤波(EKF)算法,结合CV(恒定速度)运动模型和非线性观测模型,实现对目标位置和速度的最优估计。
- 时空决策融合:利用D-S证据理论处理分类不确定性,结合空间维度(多传感器同时刻)与时间维度(历史记忆加权)的信息,实现抗干扰的高置信度判决。
- 可视化评估:直观展示真实轨迹、传感器原始观测点、融合跟踪轨迹以及分类决策概率的变化曲线。
系统要求
- MATLAB R2016b 或更高版本
- 无需额外工具箱(代码仅使用标准数学函数)
使用方法
直接在MATLAB环境中运行脚本文件即可启动仿真。程序将自动执行以下步骤:
- 初始化环境与随机数种子。
- 生成目标真实轨迹(CTRV模型)与含噪声的传感器观测数据。
- 执行时空配准预处理。
- 运行EKF进行轨迹平滑与状态估计。
- 运行D-S算法进行分类决策融合。
- 弹出图形窗口展示仿真结果。
代码实现逻辑与算法详解
本项目核心逻辑包含在主函数及其调用的五个关键子功能模块中:
1. 真实轨迹生成
- 采用 恒定转弯率和速度 (CTRV) 运动模型生成目标真值。
- 目标初始设定为45度航向,中途模拟机动(转弯率反向并增大),用于测试跟踪算法对机动目标的适应性。
- 设定目标真实类别ID,用于后续验证分类决策的准确性。
2. 传感器配置与观测生成
*
Sensor 1 (雷达):高频采样 (10Hz),输出距离和方位角,存在非线性观测噪声。
*
Sensor 2 (Lidar):中频采样 (5Hz),输出X/Y坐标,精度较高。
*
Sensor 3 (相机):低频采样 (2Hz),主要提供高置信度的分类概率向量 (BPA),定位精度较低。
- 观测数据生成时,考虑了各传感器相对于目标的几何关系,并叠加了高斯白噪声。分类数据通过在基础置信度上叠加随机扰动并归一化生成。
3. 时空配准 (Spatiotemporal Alignment)
- 时间同步:解决了多传感器异步采样问题。算法遍历主时间轴,对于每个时刻,在各传感器原始数据中寻找相邻的前后帧。如果时间对齐则直接使用;如果不对齐,则采用 线性插值 方法估算当前时刻的观测值。
- 空间校准:将雷达的极坐标观测(距离、角度)转换为笛卡尔坐标,并将所有相对于传感器自身的局部坐标转换为统一的全局坐标系,为后续融合做准备。
4. 状态估计 (EKF Implementation)
- 使用 扩展卡尔曼滤波 (EKF) 处理非线性跟踪问题。
- 预测阶段:基于线性CV模型(Constant Velocity)预测下一时刻的状态(位置与速度)。
- 更新阶段:采用 序贯更新 (Sequential Update) 策略。
* 对于
Lidar/Camera:使用线性观测矩阵 $H$ 直接更新。
* 对于
Radar:利用雅可比矩阵计算线性化的观测矩阵 $H$。虽然数据预处理阶段已将雷达数据转为笛卡尔坐标,但在EKF更新步中,为了保持非线性处理的严谨性,代码模拟了将预测状态反算回观测空间(距离/角度)计算残差 $y = z - h(x)$ 的过程,并处理了角度的周期性归一化。
5. 决策级融合 (Decision Fusion)
- 基于 Dempster-Shafer (D-S) 证据理论 实现。
- 空间融合:在该时间步,若有多个传感器数据可用,首先利用Dmpster组合规则 (
ds_combine) 计算联合基本概率赋值 (BPA),处理传感器间的冲突因子 $K$。 - 时空平滑:引入记忆机制,定义了平滑因子 (alpha=0.8)。当前的最终判决不仅仅依赖当下的观测,而是当前时刻的空间融合结果与上一时刻的历史置信度进行加权平均。这种设计模拟了滑动窗口效应,有效抑制了单次观测的随机波动,提高了识别结果的稳定性。