function [e,y,h]=ale(d,mu,P,D); % % d ... señal deseada % mu .. paso de adaptación % P ... Orden del filtro de wiener % D ... retardo del ALE % % Salidas % % e ... señal error % y ... estimación señal deseada % h ... filtro de wiener % c=zeros(D+1,1); c(D+1)=1; x=filter(c,1,d); h=zeros(P,1); %LMS x=[zeros(P-1,1);x]; M=length(x); N=P; e=zeros(M-N+1,1); y=zeros(M-N+1,1); X=flipud(x(1:P)); y(1)=h'*X; e(1) = d(1) - y(1); h= h + mu*conj(e(1))*X; if M>1 for k=2:M-N+1; X=flipud(x(k:k+P-1)); y(k)=h'*X; e(k) = d(k) - y(k); h = h + mu*conj(e(k))*X; end; end;