35 #define TF_SINGLEVELOCITY_CC_VERSION \ 36 "TF_SINGLEVELOCITY_CC V1.0" 46 TFXX_debug(opt.
debug,
"singlevelocitytransformation",
47 "frequency domain single velocity transformation");
50 cout <<
" apply 2D/3D Greens function ratio for single " 51 <<
"wave velocity: " << opt.
velocity <<
" km/s" << endl;
54 TFXX_debug(opt.
debug,
"singlevelocity",
" series size: " << series.size());
55 TFourier::Tspectrum coeff=
Fourier(series, par.
dt);
56 TFXX_debug(opt.
debug,
"singlevelocity",
" coefficients size: " 66 TFourier::Tspectrum zfpoint, zfline;
75 TFXX_assert(zfpoint.f()==coeff.f(),
"shape mismatch (programming error)");
76 TFXX_assert(zfline.f()==coeff.f(),
"shape mismatch (programming error)");
77 TFXX_assert(zfpoint.l()==coeff.l(),
"shape mismatch (programming error)");
78 TFXX_assert(zfline.l()==coeff.l(),
"shape mismatch (programming error)");
85 for (
unsigned int i=coeff.f(); i<=coeff.l(); ++i)
88 if (ifre==0) { ifre = 1; }
93 double argument=f*argfact;
95 TFourier::Tcoeff denominator=exp(-
IME*argument);
96 coeff(i) *= (numerator/denominator);
100 coeff(i) *= (zfline(i)/zfpoint(i));
110 TFourier::Tcoeff numerator;
111 TFourier::Tcoeff denominator;
122 coeff(i) *= (numerator/denominator);
126 coeff(i)*=sqrt(1.e3*opt.
velocity/f);
Ttimeseries::Tseries Tseries
Bessel function of order 1.
prototypes and structs for lisousi (prototypes)
const TFourier::Tcoeff CFTfac
const TFourier::Tcoeff IME
double T
duration of total recording.
Bessel function of order 0.
TFourier::Tspectrum zfpointfc(const int &n, const double &dt, const double &offset, const double &vs, const double &vp, const bool &debug)
TFourier::Tspectrum zflinefc(const int &n, const double &dt, const double &offset, const double &vs, const double &vp, const bool &debug)
TFourier::Tcoeff wnintegration(const Exco &ec, const double &f, const double &offset, const Ebasis &fb)
TFourier::Tcoeff hankel(const double &arg)
double dt
sampling interval
lisousi functions (prototypes)
double offset
either epicentral distance or hypocentral distance.
TFourier::Tseries singlevelocitytransformation(const TFourier::Tseries &series, const Parameters &par, const Exco &ec, const Options &opt)