复数FastICA算法在MATLAB实现.docx
- 文档编号:500923
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:2
- 大小:12.97KB
复数FastICA算法在MATLAB实现.docx
《复数FastICA算法在MATLAB实现.docx》由会员分享,可在线阅读,更多相关《复数FastICA算法在MATLAB实现.docx(2页珍藏版)》请在冰点文库上搜索。
function[Z]=CMPLXICA(X)
[m,t]=size(X);
average=(mean(X.')).';
X=X-average*ones(1,t);
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
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'*w);
sum=zeros(m,1);
forr=1:
(k-1)
sum=sum+W(:
r)*W(:
r)'*w;
end
w=w-sum;
w=w/sqrt(w'*w);
ifcount==Maxcount
fprintf('未找到相应信号');
return
end
W(:
k)=w;
end
Z=W'*Z;
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 复数 FastICA 算法 MATLAB 实现