% echo_mtx: echo data % A: chirp matrix % sigma_n: input noise standard deviation % echo_r_mtx: range processing echo data % signal_n_o: output noise standard deviation function [ echo_r_mtx, sigma_n_o ] = range_process_MF(echo_mtx, A, sigma_n) % parameters multiple_r = A(:, 1)' * A(:, 1); [M, N] = size(A); [lenA, M, lenP] = size(echo_mtx); % matched filtering echo_r_mtx = zeros(lenA, N, lenP); for numA = 1: lenA for numP = 1: lenP sr = echo_mtx(numA, :, numP); mf_res = A' * transpose(sr); mf_norm = mf_res ./ multiple_r; echo_r_mtx(numA, :, numP) = mf_norm; end end % calculate output noise sigma_n_o = sqrt(sigma_n^2 / multiple_r); end