Files
FAR_CS/Radar simulation/Chirp single target/get_range.m
T
2024-05-09 16:48:41 +08:00

20 lines
615 B
Matlab

function [range, range_idx] = get_range(s_T, s_R)
global T_r delta_t len c r_0 range_t num_pulse;
% 只取第一个 T_r 的数据计算
range_N = T_r / delta_t;
s_T_first = [s_T(1:range_N), zeros(1, len - range_N)];
s_R_first = [s_R(1:range_N), zeros(1, len - range_N)];
s_T_fft = fft(s_T_first, len);
s_R_fft = fft(s_R_first, len);
% 发射信号和回波信号做相关
p = ifft(s_R_fft .* conj(s_T_fft));
norm_p = real(p).^2 + imag(p).^2;
[~, range_idx] = max(norm_p);
range = range_t(range_idx) * c / 2;
fprintf("range = %f, r_0 = %f\n", range, r_0);
end