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

Inverse two-dimensional 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 FFTStorageFormat was set to fsfPack or to fsfPack. Source matrix Complex property must be True, if FFTStorageFormat was set to fsfCCS. The calling matrix becomes real. Size of the calling matrix is not changed if FFTStorageFormat was set to fsfPack or to fsfPack. Size of calling matrix will be set to [Rows, 2*Cols], if FFTStorageFormat is set to fsfCCS, i.e. matrix changes Complex property, but does not reallocate storage for elements. All elements are involved into inverse transformation, but number of reconstructed elements depends on the property 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 FFTOddLength and these rules will be followed: 

 

  • Number of source columns and rows must be more than one. Exception will be raised otherwise;
  • if FFTOddLength is set to False, elements in range [0..Cols-2] x [0..Rows-2] will be reconstructed;
  • if 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 FFTStorageFormat and 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: Matrix; begin 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] end;
Copyright (c) 1999-2024 by Dew Research. All rights reserved.
What do you think about this topic? Send feedback!