Altaxo.Calc.Fourier Namespace

Type Description

ArrayMath

ArrayMath provides some basic methods for manipulating numeric arrays.

ChirpFFT

Provides a method to perform a Fourier transformation of arbirtrary length. This algorithm is known either as Bluestein FFT algorithm, or as Chirp-z-Transformation.

ComplexFFT

Static functions for doing various Fourier Operations.

FastHadamardTransformation

Fast correlation of a maximum length sequence with a signal. The result is the response function of the system under test. See remarks for detail.

FastHartleyTransform

Fast Fourier Transform class based on the Fast Hartley Transform.

FourierDirection

The direction of the fourier transform.

NativeFourierMethods

This class provides reference methods related to Fourier transformation that are slow and not very accurate. Do not use them except for comparism and testing purposes! The direction of the forward Fourier transform will be defined here as reference for all other Fourier methods as multiplication of f(x)*exp(iwt), i.e. as (wt) having a positive sign (forward) and wt having a negative sign (backward).

Pfa235Convolution

Convolves or deconvolves a real-valued data set data[] (including any user supplied zero padding) with a response function response[]. The result is returned in the array result[]. All arrays including the scratch[] array must have the same dimensions (or larger). The data set (and of course the other arrays) can be either one-dimensional, two-dimensional, or three-dimensional, d = 1,2,3. Each dimension must be of the form n = (2**p) * (3**q) * (5**r), because of the underlying FFT. The d-dimensional data can be either single precision (FLOAT := float) or double precision (FLOAT := double).

Pfa235FFT

Generalized prime factor complex fast Fourier transform and backtransform in one, two, and three dimensions (d = 1,2,3). Each dimension must be of the form n = (2**p) * (3**q) * (5**r). The complex d-dimensional data can be either given in a vector of double precision complex numbers or in two seperate vectors of doubles for the real and imaginary parts respectively, or in single precision, either in a vector of complex or in two seperate vectors of float. A leading dimension different from the first data dimension can be specified - this can prevent memory-bank conflicts and therefore dramatically improves performance on vector machines with interleaved memory. The Fourier transform is always perfored inplace. The data array can be stored either in column (Fortran convention) or row (C convention) order. This makes about 40 different combinations (float - double, dimension, order, complex - real) which can be easily accessed by a simple class definition:

RealFFTResultWrapper

Class to provide convenient access to the result of a real valued fourier transform. See remarks for learning about different representations of a real valued Fourier transform.

RealFourierTransform

Common interface for real valued fourier transformations of any length. Depending of the length, which must be given at creation time and can not be changed afterwards, the fastes transformation method is used. The neccessary temporary data is being held in this class, so that repeated transformations will not create more temporary storage than neccessary.

RealFourierTransformation2D

Class to assist in executing a 2D Fourier transform on data originating from a matrix of real values.

RealFourierTransformationOutputKind

Designates different possible kinds of output of the real fourier transformation.