Public Member Functions | Protected Member Functions | Protected Attributes

DGVFourierTransform< type, rank > Class Template Reference

Applies the various different DFT algorithms to Blitz++ constructs. More...

#include <DGVFourierTransform.h>

List of all members.

Public Member Functions

void FFT (Array< complex< type >, rank > &field, Array< complex< type >, rank > &fftOfField)
 The Complex valued Fast Fourier Transform (FFT). Uses the FFTW C library.
void iFFT (Array< complex< type >, rank > &fftOfField, Array< complex< type >, rank > &field)
 The Complex valued Inverse Fast Fourier Transform (iFFT). Uses the FFTW C library.
void FFT_Real2Complex (Array< type, rank > &field, Array< complex< type >, rank > &fftOfField)
void FFT_Complex2Real (Array< complex< type >, rank > &fftOfField, Array< type, rank > &field)
void normalise (Array< complex< type >, rank > &field)
 Normalise the result of the Transform.
void normalise (Array< type, rank > &field)
 Normalise the result of the Transform.
Array< type, rank > shiftDC (Array< type, rank > &field)
 Shift the DC by half the array size periodically.
Array< complex< type >, rank > shiftDC (Array< complex< type >, rank > &field)
 Shift the DC by half the array size periodically.
void reset ()
 Reset the Transform.
Constructors

 DGVFourierTransform ()
 Standard Constructor.
virtual ~DGVFourierTransform ()

Protected Member Functions

void execute ()
 Execute the plan constructed.

Protected Attributes

unsigned mode
 FFTW Plan Flag.
fftw_plan plan
 FFTW Paln for DFT's.

Detailed Description

template<typename type, int rank>
class DGVFourierTransform< type, rank >

Applies the various different DFT algorithms to Blitz++ constructs.

The FFTW library is used to implement the DFT algorithms on Blitz++ Arrays. The class can only handle upto 1D/2D/3D transforms and not higher. All results are un-normalised. Normalisations must be called using the normalise() function.

Usage Example:

    DGVFourierTransform<double,2> Fourier; 
    Array<complex<double>,2> image, kSpace;

    //Load or create image here
    ...

    Fourier.FFT(image,kSpace);

Definition at line 49 of file DGVFourierTransform.h.


Constructor & Destructor Documentation

template<typename type , int rank>
DGVFourierTransform< type, rank >::DGVFourierTransform ( void   ) 

Standard Constructor.

Definition at line 116 of file DGVFourierTransform.h.

template<typename type , int rank>
DGVFourierTransform< type, rank >::~DGVFourierTransform (  )  [virtual]

Definition at line 122 of file DGVFourierTransform.h.


Member Function Documentation

template<typename type , int rank>
void DGVFourierTransform< type, rank >::execute (  )  [protected]

Execute the plan constructed.

Definition at line 247 of file DGVFourierTransform.h.

template<typename type, int rank>
void DGVFourierTransform< type, rank >::FFT ( Array< complex< type >, rank > &  field,
Array< complex< type >, rank > &  fftOfField 
)

The Complex valued Fast Fourier Transform (FFT). Uses the FFTW C library.

Todo:
Careful: Extent in 3rd Dimension is non zero for 2D arrays

Definition at line 128 of file DGVFourierTransform.h.

template<typename type, int rank>
void DGVFourierTransform< type, rank >::FFT_Complex2Real ( Array< complex< type >, rank > &  fftOfField,
Array< type, rank > &  field 
)

Todo:
Careful: Extent in 3rd Dimension is non zero for 2D arrays

Definition at line 173 of file DGVFourierTransform.h.

template<typename type, int rank>
void DGVFourierTransform< type, rank >::FFT_Real2Complex ( Array< type, rank > &  field,
Array< complex< type >, rank > &  fftOfField 
)

Todo:
Careful: Extent in 3rd Dimension is non zero for 2D arrays

Definition at line 158 of file DGVFourierTransform.h.

template<typename type, int rank>
void DGVFourierTransform< type, rank >::iFFT ( Array< complex< type >, rank > &  fftOfField,
Array< complex< type >, rank > &  field 
)

The Complex valued Inverse Fast Fourier Transform (iFFT). Uses the FFTW C library.

Todo:
Careful: Extent in 3rd Dimension is non zero for 2D arrays

Definition at line 143 of file DGVFourierTransform.h.

template<typename type, int rank>
void DGVFourierTransform< type, rank >::normalise ( Array< complex< type >, rank > &  field  ) 

Normalise the result of the Transform.

Definition at line 188 of file DGVFourierTransform.h.

template<typename type, int rank>
void DGVFourierTransform< type, rank >::normalise ( Array< type, rank > &  field  ) 

Normalise the result of the Transform.

Definition at line 204 of file DGVFourierTransform.h.

template<typename type, int rank>
DGVFourierTransform< type, rank >::reset (  )  [inline]

Reset the Transform.

Definition at line 102 of file DGVFourierTransform.h.

template<typename type, int rank>
Array< type, rank > DGVFourierTransform< type, rank >::shiftDC ( Array< type, rank > &  field  ) 

Shift the DC by half the array size periodically.

Definition at line 220 of file DGVFourierTransform.h.

template<typename type, int rank>
Array< complex< type >, rank > DGVFourierTransform< type, rank >::shiftDC ( Array< complex< type >, rank > &  field  ) 

Shift the DC by half the array size periodically.

Definition at line 233 of file DGVFourierTransform.h.


Member Data Documentation

template<typename type, int rank>
unsigned DGVFourierTransform< type, rank >::mode [protected]

FFTW Plan Flag.

Definition at line 106 of file DGVFourierTransform.h.

template<typename type, int rank>
fftw_plan DGVFourierTransform< type, rank >::plan [protected]

FFTW Paln for DFT's.

Definition at line 107 of file DGVFourierTransform.h.


The documentation for this class was generated from the following file: