5 SAC - Filtros y Stacking

5.1 Nyquist y alisado

La frecuencia de onda crítica, la mitad de la frecuencia de muestreo, es llamada frecuencia Nyquist. El alisado puede ocurrir para señales que contienen frecuencias cercanas de la frecuencia Nyquist.

\includegraphics[width=12 cm]{alaising.ps}
Fig 5.1: El efecto de alisado para una señal con mal muestreo.

Genere una señal en SAC de una onda seno, frecuencia 10 Hz, 100 muestras por segundo con una duración de 10 segundos. Use el comando interpolate para cambiar la delta de la señal así:

interpolate delta 0.02
Prueba otras valores en la interpolación de 0.04, 0.08, 0.16 para ver lo que pasa a la señal cuando se pasa la límite Nyquist.

5.2 Filtros

Filtros solo permiten un cierto rango de frecuencias pasar, para acentuar la amplitud de la señal sísmica en comparación con el ruido. Mientras que filtros son convoluciones en el dominio de tiempo, son una multiplicación en el dominio de frecuencia. Se puede ver la forma de filtros en el dominio de frecuencia cuando se aplica el filtro a una función delta.

Genere una función delta en SAC, con alto muestreo, 10 segundos de largo. Ahora vamos a aplicar un filtro Butterworth a la función delta:

bandpass corner 2 4 npoles 6 passes 1
Este filtro tiene frecuencias de esquina de 2 y 4 Hz, se construye con 6 polos, y se aplica con 1 paso. Grafique la función delta después de la aplicación del filtro. Luego, tome la transformada de Fourier de la señal (parte amplitud), para ver el rango de frecuencias en la señal que permite pasar el filtro.

El filtro Butterworth bandpass tiene una construcción matemática bastante complicada, pero para ver el efecto visual del filtro siempre se puede ver como modifica una función delta. Prueba el filtro de nuevo, pero con (i) 2 polos, y (ii) 10 polos. ¿Cuál es el efecto de la cantidad de polos en el filtro? También prueba la diferencia entre 1 y 2 pasos.

5.3 Filtrando datos sísmicos

Bajen los siguientes archivos del sitio web:

http://www.mttmllr.com/ADS/DATA/
  1. 2010358063138_L003_HHE.sac
  2. 2010358063138_L003_HHN.sac
  3. 2010358063138_L003_HHZ.sac
Los archivos muestran una réplica, de baja magnitud, del terremoto del 2010. Es un sismo local, se puede ver la onda P, quizás la onda S, a estas distancias no hay onda de superficie. Abre los archivos en SAC, use el comando "ppk markall" para marcar los siguientes tiempos en el sismograma, y guardarles con "w over":
  1. T1 cuando llega la onda P
  2. T2 en el primer mínimo de la onda P
  3. T3 en el primer máximo de la onda P
Ahora aplica un filtro a la señal, entre frecuencias de 0.5 y 20 Hz, para ver que pasa con la forma de la llegada de la onda P. Aplica el filtro dos veces: uno con un paso, el otro con dos pasos, y identifica la diferencia entre los dos.

Ultimamente, encuentre un filtro aceptable para acentuar la onda S.

5.4 Trabajo adicional sobre filtros

1) Usa el comando interpolate para reducir el muestreo de los sismogramas de la sección 5.3. ¿Cuál es la frecuencia de muestreo límite con la cual se puede identificar bien el tiempo de llegada de la onda P? ?Cómo compara la frecuencia de muestreo límite con la frecuencia dominante de la onda-P?

2) Existen otros filtros además que bandpass. Ver el efecto de los siguientes filtros a una función delta: highpass, lowpass, bandrej.

5.5 Stacking

El proceso de stacking, o amontonamiento, es una manera de extraer la señal desde el ruido usando mediciones repetidas y tomando su promedio. La idea es que mientras la señal suma constructivamente, la partes aleatorias de los series de tiempo suman a cero en el limite que la cantidad de mediciones tiende al infinito.

La estadística no se muestra explícitamente acá. En su lugar, haremos una demostración simple. El siguiente script genera un sismograma, después agrega ruido aleatorio al sismograma una cierta cantidad de veces, y al final toma el promedio de todas las señales que contienen ruido. Se puede bajar el script aquí.

#!/bin/bash
#Este script usa SAC para demostrar el proceso de stacking
#El script tambien demonstra llamando SAC automaticamente, y usando macros en SAC
#Cantidad maxima de archivos para amontonar en este script es 32767 
#Debido al limite maximo del numero $RANDOM 
num=10
#Generar un sismograma (llamando al programa SAC usando el script)
sac << END
echo on
funcgen seismogram
ch O undef
sync
w seismogram.sac
quit
END
#Crear un macro para generar archivos aleatorios, y sumar el sismograma a cada uno
echo "Generando los archivos de ruido ..."
echo "echo on" > sac_macro1.m
x=1
while [ $x -le ${num} ]; do
name=`echo ${x} | awk '{printf"%5.5i\n", $1}' | awk '{printf"%s", "noisy"$1".sac "}'`
seed=$RANDOM
echo "funcgen random 1 "${seed}" npts 1000 delta 0.01" >> sac_macro1.m
echo "addf seismogram.sac" >> sac_macro1.m
echo "write "${name} >> sac_macro1.m
x=$[$x+1]
done
echo "quit" >> sac_macro1.m
#Ahora se puede correr el macro para generar $num archivos de la senal con ruido
sac sac_macro1.m
#La proxima etapa es generar otro macro para promediar los archivos de la senal con ruido
echo "echo on" > sac_macro2.m
ls -1 noisy*sac | awk '{ if ( NR == 1 ) print "read "$1}{if ( NR > 1 ) print "addf "$1}' >> sac_macro2.m
echo "div "$num >> sac_macro2.m
echo "ch KEVNM \"STACKED FILE\"" >> sac_macro2.m
echo "w stacked_noisy_files.sac" >> sac_macro2.m
echo "quit" >> sac_macro2.m
#Y correr este macro
sac sac_macro2.m
#Ahora tenemos generado stacked_noisy_files.sac, el archivo que es el promedio de los archivos con ruido
#Compara este archivo con el sismograma original, por diferentes valores de $num (hasta ~32000)

Cosas para hacer:

Este método tiene aplicaciones prácticas:

Por ejemplo, las curvas de tiempo de viaje para la Tierra están tomadas desde el promedio de diferentes sismos registrados en diferentes estaciones, pero con la distancia fuente-estación similar. Con eso, se puede ver fases sísmicas que estan originalmente perdidas en el ruido.

En experimentos de exploración geofísica, usando fuentes activos (por ejemplo un martillo sísmico), es una buena idea repetir las mediciones varias veces para mejorar la tasa señal:ruido.

About this document ...

This document was generated using the LaTeX2HTML translator Version 2008 (1.71)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -split 0 -white -no_navigation sac_05_filters.tex

The translation was initiated by matt on 2016-11-17


matt 2016-11-17