Vector::FFT Method

Overload List

#SignatureDescription
1TMtxVec *FFT(TMtxVec *Vec, bool ConjugateExtend, int VecIndex, int Index, int Len) const;Fast Furier Transformation (FFT) from complex to complex or from real to complex.
2TVec *FFT(bool ConjugateExtend = false) const;Fast Furier Transformation (FFT) from complex to complex or from real to complex.
3TVec *FFT(TVec *Vec, bool ConjugateExtend = false) const;Calculate the FFT from all Vec elements.

Overload 1: TMtxVec *FFT(TMtxVec *Vec, bool ConjugateExtend, int VecIndex, int Index, int Len) const;

Fast Furier Transformation (FFT) from complex to complex or from real to complex.

#NameTypeDescription
1VecTMtxVec *
2ConjugateExtendbool
3VecIndexint
4Indexint
5Lenint
Remarks:

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 Vector::Complex properties of the calling object must be set explicitly. An exception is raised if Vector::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.

Note
This is the indexed version of the FFT routine . Look there for more information on FFT parameters and storage requirements.

Declared in Dew::Math::Vector · Dew.Math/MtxExpr.h · Cross-compiler

Overload 2: TVec *FFT(bool ConjugateExtend = false) const;

Fast Furier Transformation (FFT) from complex to complex or from real to complex.

#NameTypeDescription
1ConjugateExtend = falsebool
Remarks:

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 Vector::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: Vector::FFTStorageFormat and Vector::FFTScrambled. The default storage format is fsfCCS.

See Also: Vector::FFTFromReal, Vector::IFFT, Vector::FFTStorageFormat, Vector::FFTScrambled
Declared in Dew::Math::Vector · Dew.Math/MtxExpr.h · Cross-compiler

Overload 3: TVec *FFT(TVec *Vec, bool ConjugateExtend = false) const;

Calculate the FFT from all Vec elements.

#NameTypeDescription
1VecTVec *
2ConjugateExtend = falsebool
Remarks:

Store the results in the calling vector. Vec Vector::Length must not be a power of two, but highest performance will be achieved if it is a power of two. Length and Vector::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.

Declared in Dew::Math::Vector · Dew.Math/MtxExpr.h · Cross-compiler