Start engine.
88 double totalsyntheticenergy=0.;
89 for (
unsigned int i=0; i<this->
nfreq(); ++i)
92 for (
unsigned int j=0; j<this->
nreceivers(); ++j)
95 *std::norm(syntheticref(j));
97 totalsyntheticenergy += syntheticenergy(i);
103 double weightsum=aff::func::sqrsum(this->
weights());
105 for (
unsigned int i=0; i<this->
nfreq(); ++i)
107 double recordingenergy=0.;
110 for (
unsigned int j=0; j<this->
nreceivers(); ++j)
113 *std::norm(recordingref(j));
117 =std::sqrt(recordingenergy/(syntheticenergy(i)+waterlevel));
120 for (
unsigned int j=0; j<this->
nreceivers(); ++j)
123 (std::arg(recordingref(j))-std::arg(syntheticref(j)));
127 this->
stfcoeff(i)=std::polar(modulus, phase);
unsigned int nreceivers() const
return number of receiver signals in use
double weight(const unsigned int &i) const
return weight for signal at receiver i
void fftinput()
copy input signals to workspace and transform input workspace to Fourier domain
Tfftengine::TAspectrum TAspectrum
type of array for Fourier transforms
TAspectrum recordingcoeff(const unsigned int &i) const
return reference to Fourier coeffients of recorded data for frequency i
TAspectrum::Tvalue & stfcoeff(const unsigned int &i) const
return reference to Fourier coefficients of stf for frequency i
double Mwaterlevel
waterlevel
unsigned int nfreq() const
return number of frequencies in use
TAspectrum syntheticcoeff(const unsigned int &i) const
return reference to Fourier coefficients of synthetics for frequency i
void fftoutput()
convolve synthetics with Fourier transform of stf and transform convolved synthetics and stf to time ...
aff::Series< Tvalue > Tseries
Type of sample values.
aff::Series< double > weights() const
return weights array