You are on page 1of 17

PROYECTO DE APLICACIN

Curso: Clase: 604897 Calculo IV

Ttulo del proyecto: Procesamiento de seales ssmicas en entorno MATLAB

N de equipo de Trabajo: Equipo N 8

Integrantes: Prentice Urteaga, Mariam Vargas Chvez, Mario Alexander

Fecha de sustentacin: Semana 15

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

1. TTULO DEL PROYECTO:

PROCESAMIENTO DE SEALES SSMICAS EN ENTORNO MATLAB

2. PLANTEAMIENTO DEL PROBLEMA:

Para lograr un estudio de ondas ssmicas, y poder realizar una prevencin de estas mismas, nos hace realizar un estudio, anlisis y su descripcin mediante un programa computacional (Software). Para poder hacer este anlisis y la prevencin de un sismo se puede estudiar en torno a un programa llamado MATLAB, usando diferentes algoritmos con por ejemplo La Serie de Fourier.

3. OBJETIVOS:

Analizar las ondas ssmicas, mediante Matlab Crear una base de datos Interpretar el algoritmo para poder hacer correr el programa. Realizar una lectura de las ondas P y S, as como de su amplitud.

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

4. MODELO MATEMTICO:

Para poder aplicar el procesamiento digital de seales y el lenguaje de programacin Matlab se va a realizar la lectura automtica de los parmetros de seales ssmicas, Aplicar una transformada rpida de Fourier a toda la seal y observar si hay frecuencias no deseadas para luego aplicar un filtro si fuere necesario. El clculo de la fase P y S se realiza empleando un algoritmo de comparacin de la envolvente de la seal. La amplitud de la onda S estar relacionada con el mximo valor del vector y (seal ssmica). Se aplica la transformada rpida de Fourier en torno a la posicin de la fase S para calcular el espectro de frecuencias. Diseo e implementacin de una interfaz grfica en Matlab para la lectura de seales ssmicas con tres componentes. El procesamiento digital de seales implica haber expresado previamente la magnitud de la seal en forma numrica. Cada nmero, as obtenido, representa la magnitud de la seal en un instante determinado. Entonces, tendremos una sucesin de muestras de la seal en lugar de la seal completa. En la prctica el muestreo se logra multiplicando la seal continua por un tren de impulsos unitarios, tal como se aprecia en la Figura

La herramienta matemtica muy importante en el procesamiento de seales que sirve para transformar una seal del dominio del tiempo al dominio de la frecuencia. Para el caso continuo tenemos:

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

y para el caso discreto:

Figura 4. Seal ssmica en el dominio de la frecuencia. Espectro de frecuencias. El espectro de frecuencias de una seal nos permitir saber qu componentes frecuenciales estn presentes. Esto servir para aplicar un filtro adecuado si fuera necesario. El cdigo en Matlab es: Y = fft(y,N); % N: longitud del vector y Pyy = Y.*conj(Y) / N; f = (Fs)*(0:N/2-1)/ N; plot(f,Pyy(1:N/2)), grid La transformada de Hilbert es otra herramienta matemtica importante que nos permite obtener la envolvente de una seal. Dicha transformada no cambia la representacin de la seal de un dominio a otro, sino que simplemente obtiene de ella otra funcin:

Si obtenemos el espectro de Fourier de la ecuacin (4) como:

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

La transformada de Hilbert equivale a dejar las amplitudes de las componentes espectrales de la seal con la misma amplitud, pero desfasadas por , segn el signo de s. 2/ El proceso del filtrado consiste en eliminar, atenuar o amplificar ciertas componentes frecuenciales de una seal. Por ejemplo, la figura 5 muestra una seal contaminada con ruido de baja frecuencia, la cual debe ser tratada con un filtro pasa-alta para eliminar dicha componente frecuencial. El resultado es la seal de la figura 6. Segn su aplicacin, un filtro puede ser clasificado como pasa-bajo, pasa-alto, pasa-banda o elimina-banda. El filtro ms utilizado en sismologa es el de Butterworth, debido a su pequea banda de transicin y a la ausencia de ripple en la banda de paso. El rango de frecuencia del ruido ssmico est comprendido entre 0.1 a 1 Hz. Ejemplo de un filtro pasa alta en Matlab: fcorte=100; %elimina debajo de 100Hz [b, a] = butter (5,fcorte/(Fs/2),'high'); yf = filtfilt (b,a,y); plot (t,y,'red'), grid on, zoom xon

Figura 5. Seal contaminada con ruido

Figura 6. Seal anterior despus de filtrar

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

5. MTODOS DE SOLUCIN 1. Realizar el cambio de formato del archivo de datos (SAC o SUDS) a formato ascii. Matlab solo lee formato ascii o su propio formato *.mat. 2. Utilizar el entorno de programacin MATLAB. Recordemos que este programa lee las variables como vectores o matrices. 3. Vectorizar la variable tiempo (t) y la seal ssmica (y). 4. Aplicar una transformada rpida de Fourier a toda la seal y obtener el espectro de frecuencias, observar si hay frecuencias no deseadas (en el rango de 0 a 1Hz) para luego aplicar un filtro si fuere necesario.

5. El clculo de la fase P se realiza analizando la envolvente de la seal (normalizado a uno, es decir la amplitud mxima de la seal ser igual a uno): () () ()

donde y1(t) es la transformada de Hilbert de la seal y. Luego, se emplea el siguiente algoritmo de comparacin: a) Se elige un valor umbral_1. b) Si y2 > umbral_1, se lee el tiempo tp. c) Se busca la posicin donde la derivada de y2 sea negativa y donde y2 < umbral_2. d) Se lee el nuevo tiempo tp.

6. El clculo de la fase S se realiza empleando el mismo algoritmo anterior pero con diferentes condiciones para umbral_1 y umbral_2.

7. La amplitud de la onda S estar relacionada con el maximo valor del vector seal y, dentro de los 5 segundos siguientes al tiempo ts.

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

Envolvente de la seal

8. Se aplica una transformada rapida de Fourier (fft) en torno a la posicion del maximo valor de y para calcular el espectro de frecuencias. El periodo ser igual a la inversa de la frecuencia correspondiente al pico maximo.

9. Clculo de la duracin: el clculo es anlogo al de la fase P o S, pero la bsqueda empieza desde el final y hacia atrs. Se lee el tiempo td. La duracin ser la diferencia: D = td tp. La interfaz grfica de usuario (GUI) se realiza con el comando guide de Matlab, el cual crea un Fig-file, en el cual pueden insertarse ejes, botones, deslizadores, texto de edicin, menus, etc. Cada uno de los cuales tiene ciertas propiedades y realiza una funcin determinada (callback function). Por ejemplo: para filtrar la seal, simplemente se hace click en el boton <Filtro>.

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

6. ALGORITMO COMPUTACIONAL:

1. Sismograma.m M=input ('Que magnitud tiene el sismo (en escala de rigthert)? '); fprintf ('/n'); dist=input ('Cual es la ditancia del epicentro en (km)?'); tdiff=dist/5; ttdt=tdiff+1+199; Amplitud=10/(M+2.92-3*(log10(dist))); tp=1.05:0.05:tdiff+1.05; xp=0.7*exp(-.05*tp) .*sin(2*pi*0.8*tp); rp=0.3*exp(-.01*tp) .*sin((2*pi*3*tp)+rand); yp=(Amplitud/5)*(xp+rp); ts=tdiff+1.10:0.05:ttdt; txp=0:0.05:(ttdt-tdiff-1.10); xs=0.7*exp(-.02*txp) .*sin(2*pi*0.6*ts); rs=0.3*exp(-.01*txp) .*sin((2*pi*2*ts)+rand); ys=(Amplitud)*(xs+rs); tn=0.0:0.05:1.0; yn=(Amplitud/500)*randn(size(tn)); t=0:0.05:ttdt; y=zeros(size(t)); y(1:21)=yn; y(22:(length(tp)+21))=yp; y((length(tp)+22):length(t))=ys; plot(t,y); grid cn axis([0 205 -60000 5005]) title('sismograma'); xlabel('tiempo'); ylabel('Amplitud (mm)'); t=t'; y=y';
Facultad De Ingeniera Departamento De Ciencias CICLO: 2013-0 Cajamarca

2. Analisis_ondas_ssmicas.m % Calculo de las fases, periodo y la amplitud de una onda sismica % % load sismo.txt % Cargar archivo en block de notas t = sismo(:,1); % Vector tiempo y = sismo(:,2); % Vector amplitud seal sismica N = length(y); % longitud del vector Fs = 20; %fecuencia de muestreo T = 1/Fs; % Intervalo de muestreo [A,I]=max(abs(y)); % I = posicion del %maximo y1 = hilbert(y); % transforma los datos discretos de (y), en forma compleja, %utilizando la transformada de hilbert (calcula el contenido de frecuencia %de una seal ya sea de energia o de potencia) y2 = sqrt(y.*y+y1.*conj(y1)); %El clculo de la fase P se realiza analizando %la envolvente de la seal (normalizado a uno, es decir la amplitud mxima %de la seal ser igual a uno)se realiza mediante eta ecuacion A2 = max(y2); %amplitud maxima de la onda p y2 = y2/A2; % envolvente comp = mean(y2(1:60));% calcula el valor medio de la matriz for n = 10:I %posicion del maximo if y2(n) > 5.9*comp n; break end end m=4; for k = 1:n if y2(m-k)-y2(m-k-1)<0&y2(m-k)<0.015 Ip = n-k; tp = (Ip)*T; break end end fprintf('%s%8.6f\n', ' Tiempo P = ',tp); Ix = round((Ip+I)/2);%redondea los numero de IP+I/2al entero mas proximo for n = Ix:I if y2(n) > 0.45 n; break end end

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

% Calculo de la fase S for k = Ix:n+Ix if (y2(n+Ix-k)-y2(n+Ix-k-1)<0)&y2(n+Ix- k)<0.09 Is = n+Ix-k; ts = (Is)*T; break end end fprintf('%s%8.6f\n', ' Tiempo S = ',ts); % Plotear las grficas subplot(2,1,1),plot (t,y), grid on axis([0 205 -50000 50000]) title ('Grafica de la seal sismica') fprintf('%s%8.6f\n', ' Amplitud = ',A); %tranformada de fourier de la seal sirve para nalizar los componentes %frecuenciales que estan presentes y aplicar un filtro si se cree necesario Y = fft(y,N);% N=longitud del vector Pyy = Y.*conj(Y) / N; f = ((1/T)*(0:N/2)/ N); AA=Pyy(1:N/2+1); %figure subplot(2,1,2),plot(f,AA) axis([0 3 0 70000000000]), grid on title('Espectro de frecuencias de la seal') xlabel('Frecuencia (Hz)') N = 128; % N = numero de puntos TRF for k = 1:N y1(k) = y(I-N/4+k); end N=4076; %numero de datos ingresados se hace manualmente AAA=t(1:N); AAAA=y1; y1=y1'; figure subplot(2,1,2), plot (t(1:N),y1), grid on axis([0 200 -50000 50000]) title ('Zoom en el cambio de fase P-S') Y = fft(y1,N); Pyy = Y.*conj(Y) / N; f = (1/T)*(0:N/2)/ N; delta_f = f(2)-f(1); subplot(2,1,1),plot(f,AA) axis([0 3 0 70000000000]), grid on
Facultad De Ingeniera Departamento De Ciencias CICLO: 2013-0 Cajamarca

title('Espectro de frecuencias del zoom') xlabel('Frecuencia (Hz)') figure y2=y2'; plot(t,y2),grid on axis([0 200 0 1]) title('Envolvente de la seal') % Calculo del periodo [amp_espectro,J] = max (abs(Pyy)); fs = delta_f*(J-1); periodo = 1/fs; fprintf('%s%8.6f\n', ' Periodo = ',periodo); % Calcular la duracion prom_f = sum(abs(y(N-20:N)))/21; ss=0.5; for k = N:-1:I if y(k) > 4*prom_f k; tf = k*T+ss; break end end dur = round(tf-tp);%duracion del sismo fprintf('%s%7.2f\n', ' Duracion = ',dur); 3. Sismo.m % Calculo de las fases, periodo y la % % % % amplitud de una onda sismica % % fprintf('%s%\n', ' CALCULO DE FASES, % %AMPLITUD Y PERIODO') fprintf('\n') fprintf('%s%\n', ' DE ONDAS SISMICAS') fprintf('\n') load sismo.txt % Cargar archivo en % t = sismo(:,1); % Vector tiempo y = sismo(:,2); % Vector seal sismica N = length(y); % longitud del vector Fs = 20; T = 1/Fs; % Intervalo de muestreo [A,I]=max(abs(y)); % I = posicion del %maximo y1 = hilbert(y); y2 = sqrt(y.*y+y1.*conj(y1)); A2 = max(y2); y2 = y2/A2; % envolvente
Facultad De Ingeniera Departamento De Ciencias CICLO: 2013-0 Cajamarca

comp = mean(y2(1:60)); for n = 10:I if y2(n) > 5.9*comp n; break end end for k = 1:n if y2(m-k)-y2(m-k-1)<0&y2(m-k)<0.015 Ip = n-k; tp = (Ip)*T; break end end fprintf('%s%8.6f\n', ' Tiempo P = ',tp); Ix = round((Ip+I)/2); for n = Ix:I if y2(n) > 0.45 n; break end end % Calculo de la fase S for k = Ix:n+Ix if (y2(n+Ix-k)-y2(n+Ix-k-1)<0)&y2(n+Ixk)<0.09 Is = n+Ix-k; ts = (Is)*T; break end end fprintf('%s%8.6f\n', ' Tiempo S = ',ts); % Plotear las grficas subplot(2,2,1), plot (t,y), grid on title ('Grafica de la seal sismica') fprintf('%s%8.6f\n', ' Amplitud = ',A); Y = fft(y,N); Pyy = Y.*conj(Y) / N; f = (1/T)*(0:N/2)/ N; subplot(2,2,3), plot(f,Pyy(1:N/2+1)) axis([0 1000 0 30]), grid on title('Espectro de frecuencias de la seal') xlabel('Frecuencia (Hz)') N = 128; % N = numero de puntos TRF for k = 1:N
Facultad De Ingeniera Departamento De Ciencias CICLO: 2013-0 Cajamarca

y1(k) = y(I-N/4+k); end subplot(2,2,2), plot (t(1:N),y1), grid on title ('Zoom en el cambio de fase P-S') Y = fft(y1,N); Pyy = Y.*conj(Y) / N; f = (1/T)*(0:N/2)/ N; delta_f = f(2)-f(1); subplot(2,2,4), plot(f,Pyy(1:N/2+1)) axis([0 1000 0 30]), grid on title('Espectro de frecuencias del zoom') xlabel('Frecuencia (Hz)') % Calculo del periodo [amp_espectro,J] = max (abs(Pyy)); fs = delta_f*(J-1); periodo = 1/fs; fprintf('%s%8.6f\n', ' Periodo = ',periodo); % Calcular la duracion prom_f = sum(abs(y(N-20:N)))/21; for k = N:-1:I if y(k) > 4*prom_f k; tf = k*T+ss; break end end dur = round(tf-tp); fprintf('%s%7.2f\n', ' Duracion = ',dur);

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

7. RESULTADOS: Se realiz el anlisis de la seal ssmica, usando el logaritmo Sismogrma.mS de donde se obtuvo lo siguiente:

Usando el logaritmo Analisis_ondas_ssmicas.m, se obtiene los siguientes resultados:

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

Zoom en el cambio de fase P-S

Envolvente de la seal

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

8. CONCLUSIONES:

Se logr crear una base de datos a partir del uso del logaritmo Sismograma.m Se logr crear un logaritmo que partir de la escala del sismo y la distancia del el epicentro a la superficie nos da un valor. Se puedo analizar la amplitud y las ondas P y S para poder realizar una prevencin ante estos acontecimientos

9. REFERENCIAS BIBLIOGRFICAS:

http://jro.igp.gob.pe/subwebs/200511_teps1/presentaciones/CJimenez_ProcSenales(explic).pdf http://jro.igp.gob.pe/subwebs/200511_teps1/presentaciones/CJimenez_ProcSenales.pdf http://alvarounal.blogspot.com/2011/06/analisisondassismicasmpaeprocesamientod.html


http://www.youtube.com/user/alvarounal?feature=mhee#p/u/38/1eqy-M-8WUk http://www.youtube.com/user/alvarounal?feature=mhee#p/u/37/oawjAP6l4GA

10. CRONOGRAMA DE ACTIVIDADES (Las actividades se enumeran en la primera columna. Se sealar con una X la semana de culminacin de cada actividad). ACTIVIDADES
Mes/semanas Actividades Ago Set. Oct. 0 1 2 3 4 5 6 7 8 9 10 Nov. 11 12 Dic. 14 15

13

Tema del Proyecto Recopilacin de informacin Planteamiento del problema Objetivos Modelo matemtico Mtodos de solucin Algoritmo computacional Resultados Conclusiones Sustentacin
Facultad De Ingeniera Departamento De Ciencias

x x x x x x x x x x
CICLO: 2013-0 Cajamarca

Facultad De Ingeniera Departamento De Ciencias

CICLO: 2013-0 Cajamarca

You might also like