Overload List
| # | Signature | Description |
|---|---|---|
| 1 | TMtx *FFT2DFromReal(); | Forward two-dimentional Fast Fourier Transformation for real numbers. |
| 2 | TMtx *FFT2DFromReal(TMtx *Mtx); | Forward two-dimentional Fast Fourier Transformation from real to complex. |
Overload 1: TMtx *FFT2DFromReal();
Forward two-dimentional Fast Fourier Transformation for real numbers.
The transformation is applied in-place. The source matrix must be real. An exception will be raised, if the source matrix is complex. The calling matrix stays real and does not change it's size, if TMtx::FFTStorageFormat was set to fsfPack or to fsfPerm. If the TMtx::FFTStorageFormat property was set to fsfCCS then the calling matrix becomes complex and is resized up to [Rows, Cols div 2], i.e. matrix changes TMtx::Complex property, but does not reallocate storage for elements. The number of element which are involved in the transformation depends on the property TMtx::FFTStorageFormat. If that property is set to fsfPerm or to fsfPack, then all elements are involved into the trasformation. If that property is set to fsfCCS (which is default), then number of element which are involved into the transformation depends on the property TMtx::FFTOddLength and these rules will be followed:
- Number of source columns must be even and more then two. Number of source rows must be more than two. Exception will be raised otherwise;
- if TMtx::FFTOddLength is set to False, elements from range [0..Cols-2] x [0..Rows-2] will be involved into transformation;
- if TMtx::FFTOddLength is set to True, elements from range [0..Cols-1] x [0..Rows-2] will be involved into transformation;
Note
Not all source elements are involved into transformation but all elements in the result matrix are needed for the inverse transformation.
Overload 2: TMtx *FFT2DFromReal(TMtx *Mtx);
Forward two-dimentional Fast Fourier Transformation from real to complex.
| # | Name | Type | Description |
|---|---|---|---|
| 1 | Mtx | TMtx * |
The transformation is applied on the Mtx matrix and results are saved in the calling matrix. The Mtx matrix must be real. And exception will be raised if the source matrix is complex. The source matrix will not be changed. The calling matrix will be real and will be resized up to [Mtx.Rows,Mtx.Cols], if TMtx::FFTStorageFormat is set to fsfPack or to fsfPack.
If TMtx::FFTStorageFormat is set to fsfCCS, calling matrix will be complex and will be resized up to [Mtx.Rows, Mtx.Cols div 2]. The number of element which are involved in transformation depends on the property TMtx::FFTStorageFormat. If that property is set to fsfPerm or to fsfPack, then all the source elements are involved into the trasformation. If that property is set to fsfCCS (which is default), then the number of elements which are involved into the transformation depends on the property TMtx::FFTOddLength and these rules will be followed:
- Number of source columns must be even and more then two. Number of source rows must be more than two. Exception will be raised otherwise;
- if TMtx::FFTOddLength is set to False, elements from range [0..Mtx.Cols-2] x [0..Mtx.Rows-2] will be involved into transformation;
- if TMtx::FFTOddLength is set to True, elements from range [0..Mtx.Cols-1] x [0..Mtx.Rows-2] will be involved into transformation;
NOTE
Not all source elements are involved into transformation but all elements in the result matrix are needed for the inverse transformation.