OpendTect  7.0
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
FFTFilter Class Reference

Classical FFT filter, use set to set up data step, min and max frequency and type of the filter (minfreq not required for highpass, maxfreq not required for lowpass) More...

Public Types

enum  Type { LowPass , HighPass , BandPass }
 

Public Member Functions

 FFTFilter (int sz, float step)
 
 ~FFTFilter ()
 
bool apply (Array1DImpl< float > &)
 
bool apply (Array1DImpl< float_complex > &, bool dopreproc=true)
 
Type getFilterType () const
 
Array1DImpl< float_complex > * getFreqDomainArr () const
 
bool isHighPass () const
 
bool isLowPass () const
 
void requestStayInFreqDomain ()
 
void setBandPass (float cutf1, float cutf2, float cutf3, float cutf4)
 
void setBandPass (float cutf1, float cutf4)
 
void setHighPass (float cutf1)
 
void setHighPass (float cutf1, float cutf2)
 
void setLowPass (float cutf3, float cutf4)
 
void setLowPass (float cutf4)
 
bool setTimeTaperWindow (int sz, BufferString wintype, float var=0.95)
 

Protected Member Functions

void buildFreqTaperWin ()
 
bool deTrend (Array1DImpl< float > &outp, bool isimag=false)
 
bool deTrend (Array1DImpl< float_complex > &)
 
bool interpUdf (Array1DImpl< float > &, bool isimag=false)
 
bool interpUdf (Array1DImpl< float_complex > &)
 
void reSize (const Array1DImpl< float > &inp, Array1DImpl< float > &outp) const
 
void reSize (const Array1DImpl< float_complex > &inp, Array1DImpl< float_complex > &outp) const
 
void restoreSize (const Array1DImpl< float > &inp, Array1DImpl< float > &outp) const
 
void restoreSize (const Array1DImpl< float_complex > &inp, Array1DImpl< float_complex > &outp) const
 
bool restoreTrend (Array1DImpl< float > &outp, bool isimag=false) const
 
bool restoreTrend (Array1DImpl< float_complex > &) const
 
void restoreUdf (Array1DImpl< float > &, bool isimag=false) const
 
void restoreUdf (Array1DImpl< float_complex > &) const
 

Protected Attributes

float cutfreq_ [4]
 
float df_
 
Fourier::CCfft_
 
int fftsz_
 
Array1DImpl< float_complex > * freqdomain_
 
ArrayNDWindowfreqwindow_
 
BoolTypeSet isudfimag_
 
BoolTypeSet isudfreal_
 
bool stayinfreq_
 
float step_
 
int sz_
 
ArrayNDWindowtimewindow_
 
Array1DImpl< float > * trendimag_
 
Array1DImpl< float > * trendreal_
 

Detailed Description

Classical FFT filter, use set to set up data step, min and max frequency and type of the filter (minfreq not required for highpass, maxfreq not required for lowpass)

<>

Member Enumeration Documentation

◆ Type

Enumerator
LowPass 
HighPass 
BandPass 

Constructor & Destructor Documentation

◆ FFTFilter()

FFTFilter::FFTFilter ( int  sz,
float  step 
)

◆ ~FFTFilter()

FFTFilter::~FFTFilter ( )

Member Function Documentation

◆ apply() [1/2]

bool FFTFilter::apply ( Array1DImpl< float > &  )

◆ apply() [2/2]

bool FFTFilter::apply ( Array1DImpl< float_complex > &  ,
bool  dopreproc = true 
)

◆ buildFreqTaperWin()

void FFTFilter::buildFreqTaperWin ( )
protected

◆ deTrend() [1/2]

bool FFTFilter::deTrend ( Array1DImpl< float > &  outp,
bool  isimag = false 
)
protected

◆ deTrend() [2/2]

bool FFTFilter::deTrend ( Array1DImpl< float_complex > &  )
protected

◆ getFilterType()

Type FFTFilter::getFilterType ( ) const

◆ getFreqDomainArr()

Array1DImpl<float_complex>* FFTFilter::getFreqDomainArr ( ) const
inline

◆ interpUdf() [1/2]

bool FFTFilter::interpUdf ( Array1DImpl< float > &  ,
bool  isimag = false 
)
protected

◆ interpUdf() [2/2]

bool FFTFilter::interpUdf ( Array1DImpl< float_complex > &  )
protected

◆ isHighPass()

bool FFTFilter::isHighPass ( ) const

◆ isLowPass()

bool FFTFilter::isLowPass ( ) const

◆ requestStayInFreqDomain()

void FFTFilter::requestStayInFreqDomain ( )
inline

◆ reSize() [1/2]

void FFTFilter::reSize ( const Array1DImpl< float > &  inp,
Array1DImpl< float > &  outp 
) const
protected

◆ reSize() [2/2]

void FFTFilter::reSize ( const Array1DImpl< float_complex > &  inp,
Array1DImpl< float_complex > &  outp 
) const
protected

◆ restoreSize() [1/2]

void FFTFilter::restoreSize ( const Array1DImpl< float > &  inp,
Array1DImpl< float > &  outp 
) const
protected

◆ restoreSize() [2/2]

void FFTFilter::restoreSize ( const Array1DImpl< float_complex > &  inp,
Array1DImpl< float_complex > &  outp 
) const
protected

◆ restoreTrend() [1/2]

bool FFTFilter::restoreTrend ( Array1DImpl< float > &  outp,
bool  isimag = false 
) const
protected

◆ restoreTrend() [2/2]

bool FFTFilter::restoreTrend ( Array1DImpl< float_complex > &  ) const
protected

◆ restoreUdf() [1/2]

void FFTFilter::restoreUdf ( Array1DImpl< float > &  ,
bool  isimag = false 
) const
protected

◆ restoreUdf() [2/2]

void FFTFilter::restoreUdf ( Array1DImpl< float_complex > &  ) const
protected

◆ setBandPass() [1/2]

void FFTFilter::setBandPass ( float  cutf1,
float  cutf2,
float  cutf3,
float  cutf4 
)

◆ setBandPass() [2/2]

void FFTFilter::setBandPass ( float  cutf1,
float  cutf4 
)

◆ setHighPass() [1/2]

void FFTFilter::setHighPass ( float  cutf1)

◆ setHighPass() [2/2]

void FFTFilter::setHighPass ( float  cutf1,
float  cutf2 
)

◆ setLowPass() [1/2]

void FFTFilter::setLowPass ( float  cutf3,
float  cutf4 
)

◆ setLowPass() [2/2]

void FFTFilter::setLowPass ( float  cutf4)

◆ setTimeTaperWindow()

bool FFTFilter::setTimeTaperWindow ( int  sz,
BufferString  wintype,
float  var = 0.95 
)

Member Data Documentation

◆ cutfreq_

float FFTFilter::cutfreq_[4]
protected

◆ df_

float FFTFilter::df_
protected

◆ fft_

Fourier::CC* FFTFilter::fft_
protected

◆ fftsz_

int FFTFilter::fftsz_
protected

◆ freqdomain_

Array1DImpl<float_complex>* FFTFilter::freqdomain_
protected

◆ freqwindow_

ArrayNDWindow* FFTFilter::freqwindow_
protected

◆ isudfimag_

BoolTypeSet FFTFilter::isudfimag_
protected

◆ isudfreal_

BoolTypeSet FFTFilter::isudfreal_
protected

◆ stayinfreq_

bool FFTFilter::stayinfreq_
protected

◆ step_

float FFTFilter::step_
protected

◆ sz_

int FFTFilter::sz_
protected

◆ timewindow_

ArrayNDWindow* FFTFilter::timewindow_
protected

◆ trendimag_

Array1DImpl<float>* FFTFilter::trendimag_
protected

◆ trendreal_

Array1DImpl<float>* FFTFilter::trendreal_
protected

Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2024