visad.math
Class FFT

java.lang.Object
  extended by visad.math.FFT

public class FFT
extends Object

FFT is the VisAD class for Fourier Transforms, using the Fast Fourier Transform when the domain length is a power of two.


Constructor Summary
FFT()
           
 
Method Summary
static FlatField backwardFT(Data[] datums)
          for use by SpreadSheet only - ordinary applications should use other method signatures; invoke in SpreadSheet by: link(visad.math.FFT.backwardFT(A1))
static double[][] FFT1D(double[][] x, boolean forward)
          compute 1-D FFT transform length (2nd dimension of x) must be a power of 2
static float[][] FFT1D(float[][] x, boolean forward)
          compute 1-D FFT transform length (2nd dimension of x) must be a power of 2
static FlatField forwardFT(Data[] datums)
          for use by SpreadSheet only - ordinary applications should use other method signatures; invoke in SpreadSheet by: link(visad.math.FFT.forwardFT(A1))
static FlatField fourierTransform(Field field, boolean forward)
          return Fourier Transform of field, use FFT if domain dimension(s) are powers of 2
static FlatField fourierTransform(Field field, boolean forward, FunctionType ftype, GriddedSet domain_set, CoordinateSystem range_coord_sys, Set[] range_sets, Unit[] units)
          return Fourier Transform of field, use FFT if domain dimension(s) are powers of 2
static double[][] FT1D(double[][] x, boolean forward)
          compute 1-D Fourier transform use FFT if length (2nd dimension of x) is a power of 2
static float[][] FT1D(float[][] x, boolean forward)
          compute 1-D Fourier transform use FFT if length (2nd dimension of x) is a power of 2
static double[][] FT2D(int rows, int cols, double[][] x, boolean forward)
          compute 2-D Fourier transform, calling 1-D FT twice use FFT if rows and cols are powers of 2
static float[][] FT2D(int rows, int cols, float[][] x, boolean forward)
          compute 2-D Fourier transform, calling 1-D FT twice use FFT if rows and cols are powers of 2
static void main(String[] args)
          test Fourier Transform methods
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FFT

public FFT()
Method Detail

forwardFT

public static FlatField forwardFT(Data[] datums)
for use by SpreadSheet only - ordinary applications should use other method signatures; invoke in SpreadSheet by: link(visad.math.FFT.forwardFT(A1))


backwardFT

public static FlatField backwardFT(Data[] datums)
for use by SpreadSheet only - ordinary applications should use other method signatures; invoke in SpreadSheet by: link(visad.math.FFT.backwardFT(A1))


fourierTransform

public static FlatField fourierTransform(Field field,
                                         boolean forward)
                                  throws VisADException,
                                         RemoteException
return Fourier Transform of field, use FFT if domain dimension(s) are powers of 2

Parameters:
field - Field with domain dimension = 1 (1-D FT) or 2 (2-D FT) and 1 (real part) or 2 (real & imaginary) range RealTypes
forward - true for forward and false for backward
Returns:
Fourier transform of field
Throws:
VisADException - a VisAD error occurred
RemoteException - an RMI error occurred

fourierTransform

public static FlatField fourierTransform(Field field,
                                         boolean forward,
                                         FunctionType ftype,
                                         GriddedSet domain_set,
                                         CoordinateSystem range_coord_sys,
                                         Set[] range_sets,
                                         Unit[] units)
                                  throws VisADException,
                                         RemoteException
return Fourier Transform of field, use FFT if domain dimension(s) are powers of 2

Parameters:
field - Field with domain dimension = 1 (1-D FT) or 2 (2-D FT) and 1 (real part) or 2 (real & imaginary) range RealTypes
forward - true for forward and false for backward
ftype - use for return Field (may be null)
domain_set - use for return Field (may be null)
range_coord_sys - use for return Field (may be null)
range_sets - use for return Field (may be null)
units - use for return Field (may be null)
Returns:
Fourier transform of field
Throws:
VisADException - a VisAD error occurred
RemoteException - an RMI error occurred

FT2D

public static float[][] FT2D(int rows,
                             int cols,
                             float[][] x,
                             boolean forward)
                      throws VisADException
compute 2-D Fourier transform, calling 1-D FT twice use FFT if rows and cols are powers of 2

Parameters:
rows - first dimension for 2-D
cols - second dimension for 2-D
x - array for take Fourier transform of, dimensioned [2][length] where length = rows * cols, and the first index (2) is over real & imaginary parts
forward - true for forward and false for backward
Returns:
Fourier transform of x
Throws:
VisADException - a VisAD error occurred

FT2D

public static double[][] FT2D(int rows,
                              int cols,
                              double[][] x,
                              boolean forward)
                       throws VisADException
compute 2-D Fourier transform, calling 1-D FT twice use FFT if rows and cols are powers of 2

Parameters:
rows - first dimension for 2-D
cols - second dimension for 2-D
x - array for take Fourier transform of, dimensioned [2][length] where length = rows * cols, and the first index (2) is over real & imaginary parts
forward - true for forward and false for backward
Returns:
Fourier transform of x
Throws:
VisADException - a VisAD error occurred

FT1D

public static float[][] FT1D(float[][] x,
                             boolean forward)
                      throws VisADException
compute 1-D Fourier transform use FFT if length (2nd dimension of x) is a power of 2

Parameters:
x - array for take Fourier transform of, dimensioned [2][length], the first index (2) is over real & imaginary parts
forward - true for forward and false for backward
Returns:
Fourier transform of x
Throws:
VisADException - a VisAD error occurred

FFT1D

public static float[][] FFT1D(float[][] x,
                              boolean forward)
                       throws VisADException
compute 1-D FFT transform length (2nd dimension of x) must be a power of 2

Parameters:
x - array for take Fourier transform of, dimensioned [2][length], the first index (2) is over real & imaginary parts
forward - true for forward and false for backward
Returns:
Fourier transform of x
Throws:
VisADException - a VisAD error occurred

FT1D

public static double[][] FT1D(double[][] x,
                              boolean forward)
                       throws VisADException
compute 1-D Fourier transform use FFT if length (2nd dimension of x) is a power of 2

Parameters:
x - array for take Fourier transform of, dimensioned [2][length], the first index (2) is over real & imaginary parts
forward - true for forward and false for backward
Returns:
Fourier transform of x
Throws:
VisADException - a VisAD error occurred

FFT1D

public static double[][] FFT1D(double[][] x,
                               boolean forward)
                        throws VisADException
compute 1-D FFT transform length (2nd dimension of x) must be a power of 2

Parameters:
x - array for take Fourier transform of, dimensioned [2][length], the first index (2) is over real & imaginary parts
forward - true for forward and false for backward
Returns:
Fourier transform of x
Throws:
VisADException - a VisAD error occurred

main

public static void main(String[] args)
                 throws VisADException
test Fourier Transform methods

Throws:
VisADException