function A_w = myWhiten(A)
[m,n,q]=size(A);
A = reshape( A,m*n,q);
A = A';
meanrow=mean(A,2);%求每一行的均值,%
for i=1:m*n
A(:,i)= A(:,i)-meanrow;
end
R=cov(A');
% 白化
[U, D] = eig(R);
%[U, D, ~] = svd(R,0); % 用eig也行,[U, D] = eig(R);
% 下面求白化矩阵
T = U * inv (sqrt(D)) * U'; % inv(sqrt(D))*U'也是一个可行白化矩阵
% 乘以白化矩阵实现白化
A_w = T * A;
A_w = abs(A_w);
A_w = A_w';%调整成适合RXD算法输入的格式
% if (nargout == 2)
% varargout{1} = T;
% end
%保存mat文件
%save('C:\Users\ZY\Desktop\airport_data\subset_right\A_w.mat','A_w');
评论5