Deconvolution Tools for
Seismic Signals
|
Introduction
|
A software developed by Wolfgang Stefan in cooperation with Rosie Renaut and Ed Garnero to deblur seismograms using Total Variation regularized deconvolution. An interactive Java application demonstrates the method and can be used to explore the impact of different parameter choices. Two Matlab examples show how this software can be used in a Matlab environment.
|
Download and install instructions
|
The software is published under the GNU
License. We ask everyone who uses our software to mention the
following reference:
- [1] Stefan, W., Garnero, E. and Renaut, R. A., Signal
restoration through deconvolution applied to deep mantle seismic
probes, preprint, http://math.asu.edu/~rosie.
|
Using the examples
|
 In
the main directory there is a java program called deconvDemo.java.
To run it
set the CLASSPATH variable:
e.g. "export
CLASSPATH=$CLASSPATH:.:jnt.jar:jfft.jar:riso.jar:deblurrseismo.jar" (in Windows "set CLASSPATH=.;jnt.jar;jfftw.jar;riso.jar;deblurrseismo.jar")
run the program with: java deconvDemo
The top graph shows the original wave train and the
deconvolved. The lower graph shows the original wave train and the
forward projection of the deconvolved data i.e. the data fit. The
labels are arrival time predictions from ray theory. Press the
"run" button to start the reconstruction. The default
settings should give a reconstruction similar to those in [1]. You
can use the sliding controls to adjust the parameters while the
algorithm is running. The left control changes the regularization
parameter \lambda the right the PSF width \sigma.
\lambda controls the trade off
between the smoothness of the reconstruction and the data fit.
Very small values of \lambda will have a very good data fit in
the lower graph, but also high noise in the reconstruction i.e.
large oscillations. Large \lambda result in a smooth
reconstruction. Very large \lambda will result in over smoothing
of the signal and the reconstruction looses details until it is
almost constant.
\sigma governs the width of the PSF, thus the amount of
deblurring. A small \sigma will result in little deblurring,
larger \sigma in more deblurring, however if \sigma is too large
the forward projection looses the data fit, resulting in unwanted
oscillations in the reconstruction.
Note you may have to press "run" again after a
solution was found and the minimization is stopped.
|
Matlab
|
Two matlab programs, in the directory "matlab",
demonstrate the usage of the code in Matlab. The file synth.m
produces the graphs for the synthetic seismograms in [1], and
realdata.m the graphs for the real data in [1].
|
Direct deconvolution in Matlab
|
Due to the java integration in Matlab it is very easy to use
the code in Matlab. Assuming there is a vector g (the blurred
signal) and a vector h (the PSF) the following code deconvolves g:
javaaddpath('deblurrseismo.jar'); javaaddpath('jnt.jar'); javaaddpath('riso.jar'); import
edu.asu.seismo.signals.oned.*; f_hat=blurset.deconvf(doubleSignal1d(g),psf1d(h),'v',lambda,1,1e-6,0,1e-6
); plot(f_hat.vec());
|
Acknowledgment
|
This software uses parts of
JNT (The FFT routine is by Dr.
Bruce R. Miller the Stopwatch is taken from SciMark
2.0 by Roldan Pozo and Bruce Miller.
The RISO
Project.
A Java wrapper for FFTW
by Daniel Darabos. In
order to use FFTW you also have to download the original wrapper
and FFTW 1.2 from www.fftw.org
and compile the FFTW library as well as the wrapper library
(jfftwlib) and set an appropriate path (e.g. LD_LIBRARY_PATH).
The deconvolution tools will also work without fftw using a the
native java FFT implementation from JNT but it will be
considerably slower.
TauP.
- The work was supported in part by an NSF Collaboration in Mathematical and Geosciences grant CMG-02223, and grant NSF 0513214.
|