Académique Documents
Professionnel Documents
Culture Documents
Facultad de Ingeniera
Seales y Sistemas II
Presentacin.
Se disean tres filtros de tipo Pasa Bajos, tomando como seal inicial la representacin grfica
de una serie de datos de cierre de la tasa de cambio en un periodo de tiempo, con el fin de
tener los datos suficientes con la variabilidad necesaria para tener una grfica filtrable.
Procedimiento.
Dadas las limitaciones de Scilab para el ingreso de caracteres por fila (mximo 512), se ingresan
los datos en columna.
Estos son ingresados en una matriz D de 10071 y esta es transpuesta para obtener A que es
de tamao 11007, esto con el fin de no incurrir en errores producidos por el cdigo de Scilab
con respecto al tamao de las matrices.
-->plot (A)
-->y=fft(A,-1);
-->my=abs(y);
-->n=size(my,'*');
-->f=1000*(0:n/2)/n;
-->plot2d(f,my(1:size(f,'*')))
Con el fin de verificar las unidades exactas en el espectro de frecuencias, previo a la aplicacin
de la Transformada de Fourier, se traza una sinusoidal con frecuencia de 10 y muestreo de 1,
sobre los datos iniciales. La grfica es la siguiente:
El cdigo es el siguiente:
-->t=0:1/1000:1.006;
-->C=A-mean(A);
-->s=sin(2*%pi*10*t);
-->R=C+s;
-->y=fft(R);
-->ym=abs(y);
-->N=size(t,'*');
-->f=1000*(0:(N/2))/N;
-->plot2d(f,abs(y(1:size(f,'*'))))
Debido a que los datos no se encuentran centrados y con media igual a cero, se realiza
nuevamente la transformada de Fourier al mismo conjunto de datos, pero disminuidos en el
valor de la media (funcin establecida en el Scilab). La grfica despus de realizado este
proceso es:
Realizando una comparacin directa con la sinusoidal hecha al principio, para hallar la
frecuencia se tiene que:
=1/100*1=0.01
El clculo arroja un valor de 0.01, si el periodo de la grfica inicial era igual a 100 das, las
unidades del espectro de frecuencias coinciden con l.
-->y=fft(r);
-->ym=abs(y);
-->plot (ym)
-->n=size(t,'*');
-->f=1000*(0:n/2)/n;
-->plot2d(f,ym(1:size(f,'*')))
-->r=s+C;
-->y=fft(r);
-->ym=abs(y);
-->plot2d(f,ym(1:size(f,'*')))
-->plot2d(f,ym(1:size(f,'*')))
-->plot2d(f,ym(1:size(f,'*')))
-->y=fft(C);
-->ym=abs(y);
-->plot2d(f,ym(1:size(f,'*')))
-->plot(C)
-->for i=1:1:1007, ss=sin(2*%pi*10*i);
-->plo(ss)
-->plot(ss)
-->plot(C)
-->y=fft(C);
-->plot(C)
-->plot2d(C)
-->s=sin(2*%pi*t*10);
-->plot (s)
-->y=fft(s,-1);
-->my=abs(y);
-->n=size(my,'*');
-->f=1000*(0:n/2)/n;
-->plot2d(f,my(1:size(f,'*')))
A un periodo de 6.3 dias le corresponde un de 161
Posteriormente, se procede a filtrar la seal con un filtro digital (debido a la naturaleza discreta
de los datos) de tipo Butterworth, pasa bajos con frecuencia de corte de 50/1000=0.05. El
cdigo de Scilab es el siguiente:
-->plot(final)
-->plot(A)
Ahora superponemos los resultados obtenidos con los tres filtros para compararlos
directamente de manera visual.
En este zoom es claro como el filtrado con frecuencia de corte de 50 (en negro) es el que
conserva de una mejor manera la forma general de los datos, le sigue la de 30 (en rojo) y por
ultimo la de 10 (en azul) con un seguimiento bastante pobre en relacion a los demas.
Finalmente, se hace el clculo del error cuadrtico con el fin de verificar cual de los filtros tiene
un comportamiento ms ligado a los datos iniciales. El cdigo generado en Scilab es el
siguiente:
-->for i=1:1:1007,R3(i)=abs(A(i)^2-final(i)^2)^0.5;end
-->sum (R3)/1007
ans =
-->for i=1:1:1007,R2(i)=abs(A(i)^2-final2(i)^2)^0.5;end
-->sum (R2)/1007
ans =
-->for i=1:1:1007,R3(i)=abs(A(i)^2-final3(i)^2)^0.5;end
-->sum (R3)/1007
ans =
De lo anterior se evidencia que al filtrar con una frecuencia de corte muy baja, se puede
incurrir en una prdida de informacin de los datos originales y, caso contrario, al hacerlo con
una frecuencia alta, no se obtiene una curva suficientemente suavizada que se aproxime a la
seal original.
Bibliografa:
http://www.neurotraces.com/scilab/scilab2/node1.html
http://es.finance.yahoo.com/q/hp?s=DLTR