function [e,w,y]=rls(d,x,lam,order);
% clear all
% close all
% clc
% lam=0.99;
% order=32;
% theta1=0;
% theta2=0;
% fo = 500;
% f1 = 1000;
% Fs = 12000;
% N=5000;
% w1 = 2*pi*(fo/Fs);
% w2 = 2*pi*(f1/Fs);
%
% A = 1;
% n = 0:N-1;
% s1 = A*sin(w1.*n+theta1);
% s2 = A*sin(w2.*n+theta2);
% x = s1+s2;
% n = 0.2*randn(1,N);
% d=x+n;
%%
delta=0.009;
w = zeros(order,1);
y = zeros(size(x));
e = zeros(size(x));
P=eye(order)/delta;
d = d(:);
x = x(:);
for n=order:length(x)-order;
u=x(n:-1:n-order+1);
k=lam^(-1)*P*u/(1+lam^(-1)*u'*P*u);
y(n)=w'*u;
e(n)=d(n)-y(n);
w=w+k*conj(e(n));
P=lam^(-1)*P-lam^(-1)*k*u'*P;
end
%%
w;
% stem(w(:))
% % stem(w(order,:))
end