Overload List
| # | Signature | Description |
|---|---|---|
| 1 | TMtxVec *FFT(TMtxVec *Vec, bool ConjugateExtend, int VecIndex, int Index, int Len); | Fast Furier Transformation (FFT) from complex to complex or from real to complex. |
| 2 | TVec *FFT(bool ConjugateExtend = false); | Fast Furier Transformation (FFT) from complex to complex or from real to complex. |
| 3 | TVec *FFT(TVec *Vec, bool ConjugateExtend = false); | Calculate the FFT from all Vec elements. |
Overload 1: TMtxVec *FFT(TMtxVec *Vec, bool ConjugateExtend, int VecIndex, int Index, int Len);
Fast Furier Transformation (FFT) from complex to complex or from real to complex.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Vec | TMtxVec * | |
| 2 | ConjugateExtend | bool | |
| 3 | VecIndex | int | |
| 4 | Index | int | |
| 5 | Len | int |
Calculate the FFT from Vec elements [VecIndex]..[VecIndex+Len-1] and store the results in the calling object elements [Index]..[Index+Len-1]. The Len parameter must be a power of two. Size and TVec::Complex properties of the calling object must be set explicitly. An exception is raised if TVec::ConditionCheck is True and array borders are overrun. If Vec is complex, then complex to complex forward FFT is performed. If Vec is real, then real to complex forward FFT is performed.
This is the indexed version of the FFT routine TVec::FFT. Look there for more information on FFT parameters and storage requirements.
Overload 2: TVec *FFT(bool ConjugateExtend = false);
Fast Furier Transformation (FFT) from complex to complex or from real to complex.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | ConjugateExtend = false | bool |
Fast Furier Transformation (FFT) from complex to complex or from real to complex. Calculate the FFT from all calling vector elements in-place. If the calling vector is complex then complex to complex forward FFT is performed. If the calling vector is real then real to complex FFT is performed.
The TVec::Length of the transforming vector can be any number but highest performance will be achieved if it is a power of two.
Note
When performing FFT from real to complex the conjugated symmetric part is also generated by conjugating and mirroring the first half of the spectrum. If Complex is false, the operation will not be performed in-place, if the Length of the destination will allocate more than amount of the memory preallocated for the TVec object. Instead, the data will be copied first to allocate enough space to store the result.
There are two important parameters to consider that affect how will the FFT be computed: TVec::FFTStorageFormat and TVec::FFTScrambled. The default storage format is fsfCCS.
Overload 3: TVec *FFT(TVec *Vec, bool ConjugateExtend = false);
Calculate the FFT from all Vec elements.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Vec | TVec * | |
| 2 | ConjugateExtend = false | bool |
Store the results in the calling vector. Vec TVec::Length must not be a power of two, but highest performance will be achieved if it is a power of two. Length and TVec::Complex properties of the calling vector are set implicitly to match Vec vector. If Vec is complex then complex to complex forward FFT is performed. If Vec is real then real to complex FFT is performed and the conjugate symmetric part is appended.