Commit 9997f39a authored by thomas.forbriger's avatar thomas.forbriger

libstfinv [WP][DOC]: locate appropriate location for application of taper

parent de084bcc
...@@ -271,6 +271,7 @@ namespace stfinv { ...@@ -271,6 +271,7 @@ namespace stfinv {
void STFFourierDomainEngine::fftoutput() void STFFourierDomainEngine::fftoutput()
{ {
// NOTE: apply taper here
this->convolve(); this->convolve();
if (Mapplyshift) { this->stfshift(); } if (Mapplyshift) { this->stfshift(); }
Mfftengineoutput.c2r(); Mfftengineoutput.c2r();
......
...@@ -57,7 +57,8 @@ namespace stfinv { ...@@ -57,7 +57,8 @@ namespace stfinv {
* It provides the FFT from input signals to the workspace through a member * It provides the FFT from input signals to the workspace through a member
* functions as well as the convolution of the synthetic data with a given * functions as well as the convolution of the synthetic data with a given
* source wavelet Fourier transform and a subsequent FFT to time domain for * source wavelet Fourier transform and a subsequent FFT to time domain for
* the convolved synthetics as well as the source correction filter separately. * the convolved synthetics as well as the source correction filter
* separately.
* *
* \par What STFFourierDomainEngine does for you * \par What STFFourierDomainEngine does for you
* All derived classes call STFFourierDomainEngine::fftinput prior to * All derived classes call STFFourierDomainEngine::fftinput prior to
...@@ -70,13 +71,27 @@ namespace stfinv { ...@@ -70,13 +71,27 @@ namespace stfinv {
* \par * \par
* When processing has finished, the derived classes should call * When processing has finished, the derived classes should call
* STFFourierDomainEngine::fftoutput. * STFFourierDomainEngine::fftoutput.
* This function convolves the synthetic data with the source correction * This function first applies a time domain taper to the correction filter
* impulse response if requested (STFFourierDomainEngine::taperstf).
* Then it convolves the synthetic data with the source correction
* filter (STFFourierDomainEngine::convolve). * filter (STFFourierDomainEngine::convolve).
* Then it applies a time shift to the source correction filter if requested * If requested it applies a time shift to the source correction filter
* (STFFourierDomainEngine::stfshift). * as a next step (STFFourierDomainEngine::stfshift).
* The convolved synthetics as well as the source correction filter then are * The convolved synthetics as well as the source correction filter then are
* transformed to time domain and written to the users workspace * transformed to time domain and written to the users workspace
* ((STFFourierDomainEngine::putoutput). * (STFFourierDomainEngine::putoutput).
*
* \par
* This should take place in the exec-function (e.g.
* STFEngineFDLeastSquares::exec) of the derived class.
* I.e. the first statement in the exec function is a call to function
* STFFourierDomainEngine::fftinput of the base class and the very last
* statement is a call to function STFFourierDomainEngine::fftoutput of the
* base class.
* This also guarantees that STFFourierDomainEngine::fftoutput is only
* called once per derived correction filter response.
* This is necessary, since otherwise the taper function and the time shift
* would be applied twice to the impulse response.
* *
* \par Layout of Fourier transform arrays * \par Layout of Fourier transform arrays
* The workspace for the Fourier transform engine is initialized by * The workspace for the Fourier transform engine is initialized by
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment