31 lines
766 B
Matlab
31 lines
766 B
Matlab
% 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
|