www.pudn.com > ln.rar > mainp.asv
clear;clc;close all;
load ABio7
sig=benchcicbar;
s0=sig(2,:);s1=sig(3,:);
s2=sig(4,:);s3=sig(5,:);
%%%%%%%%%%------beginning of fiuring the source signal-----%%%%%%%%%
figure
subplot(4,1,1)
plot(s0)
subplot(4,1,2)
plot(s1)
subplot(4,1,3)
plot(s2)
subplot(4,1,4)
plot(s3)
hold on
%%%%%%%%%%------end of fiuring the source signal-----%%%%%%%%%
A=[-0.9370 0.9448 0.3651 -0.2617;
-0.8263 -0.3478 -0.2872 0.6279;
0.3730 0.1975 0.9953 0.8325;
0.8955 0.3578 0.5649 0.6257];
s=[s0;s1;s2;s3];
x=A*s;
%%%%%%%% whiten the mixed signal
covarianceMatrix=cov(x',1); % 产生协方差阵
[E,D]=eig(covarianceMatrix); % 求出协方差的特征向量和特征值
[x1,WhitenMatrix]=whitenSig(x,E,D); % 对信号进行白化
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[m,n]=size(x1);
P=20;%%%%%-----length of the linear predicor
b=rand(1,P)';%%%------------linear predictor coefficient vector----------
%%%%%%%%%%%%%%--------------update the weight vector---------------------
mu=0.4%%%%%%%%%%%%-------learn stepsize---
w=rand(m,1);
for i=P+1:n
y=w'*x1;
Y=[];
X=[];
for j=1:P
Y=[Y;y(i-j)];
X=[X;x1(i-j)];
end
e=y(i)-b'*Y;
hatx=x1(i)-b'*X;
wnew=wold-mu*e*hatx;
w=w/norm(w);
wo
if
end
w
figure
plot(y)