При реализации алгоритма согласно "Adaptive Filter Theory. Simon Naykin":

Данные формулы получены из комплексного представления сигнала.
При реализации в Matlab получается, что всё расходится:
Код
b = [ 0.00001 0.0004 0.0002 -0.0010 0.0010 0.0039 -0.0120 ...
-0.0300 -0.1800 -0.1000 -0.0300 0.0020 0.0200 0.0500 ...
0.0950 -0.0200 -0.3500 -0.3000 -0.1000 0.3970 0.3500 ...
-0.0300 -0.1800 -0.0223 -0.0100 0.0000205 -0.00000039 -0.000000017...
0.000001 0.00000008];
x = randint(10000,1,4);
y = modmap(x,1,1,'qask',4);
TXI = y(:,1);
TXQ = y(:,2);
I = conv(TXI, b);
Q = conv(TXQ, b);
%scatterplot(TXI(15:end)+j*TXQ(15:end));
%I = awgn(I,10,'measured');
%Q = awgn(Q,10,'measured');
%scatterplot(I(15:end)+j*Q(15:end));
WI=zeros(55,1);
WQ=zeros(55,1);
mu=0.01;
RX_EQ_I=zeros(1,1);
RX_EQ_Q=zeros(1,1);
RXI = vertcat( zeros(55,1), I(1:end));
RXQ = vertcat( zeros(55,1), Q(1:end));
%компенсация задержки в канале
TXI_D = vertcat( zeros(45,1), TXI );
TXQ_D = vertcat( zeros(45,1), TXQ );
for n=1:5000
YI=WI'*RXI(n:n+55-1)-WQ'*RXQ(n:n+55-1);
YQ=WI'*RXQ(n:n+55-1)+WQ'*RXI(n:n+55-1);
EI=TXI_D(n)-YI;
EQ=TXQ_D(n)-YQ;
WI=WI+mu*( EI*RXI(n:n+55-1)-EQ*RXQ(n:n+55-1));
WQ=WQ+mu*( EI*RXQ(n:n+55-1)+EQ*RXI(n:n+55-1));
RX_EQ_I=[RX_EQ_I YI];
RX_EQ_Q=[RX_EQ_Q YQ];
end
scatterplot(RX_EQ_I(4000:end)+j*RX_EQ_Q(4000:end));
Может я чего-то не так понял?