Diana Software
Public Types | Public Member Functions | Private Attributes | List of all members
BesselTransformer Class Reference

Bessel 6 pole engine. More...

Public Types

typedef double(* pt2Func) (double *)
 pointer to function convolved function More...
 
typedef double(* pt2FuncParam) (double *t, double *param)
 

Public Member Functions

 BesselTransformer (double cutFreq, double duration, double samplFreq, double tauRC, bool zeroPad)
 constructor More...
 
const QVectorCGetResponseFunction () const
 Get sampled Response function in frequency domain. More...
 
const QVectorGetDeltaResponse () const
 Get sampled Response function in time domain. More...
 
double GetDeltaResponse (double t) const
 Get analytical Response function to delta in time domain. More...
 
double GetExpResponse (double t_0, double tau, double t) const
 Get analytical Response function to exponential in time domain. More...
 
QError ConvolveTD (const QVector &pulse, int t_min, QVector &signal)
 Get time domain convolved vector
More...
 
QError ConvolveTD (const QVector &pulse, QVector &signal)
 Get time domain convolved vector. More...
 
void ConvolveTD (double(*pulse)(double *))
 Get time domain convolved function. More...
 
void ConvolveTD (pt2FuncParam func, double *param)
 
void ConvolveFD (pt2FuncParam, double *param)
 
double ConvolvedFuncTD (double *t)
 
void ConvolveFD (double(*pulse)(double *))
 Get freq domain convolved function. More...
 
double ConvolvedFuncFD (double *t)
 
QError ConvolveFD (const QVector &pulse, QVector &signal)
 Get frequency domain convolved vectorn. More...
 

Private Attributes

QVector fDeltaResponse
 
QVectorC fTransferFunction
 
QVector fConvolvedVectorTD
 
QVector fConvolvedVectorFD
 
double fCutFreq
 
double fRCFreq
 
double fNormCutFreq
 
double fSamplingFrequency
 
size_t fSize
 
double fDuration
 
size_t fAN
 
double * fAp
 
double * fAq
 
double * fAtheta
 
double * fAphi
 
bool fZeroPad
 

Detailed Description

Bessel 6 pole engine.

Author
Marco Vignati

Definition at line 17 of file BesselTransformer.hh.

Member Typedef Documentation

◆ pt2Func

typedef double(* BesselTransformer::pt2Func) (double *)

pointer to function convolved function

Definition at line 22 of file BesselTransformer.hh.

◆ pt2FuncParam

typedef double(* BesselTransformer::pt2FuncParam) (double *t, double *param)

Definition at line 23 of file BesselTransformer.hh.

Constructor & Destructor Documentation

◆ BesselTransformer()

BesselTransformer::BesselTransformer ( double  cutFreq,
double  duration,
double  samplFreq,
double  tauRC,
bool  zeroPad 
)

constructor

Parameters
cutFreqcut frequency in Hz
durationsignal window in s
samplFreqin Hz (n_samples/duration)
tauRC(s)

Definition at line 7 of file BesselTransformer.cc.

References fAN, fAp, fAphi, fAq, fAtheta, fCutFreq, fDeltaResponse, fDuration, fNormCutFreq, fRCFreq, fSamplingFrequency, fSize, fTransferFunction, fZeroPad, QVectorView::GetVector(), pow(), QRealComplexFFT::TransformFromFreq(), and QRealComplexFFT::TransformToFreq().

Member Function Documentation

◆ ConvolvedFuncFD()

double BesselTransformer::ConvolvedFuncFD ( double *  t)

Definition at line 188 of file BesselTransformer.cc.

References fConvolvedVectorFD, and fDuration.

◆ ConvolvedFuncTD()

double BesselTransformer::ConvolvedFuncTD ( double *  t)

Definition at line 181 of file BesselTransformer.cc.

References fConvolvedVectorTD, and fDuration.

◆ ConvolveFD() [1/3]

QError BesselTransformer::ConvolveFD ( const QVector pulse,
QVector signal 
)

◆ ConvolveFD() [2/3]

void BesselTransformer::ConvolveFD ( double(*)(double *)  pulse)

Get freq domain convolved function.

Definition at line 207 of file BesselTransformer.cc.

References ConvolveFD(), fConvolvedVectorFD, fSamplingFrequency, and fSize.

◆ ConvolveFD() [3/3]

void BesselTransformer::ConvolveFD ( pt2FuncParam  func,
double *  param 
)

Definition at line 229 of file BesselTransformer.cc.

References fConvolvedVectorFD, fSamplingFrequency, and fSize.

Referenced by ConvolveFD().

◆ ConvolveTD() [1/4]

QError BesselTransformer::ConvolveTD ( const QVector pulse,
int  t_min,
QVector signal 
)

Get time domain convolved vector

Definition at line 148 of file BesselTransformer.cc.

References fDeltaResponse, fSize, QERR_SIZE_NOT_MATCH, and QERR_SUCCESS.

Referenced by ConvolveTD().

◆ ConvolveTD() [2/4]

QError BesselTransformer::ConvolveTD ( const QVector pulse,
QVector signal 
)
inline

Get time domain convolved vector.

Definition at line 51 of file BesselTransformer.hh.

References ConvolveTD().

Referenced by ConvolveTD().

◆ ConvolveTD() [3/4]

void BesselTransformer::ConvolveTD ( double(*)(double *)  pulse)

Get time domain convolved function.

Definition at line 197 of file BesselTransformer.cc.

References ConvolveTD(), fConvolvedVectorTD, fSamplingFrequency, and fSize.

◆ ConvolveTD() [4/4]

void BesselTransformer::ConvolveTD ( pt2FuncParam  func,
double *  param 
)

Definition at line 218 of file BesselTransformer.cc.

References ConvolveTD(), fConvolvedVectorTD, fSamplingFrequency, and fSize.

◆ GetDeltaResponse() [1/2]

const QVector& BesselTransformer::GetDeltaResponse ( ) const
inline

Get sampled Response function in time domain.

Definition at line 39 of file BesselTransformer.hh.

◆ GetDeltaResponse() [2/2]

double BesselTransformer::GetDeltaResponse ( double  t) const

Get analytical Response function to delta in time domain.

Definition at line 108 of file BesselTransformer.cc.

References cos(), exp(), fAN, fAp, fAphi, fAq, fAtheta, fNormCutFreq, and sin().

◆ GetExpResponse()

double BesselTransformer::GetExpResponse ( double  t_0,
double  tau,
double  t 
) const

Get analytical Response function to exponential in time domain.

Definition at line 125 of file BesselTransformer.cc.

References cos(), exp(), fAN, fAp, fAphi, fAq, fAtheta, fNormCutFreq, and sin().

◆ GetResponseFunction()

const QVectorC& BesselTransformer::GetResponseFunction ( ) const
inline

Get sampled Response function in frequency domain.

Definition at line 36 of file BesselTransformer.hh.

Member Data Documentation

◆ fAN

size_t BesselTransformer::fAN
private

Definition at line 80 of file BesselTransformer.hh.

Referenced by BesselTransformer(), GetDeltaResponse(), and GetExpResponse().

◆ fAp

double* BesselTransformer::fAp
private

Definition at line 81 of file BesselTransformer.hh.

Referenced by BesselTransformer(), GetDeltaResponse(), and GetExpResponse().

◆ fAphi

double* BesselTransformer::fAphi
private

Definition at line 84 of file BesselTransformer.hh.

Referenced by BesselTransformer(), GetDeltaResponse(), and GetExpResponse().

◆ fAq

double* BesselTransformer::fAq
private

Definition at line 82 of file BesselTransformer.hh.

Referenced by BesselTransformer(), GetDeltaResponse(), and GetExpResponse().

◆ fAtheta

double* BesselTransformer::fAtheta
private

Definition at line 83 of file BesselTransformer.hh.

Referenced by BesselTransformer(), GetDeltaResponse(), and GetExpResponse().

◆ fConvolvedVectorFD

QVector BesselTransformer::fConvolvedVectorFD
private

Definition at line 72 of file BesselTransformer.hh.

Referenced by ConvolvedFuncFD(), and ConvolveFD().

◆ fConvolvedVectorTD

QVector BesselTransformer::fConvolvedVectorTD
private

Definition at line 71 of file BesselTransformer.hh.

Referenced by ConvolvedFuncTD(), and ConvolveTD().

◆ fCutFreq

double BesselTransformer::fCutFreq
private

Definition at line 73 of file BesselTransformer.hh.

Referenced by BesselTransformer().

◆ fDeltaResponse

QVector BesselTransformer::fDeltaResponse
private

Definition at line 69 of file BesselTransformer.hh.

Referenced by BesselTransformer(), and ConvolveTD().

◆ fDuration

double BesselTransformer::fDuration
private

Definition at line 78 of file BesselTransformer.hh.

Referenced by BesselTransformer(), ConvolvedFuncFD(), and ConvolvedFuncTD().

◆ fNormCutFreq

double BesselTransformer::fNormCutFreq
private

Definition at line 75 of file BesselTransformer.hh.

Referenced by BesselTransformer(), GetDeltaResponse(), and GetExpResponse().

◆ fRCFreq

double BesselTransformer::fRCFreq
private

Definition at line 74 of file BesselTransformer.hh.

Referenced by BesselTransformer().

◆ fSamplingFrequency

double BesselTransformer::fSamplingFrequency
private

Definition at line 76 of file BesselTransformer.hh.

Referenced by BesselTransformer(), ConvolveFD(), and ConvolveTD().

◆ fSize

size_t BesselTransformer::fSize
private

Definition at line 77 of file BesselTransformer.hh.

Referenced by BesselTransformer(), ConvolveFD(), and ConvolveTD().

◆ fTransferFunction

QVectorC BesselTransformer::fTransferFunction
private

Definition at line 70 of file BesselTransformer.hh.

Referenced by BesselTransformer(), and ConvolveFD().

◆ fZeroPad

bool BesselTransformer::fZeroPad
private

Definition at line 85 of file BesselTransformer.hh.

Referenced by BesselTransformer(), and ConvolveFD().


The documentation for this class was generated from the following files: