Fourier coefficients of the wave field of a vertical single point source in homogeneous full space
53 const double tp=offset/vp;
54 const double ts=offset/vs;
56 TFXX_debug(debug,
"zfpointfc",
"go..." 57 <<
" " << TFXX_value(n)
58 <<
" " << TFXX_value(vp)
59 <<
" " << TFXX_value(vs)
60 <<
" " << TFXX_value(offset)
61 <<
" " << TFXX_value(dt)
62 <<
" " << TFXX_value(tp)
63 <<
" " << TFXX_value(ts)
67 for (
int i=0; i<n; ++i)
70 if ((tp <= t) && (t >= ts))
72 gPN(i)=-t/(offset*offset*offset);
79 TFXX_debug(debug,
"zfpointfc",
"Fourier Transformation");
80 TFourier::Tspectrum FCgPN=
Fourier(gPN, dt);
82 TFourier::Tspectrum retval(FCgPN.shape());
84 TFXX_debug(debug,
"zfpointfc",
"total field " 85 << TFXX_value(retval.l()) <<
" " 86 << TFXX_value(FCgPN.l()));
87 const double df=1./(n*dt);
89 for (
int i=FCgPN.f(); i<=FCgPN.l(); ++i)
91 double f=(i-FCgPN.f())*df;
93 retval(i) = exp(-
IME*2.*M_PI*f*ts)/(offset*vs*vs);
94 TFXX_debug(debug,
"zfpointfc",
95 TFXX_value(i) <<
" " <<
96 TFXX_value(f) <<
" " <<
97 TFXX_value(abs(retval(i))/abs(FCgPN(i))));
99 retval(i) += FCgPN(i);
102 TFXX_debug(debug,
"zfpointfc",
"finished");
Ttimeseries::Tseries Tseries
const TFourier::Tcoeff IME