STFINV library: seek source wavelet correction filter

◆ exec()

void stfinv::STFEngineIdentity::exec ( )
virtual

Start engine.

Reimplemented from stfinv::STFBaseEngine.

Definition at line 88 of file stfinvidentity.cc.

References stfinv::STFBaseEngine::convolvedseries(), stfinv::STFBaseEngine::convolvedsynthetic(), stfinv::STFBaseEngine::dt(), Mscaleenergy, stfinv::STFBaseEngine::npairs(), stfinv::STFBaseEngine::nreceivers(), stfinv::STFBaseEngine::recording(), stfinv::STFBaseEngine::series(), stfinv::STFBaseEngine::stf(), stfinv::STFBaseEngine::synthetic(), and stfinv::STFBaseEngine::weight().

89  {
90  // effective amplitude factor
91  double fac=1.;
92 
93  // scale to reproduce average energy if requested
94  if (Mscaleenergy)
95  {
96  double recording_sqrsum=0.;;
97  double synthetic_sqrsum=0.;;
98  for (unsigned int i=0; i<this->nreceivers(); ++i)
99  {
100  synthetic_sqrsum
101  += aff::func::sqrsum(this->synthetic(i))
102  * this->weight(i) * this->weight(i);
103  recording_sqrsum
104  += aff::func::sqrsum(this->recording(i))
105  * this->weight(i) * this->weight(i);
106  fac = std::sqrt(recording_sqrsum/synthetic_sqrsum);
107  }
108  } // if (Mscaleenergy)
109 
110  Tseries stf=this->stf();
111  stf=0.;
112  stf(0)=fac/this->dt();
113  for (unsigned int i=0; i<this->nreceivers(); ++i)
114  {
115  Tseries::Tcoc synthetic=this->synthetic(i);
118  if (Mscaleenergy) { convolvedsynthetic *= fac; }
119  }
120  for (unsigned int i=0; i<this->npairs(); ++i)
121  {
122  Tseries::Tcoc series=this->series(i);
124  convolvedseries.copyin(series);
125  if (Mscaleenergy) { convolvedseries *= fac; }
126  }
127  } // void STFEngineIdentity::exec()
bool Mscaleenergy
scale energy
unsigned int npairs() const
return number of additional signals to be convolved
Definition: stfinvbase.h:262
unsigned int nreceivers() const
return number of receiver signals in use
Definition: stfinvbase.h:259
double weight(const unsigned int &i) const
return weight for signal at receiver i
Definition: stfinvbase.h:303
Tseries::Tcoc recording(const unsigned int &i) const
return recorded data at receiver i
Definition: stfinvbase.cc:303
Tseries::Tcoc series(const unsigned int &i) const
return synthetic data of pair i
Definition: stfinvbase.cc:327
Tseries::Tcoc synthetic(const unsigned int &i) const
return synthetic data at receiver i
Definition: stfinvbase.cc:311
Tseries convolvedseries(const unsigned int &i) const
return synthetic data convolved with stf for pair i
Definition: stfinvbase.cc:335
double dt() const
return sampling interval
Definition: stfinvbase.h:265
Tseries convolvedsynthetic(const unsigned int &i) const
return synthetic data convolved with stf at receiver i
Definition: stfinvbase.cc:319
Tseries stf() const
return source correction filter series
Definition: stfinvbase.h:273
aff::Series< Tvalue > Tseries
Type of sample values.
Definition: stfinvbase.h:56
Here is the call graph for this function: