复数FastICA算法在MATLAB实现Word文档格式.docx
《复数FastICA算法在MATLAB实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《复数FastICA算法在MATLAB实现Word文档格式.docx(2页珍藏版)》请在冰点文库上搜索。
Cx=cov(X.'
);
[chavector,chavalue]=eig(Cx);
W0=chavalue^(-1/2)*(chavector).'
Z=W0*X;
Maxcount=100000;
Standard=0.001;
W1=rand(m);
W2=1i*rand(m);
W=W1+W2;
fork=1:
m
count=0;
w=W(:
k);
LastW=zeros(m,1);
w=w/sqrt(w'
*w);
while(count<
Maxcount&
&
max(abs(w-LastW))>
Standard)
count=count+1;
LastW=w;
C=zeros(m,t);
D=zeros(t,1);
fors=1:
temp1=(LastW)'
*Z(:
s);
ABS=abs(temp1);
temp2=ABS^2;
func=(1/2)*(temp2+0.1)^(-1/2);
funcd=-(1/4)*((0.1+temp2)^(-3/2));
front=Z(:
s)*conj(temp1)*func;
rear=func+temp2*funcd;
C(:
s)=front;
D(s,:
)=rear;
end
middle=(mean(C.'
w=middle-(mean(D))*LastW;
w=w/sqrt(w'
sum=zeros(m,1);
forr=1:
(k-1)
sum=sum+W(:
r)*W(:
r)'
*w;
w=w-sum;
ifcount==Maxcount
fprintf('
未找到相应信号'
return
end
W(:
k)=w;
end
Z=W'
*Z;
end