% Eliminacion de ruido mediante proceso iterativo por sustitucion de cada valor por las medias a 'derechas' y a 'izquierdas'.
%     capelimina1escprocesoiter(x,f,fsin,it,factor)
%     Entradas
%        x      = nodos iniciales
%        f      = f(x)
%        fsin   = f sin ruido
%        it     = numero de iteraciones
%        factor = factor que deterfminara la magnitud de las discontinuidades que consideraremos como tales.
%      Salidas
%        Plot de la funcion con ruido, sin ruido y la reconstruccion
%        ECM y SNR segun varias combinaciones
%
% Autor: José Jaime Noguera.  +INFO: www.uv.es/anims/noguera

function capelimina1escprocesoiter(x,f,fsin,it,factor)
g=f;
for i=1:it
  f=eliminarmeleft2(x,f,factor);
  f=eliminarmerigth22(x,f,factor);
end 
    
    %fr la reconstruccion
    %fsin la sin ruido , el ideal a reconstruir
    %fn la funcion original con ruido

    disp('Entre fr y fsin')
    error=mse(fsin,f);
    error
 
    disp('Entre fr y fn')
    error=mse(f,g);
    error
    
    disp('Entre fr y fn')
    error=calculosnr(f,g);
    error
    
    disp('Entre fin y fr')
    error=calculosnr(fsin,f);
    error    

hold on

plot(x, g,'k.','LineWidth',5,'MarkerSize',5)   
plot(x, fsin,'--k','LineWidth',2) 
plot(x,f,'-k','LineWidth',3);

%para trabajar con funcio
%axis([-1 1 -1.2 1.2 ]);
%set(gca,'Xtick',[ -1 -0.5 0 0.5 1], 'FontSize',15)
%set(gca,'Ytick',[ -1 -0.5 0 0.5 1], 'FontSize',15)

%para trabajar con funtreballtesi
%axis([0 1 -0.1 1.1 ]);
%set(gca,'Xtick',[0 .5 1], 'FontSize',15)
%set(gca,'Ytick',[0 .5 1], 'FontSize',15)
box
hold off