資源簡介
獨立分量分析中的程序,其中有負熵的具體計算流程
代碼片段和文件信息
K=2;
N=500;
k=1:N;
s1=randn(1length(k));%產生符合分布的序列
s2=sin(k/2);
figure(1)
subplot(221);
plot(ks1);
title(‘高斯隨機噪聲序列‘);
subplot(222);
plot(ks2);
title(‘正弦信號‘)
X=zeros(KN);
A=randn(K);%產生隨機矩陣混合A
H=A*[s1;s2];
figure(2);
plot(kH);
title(‘觀測信號‘)
%實現對觀察數據矩陣H的預白化
B=double(H);
m=mean(B2);
B=B-?m(:ones(1size(B2)));%去均值
covarianceMatrix=cov(B‘);
%?covarianceMatrix=A*A‘;
[y?x]?=?eig?(covarianceMatrix);
whiteningMatrix?=?x^(-.5)*?y‘;%白化矩陣
dewhiteningMatrix?=?y?*?sqrt?(x);%去白化矩陣
M=dewhiteningMatrix;
new_A=whiteningMatrix*B;%新的混合矩陣即要做fast算法的矩陣
figure(3)
plot(knew_A);
title(‘whitened‘)
Q=new_A;
%用FastICA算法實現對源信進行分離
epsilon=0.0001;
W=rand(K);
iter?=?zeros(1K);
for?p=1:K
????W(:p)=W(:p)/norm(W(:p));
????exit=0;%判斷是否收斂標記,0做,1退出
????count=0;%判斷獨立成
- 上一篇:支持向量機matlab通用源代碼
- 下一篇:Matlab機器人繪畫
評論
共有 條評論