資源簡介
盲源信號分離MATLAB代碼、易學易用。方便初學者用。
代碼片段和文件信息
function?Z=ICA3(X)
%-----------去均值---------
[MT]?=?size(X);?%獲取輸入矩陣的行/列數,行數為觀測數據的數目,列數為采樣點數??????
average=?mean(X‘)‘;??%均值
for?i=1:M
????X(i:)=X(i:)-average(i)*ones(1T);?
end
%---------白化/球化------
Cx?=?cov(X‘1);????%計算協方差矩陣Cx
[eigvectoreigvalue]?=?eig(Cx);?%計算Cx的特征值和特征向量
Q=eigvalue^(-1/2)*eigvector‘;???%白化矩陣
Z=Q*X;???%正交矩陣
?
%----------迭代-------
Maxcount=10000;????????%最大迭代次數
Critical=0.00001;???%判斷是否收斂
m=M;????????????????%需要估計的分量的個數
W=rand(m);
for?n=1:m??
????WP=W(:n);??%初始權矢量(任意)
????count=0;
????LastWP=zeros(m1);
????W(:n)=W(:n)/norm(W(:n));
???
評論
共有 條評論