clear;
close all;
clc;
dt=0.1;
t=100;
len=t/dt;
times(len)=0;
y(len)=0;
z(len)=0;
z(1)=0;
a=10;
for k=1:1:len
times(k)=k*dt;
y(k)=25*sin(1/(1*2*pi)*times(k))+2*rand(1);
b=0;
if y(k)>z(k)&&z(k)>=0
b=50-a;
end
if y(k)<z(k)&&z(k)<=0
b=-(50-a);
end
z(k+1)=(a*y(k)+(50-a)*z(k)+b)/50;
end
figure(1)
z(end)=[];
plot(times,y,'r',times,z,'b');