function [ target_list_RDA, target_map ] = rda_detection(stat_RD, P_fa) % Target detection, estimating distance, velocity, and angle intervals % % Usage: % [target_list_RDA, target_map] = rda_detection(stat_RD, P_fa) % % Inputs: % stat_RD: Range-Doppler statistics % P_fa: Probability of false alarm % % Outputs: % target_list_RDA: Target list include range, doppler and angle information % target_map: Show targets in RD map % parameters [lenA, lenR, lenP] = size(stat_RD); target_map = zeros(lenR, lenP); % detection threshold d_thd = chi2inv(1 - P_fa, 2) / 2; % find target target_list_RD = []; for i = 1: lenA RD_map = squeeze(stat_RD(i, :, :)); detect_map = zeros(size(RD_map)); detect_map(RD_map > d_thd) = 1; % target_map(i, :, :) = detect_map; [r, c] = find(detect_map); temp_node = [r, c]; target_list_RD = [target_list_RD; temp_node]; end target_list_RD_new = unique(target_list_RD, 'rows'); % estimate target angle interval target_list_angle = []; for i = 1: size(target_list_RD_new, 1) tgt = target_list_RD_new(i, :); stat_vct = stat_RD(:, tgt(1), tgt(2)); [v, idx] = max(stat_vct); target_map(tgt(1), tgt(2)) = idx; target_list_angle = [target_list_angle; idx]; end target_list_RDA = [target_list_RD_new, target_list_angle]; end