Navigation: Mainpage, trunk, branches, tags, vendor, export, admin, docs

STFINV library: seek source wavelet correction filter


Remove the contribution of the unkown source time function (STF) from the waveform residuals in procedures for full waveform inversion.


Design a filter which minimizes the misfit to the field recordings when being applied to the raw synthetics. Other criteria are possible.


Field recordings and raw synthetics for one shot. Optionally additional time series can be passed to be convolved with the determined source time function.


All time series have identical temporal sampling. Recorded data and corresponding synthetics must have identical spatial and temporal sampling. All recorded traces must have passed the same filters. Raw synthetics have larger bandwidth than recordings (otherwise just swap synthetics and recordings).


Impulse response of the designed filter and synthetics convolved with filter response. If additional series were passed, they are convolved with the newly determined filter and are returned to the user.

Additional resources

The initial discussion on design of libstfinv is available in ticket #104. A presentation on libstfinv is provided in the attachment Download.

Library details

The directory source:trunk/src/libs/libstfinv contains the source code for a library which supports the estimation of a source time function in waveform inversion. The source code is provided for download.

API Implementation

The library is designed to provide a common API (application programming interface) to the library user in C++ as well as in C. A Fortran API is not yet implemented but could be constructed on top of the C API. The library provides several approaches to finding an optimized source wavelet correction filter. Each of the approaches is addressed through the same API, such that programs using the library could immediatly benefit from an new approach after its implementation without need to modify consumer programs. The approaches are encapsulated in so-called 'engines'. See the documentation coming in the source code for further details.


The doxygen documentation coming with the source code is published at and updated from time to time.


A stand-alone binary, which makes use of this library is provided by trunk/src/ts/wf/ See also wiki:trunk/src/ts/wf/soutifu

Examples and test cases

libstfinv C API

Source code to test the C API is provided in source:trunk/src/libs/libstfinv/test_libstfinv. See source:trunk/src/libs/libstfinv/test_libstfinv/README.

soutifu (C++ API and stand-alone binary)

Test cases are prepared in trunk/src/ts/wf/testcases/Makefile.soutifu. Just change to your working copy of trunk/src/ts/wf/testcases/Makefile.soutifu and enter

make clean
make soutifutests
acroread soutifu*.pdf


  • toast201109tf.pdf Download (402.0 KB) - added by tforb 7 years ago. Presentation of libstfinv at TOAST meeting 2011 (in Sankelmark)