function [ out out_e ] = LMP_equ( x,X ,M,p)
%UNTITLED2 Summary of this function goes here
% Detailed explanation goes here
N=length(x);
mu=0.1;
w=ones(1,8)';
P=eye(8,8);%%%更新向量
z=x;
for n=8:N;
d(n)=X(n-7);
end
for n=8:M
% z1=[z(n+7) z(n+6) z(n+5) z(n+4) z(n+3) z(n+2) z(n+1) z(n) z(n-1) z(n-2) z(n-3) z(n-4) z(n-5) z(n-6) z(n-7)]';
z1=[ z(n) z(n-1) z(n-2) z(n-3) z(n-4) z(n-5) z(n-6) z(n-7)]';
y(n)=w'*z1;
e(n)=d(n)-y(n);
w=w+mu*P*z1*(abs(e(n))).^(p-1)*sign(e(n))/(sum(z1.*z1).^(p/2));
end
% for i=N-39:N
% y(n)=0;
% end
for n=8:N
% z1=[z(n+7) z(n+6) z(n+5) z(n+4) z(n+3) z(n+2) z(n+1) z(n) z(n-1) z(n-2) z(n-3) z(n-4) z(n-5) z(n-6) z(n-7)]';
z1=[ z(n) z(n-1) z(n-2) z(n-3) z(n-4) z(n-5) z(n-6) z(n-7)]';
y(n)=w'*z1;
end
y=[y(8:N),0,0,0,0,0,0,0];
y_sample=y(ceil(5/2):5:length(y));
y_sample=sign(y_sample+0.000001);
y_sample=(y_sample+1)/2;
out=y_sample;
out_e=e;
end