Commit 6b65540e by thomas.forbriger Committed by thomas.forbriger

finished theory behind blind deconvolution

This is a legacy commit from before 2015-03-01.
It may be incomplete as well as inconsistent.
See COPYING.legacy and README.history for details.

SVN Path:     http://gpitrsvn.gpi.uni-karlsruhe.de/repos/TFSoftware/trunk
SVN Revision: 3987
SVN UUID:     67feda4a-a26e-11df-9d6e-31afc202ad0c
parent 8c95367b
 ... ... @@ -105,6 +105,83 @@ namespace stfinv { * Now \f$\eta\f$ and \f$\lambda\f$ have to be used to balance the * regularization. * We aim to specify a waterlevel as a fraction of synthetic data energy. * . * The misfit equals one if the scaled energy of the residual * \f$d_{lk}-s_{lk}q_l\f$ equals the scaled energy of the synthetics * \f$s_{lk}\f$ and * \f[ * \eta^2=\frac{1}{\sum\limits_k f_k\sum\limits_l \left|s_{lk}\right|^2} * \f] * is the reciprocal of the scaled energy of the synthetics. * If we then choose * \f[ * \frac{\lambda^2}{\eta^2}=\frac{\epsilon^2}{N\eta^2}= * \frac{\epsilon^2}{N}\sum\limits_k f_k\sum\limits_{l=0}^{N-1} * \left|s_{lk}\right|^2 * \f] * where \f$N\f$ is the number of frequencies, then \f$\epsilon^2\f$ * will specify a waterlevel as a fraction of the scaled energy of the * synthetics. * * \par Using Parceval's Theorem to calculate signal energy * Parceval's Theorem for a signal \f$a(t)\f$ and its Fourier transform * \f$\tilde{a}(\omega)\f$ is * \f[ * \int\limits_{-\infty}^{+\infty}\bigl|a(t)\bigr|^2\,\textrm{d} t= * \int\limits_{-\infty}^{+\infty}\bigl|\tilde{a}(\omega)\bigr|^2\, * \frac{\textrm{d} \omega}{2\pi}. * \f] * If \f$S_k\f$ are the time series samples corresponding to the Fourier * coefficients \f$\tilde{s}_l\f$ and \f$\Delta t\f$ is the sampling * interval then * \f[ * \sum\limits_{k=0}^{M-1}\left|S_k\right|^2\,\Delta t= * \sum\limits_{l=0}^{M-1}\left|\tilde{s}_l\right|^2\,\frac{1}{M\,\Delta t}. * \f] * In the above calculation the energy sum only uses the positive * frequencies * \f[ * \sum\limits_k f_k\sum\limits_{l=0}^{N-1}\left|\tilde{s}_{lk}\right|^2 * = * 2N\,(\Delta t)^2\, * \sum\limits_k f_k * \sum\limits_{k=0}^{2N-1}\left|S_{lk}\right|^2. * \f] * Fourier coefficients \f$s_{lk}\f$ calculated by the * stfinv::STFFourierDomainEngine are not scaled (see documentation of * libfourierxx and libfftw3), such that * \f[ * \Delta t\,s_{lk}=\tilde{s}_{lk}. * \f] * Consequently * \f[ * \sum\limits_k f_k\sum\limits_{l=0}^{N-1}\left|s_{lk}\right|^2 * = * 2N\, * \sum\limits_k f_k * \sum\limits_{k=0}^{2N-1}\left|S_{lk}\right|^2. * \f] * * \par Final calculation recipe * The solution to our problem is * \f[ * q_l=\frac{ * \sum\limits_{k}f_k^2\,s_{kl}^\ast\,d_{kl} * }{ * 2\epsilon^2\,\sum\limits_k f_k * \sum\limits_{k=0}^{2N-1}\left|S_{lk}\right|^2 * +\sum\limits_{k}f_k^2\,s_{kl}^\ast\,s_{kl} * } * \quad\forall\, l, * \f] * where * \f[ * \sum\limits_{k=0}^{2N-1}\left|S_{lk}\right|^2 * \f] * is the sum of the squared sample values \f$S_{lk}\f$ of the synthetic * time series for receiver \f$k\f$, \f$f_k\f$ are the scaling factors * provided by stfinv::STFBaseEngine::weight(), and \f$\epsilon^2\f$ * is the water level parameter passed to STFEngineBlindDeconvolution. */ class STFEngineBlindDeconvolution: public stfinv::STFFourierDomainEngine { public: ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!