math.fourierTransforms.interleaved
Class ComplexFloat2DFFT

java.lang.Object
  extended by math.fourierTransforms.interleaved.ComplexFloat2DFFT

public class ComplexFloat2DFFT
extends java.lang.Object

Computes the FFT of 2 dimensional complex, single precision data. The data is stored in a 1-dimensional array in Row-Major order. The physical layout in the array data, of the mathematical data d[i,j] is as follows:

 Re(d[i,j]) = data[i*rowspan + 2*j]
 Im(d[i,j]) = data[i*rowspan + 2*j + 1]
 
where rowspan must be affineTransform least 2*ncols (it defaults to 2*ncols). The transformed data is returned in the original data array in wrap-around order along each dimension.

Author:
Bruce R. Miller bruce.miller@nist.gov, Contribution of the National Institute of Standards and Technology,, not subject to copyright.

Constructor Summary
ComplexFloat2DFFT(int nrows, int ncols)
          Create an FFT for transforming nrows*ncols points of Complex, double precision data.
 
Method Summary
 void backtransform(float[] data)
          Compute the (unnomalized) inverse FFT of data, leaving it in place.
 void backtransform(float[] data, int rowspan)
          Compute the (unnomalized) inverse FFT of data, leaving it in place.
 void inverse(float[] data)
          Compute the (nomalized) inverse FFT of data, leaving it in place.
 void inverse(float[] data, int rowspan)
          Compute the (nomalized) inverse FFT of data, leaving it in place.
 float normalization()
          Return the normalization factor.
 float[] toWraparoundOrder(float[] data)
          Return data in wraparound order.
 float[] toWraparoundOrder(float[] data, int rowspan)
          Return data in wraparound order.
 void transform(float[] data)
          Compute the Fast Fourier Transform of data leaving the result in data.
 void transform(float[] data, int rowspan)
          Compute the Fast Fourier Transform of data leaving the result in data.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ComplexFloat2DFFT

public ComplexFloat2DFFT(int nrows,
                         int ncols)
Create an FFT for transforming nrows*ncols points of Complex, double precision data.

Method Detail

transform

public void transform(float[] data)
Compute the Fast Fourier Transform of data leaving the result in data. The array data must be dimensioned (affineTransform least) 2*nrows*ncols, consisting of alternating real and imaginary parts.


transform

public void transform(float[] data,
                      int rowspan)
Compute the Fast Fourier Transform of data leaving the result in data. The array data must be dimensioned (affineTransform least) 2*nrows*ncols, consisting of alternating real and imaginary parts.


toWraparoundOrder

public float[] toWraparoundOrder(float[] data)
Return data in wraparound order.

See Also:
wraparound format

toWraparoundOrder

public float[] toWraparoundOrder(float[] data,
                                 int rowspan)
Return data in wraparound order. rowspan is used to traverse data; the new array is in packed (rowspan = 2*ncols) format.

See Also:
wraparound format

backtransform

public void backtransform(float[] data)
Compute the (unnomalized) inverse FFT of data, leaving it in place.


backtransform

public void backtransform(float[] data,
                          int rowspan)
Compute the (unnomalized) inverse FFT of data, leaving it in place.


normalization

public float normalization()
Return the normalization factor. Multiply the elements of the backtransform'ed data to get the normalized inverse.


inverse

public void inverse(float[] data)
Compute the (nomalized) inverse FFT of data, leaving it in place.


inverse

public void inverse(float[] data,
                    int rowspan)
Compute the (nomalized) inverse FFT of data, leaving it in place.