📄 icaforimage.txt
字号:
n1=imread(filename);
n2=imread(filename);
subplot(331),wavshow(n1),subplot(332),wav(n2);
s1=reshape(n1,[1,256*256]);
s2=reshape(n2,[1,256*256]);
s=[s1;s2];
sig=double(s);
Aorig=rand(size(sig,1));
mixedsig=Aorig*sig;%混合信号
ms1=reshape(mixedsig(1,:),[256,256]);
ms2=reshape(mixedsig(2,:),[256,256]);
Ms1=uint8(round(ms1));
Ms2=uint8(round(ms2));
subplot(333),wavshow(Ms1),subplot(334),wavshow(Ms1);
%对混合信号去均值
mixedsig=zeros (size (omixedsig));
mixedmean=mean (omixedsig')';
mixedsig=omixedsig-meanValue*ones(1,size(omixedsig,2));
covarianceMatrix=cov(mixedsig',1);
[E,D]=eig(covarianceMatrix);
eigenvalues=flipud(sort(diag(d)));
whiteningMatrix=inv(sqrt(D))*E';
dewhiteningMatrix=E*sqrt(D);
whitesig=whiteningMatrix*mixedsig;
X=whitesig;
[wectorSize,numSamples]=size(X);
B=zeros(vectorSize);
numofic=vectorSize;
for r=1:numofic
i=1;maxnumiterations=100/2;
w=rand(vectorSize,1)-.5;
w=w/norm(w);
while i<=maxnumiterations+1
w=w-B*B'*w;
w=w/norm(w);
i=i+1;
end
A(:,r)=dewhiteningMatrix*w;
W(r,:)=w'*whiteningMatrix;
B(:,r)=w;
end
%求原信号
icasig=W*mixedsig+(W*mixedmean)*ones(1,numSamples);
icasig=abs(50*icasig);
Is1=reshape(icasig(1,:),[256,256]);
Is2=reshape(icasig(2,:),[256,256]);
II1=uint8(round(Is1));II2=uint8(round(Is2));
subplot(335),inshow(II1),subplot(336),wavshow(II2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -