function Z = concatenate_Yclutter(Y , clutter);
%
%
% Z = concatenate_Yclutter(Y , clutter);
%
%
%***************************************************************************%%
% Auteur Sbastien PARIS (sebastien.paris@lsis.org), Septembre 2002 %
%***************************************************************************%%
[nz , a , M , T] = size(Y);
[le_clutter , q] = size(clutter);
le_sources = M*T;
le_Z = le_clutter + M*T;
nz2 = nz + 2;
Z = zeros( le_Z , nz2);
ind = zeros(le_Z , 1);
ind_T1 = (1 : T)';
ind_M = (1 : M);
IT = ind_T1(: , ones(1 , M) );
K = ind_M(ones(T , 1) , :);
ind(1 : le_clutter) = clutter(: , 1);
ind(le_clutter + 1 : end) = IT(:);
[val , indice] = sort(ind);
Z(: , 1) = ind(indice);
tp_z = [clutter(: , 2 :end) ; reshape(permute(Y , [4 3 1 2]) , [M*T , nz]) ];
Z(: , 2 : nz2 - 1) = tp_z(indice , :);
tp_kt = [zeros(le_clutter , 1) ; K(:)];
Z(: , nz2) = tp_kt(indice);