clear
load d:\fecg_code\foetal_ecg.dat
X=foetal_ecg(:,2:9);
[N,n]=size(X);
k=221;
for i=1:220
S{i}=zeros(8,8);
end
P_1=eye(8,8);
W=2*rand(8,220)-1;
me=zeros(1,8);
mu=0.001;
for T=1:2500
x=X(k,:);
me=me*(1-mu)+mu*x;
x=x-me;
%compute xiefangcha
for i=80:220
s=k-i+1;
if(s<1)
s=s+N;
end
y=X(s,:)-me;
a=(x'*y+y'*x)/2;
S{i}=(1-mu)*S{i}+mu*a;
end
b=P_1*x';
P_1=P_1./(1-mu)-mu./(1-mu)./(1-mu+mu*dot(b,x)).*b*b';
numda=[];
for i=80:220
for s=1:5
% h=(S{i}+10*S{1})*W(:,i-1);
% z=P_1*h;
% a=sqrt(dot(h,z));
% W(:,i-1)=z/a;
h=S{i}*W(:,i-1);
z=P_1*h+10*W(:,i-1);
[a,j]=max(abs(z));
% a=z(j);
W(:,i-1)=z/a;
end
% b=S{i}*W(:,i-1);
% a=S{1}*W(:,i-1);
% numda(i-1)=sum(abs(b))./sum(abs(a))-10;
numda=[numda;[i a-10]];
end
plot(numda(:,1),numda(:,2));
k=k+1;
if(k>N)
k=1;
end
end