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