多目标数据关联算法MATLAB实现(NNDA/PDA/JPDA/IMM)
一、核心
1. 最近邻数据关联(NNDA)
function [assignments] = nnda(observations, tracks, threshold)
N = size(observations,1);
M = size(tracks,1);
cost_matrix = zeros(M,N);
for i = 1:M
for j = 1:N
delta = observations(j,:) - tracks(i,1:3);
S = tracks(i,4:6);
cost_matrix(i,j) = sqrt(delta*S*delta');
end
end
assignments = zeros(M,N);
for i = 1:M
[~,idx] = min(cost_matrix(i,:));
if cost_matrix(i,idx) < threshold
assignments(i,idx) = 1;
end
end
end
2. 概率数据关联(PDA)
function [assignments] = pda(observations, tracks, clutter_density)
[M,N] = size(observations);
cost_matrix = z