apply a time domain taper to the correction filter response.
Apply a time domain taper to the impulse response of the source time function correction filter.
585 Tfftengine::TAseries thestfseries=this->
stfseries();
603 "Taper width is larger than length of time series");
605 double tt3=this->
Mtt3;
606 double tt4=this->
Mtt4;
607 double tt1=this->
Mtt1+T;
608 double tt2=this->
Mtt2+T;
610 int l3=int(std::floor(tt3/this->
dt()));
611 int l2=int(std::ceil(tt2/this->
dt()));
622 for (
int l=l3; l<=l2; ++l)
625 double t=l*this->
dt();
630 (rl <= thestfseries.l(0))),
631 "Index out of range. Internal programming error! " 635 if ( (t>=tt3) && (t<=tt4) && (tt4>tt3) )
637 factor=0.5+0.5*cos(M_PI*(t-tt3)/(tt4-tt3));
639 else if ( (t>tt4) && (t<tt1) )
643 else if ( (t>=tt1) && (t<=tt2) && (tt2>tt1) )
645 factor=0.5-0.5*cos(M_PI*(t-tt1)/(tt2-tt1));
648 thestfseries(rl) = thestfseries(rl)*factor;
double Mtt4
time values defining taper.
double Mtt2
time values defining taper.
Tfftengine Mfftenginestf
FFT processor for source time function correction filter.
double Mtt3
time values defining taper.
double Mtt1
time values defining taper.
unsigned int nsamples() const
return number of samples used in time series
TAseries stfseries() const
return reference to time series container of stf
#define STFINV_value(P)
report value in a sequence of output operators
#define STFINV_assert(C, M)
Check an assertion and report by throwing an exception.
TAspectrum stfspec() const
return reference to Fourier transform of stf
double dt() const
return sampling interval
bool Mapplystftaper
true if time domain taper should be applied to filter response.
#define STFINV_debug(C, N, M)
produce debug output