%       *****************************
%       FILONDA.M     METODOS ESTADISTICOS 2008
%       CALCULA  LA SERIE FILTRA UNA ONDA RESULTADO DEL ANALISIS ARMONICO
%       Y TAMBIEN IMPRIME EN EL ARCHIVO LA RECONSTRUCCION DE LA ONDA QUE SE FILTRA
%       ***********************************************************
    clear
	disp('INGRESAR LA CANTIDAD DE DATOS = N')
	disp('la cantidad de datos tiene que ser par')
	N=input('N :')
	disp('CUAL ES EL PERIODO FUNDAMENTAL')
	disp('no siempre el periodo fundamental es igual a N')
	P=input('P :')
 
	disp('Numero de la armonica de la onda a filtrar')
	M=input('M :')
	disp('Coeficiente A, de la onda a filtrar')
    A=input('A :')
    disp('Coeficiente B, de la onda a filtrar')
	B=input('B :')
 	

	entra=input('nombre del archivo de datos entre apostrofes')

    X1=xlsread(entra);
    [N1,M1]=size(X1);
    X=X1(1:N);
	K=N/2;
	PI= 3.1415926;

	 
%      CALCULA EL PROMEDIO
  
    PROM=mean(X);

	for J=1:N;
	  XS(J)=PROM+A*sin(2*PI*M*J/P)+B*cos(2*PI*M*J/P);
	end;

   	for I=1:N;
	 FIL(I)= X(I)-XS(I);
    end;

     SALIDA(:,1)=FIL(1:N)';
     SALIDA(:,2)=XS(1:N)';
     disp('Armonico fitrado')
     disp( M)
	disp('Serie filtrada      onda reconstruida')
    disp(SALIDA)
    dlmwrite('filonda.xls',SALIDA,'\t',1,0);
    disp(' ')   

    disp('----------------------------------------------')   
    disp('Se genero el archivo de salida Filonda.xls')   
    disp('Descripcion de las variables de archivo xls:')   
    disp('1ºCol               2ºCol      ')   
    disp('Serie filtrada   Reconstruccion') 
    disp(' ')   
    disp('NOTA: En versiones viejas puede fallar la funcion de exportar')     
    disp('Si falla la variable SALIDA contiene la misma informacion en el Workspace')   
    hold on
  %  plot(X,'r')
  %  plot(XS,'g')
    