JG ROOT Tools libraries  version 5.0 - august 2014
GRootToolsFFTDoc.hh
Go to the documentation of this file.
1 //======================================================================
2 /*! \file GRootToolsFFTDoc.hh
3  *
4  * Include file containing documentation page for FFT classes.
5  */
6 //======================================================================
7 
8 //======================================================================
9 /*! \page groot_fft Documentation for GFTT classes and functions
10  *
11  * \author J. Giovinazzo (giovinaz@cenbg.in2p3.fr)
12  *
13  * This collection of classes and functions provide some base tools for
14  * samples processing using Fourier transforms for (de)convolution.
15  *
16  *
17  * \par The GFFT package
18  *
19  * - see \ref FFT_Dianelson_Lanczos for the FFT algorithm
20  *
21  * - GBaseSampleFFT is an abstract base class to handle the sampling of a
22  * signal (either real or complex) and it's FFT.
23  *
24  * - GRealSampleFFT is the class to use for samples with real samples values.
25  *
26  *
27  * \anchor GFFT_time_scale_mode
28  * \par Setting a time scale
29  *
30  * A time scale can be defined (instead of point number).
31  * This can be done specifying a time interval, that can be interpreted in
32  * 2 ways:
33  * - the limits correspond to the first and last points exactly (N-1 intervals)
34  * - the limits correspond to an equivalent binning of the samples, each point
35  * being the center of the bin (N intervals)
36  * This is specified in the functions setting the time scale (constructors or
37  * setting functions).
38  * By default (default argument or \b false), the first mode is set
39  * (not centered).
40  *
41  *
42  * \par Releases
43  *
44  * - version 1.2 (10/2017)
45  * - included in the GCpp (base classes) and GRootTools (ROOT classe)
46  * packages
47  * - version 1.1 (04/2016)
48  * - modified samples limits setting for bin mode / center point mode
49  * in GBaseSampleFFT::SetTimeRange function
50  * - added mean and RMS functions for real samples
51  */
52 
53 //======================================================================
54 /*! \page FFT_Dianelson_Lanczos Danielson-Lanczos algorithm for FFT
55  *
56  * \par Danielson-Lanczos algorithm
57  *
58  * The Danielson-Lanczos algorithm is a Fast Fourier Transform algorithm
59  * with a computing time for convolutions / deconvolution proportionnal
60  * to \b N*log2(N) (where N is the sample dimension), while a standard
61  * algorithm would need \b N*N.
62  *
63  * The sample dimension \b N must be a power of 2.
64  *
65  *
66  * \par Real values functions
67  *
68  * In the case of a real function sample, the discrete Fourier
69  * transform is complex.
70  * If there are \b N real samples, there can be only \b N data
71  * real data in the complex FT: the FT is defined by \b N/2+1
72  * complex numbers, but the first (low frequency) and the last
73  * (high frequency) terms of the FT are pure real.
74  * In order to fit in an array of \b N (real) data, the FFT algorithms
75  * stores the last element (real) in the imaginary part of the fist
76  * element.
77  *
78  * \note
79  * - the functions work with real number arrays; complex numbers are
80  * defined with 2 real values, and the complex types of C/C++ are
81  * note used.
82  *
83  */
84 //======================================================================
85 
86 
87 //======================================================================