final calculo 4 proyecto

20
PROYECTO DE APLICACIÓN Curso: Calculo IV Clase: 604897 Título del proyecto: Procesamiento de señales sísmicas en entorno MATLAB Nº de equipo de Trabajo: Equipo N° 8 Integrantes: Prentice Urteaga, Mariam Vargas Chávez, Mario Alexander Facultad De Ingeniería Departamento De Ciencias CICLO: 2013-0 Cajamarca

Upload: fernando-del-campo-diaz

Post on 27-Oct-2015

54 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Final Calculo 4 Proyecto

PROYECTO DE APLICACIÓN

Curso:

Calculo IV

Clase:

604897

Título del proyecto:

Procesamiento de señales sísmicas en entorno MATLAB

Nº de equipo de Trabajo:

Equipo N° 8

Integrantes:

Prentice Urteaga, Mariam Vargas Chávez, Mario Alexander

Fecha de sustentación: Semana 15

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 2: Final Calculo 4 Proyecto

1. TÍTULO DEL PROYECTO:

PROCESAMIENTO DE SEÑALES SÍSMICAS EN ENTORNO MATLAB

2. PLANTEAMIENTO DEL PROBLEMA:

Para lograr un estudio de ondas sísmicas, y poder realizar una prevención de estas mismas, nos hace realizar un estudio, análisis y su descripción mediante un programa computacional (Software). Para poder hacer este análisis y la prevención 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 sísmicas, 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.

4. MODELO MATEMÁTICO:

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 3: Final Calculo 4 Proyecto

Para poder aplicar el procesamiento digital de señales y el lenguaje de programación Matlab se va a realizar la lectura automática de los parámetros de señales sísmicas, Aplicar una transformada rápida de Fourier a toda la señal y observar si hay frecuencias no deseadas para luego aplicar un filtro si fuere necesario.

El cálculo de la fase P y S se realiza empleando un algoritmo de comparación de la envolvente de la señal. La amplitud de la onda S estará relacionada con el máximo valor del vector “y” (señal sísmica). Se aplica la transformada rápida de Fourier en torno a la posición de la fase S para calcular el espectro de frecuencias. Diseño e implementación de una interfaz gráfica en Matlab para la lectura de señales sísmicas con tres componentes.

El procesamiento digital de señales implica haber expresado previamente la magnitud de la señal en forma numérica. Cada número, así obtenido, representa la magnitud de la señal en un instante determinado. Entonces, tendremos una sucesión de muestras de la señal en lugar de la señal completa.

En la práctica el muestreo se logra multiplicando la señal continua por un tren de impulsos unitarios, tal como se aprecia en la Figura

La herramienta matemática muy importante en el procesamiento de señales que sirve para transformar una señal del dominio del tiempo al dominio de la frecuencia. Para el caso continuo tenemos:

y para el caso discreto:

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 4: Final Calculo 4 Proyecto

Figura 4. Señal sísmica en el dominio de la frecuencia. Espectro de frecuencias.

El espectro de frecuencias de una señal nos permitirá saber qué componentes frecuenciales están presentes. Esto servirá para aplicar un filtro adecuado si fuera necesario. El código 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 matemática importante que nos permite obtener la envolvente de una señal. Dicha transformada no cambia la representación de la señal de un dominio a otro, sino que simplemente obtiene de ella otra función:

Si obtenemos el espectro de Fourier de la ecuación (4) como:

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 5: Final Calculo 4 Proyecto

La transformada de Hilbert equivale a dejar las amplitudes de las componentes espectrales de la señal con la misma amplitud, pero desfasadas por , según el signo de s. 2/π±

El proceso del filtrado consiste en eliminar, atenuar o amplificar ciertas componentes frecuenciales de una señal. Por ejemplo, la figura 5 muestra una señal 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 señal de la figura 6.

Según su aplicación, un filtro puede ser clasificado como pasa-bajo, pasa-alto, pasa-banda o elimina-banda. El filtro más utilizado en sismología es el de Butterworth, debido a su pequeña banda de transición y a la ausencia de ripple en la banda de paso. El rango de frecuencia del ruido sísmico 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. Señal contaminada con ruido

Figura 6. Señal anterior después de filtrar

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 6: Final Calculo 4 Proyecto

5. MÉTODOS DE SOLUCIÓN

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 programación MATLAB. Recordemos que este programa lee las variables como vectores o matrices.

3. Vectorizar la variable tiempo (t) y la señal sísmica (y).

4. Aplicar una transformada rápida de Fourier a toda la señal 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 cálculo de la fase P se realiza analizando la envolvente de la señal (normalizado a uno, es decir la amplitud máxima de la señal será igual a uno):

y 2 (t )=√ y ¿¿

donde y1(t) es la transformada de Hilbert de la señal “y”.

Luego, se emplea el siguiente algoritmo de comparación:

a) Se elige un valor umbral_1.

b) Si y2 > umbral_1, se lee el tiempo tp.

c) Se busca la posición donde la derivada de y2 sea negativa y donde y2 < umbral_2.

d) Se lee el nuevo tiempo tp.

6. El cálculo 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 señal “y”, dentro de los 5 segundos siguientes al tiempo ts.

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 7: Final Calculo 4 Proyecto

Envolvente de la señal

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. Cálculo de la duración: el cálculo es análogo al de la fase P o S, pero la búsqueda empieza desde el final y hacia atrás. Se lee el tiempo td. La duración será la diferencia:

D = td – tp.

La interfaz gráfica 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 edición, menus, etc. Cada uno de los cuales tiene ciertas propiedades y realiza una función determinada (callback function). Por ejemplo: para filtrar la señal, simplemente se hace click en el boton <Filtro>.

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 8: Final Calculo 4 Proyecto

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 cnaxis([0 205 -60000 5005])title('sismograma');xlabel('tiempo');ylabel('Amplitud (mm)');t=t';y=y';

2. Analisis_ondas_sísmicas.m

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 9: Final Calculo 4 Proyecto

% Calculo de las fases, periodo y la amplitud de una onda sismica % %load sismo.txt % Cargar archivo en block de notast = sismo(:,1); % Vector tiempoy = sismo(:,2); % Vector amplitud señal sismicaN = length(y); % longitud del vectorFs = 20; %fecuencia de muestreoT = 1/Fs; % Intervalo de muestreo[A,I]=max(abs(y)); % I = posicion del %maximoy1 = hilbert(y); % transforma los datos discretos de (y), en forma compleja,

%utilizando la transformada de hilbert (calcula el contenido de frecuencia%de una señal ya sea de energia o de potencia)y2 = sqrt(y.*y+y1.*conj(y1)); %El cálculo de la fase P se realiza analizando

%la envolvente de la señal (normalizado a uno, es decir la amplitud máxima%de la señal será igual a uno)se realiza mediante eta ecuacionA2 = max(y2); %amplitud maxima de la onda py2 = y2/A2; % envolventecomp = mean(y2(1:60));% calcula el valor medio de la matrizfor n = 10:I %posicion del maximoif y2(n) > 5.9*compn;breakendendm=4;for k = 1:nif y2(m-k)-y2(m-k-1)<0&y2(m-k)<0.015Ip = n-k;tp = (Ip)*T;breakendendfprintf('%s%8.6f\n', ' Tiempo P = ',tp);Ix = round((Ip+I)/2);%redondea los numero de IP+I/2al entero mas proximofor n = Ix:Iif y2(n) > 0.45n;breakendend

% Calculo de la fase Sfor k = Ix:n+Ixif (y2(n+Ix-k)-y2(n+Ix-k-1)<0)&y2(n+Ix- k)<0.09Is = n+Ix-k;

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 10: Final Calculo 4 Proyecto

ts = (Is)*T;breakendendfprintf('%s%8.6f\n', ' Tiempo S = ',ts);

% Plotear las gráficassubplot(2,1,1),plot (t,y), grid onaxis([0 205 -50000 50000])title ('Grafica de la señal sismica')fprintf('%s%8.6f\n', ' Amplitud = ',A);

%tranformada de fourier de la señal sirve para nalizar los componentes%frecuenciales que estan presentes y aplicar un filtro si se cree necesarioY = fft(y,N);% N=longitud del vectorPyy = Y.*conj(Y) / N;f = ((1/T)*(0:N/2)/ N);AA=Pyy(1:N/2+1);%figuresubplot(2,1,2),plot(f,AA)axis([0 3 0 70000000000]), grid ontitle('Espectro de frecuencias de la señal')xlabel('Frecuencia (Hz)')N = 128; % N = numero de puntos TRFfor k = 1:Ny1(k) = y(I-N/4+k);endN=4076; %numero de datos ingresados se hace manualmenteAAA=t(1:N);AAAA=y1;y1=y1';figuresubplot(2,1,2), plot (t(1:N),y1), grid onaxis([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 ontitle('Espectro de frecuencias del zoom')xlabel('Frecuencia (Hz)')figurey2=y2';plot(t,y2),grid on

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 11: Final Calculo 4 Proyecto

axis([0 200 0 1])title('Envolvente de la señal')

% 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 duracionprom_f = sum(abs(y(N-20:N)))/21;ss=0.5;for k = N:-1:Iif y(k) > 4*prom_fk;tf = k*T+ss;breakendenddur = round(tf-tp);%duracion del sismofprintf('%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 tiempoy = sismo(:,2); % Vector señal sismicaN = length(y); % longitud del vectorFs = 20;T = 1/Fs; % Intervalo de muestreo[A,I]=max(abs(y)); % I = posicion del %maximoy1 = hilbert(y);y2 = sqrt(y.*y+y1.*conj(y1));A2 = max(y2);y2 = y2/A2; % envolventecomp = mean(y2(1:60));for n = 10:Iif y2(n) > 5.9*compn;breakend

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 12: Final Calculo 4 Proyecto

endfor k = 1:nif y2(m-k)-y2(m-k-1)<0&y2(m-k)<0.015Ip = n-k;tp = (Ip)*T;breakendendfprintf('%s%8.6f\n', ' Tiempo P = ',tp);Ix = round((Ip+I)/2);for n = Ix:Iif y2(n) > 0.45n;breakendend% Calculo de la fase Sfor k = Ix:n+Ixif (y2(n+Ix-k)-y2(n+Ix-k-1)<0)&y2(n+Ix-k)<0.09Is = n+Ix-k;ts = (Is)*T;breakendendfprintf('%s%8.6f\n', ' Tiempo S = ',ts);% Plotear las gráficassubplot(2,2,1), plot (t,y), grid ontitle ('Grafica de la señal 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 ontitle('Espectro de frecuencias de la señal')xlabel('Frecuencia (Hz)')N = 128; % N = numero de puntos TRFfor k = 1:Ny1(k) = y(I-N/4+k);endsubplot(2,2,2), plot (t(1:N),y1), grid ontitle ('Zoom en el cambio de fase P-S')Y = fft(y1,N);Pyy = Y.*conj(Y) / N;

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 13: Final Calculo 4 Proyecto

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 ontitle('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 duracionprom_f = sum(abs(y(N-20:N)))/21;for k = N:-1:Iif y(k) > 4*prom_fk;tf = k*T+ss;breakendenddur = round(tf-tp);fprintf('%s%7.2f\n', ' Duracion = ',dur);

7. RESULTADOS:

Se realizó el análisis de la señal sísmica, usando el logaritmo “Sismogrma.m”S de donde se obtuvo lo siguiente:

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 14: Final Calculo 4 Proyecto

Usando el logaritmo “Analisis_ondas_sísmicas.m”, se obtiene los siguientes resultados:

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 15: Final Calculo 4 Proyecto

Zoom en el cambio de fase P-S

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 16: Final Calculo 4 Proyecto

Envolvente de la señal

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 prevención ante

estos acontecimientos

9. REFERENCIAS BIBLIOGRÁFICAS:

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 señalará con una X la semana de culminación de cada actividad).

ACTIVIDADES

Mes/semanasActividades

Ago Set. Oct. Nov. Dic.0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca

Page 17: Final Calculo 4 Proyecto

Tema del Proyecto xRecopilación de información xPlanteamiento del problema xObjetivos xModelo matemático xMétodos de solución xAlgoritmo computacional xResultados xConclusiones xSustentación x

Facultad De IngenieríaDepartamento De Ciencias

CICLO: 2013-0Cajamarca