Public Member Functions
LinearFKActiveStationSignals Class Reference

Brief description of class still missing. More...

#include <LinearFKActiveStationSignals.h>

Inheritance diagram for LinearFKActiveStationSignals:
ArrayCore::FKStationSignals GeopsyCore::StationProcessSignals

List of all members.

Public Member Functions

void beginPreprocess (const TimeRange &range, double smoothingFactor)
void endPreprocess ()
 LinearFKActiveStationSignals (const StationSignals *originalSignals)
void normalize (const NormalizationParameters &p)
void taper (const TimeRangeParameters &range, const TaperParameters &param)

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

    : FKStationSignals(originalSignals) {}

Member Function Documentation

void LinearFKActiveStationSignals::beginPreprocess ( const TimeRange range,
double  smoothingFactor 
)

References GeopsyCore::DoubleSignal::fastFourierTransform(), GeopsyCore::StationProcessSignals::processed(), GeopsyCore::TaperParameters::setAlpha(), GeopsyCore::TaperParameters::setWindow(), GeopsyCore::DoubleSignal::taper(), and TRACE.

Referenced by LinearFKActiveArrayStations::endPreprocess().

{
  TRACE;
  // Set a 10% taper in time domain
  TaperParameters param;
  param.setWindow(TaperParameters::Tukey);
  param.setAlpha(0.2);
  processed(0)->taper(TimeRange(0.0, processed(0)->duration()), param);
  // Switch to frequency domain
  processed(0)->fastFourierTransform(DoubleSignal::Spectrum);
  /*for(int i=0; i<nSamples/2;i++) 
    printf("%lg %lg\n",(double)i*_signals[0].processed->duration(),
           _signals[0].processed->spectrumAmplitude(i));*/
}

References QGpCoreTools::endl(), GeopsyCore::DoubleSignal::energy(), GeopsyCore::DoubleSignal::fastFourierTransform(), GeopsyCore::StationSignals::firstValidSignal(), GeopsyCore::DoubleSignal::maximumAmplitude(), GeopsyCore::NormalizationParameters::maximumFrequency(), GeopsyCore::NormalizationParameters::minimumFrequency(), GeopsyCore::SignalTemplate< sampleType >::multiply(), GeopsyCore::StationProcessSignals::originalSignals(), GeopsyCore::StationProcessSignals::processed(), SAFE_UNINITIALIZED, GeopsyCore::Signal::sourceReceiverDistance(), QGpCoreTools::sqrt(), QGpCoreTools::tr(), TRACE, and GeopsyCore::NormalizationParameters::type().

Referenced by LinearFKActiveArrayStations::normalize().

{
  TRACE;
  Signal * sig=originalSignals()->firstValidSignal();
  if(sig) {
    double fac;
    SAFE_UNINITIALIZED(fac,0);
    switch (p.type()) {
    case NormalizationParameters::None:
      fac =1.0;
      break;
    case NormalizationParameters::SurfaceAttenuation:
      fac=sqrt(sig->sourceReceiverDistance());
      break;
    case NormalizationParameters::VolumeAttenuation:
      fac=sig->sourceReceiverDistance();
      break;
    case NormalizationParameters::MaximumAmplitude:
      fac=processed(0)->maximumAmplitude(0, processed(0)->nSamples()-1);
      break;
    case NormalizationParameters::SpectrumEnergy:
      processed(0)->fastFourierTransform(DoubleSignal::Spectrum);
      fac=processed(0)->energy(p.minimumFrequency(), p.maximumFrequency());
      processed(0)->fastFourierTransform(DoubleSignal::Waveform);
      break;
    }
    if(fac>0.0) {
      processed(0)->multiply(1.0/fac);
    } else {
      App::stream() << tr("Null factor for nomalization, skipped") << endl;
    }
  } else {
    App::stream() << tr("Cannot calculate normalization for an empty station") << endl;
  }
}
void LinearFKActiveStationSignals::taper ( const TimeRangeParameters range,
const TaperParameters param 
)

The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines