1#ifndef __CNR_DECON_ENGINE_H__
2#define __CNR_DECON_ENGINE_H__
3#include <boost/archive/text_iarchive.hpp>
4#include <boost/archive/text_oarchive.hpp>
5#include <boost/serialization/base_object.hpp>
6#include <boost/serialization/shared_ptr.hpp>
8#include "mspass/algorithms/Taper.h"
9#include "mspass/algorithms/deconvolution/FFTDeconOperator.h"
10#include "mspass/algorithms/deconvolution/MTPowerSpectrumEngine.h"
11#include "mspass/algorithms/deconvolution/ShapingWavelet.h"
12#include "mspass/seismic/PowerSpectrum.h"
13#include "mspass/seismic/Seismogram.h"
14#include "mspass/seismic/TimeSeries.h"
15#include "mspass/utility/AntelopePf.h"
17namespace mspass::algorithms::deconvolution {
27enum class CNR3C_algorithms { generalized_water_level, colored_noise_damping };
128 const double t0shift);
135 CNR3C_algorithms algorithm;
145 double band_snr_floor;
147 int shaping_wavelet_number_poles;
163 double snr_regularization_floor;
166 double regularization_bandwidth_fraction;
168 double signal_bandwidth_fraction[3];
175 void update_shaping_wavelet(
const double fl,
const double fh);
184 friend boost::serialization::access;
185 template <
class Archive>
186 void serialize(Archive &ar,
const unsigned int version) {
188 ar &boost::serialization::base_object<FFTDeconOperator>(*
this);
195 ar & shaping_wavelet_number_poles;
202 ar & snr_regularization_floor;
207 ar & regularization_bandwidth_fraction;
212 for (
auto k = 0; k < 3; ++k) {
216 ar &signal_bandwidth_fraction[k];
Colored-noise regularized three-component deconvolution engine.
Definition CNRDeconEngine.h:34
mspass::seismic::PowerSpectrum compute_noise_spectrum(const mspass::seismic::TimeSeries &d2use)
Definition CNRDeconEngine.cc:317
void changeparameter(const mspass::utility::Metadata &md)
Definition CNRDeconEngine.cc:164
CNRDeconEngine & operator=(const CNRDeconEngine &parent)
Definition CNRDeconEngine.cc:248
virtual ~CNRDeconEngine()
Definition CNRDeconEngine.h:83
double get_operator_dt() const
Definition CNRDeconEngine.h:90
CNRDeconEngine()
Definition CNRDeconEngine.cc:15
mspass::seismic::Seismogram process(const mspass::seismic::Seismogram &d, const mspass::seismic::PowerSpectrum &psnoise, const double fl, const double fh)
Definition CNRDeconEngine.cc:583
mspass::seismic::TimeSeries resolution_kernel(const mspass::seismic::TimeSeries &wavelet)
Alias for actual_output using inverse-theory terminology.
Definition CNRDeconEngine.h:122
mspass::seismic::TimeSeries actual_output(const mspass::seismic::TimeSeries &wavelet)
Definition CNRDeconEngine.cc:708
mspass::seismic::TimeSeries inverse_wavelet(const mspass::seismic::TimeSeries &wavelet, const double t0shift)
Definition CNRDeconEngine.cc:816
mspass::seismic::TimeSeries output_shaping_wavelet()
Return the output shaping wavelet.
Definition CNRDeconEngine.h:112
void initialize_inverse_operator(const mspass::seismic::TimeSeries &wavelet, const mspass::seismic::TimeSeries &noise_data)
Definition CNRDeconEngine.cc:271
mspass::utility::Metadata QCMetrics()
Definition CNRDeconEngine.cc:838
mspass::seismic::TimeSeries ideal_output()
Definition CNRDeconEngine.cc:700
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