Click or drag to resize
ComplexFFT Class
Complex FFT.
Inheritance Hierarchy
SystemObject
  Imsl.MathComplexFFT

Namespace: Imsl.Math
Assembly: ImslCS (in ImslCS.dll) Version: 6.5.2.0
Syntax
[SerializableAttribute]
public class ComplexFFT

The ComplexFFT type exposes the following members.

Constructors
  NameDescription
Public methodComplexFFT
Constructs a complex FFT object.
Top
Methods
  NameDescription
Public methodBackward
Compute the complex periodic sequence from its Fourier coefficients.
Public methodEquals
Determines whether the specified object is equal to the current object.
(Inherited from Object.)
Protected methodFinalize
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
(Inherited from Object.)
Public methodForward
Compute the Fourier coefficients of a complex periodic sequence.
Public methodGetHashCode
Serves as a hash function for a particular type.
(Inherited from Object.)
Public methodGetType
Gets the Type of the current instance.
(Inherited from Object.)
Protected methodMemberwiseClone
Creates a shallow copy of the current Object.
(Inherited from Object.)
Public methodToString
Returns a string that represents the current object.
(Inherited from Object.)
Top
Remarks

Class ComplexFFT computes the discrete complex Fourier transform of a complex vector of size N. The method used is a variant of the Cooley-Tukey algorithm, which is most efficient when N is a product of small prime factors. If N satisfies this condition, then the computational effort is proportional to N log N. This considerable savings has historically led people to refer to this algorithm as the "fast Fourier transform" or FFT.

Specifically, given an N-vector x, method Forward returns

c_m  = \sum\limits_{n = 0}^{N - 1} {x_n e^{ - 
            2\pi inm/N}}

Furthermore, a vector of Euclidean norm S is mapped into a vector of norm

\sqrt {N}S

Finally, note that we can invert the Fourier transform as follows:

x_n  = \frac{1}{N}\sum_{j=0}^{N-1} 
            c_m e^{2\pi inj/N}

This formula reveals the fact that, after properly normalizing the Fourier coefficients, one has the coefficients for a trigonometric interpolating polynomial to the data. An unnormalized inverse is implemented in Backward. ComplexFFT is based on the complex FFT in FFTPACK. The package, FFTPACK was developed by Paul Swarztrauber at the National Center for Atmospheric Research.

Specifically, given an N-vector c, Backward returns

s_m  = \sum\limits_{n = 0}^N {c_n e^{2\pi 
            inm/N}}

Furthermore, a vector of Euclidean norm S is mapped into a vector of norm

\sqrt{N}S

Finally, note that we can invert the inverse Fourier transform as follows:

c_n  = \frac{1}{N}\sum\limits_{m = 0}^{N - 1} 
            {s_m e^{ - 2\pi inm/N}}

This formula reveals the fact that, after properly normalizing the Fourier coefficients, one has the coefficients for a trigonometric interpolating polynomial to the data. Backward is based on the complex inverse FFT in FFTPACK. The package, FFTPACK was developed by Paul Swarztrauber at the National Center for Atmospheric Research.

See Also

Reference

Other Resources