#ifndef FRVFFT
#define FRVFFT

#ifndef _POSIX_SOURCE
#define _POSIX_SOURCE
#endif
/*---------------------------------------------------------------------------*/
/*  Author : F. Marion, B.Mours and D.Buskulic LAPP (Annecy) Nov 16, 2001    */
/*---------------------------------------------------------------------------*/

#include "FrameL.h"
#include "FrvBuf.h"

#ifdef __cplusplus
extern "C" {
#endif


struct FrvRFFT {
                             /*--------------------- input data -------------*/
  double decay;              /* decay time for averageing (could by changed) */
  long nDecay;               /* #of fft for the mean spectrum(could be reset)*/
  int fftSize;               /* fftsize fft vector size                      */
  int decimate;              /* decimation apply (no decimate if set to 0)   */
                             /*------------------- internal data ------------*/
  FRBOOL  optionA;           /* if = FR_YES compute the average amplitude    */
  FRBOOL  optionH;           /* if = FR_YES apply an hanning window          */
  FRBOOL  optionO;           /* if = FR_YES overlapp data by half a vector   */
  FRBOOL  optionN;           /* if = FR_YES normalized the result by sqrt(Hz)*/
  FRBOOL  optionP;           /* if = FR_YES suppress the pedestal(mean value)*/
  FRBOOL  optionS;           /* if = FR_YES compute the amplitude spectrum   */
  long   nData;              /* number of data points used by the fft        */
  long   nDataP2;            /* nearest log base2 of nBin                    */
  double dt;                 /* time sampling frequency                      */
  double dnu;                /* frequency bin size                           */
  struct FrVect *window;     /* vector to hold the window                    */
  struct FrVect *output;     /* vector to hold the last data chunk           */
  struct FrvBuf *buffer;     /* internal buffer for vector resizing          */
  char   *name;              /* name of the input vector                     */
                             /* ------------output-------------------------  */
  double mean;               /* time serie mean value                        */
  struct FrVect *amplitude;  /* vector to hold the last amplitude spectrum   */
  struct FrVect *amplitudeA; /* vector to hold the averaged amplitude        */
  long nFFT;                 /* number of fft computed                       */
  char err[256];             /* hold error message if any                    */
  void* plan;                /* FFTW plan(type is rfftw_plan)                */
};

typedef struct FrvRFFT FrvRFFT;

void     FrvRFFTFree(FrvRFFT* fft);
int      FrvRFFTInit(FrvRFFT *fft, FrVect *vect);
FrvRFFT* FrvRFFTNew(char* option, int fftSize, int decimate);
FrvRFFT* FrvRFFTFor(FrvRFFT *fft, FrVect *vect);
void     FrvRFFTSetDecay(FrvRFFT* fft, double decay);

void     FrvFFTD704(double *a, long msign);

#ifdef __cplusplus
}
#endif

#endif


- ROOT page - VEGA page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to , or contact with any questions or problems regarding ROOT or VEGA.