1#ifndef __PAVLIS_MULTITAPER_DECON_H__
2#define __PAVLIS_MULTITAPER_DECON_H__
3#include "mspass/algorithms/deconvolution/ComplexArray.h"
4#include "mspass/algorithms/deconvolution/FFTDeconOperator.h"
5#include "mspass/algorithms/deconvolution/ScalarDecon.h"
6#include "mspass/algorithms/deconvolution/ShapingWavelet.h"
7#include "mspass/seismic/CoreTimeSeries.h"
8#include "mspass/utility/Metadata.h"
9#include "mspass/utility/dmatrix.h"
10#include <boost/archive/text_iarchive.hpp>
11#include <boost/archive/text_oarchive.hpp>
12#include <boost/serialization/base_object.hpp>
13#include <boost/serialization/vector.hpp>
15namespace mspass::algorithms::deconvolution {
35 const std::vector<double> &noise,
36 const std::vector<double> &
wavelet,
37 const std::vector<double> &
data);
50 this->read_metadata(md,
true);
53 this->winv_taper.clear();
55 this->rfestimates.clear();
62 int loadnoise(
const std::vector<double> &noise);
68 int load(
const std::vector<double> &w,
const std::vector<double> &d,
69 const std::vector<double> &n);
118 std::vector<mspass::seismic::CoreTimeSeries>
123 std::vector<mspass::seismic::CoreTimeSeries>
128 std::vector<mspass::seismic::CoreTimeSeries>
152 std::vector<double> noise;
155 unsigned int taperlen;
160 std::vector<ComplexArray> winv_taper;
165 std::vector<ComplexArray> ao_fft;
167 std::vector<ComplexArray> rfestimates;
170 std::vector<ComplexArray> taper_data(
const std::vector<double> &signal);
173 friend boost::serialization::access;
174 template <
class Archive>
175 void serialize(Archive &ar,
const unsigned int version) {
176 ar &boost::serialization::base_object<ScalarDecon>(*
this);
177 ar &boost::serialization::base_object<FFTDeconOperator>(*
this);
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
ComplexArray winv
Frequency-domain inverse wavelet coefficients for derived operators.
Definition FFTDeconOperator.h:103
Multitaper power-stabilized spectral-division deconvolution.
Definition MultiTaperSpecDivDecon.h:23
std::vector< mspass::seismic::CoreTimeSeries > all_rfestimates(const double t0parent=0.0)
Definition MultiTaperSpecDivDecon.cc:490
int loadnoise(const std::vector< double > &noise)
Load a section of pre-event noise.
Definition MultiTaperSpecDivDecon.cc:132
int get_taperlen()
Definition MultiTaperSpecDivDecon.h:136
MultiTaperSpecDivDecon()
Definition MultiTaperSpecDivDecon.h:26
mspass::seismic::CoreTimeSeries actual_output()
Return the actual output of the deconvolution operator.
Definition MultiTaperSpecDivDecon.cc:380
mspass::seismic::CoreTimeSeries inverse_wavelet()
Return default FIR representation of the inverse filter.
Definition MultiTaperSpecDivDecon.cc:462
void changeparameter(const mspass::utility::Metadata &md)
Update operator parameters from a Metadata container.
Definition MultiTaperSpecDivDecon.h:49
int load(const std::vector< double > &w, const std::vector< double > &d, const std::vector< double > &n)
Load wavelet, data, and noise vectors.
Definition MultiTaperSpecDivDecon.cc:158
std::vector< mspass::seismic::CoreTimeSeries > all_inverse_wavelets(const double t0parent=0.0)
Definition MultiTaperSpecDivDecon.cc:470
void process()
Compute the combined multitaper spectral-division result.
Definition MultiTaperSpecDivDecon.cc:221
int get_number_outputs()
Definition MultiTaperSpecDivDecon.h:147
mspass::utility::Metadata QCMetrics()
Return appropriate quality measures.
Definition MultiTaperSpecDivDecon.cc:536
double get_time_bandwidth_product()
Definition MultiTaperSpecDivDecon.h:149
int get_number_tapers()
Definition MultiTaperSpecDivDecon.h:142
std::vector< mspass::seismic::CoreTimeSeries > all_actual_outputs(const double t0parent=0.0)
Definition MultiTaperSpecDivDecon.cc:513
Base class decon operator for single station 3C decon (receiver functions).
Definition ScalarDecon.h:30
std::vector< double > result
Deconvolved output vector produced by process.
Definition ScalarDecon.h:144
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
Lightweight, simple matrix object.
Definition dmatrix.h:104