37 lines
978 B
Matlab
37 lines
978 B
Matlab
function [ echo_r_mtx, sigma_n_o ] = range_process_MF(echo_mtx, A, sigma_n)
|
|
% Range processing for echo data using matching filter
|
|
%
|
|
% Usage:
|
|
% [echo_r_mtx, sigma_n_o] = range_process_MF(echo_mtx, A, sigma_n)
|
|
%
|
|
% Inputs:
|
|
% echo_mtx: Original echo data
|
|
% A: Chirp measurement matrix
|
|
% sigma_n: Input noise standard deviation
|
|
%
|
|
% Outputs:
|
|
% echo_r_mtx: Range processing echo data
|
|
% sigma_n_o: Output noise standard deviation
|
|
|
|
|
|
% 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
|