8 #ifndef G_BASE_SAMPLE_FFT_HH
9 #define G_BASE_SAMPLE_FFT_HH
17 #define GFFT_DATA_UNDEFINED 0
19 #define GFFT_DATA_REAL 1
21 #define GFFT_DATA_COMPLEX 2
24 #define GFFT_HEADER_ID "GFFT_SAMPLE "
27 #define GFFT_IOERR_FOPEN 1
29 #define GFFT_IOERR_HEADER 2
31 #define GFFT_IOERR_HEADER_DATA 3
33 #define GFFT_IOERR_DATA_TYPE 4
35 #define GFFT_IOERR_DATA 5
134 const double data_im [] ) = 0;
183 virtual void Normalise (
double s = 1.L ) = 0;
185 virtual void Scale (
double s );
206 virtual int SetTimeRange (
double t_lo,
double t_up,
bool ctr =
false );
230 virtual int Write (
const string & fname );
231 virtual int Write ( FILE * fp );
233 virtual int Read (
const string & fname );
234 virtual int Read ( FILE * fp );
virtual void InitTransformData(u_int n, const double data[])=0
GBaseSampleFFT(u_int n=0, double dt=1.L)
Definition: GBaseSampleFFT.cpp:25
static string data_type_name[3]
Names of the data types.
Definition: GBaseSampleFFT.hh:69
virtual int Write(const string &fname)
Definition: GBaseSampleFFT.cpp:619
double freq_crit
Frequency maximum value (Nyquist critical frequency)
Definition: GBaseSampleFFT.hh:88
bool fft_set
Indicate if the FFT data are set.
Definition: GBaseSampleFFT.hh:80
virtual double GetTimeEnd() const
Definition: GBaseSampleFFT.icc:62
int data_type
0=undefined; 1=real; 2=complex
Definition: GBaseSampleFFT.hh:71
double time_step
Time step.
Definition: GBaseSampleFFT.hh:86
double * CreatePowerSpectralDensity()
Definition: GBaseSampleFFT.cpp:579
int GetDataType() const
Definition: GBaseSampleFFT.icc:34
virtual int ResizeData(u_int n)
Definition: GBaseSampleFFT.cpp:229
u_int GetSamplesNumber() const
Definition: GBaseSampleFFT.icc:40
double * fft_array
Array of Fourier transform data.
Definition: GBaseSampleFFT.hh:77
bool HasSameSampling(const GBaseSampleFFT &sample, double prec=0.0001) const
Definition: GBaseSampleFFT.cpp:513
double * CreatePSD()
Definition: GBaseSampleFFT.icc:119
u_int samples_dim
Effective arrays dimension (power of 2)
Definition: GBaseSampleFFT.hh:73
virtual void SetFFTValue(u_int i, double re, double im=0.L)=0
virtual double GetTimeStep() const
Definition: GBaseSampleFFT.icc:66
virtual ~GBaseSampleFFT()
Definition: GBaseSampleFFT.cpp:81
virtual double GetSumSquared(bool f=false)
Definition: GBaseSampleFFT.cpp:473
u_int alloc_dim
Effective allocated dim.
Definition: GBaseSampleFFT.hh:74
virtual void Scale(double s)
Definition: GBaseSampleFFT.cpp:458
double * data_array
Array of function samples.
Definition: GBaseSampleFFT.hh:76
virtual double GetTimeMin() const
Definition: GBaseSampleFFT.icc:52
void TransformSet(bool b=true)
Definition: GBaseSampleFFT.icc:30
void CopyData(const GBaseSampleFFT &original)
Definition: GBaseSampleFFT.cpp:353
virtual int SetTimeRange(double t_lo, double t_up, bool ctr=false)
Definition: GBaseSampleFFT.cpp:413
double time_min
Time of the first sample.
Definition: GBaseSampleFFT.hh:83
virtual double GetFrequencyStep() const
Definition: GBaseSampleFFT.icc:80
virtual void SetFunctionValue(u_int i, double val)=0
u_int GetDimension() const
Definition: GBaseSampleFFT.icc:46
virtual int ComputeFunctionData()=0
virtual void SetTransformValue(u_int i, double re, double im=0.L)=0
double time_end
Time of the last (defined) sample (before padding)
Definition: GBaseSampleFFT.hh:85
virtual double GetFrequencyMax() const
Definition: GBaseSampleFFT.icc:76
virtual void InitFunctionData(u_int n, const double data[])=0
GBaseSampleFFT & operator=(const GBaseSampleFFT &original)
Definition: GBaseSampleFFT.cpp:67
virtual int WriteHeader(FILE *fp)
Definition: GBaseSampleFFT.cpp:751
u_int samples_number
Number of data samples.
Definition: GBaseSampleFFT.hh:72
virtual double GetTimeMax() const
Definition: GBaseSampleFFT.icc:58
void FunctionSet(bool b=true)
Definition: GBaseSampleFFT.icc:24
double * CopyTransformData() const
Definition: GBaseSampleFFT.cpp:562
virtual int ComputeTransformData()=0
virtual double GetCriticalFrequency() const
Definition: GBaseSampleFFT.icc:72
double * GetTransformData(bool check=true)
Definition: GBaseSampleFFT.icc:110
double time_max
Time of the last sample (after padding with zeros)
Definition: GBaseSampleFFT.hh:84
virtual void ResetData()
Definition: GBaseSampleFFT.cpp:95
bool IsDefined() const
Definition: GBaseSampleFFT.icc:10
bool data_set
Indicate if the data samples are set.
Definition: GBaseSampleFFT.hh:79
virtual int Read(const string &fname)
Definition: GBaseSampleFFT.cpp:645
virtual int ReadHeader(FILE *fp)
Definition: GBaseSampleFFT.cpp:783
double freq_step
Frequency step.
Definition: GBaseSampleFFT.hh:87
unsigned int u_int
Definition: GTypes.hh:38
bool IsTransformSet() const
Definition: GBaseSampleFFT.icc:18
double * GetFunctionData(bool check=true)
Definition: GBaseSampleFFT.icc:96
virtual void ClearData()
Definition: GBaseSampleFFT.cpp:117
virtual u_int InitData(u_int n, double dt=1.L, bool clear=true)
Definition: GBaseSampleFFT.cpp:151
double * CopyFunctionData() const
Definition: GBaseSampleFFT.cpp:545
static double epsilon
Limit for 0 checking.
Definition: GBaseSampleFFT.hh:68
bool IsFunctionSet() const
Definition: GBaseSampleFFT.icc:14
Definition: GBaseSampleFFT.hh:60
virtual void Normalise(double s=1.L)=0