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 {
64enum class CNR3C_algorithms {
65 generalized_water_level,
66 colored_noise_damping,
147 const bool loadnoise =
false);
290 CNR3C_algorithms algorithm;
296 double decon_bandwidth_cutoff;
329 std::shared_ptr<mspass::algorithms::BasicTaper> wavelet_taper;
330 std::shared_ptr<mspass::algorithms::BasicTaper> data_taper;
337 double damp, noise_floor;
344 double snr_regularization_floor;
348 double snr_bandwidth;
356 std::vector<double> wavelet_snr;
358 double band_snr_floor;
360 double signal_bandwidth_fraction[3];
362 double regularization_bandwidth_fraction;
366 void compute_gwl_inverse();
367 void compute_gdamp_inverse();
370 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::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
Colored Noise Regularized 3C Deconvolution opertor.
Definition CNR3CDecon.h:96
~CNR3CDecon()
Definition CNR3CDecon.cc:275
mspass::seismic::TimeSeries actual_output()
Definition CNR3CDecon.cc:911
mspass::seismic::PowerSpectrum data_spectrum()
Definition CNR3CDecon.h:287
mspass::seismic::TimeSeries inverse_wavelet(double tshift)
Return a FIR represention of the inverse filter.
Definition CNR3CDecon.cc:952
mspass::utility::Metadata QCMetrics()
Return appropriate quality measures.
Definition CNR3CDecon.cc:975
mspass::seismic::PowerSpectrum data_noise_spectrum()
Definition CNR3CDecon.h:283
void loadnoise_wavelet(const mspass::seismic::TimeSeries &n)
Load noise data for wavelet directly.
Definition CNR3CDecon.cc:563
mspass::seismic::PowerSpectrum wavelet_spectrum()
Definition CNR3CDecon.h:285
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:346
void loadwavelet(const mspass::seismic::TimeSeries &w)
Load data defining the wavelet to use for deconvolution.
Definition CNR3CDecon.cc:447
void loadnoise_data(const mspass::seismic::Seismogram &n)
Load noise data directly.
Definition CNR3CDecon.cc:544
void change_parameters(const mspass::utility::BasicMetadata &md)
Change the setup of the operator on the fly.
Definition CNR3CDecon.cc:54
mspass::seismic::PowerSpectrum wavelet_noise_spectrum()
Definition CNR3CDecon.h:281
CNR3CDecon()
Definition CNR3CDecon.cc:26
Definition ComplexArray.h:37
Object to hold components needed in all fft based decon algorithms.
Definition FFTDeconOperator.h:20
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