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