68 lines
1.3 KiB
Matlab
68 lines
1.3 KiB
Matlab
clc
|
|
clear
|
|
close all
|
|
|
|
%% load echo data
|
|
filename = 'Raw_Echo_60dB';
|
|
load(['./data/', filename, '.mat']);
|
|
|
|
|
|
%% parameters
|
|
% ladar
|
|
PRF = 5000;
|
|
B = 5e6;
|
|
D = 0.1;
|
|
Tp = 2e-5;
|
|
fs = 5e6;
|
|
fc = 1.25e9;
|
|
|
|
% antenna
|
|
num_antenna = 18;
|
|
d = 0.12;
|
|
|
|
% echo
|
|
num_pulse = 64;
|
|
sigma_n = 0.1;
|
|
|
|
% detect
|
|
P_fa = 1e-4;
|
|
|
|
% algorithm
|
|
gamma_r = 0.5;
|
|
gamma_d = 0.5;
|
|
|
|
|
|
%% data processing
|
|
[distance_v, speed_v] = get_range_speed_val(PRF, fs, fc, num_pulse, gamma_r, gamma_d);
|
|
|
|
[A, signal_t] = generate_chirp_mtx(PRF, B, fs, D);
|
|
|
|
[echo_r_mtx_mf, sigma_n_o_mf] = range_process_MF(Raw_Echo, A, sigma_n);
|
|
|
|
[echo_rd_mtx_mf, stat_RD_mf] = doppler_process_MF(echo_r_mtx_mf, sigma_n_o_mf, gamma_d);
|
|
|
|
[target_list_RD_mf, target_map_mf] = rd_detection(stat_RD_mf, P_fa);
|
|
|
|
[target_list_RDA, RA_map] = angle_est(echo_r_mtx_mf, target_list_RD_mf, d, fc);
|
|
|
|
|
|
%% show result
|
|
element = 1;
|
|
list_r_idx = find(target_list_RDA(:, 1) == element);
|
|
|
|
target_list_RDA(:, 2) = distance_v(target_list_RDA(:, 2));
|
|
target_list_RDA(:, 3) = speed_v(target_list_RDA(:, 3));
|
|
figure(1)
|
|
scatter3(target_list_RDA(list_r_idx,2), target_list_RDA(list_r_idx,3),...
|
|
target_list_RDA(list_r_idx,4), 'filled', 'o')
|
|
% xlim([17000, 19000])
|
|
% ylim([80, 160])
|
|
% zlim([-90, 90])
|
|
|
|
|
|
%% save
|
|
echo_rd_mtx = echo_rd_mtx_mf;
|
|
save(['./output/', filename, '_mf.mat'],...
|
|
'target_list_RDA', 'echo_rd_mtx', 'RA_map', 'P_fa');
|
|
|