1#ifndef __CNR3C_DECON_H__
2#define __CNR3C_DECON_H__
3#include "mspass/algorithms/Taper.h"
4#include "mspass/algorithms/TimeWindow.h"
5#include "mspass/algorithms/amplitudes.h"
6#include "mspass/algorithms/deconvolution/FFTDeconOperator.h"
7#include "mspass/algorithms/deconvolution/MTPowerSpectrumEngine.h"
8#include "mspass/algorithms/deconvolution/ShapingWavelet.h"
9#include "mspass/seismic/PowerSpectrum.h"
10#include "mspass/seismic/Seismogram.h"
11#include "mspass/seismic/TimeSeries.h"
12#include "mspass/utility/AntelopePf.h"
15namespace mspass::algorithms::deconvolution {
62enum class CNR3C_algorithms {
63 generalized_water_level,
64 colored_noise_damping,
146 const bool loadnoise =
false);
296 CNR3C_algorithms algorithm;
302 double decon_bandwidth_cutoff;
335 std::shared_ptr<mspass::algorithms::BasicTaper> wavelet_taper;
336 std::shared_ptr<mspass::algorithms::BasicTaper> data_taper;
343 double damp, noise_floor;
350 double snr_regularization_floor;
354 double snr_bandwidth;
362 std::vector<double> wavelet_snr;
364 double band_snr_floor;
366 double signal_bandwidth_fraction[3];
368 double regularization_bandwidth_fraction;
372 void compute_gwl_inverse();
373 void compute_gdamp_inverse();
376 void update_shaping_wavelet(
Defines a time window.
Definition TimeWindow.h:12
Holds parameters defining a passband computed from snr.
Definition amplitudes.h:306
Absract base class for algorithms handling full 3C data.
Definition CNR3CDecon.h:19
virtual mspass::seismic::Seismogram process()=0
Apply the loaded 3C deconvolution operator.
virtual mspass::utility::Metadata QCMetrics()=0
Return appropriate quality measures.
virtual mspass::seismic::TimeSeries inverse_wavelet(double)=0
Return a FIR represention of the inverse filter.
virtual mspass::seismic::TimeSeries actual_output()=0
Return the actual output of the deconvolution operator.
Colored Noise Regularized 3C Deconvolution opertor.
Definition CNR3CDecon.h:94
mspass::seismic::TimeSeries output_shaping_wavelet()
Return the output shaping wavelet.
Definition CNR3CDecon.h:249
mspass::seismic::Seismogram process()
Apply the loaded 3C deconvolution operator.
Definition CNR3CDecon.cc:792
~CNR3CDecon()
Definition CNR3CDecon.cc:307
mspass::seismic::TimeSeries actual_output()
Return the actual output of the deconvolution operator.
Definition CNR3CDecon.cc:925
mspass::seismic::PowerSpectrum data_spectrum()
Definition CNR3CDecon.h:293
mspass::seismic::TimeSeries inverse_wavelet(double tshift)
Return a FIR represention of the inverse filter.
Definition CNR3CDecon.cc:966
mspass::utility::Metadata QCMetrics()
Return appropriate quality measures.
Definition CNR3CDecon.cc:989
mspass::seismic::TimeSeries resolution_kernel()
Alias for actual_output using inverse-theory terminology.
Definition CNR3CDecon.h:262
mspass::seismic::TimeSeries ideal_output()
Definition CNR3CDecon.cc:917
mspass::seismic::PowerSpectrum data_noise_spectrum()
Definition CNR3CDecon.h:289
void loadnoise_wavelet(const mspass::seismic::TimeSeries &n)
Load noise data for wavelet directly.
Definition CNR3CDecon.cc:595
mspass::seismic::PowerSpectrum wavelet_spectrum()
Definition CNR3CDecon.h:291
void loaddata(mspass::seismic::Seismogram &d, const int wcomp, const bool loadnoise=false)
Load data with one component used as wavelet estimate.
Definition CNR3CDecon.cc:378
void loadwavelet(const mspass::seismic::TimeSeries &w)
Load data defining the wavelet to use for deconvolution.
Definition CNR3CDecon.cc:479
void loadnoise_data(const mspass::seismic::Seismogram &n)
Load noise data directly.
Definition CNR3CDecon.cc:576
CNR3CDecon & operator=(const CNR3CDecon &parent)
Definition CNR3CDecon.cc:266
void change_parameters(const mspass::utility::BasicMetadata &md)
Change the setup of the operator on the fly.
Definition CNR3CDecon.cc:71
mspass::seismic::PowerSpectrum wavelet_noise_spectrum()
Definition CNR3CDecon.h:287
CNR3CDecon()
Definition CNR3CDecon.cc:43
Interfacing object to ease conversion between FORTRAN and C++ complex.
Definition ComplexArray.h:41
Object to hold components needed in all fft based decon algorithms.
Definition FFTDeconOperator.h:21
Multittaper power spectral estimator.
Definition MTPowerSpectrumEngine.h:29
Frequency domain shaping wavelet.
Definition ShapingWavelet.h:21
Definition PowerSpectrum.h:11
Implemntation of Seismogram for MsPASS.
Definition Seismogram.h:14
Implemntation of TimeSeries for MsPASS.
Definition TimeSeries.h:14
C++ object version of a parameter file.
Definition AntelopePf.h:61