基于MATLAB的PDA概率数据关联目标跟踪仿真
项目简介
本项目实现了一个基于MATLAB的概率数据关联(Probabilistic Data Association, PDA)算法仿真系统。该系统专注于解决在强杂波环境下单一目标的稳定跟踪问题。通过结合卡尔曼滤波(Kalman Filter)与贝叶斯数据关联策略,系统能够有效地在众多虚假量测(杂波)中计算及更新目标的状态。
功能特性
- 强杂波环境模拟:在观测空间内基于泊松分布生成随机杂波点,模拟虚警信号,并结合探测概率(Pd)模拟目标的漏检情况。
- 匀速运动建模:采用匀速(CV)模型构建目标的状态空间方程,模拟二维平面内的目标运动。
- 波门筛选机制:利用卡方分布阈值构建椭圆确认波门(Validation Gate),并通过马氏距离(Mahalanobis Distance)剔除明显的非目标回波,减少计算负荷。
- 概率数据关联核心:计算波门内所有候选回波的互联概率($beta$系数),加权合成等效新息以修正状态估计。
- 蒙特卡洛评估:内置蒙特卡洛仿真框架,支持多次独立运行以统计算法的位置和速度均方根误差(RMSE)。
系统要求
- MATLAB R2016a 或更高版本
- 无需额外的工具箱(代码仅使用基础矩阵运算和绘图功能)
使用方法
- 将代码保存为
main.m 文件。 - 在MATLAB命令行窗口中直接运行
main。 - 程序将自动执行设定次数(默认50次)的蒙特卡洛仿真。
- 运行结束后,系统将绘制包含真实轨迹、杂波点、量测点及PDA跟踪轨迹的对比图,并计算RMSE指标。
代码核心逻辑与实现细节
本项目核心代码文件详细实现了以下流程:
1. 仿真参数配置与模型建立
- 状态空间模型:定义了二维匀速运动(CV)模型的状态转移矩阵 $F$ 和过程噪声协方差矩阵 $Q$。状态向量包含 $[x, v_x, y, v_y]$。
- 量测模型:定义了位置观测矩阵 $H$ 和量测噪声协方差矩阵 $R$。
- 杂波与门限参数:设置了传感器探测概率 $P_d=0.9$,波门概率 $P_g=0.99$,并根据卡方分布逆函数计算波门阈值 $gamma$。同时根据观测区域体积和总杂波期望数计算杂波密度 $lambda$。
2. 蒙特卡洛仿真循环
系统执行
nMc 次外层循环,每次循环包含独立的目标轨迹生成和完整的滤波过程。
#### 2.1 真实轨迹生成
在每次蒙特卡洛实验开始时,根据状态转移矩阵生成长度为 $N$ 的真实目标轨迹数据。
#### 2.2 传感器数据模拟(含杂波生成)
在每个时间步 $k$:
- 目标检测:根据探测概率 $P_d$ 判定目标是否被检测到。若检测到,生成叠加了高斯白噪声的真实量测。
- 杂波生成:根据泊松分布生成当前帧的杂波数量,并在观测区域内均匀分布产生杂波坐标。
- 数据合并:将真实量测(如果存在)与杂波数据合并,形成无序的传感器量测集合 $Z_{all}$。
#### 2.3 预测与波门筛选 (Gating)
- 卡尔曼预测:利用上一时刻的估计值进行状态预测和协方差预测。
- 新息计算:计算预测量测及其新息协方差矩阵 $S$。
- 有效量测筛选:遍历当前帧所有量测,计算其与预测中心之间的马氏距离。仅保留距离小于阈值 $gamma$ 的量测作为有效候选回波(Valid Measurements)。
#### 2.4 PDA 概率关联与状态更新
这是算法的核心部分,分为以下两种情况:
- 无有效量测:直接将预测状态作为后验估计状态(纯预测模式)。
- 存在有效量测:
1.
似然函数计算:基于高斯分布假设,计算每个有效量测源于目标的似然值。
2.
关联概率计算 ($beta$ Weights):引入杂波密度 $lambda$ 计算非参数化系数 $b$,随后归一化计算每个量测源于目标的概率 $beta_i$,以及量测全为杂波的概率 $beta_0$。
3.
等效新息合成:利用 $beta_i$ 对各个候选回波的新息进行加权求和,得到组合新息。
4.
状态修正:利用标准卡尔曼增益 $K$ 修正状态向量。
5.
协方差更新:除了标准的协方差缩减项外,还显式计算了由于量测来源不确定性引入的扩散项(Spread Matrix, $P_{tilde}$),并将其加入最终的误差协方差矩阵 $P_{est}$ 中。公式体现为:$beta_0 P_{pred} + (1-beta_0)P_{c} + tilde{P}$。
3. 性能评估与可视化
- 误差累计:在每次蒙特卡洛实验中,实时记录估计轨迹与真实轨迹的差值,并累计位置和速度的均方误差(MSE)。
- RMSE 计算:仿真结束后,通过总次数平均并开方,得到各时间点的均方根误差(RMSE)。
- 绘图:代码最后部分保留最后一次实验的数据,绘制杂波环境下的跟踪效果图,直观展示PDA算法在杂波干扰下的轨迹保持能力。