1#ifndef __SIMPLE_MULTITAPER_DECON_H__
2#define __SIMPLE_MULTITAPER_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/utility/Metadata.h"
8#include "mspass/utility/dmatrix.h"
9#include <boost/archive/text_iarchive.hpp>
10#include <boost/archive/text_oarchive.hpp>
11#include <boost/serialization/base_object.hpp>
12#include <boost/serialization/vector.hpp>
14namespace mspass::algorithms::deconvolution {
34 const std::vector<double> &noise,
35 const std::vector<double> &
wavelet,
36 const std::vector<double> &
data);
50 this->read_metadata(md,
true);
60 int loadnoise(
const std::vector<double> &noise);
66 int load(
const std::vector<double> &w,
const std::vector<double> &d,
67 const std::vector<double> &n);
127 std::vector<double> noise;
130 unsigned int taperlen;
140 std::vector<ComplexArray> taper_data(
const std::vector<double> &signal);
141 friend boost::serialization::access;
142 template <
class Archive>
143 void serialize(Archive &ar,
const unsigned int version) {
144 ar &boost::serialization::base_object<ScalarDecon>(*
this);
145 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 source-power-stabilized deconvolution.
Definition MultiTaperXcorDecon.h:22
int load(const std::vector< double > &w, const std::vector< double > &d, const std::vector< double > &n)
Load wavelet, data, and noise vectors.
Definition MultiTaperXcorDecon.cc:156
mspass::seismic::CoreTimeSeries inverse_wavelet()
Return default FIR representation of the inverse filter.
Definition MultiTaperXcorDecon.cc:387
MultiTaperXcorDecon()
Definition MultiTaperXcorDecon.h:25
int get_number_tapers()
Definition MultiTaperXcorDecon.h:121
void changeparameter(const mspass::utility::Metadata &md)
Update operator parameters from a Metadata container.
Definition MultiTaperXcorDecon.h:49
mspass::seismic::CoreTimeSeries actual_output()
Return the actual output of the deconvolution operator.
Definition MultiTaperXcorDecon.cc:333
int get_taperlen()
Definition MultiTaperXcorDecon.h:119
int loadnoise(const std::vector< double > &noise)
Load a section of pre-event noise.
Definition MultiTaperXcorDecon.cc:130
void process()
Compute the multitaper cross-correlation deconvolution result.
Definition MultiTaperXcorDecon.cc:215
mspass::utility::Metadata QCMetrics()
Return appropriate quality measures.
Definition MultiTaperXcorDecon.cc:395
double get_time_bandwidth_product()
Definition MultiTaperXcorDecon.h:123
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