Add Example
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
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
|
||||
Reference in New Issue
Block a user