version
0.0.1
Defines the C++ API for MsPASS
|
Frequency domain shaping wavelet. More...
#include <ShapingWavelet.h>
Public Member Functions | |
ShapingWavelet (const mspass::utility::Metadata &md, int npts=0) | |
Construct using a limited set of analytic forms for the wavelet. More... | |
ShapingWavelet (mspass::seismic::CoreTimeSeries d, int nfft=0) | |
ShapingWavelet (const double fpeak, const double dtin, const int n) | |
ShapingWavelet (const int npolelo, const double f3dblo, const int npolehi, const double f3dbhi, const double dtin, const int n) | |
ShapingWavelet (const ShapingWavelet &parent) | |
ShapingWavelet & | operator= (const ShapingWavelet &parent) |
ComplexArray * | wavelet () |
mspass::seismic::CoreTimeSeries | impulse_response () |
double | freq_bin_size () |
double | sample_interval () |
std::string | type () |
Frequency domain shaping wavelet.
Frequency domain based deconvolution methods all use a shaping wavelet for output to avoid ringing. Frequency domain deconvolution methods in this Library contain an instance of this object. In all cases it is hidden behind the interface. A complexity, however, is that all frequency domain methods will call the Metadata driven constructor.
This version currently allows three shaping wavelets: Gaussin, Ricker, and Slepian0. The first two are standard. The last is novel and theoretically can produce an actual output with the smalle posible sidebands
mspass::algorithms::deconvolution::ShapingWavelet::ShapingWavelet | ( | const mspass::utility::Metadata & | md, |
int | npts = 0 |
||
) |
Construct using a limited set of analytic forms for the wavelet.
This constructor is used to create a ricker or gaussian shaping wavelet with parameters defined by parameters passed through the Metadata object.
md | - Metadata object with parameters specifying the wavelet. \npts - length of signal to be generated which is the same as the fft size for real valued signals. If set 0 (the default) the constructor will attempt to get npts from md using the keyword "operator_nfft". |
References mspass::utility::Metadata::get_double(), mspass::utility::Metadata::get_int(), mspass::utility::Metadata::get_string(), mspass::utility::MsPASSError::log_error(), and mspass::algorithms::Butterworth::transfer_function().
mspass::algorithms::deconvolution::ShapingWavelet::ShapingWavelet | ( | const double | fpeak, |
const double | dtin, | ||
const int | n | ||
) |
Construct a Ricker wavelet shaping filter with peak frequency fpeak.
mspass::algorithms::deconvolution::ShapingWavelet::ShapingWavelet | ( | const int | npolelo, |
const double | f3dblo, | ||
const int | npolehi, | ||
const double | f3dbhi, | ||
const double | dtin, | ||
const int | n | ||
) |
Construct a zero phase Butterworth filter wavelet.
This is the recommended constructor to use for adjustable bandwidth shaping. It is the default for CNR3CDecon.
npolelo | is the number of poles for the low corner |
f3dblo | is the 3db point for the low corner of the passband |
nplolehi | is the number of poles for the upper corner filter |
f3dbhi | is the 3db point for the high corner of the passband. |
References mspass::algorithms::Butterworth::transfer_function().
CoreTimeSeries mspass::algorithms::deconvolution::ShapingWavelet::impulse_response | ( | ) |
Return the impulse response of the shaping filter. Expect the result to be symmetric about 0 (i.e. output spans nfft/2 to nfft/2.
References mspass::seismic::CoreTimeSeries::s, mspass::seismic::CoreTimeSeries::set_dt(), mspass::seismic::BasicTimeSeries::set_live(), mspass::seismic::CoreTimeSeries::set_npts(), mspass::seismic::CoreTimeSeries::set_t0(), and mspass::seismic::BasicTimeSeries::set_tref().
|
inline |