ChirpFFT Type

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.

The following code is partially adopted from the FFT library, see www.jjj.de.

Constructors

Constructor Description

ChirpFFT()

Full Usage: ChirpFFT()

Static members

Static member Description

ChirpFFT.CyclicConvolution(datare, dataim, responsere, responseim, resultre, resultim, n)

Full Usage: ChirpFFT.CyclicConvolution(datare, dataim, responsere, responseim, resultre, resultim, n)

Parameters:
    datare : float[] - Real part of the data array (first input array).
    dataim : float[] - Imaginary part of the data array (first input array).
    responsere : float[] - Real part of the response array (second input array).
    responseim : float[] - Imaginary part of the response array (second input array).
    resultre : float[] - The real part of the resulting array.
    resultim : float[] - The imaginary part of the resulting array.
    n : int - The convolution size. The input and result arrays may be larger, but of course not smaller than this number.

Performs a cyclic convolution of splitted complex data of arbitrary length.

datare : float[]

Real part of the data array (first input array).

dataim : float[]

Imaginary part of the data array (first input array).

responsere : float[]

Real part of the response array (second input array).

responseim : float[]

Imaginary part of the response array (second input array).

resultre : float[]

The real part of the resulting array.

resultim : float[]

The imaginary part of the resulting array.

n : int

The convolution size. The input and result arrays may be larger, but of course not smaller than this number.

ChirpFFT.CyclicCorrelation(datare, dataim, responsere, responseim, resultre, resultim, n)

Full Usage: ChirpFFT.CyclicCorrelation(datare, dataim, responsere, responseim, resultre, resultim, n)

Parameters:
    datare : float[] - Real part of the data array (first input array).
    dataim : float[] - Imaginary part of the data array (first input array).
    responsere : float[] - Real part of the response array (second input array).
    responseim : float[] - Imaginary part of the response array (second input array).
    resultre : float[] - The real part of the resulting array.
    resultim : float[] - The imaginary part of the resulting array.
    n : int - The convolution size. The input and result arrays may be larger, but of course not smaller than this number.

Performs a cyclic correlation of splitted complex data of arbitrary length.

datare : float[]

Real part of the data array (first input array).

dataim : float[]

Imaginary part of the data array (first input array).

responsere : float[]

Real part of the response array (second input array).

responseim : float[]

Imaginary part of the response array (second input array).

resultre : float[]

The real part of the resulting array.

resultim : float[]

The imaginary part of the resulting array.

n : int

The convolution size. The input and result arrays may be larger, but of course not smaller than this number.

ChirpFFT.CyclicCorrelation(src1, src2, result, n)

Full Usage: ChirpFFT.CyclicCorrelation(src1, src2, result, n)

Parameters:
    src1 : float[] - The first input array.
    src2 : float[] - The second input array.
    result : float[] - The resulting array.
    n : int - The correlation size. The input and result arrays may be larger, but of course not smaller than this number.

Performs a cyclic correlation of splitted complex data of arbitrary length.

src1 : float[]

The first input array.

src2 : float[]

The second input array.

result : float[]

The resulting array.

n : int

The correlation size. The input and result arrays may be larger, but of course not smaller than this number.

ChirpFFT.FFT(x, y, direction)

Full Usage: ChirpFFT.FFT(x, y, direction)

Parameters:
    x : float[] - Array of real values.
    y : float[] - Array of imaginary values.
    direction : FourierDirection - Direction of Fourier transform.

Performs an FFT of arbitrary length by the chirp method. Use this method only if no other FFT is applicable.

x : float[]

Array of real values.

y : float[]

Array of imaginary values.

direction : FourierDirection

Direction of Fourier transform.

ChirpFFT.FFT(x, y, direction, temporaryStorage)

Full Usage: ChirpFFT.FFT(x, y, direction, temporaryStorage)

Parameters:
    x : float[] - Array of real values.
    y : float[] - Array of imaginary values.
    direction : FourierDirection - Direction of Fourier transform.
    temporaryStorage : byref<obj> - On return, this reference holds an object for temporary storage. You can use this in subsequent FFTs of the same size.

Performs an FFT of arbitrary length by the chirp method. Use this method only if no other FFT is applicable.

x : float[]

Array of real values.

y : float[]

Array of imaginary values.

direction : FourierDirection

Direction of Fourier transform.

temporaryStorage : byref<obj>

On return, this reference holds an object for temporary storage. You can use this in subsequent FFTs of the same size.

ChirpFFT.FFT(x, y, n, direction)

Full Usage: ChirpFFT.FFT(x, y, n, direction)

Parameters:
    x : float[] - Array of real values.
    y : float[] - Array of imaginary values.
    n : uint32 - Number of points to transform.
    direction : FourierDirection - Direction of Fourier transform.

Performs an FFT of arbitrary length by the chirp method. Use this method only if no other FFT is applicable.

x : float[]

Array of real values.

y : float[]

Array of imaginary values.

n : uint32

Number of points to transform.

direction : FourierDirection

Direction of Fourier transform.

ChirpFFT.FFT(x, y, n, direction, temporaryStorage)

Full Usage: ChirpFFT.FFT(x, y, n, direction, temporaryStorage)

Parameters:
    x : float[] - Array of real values.
    y : float[] - Array of imaginary values.
    n : uint32 - Number of points to transform.
    direction : FourierDirection - Direction of Fourier transform.
    temporaryStorage : byref<obj> - On return, this reference holds an object for temporary storage. You can use this in subsequent FFTs of the same size.

Performs an FFT of arbitrary length by the chirp method. Use this method only if no other FFT is applicable.

x : float[]

Array of real values.

y : float[]

Array of imaginary values.

n : uint32

Number of points to transform.

direction : FourierDirection

Direction of Fourier transform.

temporaryStorage : byref<obj>

On return, this reference holds an object for temporary storage. You can use this in subsequent FFTs of the same size.

ChirpFFT.FourierTransformation2D(matrixRe, matrixIm, direction)

Full Usage: ChirpFFT.FourierTransformation2D(matrixRe, matrixIm, direction)

Parameters:
    matrixRe : IMatrix<float> - Matrix of thre real part of the values to transform.
    matrixIm : IMatrix<float> - Matrix of thre imaginary part of the values to transform.
    direction : FourierDirection - Direction of Fourier transform.

Performs an two dimensional FFT of arbitrary length by the chirp method. Use this method only if no other FFT is applicable.

This function first performs a FFT on all columns of the matrix, and then transforms all rows of the resulting matrix.

matrixRe : IMatrix<float>

Matrix of thre real part of the values to transform.

matrixIm : IMatrix<float>

Matrix of thre imaginary part of the values to transform.

direction : FourierDirection

Direction of Fourier transform.

ChirpFFT.GetNecessaryConvolutionSize(n)

Full Usage: ChirpFFT.GetNecessaryConvolutionSize(n)

Parameters:
    n : int - The length of the convolution.

Returns: int Neccessary length of the scratch arrays. Note that this is based on a convolution of base 2.

Returns the neccessary size for a chirp convolution of length n.

n : int

The length of the convolution.

Returns: int

Neccessary length of the scratch arrays. Note that this is based on a convolution of base 2.

ChirpFFT.GetNecessaryCorrelationSize(n)

Full Usage: ChirpFFT.GetNecessaryCorrelationSize(n)

Parameters:
    n : int - The length of the cyclic correlation.

Returns: int Neccessary length of the scratch arrays. Note that this is based on a convolution of base 2.

Returns the neccessary size of the padding arrays for a cyclic correlation of length n.

n : int

The length of the cyclic correlation.

Returns: int

Neccessary length of the scratch arrays. Note that this is based on a convolution of base 2.

ChirpFFT.GetNecessaryTransformationSize(n)

Full Usage: ChirpFFT.GetNecessaryTransformationSize(n)

Parameters:
    n : int - The length of the chirp transformation.

Returns: int Neccessary length of the transformation arrays. Note that this is based on a convolution of base 2.

Returns the neccessary transformation size for a chirp transformation of length n.

n : int

The length of the chirp transformation.

Returns: int

Neccessary length of the transformation arrays. Note that this is based on a convolution of base 2.