function Xn = normalize_data(X)

% Xn = normalize_data(X)
%
% DESC:
% normalize the data to zero mean and identity covariance matrix
%
% AUTHOR
% Marco Zuliani - zuliani@ece.ucsb.edu
%
% VERSION
% 1.0.0
%
% INPUT:
% X             = data organized columnwise
%
% OUTPUT:
% Xn            = normalized data
%
% HISTORY
% 1.0.1         ??/??/05 Initial version

N = size(X, 2);

mean_X = mean(X, 2);
X_zm = X - repmat(mean_X, 1, N);
Sigma_X = X_zm * X_zm' / (N-1);

Xn = sqrtm(inv(Sigma_X)) * X_zm;

return