MsPASS C++ API  2.4.1.dev4+g92330b7a
Defines the C++ API for MsPASS
Loading...
Searching...
No Matches
NoiseStableDecon.h
1#ifndef __NOISE_STABLE_DECON_H__
2#define __NOISE_STABLE_DECON_H__
3#include "mspass/algorithms/deconvolution/FFTDeconOperator.h"
4#include "mspass/algorithms/deconvolution/ScalarDecon.h"
5#include "mspass/algorithms/deconvolution/ShapingWavelet.h"
6#include "mspass/seismic/CoreTimeSeries.h"
7#include "mspass/seismic/PowerSpectrum.h"
8#include "mspass/utility/Metadata.h"
9#include <vector>
10
11namespace mspass::algorithms::deconvolution {
27public:
43 const std::vector<double> &wavelet,
44 const std::vector<double> &data);
51 void process();
56 void loadnoise(const std::vector<double> &noise);
66 void loadnoise(const mspass::seismic::PowerSpectrum &noise_spectrum);
77 double max_gain() const { return max_gain_actual; }
79 double gain_cap() const { return gain_max; }
80
81private:
82 int read_metadata(const mspass::utility::Metadata &md);
83 std::vector<double> noise_power_spectrum(const double dt);
84 double reliability_taper(const double snr) const;
85 double mu_min, alpha, noise_floor, gain_max;
86 double snr_taper_low, snr_taper_high;
87 bool use_reliability_taper;
88 bool noise_vector_loaded, noise_spectrum_loaded;
89 bool processed;
90 std::vector<double> noise;
91 mspass::seismic::PowerSpectrum noise_spectrum;
92 double max_gain_actual, noise_amplification, effective_bandwidth_fraction;
93};
94} // namespace mspass::algorithms::deconvolution
95#endif
Object to hold components needed in all fft based decon algorithms.
Definition FFTDeconOperator.h:21
Noise-aware stable FFT inverse used by NS-GID.
Definition NoiseStableDecon.h:26
mspass::utility::Metadata QCMetrics()
Return appropriate quality measures.
Definition NoiseStableDecon.cc:290
void process()
Compute the noise-stable inverse filter and result.
Definition NoiseStableDecon.cc:168
double gain_cap() const
Definition NoiseStableDecon.h:79
mspass::seismic::CoreTimeSeries inverse_wavelet()
Return a FIR represention of the inverse filter.
Definition NoiseStableDecon.cc:286
mspass::seismic::CoreTimeSeries actual_output()
Return the actual output of the deconvolution operator.
Definition NoiseStableDecon.cc:240
void changeparameter(const mspass::utility::Metadata &md)
Update operator parameters from a Metadata container.
Definition NoiseStableDecon.cc:99
void loadnoise(const std::vector< double > &noise)
Load a noise waveform used to form frequency-dependent damping.
Definition NoiseStableDecon.cc:106
double max_gain() const
Definition NoiseStableDecon.h:77
Base class decon operator for single station 3C decon (receiver functions).
Definition ScalarDecon.h:30
std::vector< double > data
Data vector to be deconvolved by concrete scalar methods.
Definition ScalarDecon.h:140
std::vector< double > wavelet
Source-wavelet estimate used by concrete scalar methods.
Definition ScalarDecon.h:142
Scalar time series data object.
Definition CoreTimeSeries.h:17
Definition PowerSpectrum.h:11
Type-safe metadata container used throughout MsPASS.
Definition Metadata.h:101