You are here: Symbol Reference > Dew Namespace > Dew.Math Namespace > Classes > TMtx Class > TMtx Methods > IFFT2DToReal Method > TMtx.IFFT2DToReal Method (bool)
Dew Math for .NET
ContentsIndexHome
PreviousUpNext
TMtx.IFFT2DToReal Method (bool)

Inverse two-dimentional Fast Fourier Transformation from complex to real.

Syntax
C#
Visual Basic
public TMtx IFFT2DToReal(bool NoScale);

Transformation is applied in-place. Source matrix Complex property must be false, if TDenseMtxVec.FFTStorageFormat was set to fsfPack or to fsfPack. Source matrix Complex property must be True, if TDenseMtxVec.FFTStorageFormat was set to fsfCCS. The calling matrix becomes real. Size of the calling matrix is not changed if TDenseMtxVec.FFTStorageFormat was set to fsfPack or to fsfPack. Size of calling matrix will be set to [Rows, 2*Cols], if TDenseMtxVec.FFTStorageFormat is set to fsfCCS, i.e. matrix changes TMtxVec.ComplexComplexproperty, but does not reallocate storage for elements. All elements are involved into inverse transformation, but number of reconstructed elements depends on the property TDenseMtxVec.FFTStorageFormat. If that property is set to fsfPerm or to fsfPack, then all elements will be reconstructed after inverse transformation. If that property is set to fsfCCS (which is default), then the number of element's which will be reconstructed depends on the property TDenseMtxVec.FFTOddLength and these rules will be followed:

  • Number of source columns and rows must be more than one. Exception will be raised otherwise;
  • if TDenseMtxVec.FFTOddLength is set to False, elements in range [0..Cols-2] x [0..Rows-2] will be reconstructed;
  • if TDenseMtxVec.FFTOddLength is set to True, elements in range [0..Cols-1] x [0..Rows-2] will be reconstructed;
  • Here Cols and Rows are the number of columns and rows of the calling matrix after the inverse transformation.

 

Note Both properties TDenseMtxVec.FFTStorageFormat and TDenseMtxVec.FFTOddLength must be set to the same values for forward and inverse transformation to get reversible results. NoScale parameter allows the scaling to be turned off.

var a: TMtx; begin CreateIt(a); try a.SetIt (4,4,False, [1, 2, 3, 4, -5, 6, -7, 8, 9, 12,-11, 10, 16,-15,-14, 0]); a.FFTStorageFormat := fsfCCS; a.FFTOddLength := TRUE; // the next elements are involved into transformation [1, 2, 3, -5, 6, -7] a.FFT2DFromReal; // result will be // [(0,0), (-6, -10.39), // (0,0), (3, 12.12), // (12,12), (-11,10), // (0,-15), (-14,0)] a.IFFT2DToReal; // [ 1, 2, 3, 0 // -5, 6, -7, 0 // 12, 12,-11, 10 // 0,-15,-14, 0] // the next elements are reconstructed // [ 1, 2, 3, undef, // -5, 6, -7, undef, // undef, undef, undef, undef, // undef, undef, undef, undef] // // if a.FFTOddLength is set to False, // then range of reconstruction would be one column less, i.e. // [ 1, 2, undef, undef, // -5, 6, undef, undef, // undef, undef, undef, undef, // undef, undef, undef, undef] finally FreeIt(a); end; end;
Copyright (c) 1999-2024 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!