55 lines
1.9 KiB
Matlab
55 lines
1.9 KiB
Matlab
function [ echo_rd_mtx, target_list_RDA, sigma_n_rd ] =...
|
|
echo_processing_MF( echo_mtx, PRF, fs, fc, B, D, d, sigma_n, P_fa )
|
|
% This function processes echo data using matching filter method.
|
|
%
|
|
% Usage:
|
|
% [echo_rd_mtx, target_list_RDA, sigma_n_rd] = echo_processing_MF(echo_mtx, PRF, fs, fc, B, D, d, sigma_n, P_fa)
|
|
% Inputs:
|
|
% echo_mtx: Matrix containing the echo data
|
|
% PRF: Pulse Repetition Frequency
|
|
% fs: Sampling frequency
|
|
% fc: Carrier frequency
|
|
% B: Bandwidth
|
|
% D: Duty ratio
|
|
% d: Antenna spacing
|
|
% sigma_n: Input noise level of the echo data
|
|
% P_fa: False alarm probability threshold
|
|
%
|
|
% Outputs:
|
|
% echo_rd_mtx: Echo matrix after range-Doppler processing
|
|
% target_list_RDA: List of detected targets
|
|
% sigma_n_rd: Estimated noise level after range-Doppler processing
|
|
|
|
|
|
% parameters
|
|
c = 3e8;
|
|
lambda = c / fc;
|
|
[num_antenna, N, num_pluse] = size(echo_mtx);
|
|
|
|
|
|
% data processing
|
|
[distance_v, speed_v] = get_range_speed_val(PRF, fs, fc, num_pluse);
|
|
|
|
[echo_sFFT_mtx, angle_v] = spatial_FFT(echo_mtx, d, lambda);
|
|
fprintf(' Spatial_FFT done.\n');
|
|
|
|
[A, signal_t] = generate_chirp_mtx(PRF, B, fs, D);
|
|
fprintf(' Generate_chirp_mtx done.\n');
|
|
|
|
[echo_r_mtx, sigma_n_o] = range_process_MF(echo_sFFT_mtx, A, sigma_n);
|
|
fprintf(' Range_processing done.\n');
|
|
|
|
[echo_rd_mtx, stat_RD, sigma_n_rd] = doppler_process_MF(echo_r_mtx, sigma_n_o);
|
|
fprintf(' Doppler_processing done.\n');
|
|
|
|
[target_list_RDA_temp, target_map] = rda_detection(stat_RD, P_fa);
|
|
fprintf(' Target_detection done.\n');
|
|
|
|
[target_list_RDA] = angle_estimation(target_list_RDA_temp, echo_mtx, A, d, lambda);
|
|
fprintf(' Angle_estimation done.\n');
|
|
target_list_RDA(:, 1) = distance_v(target_list_RDA(:, 1));
|
|
target_list_RDA(:, 2) = speed_v(target_list_RDA(:, 2));
|
|
|
|
end
|
|
|