KissFFT

class KissFFT(*args)

Kiss FFT.

Methods

getClassName()

Accessor to the object's name.

getName()

Accessor to the object's name.

hasName()

Test if the object is named.

inverseTransform(*args)

Perform Inverse Fast Fourier Transform (fft).

inverseTransform2D(*args)

Perform 2D IFFT.

inverseTransform3D(*args)

Perform 3D IFFT.

setName(name)

Accessor to the object's name.

transform(*args)

Perform Fast Fourier Transform (fft).

transform2D(*args)

Perform 2D FFT.

transform3D(*args)

Perform 3D FFT.

See also

FFT

Notes

The KissFFT class inherits from the FFT class. The methods are the same as the FFT class (there is no additional method). This class interacts with the kissfft implemented and return results as OpenTURNS objects (ComplexCollection).

__init__(*args)
getClassName()

Accessor to the object’s name.

Returns:
class_namestr

The object class name (object.__class__.__name__).

getName()

Accessor to the object’s name.

Returns:
namestr

The name of the object.

hasName()

Test if the object is named.

Returns:
hasNamebool

True if the name is not empty.

inverseTransform(*args)

Perform Inverse Fast Fourier Transform (fft).

Parameters:
collectionComplexCollection or ScalarCollection, sequence of float

Data to transform.

Returns:
collectionComplexCollection

The transformed data.

Notes

The Inverse Fast Fourier Transform writes as following:

{\rm y_k} = \sum_{n=0}^{N-1} \frac{1}{N} x_n exp(2 i \pi \frac{kn}{N})

where x denotes the data, of size N, to be transformed.

Examples

>>> import openturns as ot
>>> fft = ot.FFT()
>>> collection = ot.ComplexCollection([1+1j,2-0.3j,5-.3j,6+1j,9+8j,16+8j,0.3])
>>> result = fft.inverseTransform(collection)
inverseTransform2D(*args)

Perform 2D IFFT.

Parameters:
matrixComplexMatrix, Matrix, 2-d sequence of float

Data to transform.

Returns:
resultComplexMatrix

The data transformed.

Notes

The 2D Fast Inverse Fourier Transform writes as following:

{\rm Y_{k,l}} = \frac{1}{M\times N}\sum_{m=0}^{M-1}\sum_{n=0}^{N-1} Z_{m,n} exp(2 i \pi \frac{km}{M}) exp(2 i \pi \frac{ln}{N})

where Z denotes the data to be transformed with shape (M,:math:N)

Examples

>>> import openturns as ot
>>> fft = ot.FFT()
>>> x = ot.Normal(8).getSample(16)
>>> result = fft.inverseTransform2D(x)
inverseTransform3D(*args)

Perform 3D IFFT.

Parameters:
tensorComplexTensor or Tensor or 3d array

The data to be transformed.

Returns:
resultComplexTensor

The transformed data.

Notes

The 3D Inverse Fast Fourier Transform writes as following:

{\rm Y_{k,l,r}} = \sum_{m=0}^{M-1}\sum_{n=0}^{N-1}\sum_{p=0}^{P-1} \frac{1}{M\times N \times P} Z_{m,n,p} exp(2 i \pi \frac{km}{M}) exp(2 i \pi \frac{ln}{N}) exp(2 i \pi \frac{rp}{P})

where Z denotes the data to be transformed with shape (M, N, P)

Examples

>>> import openturns as ot
>>> fft = ot.FFT()
>>> x = ot.ComplexTensor(8,8,2)
>>> y = ot.Normal(8).getSample(8)
>>> x.setSheet(0, fft.transform2D(y))
>>> z = ot.Normal(8).getSample(8)
>>> x.setSheet(1, fft.transform2D(z))
>>> result = fft.inverseTransform3D(x)
setName(name)

Accessor to the object’s name.

Parameters:
namestr

The name of the object.

transform(*args)

Perform Fast Fourier Transform (fft).

Parameters:
collectionComplexCollection or ScalarCollection, sequence of float

Data to transform.

Returns:
collectionComplexCollection

The data in Fourier domain.

Notes

The Fast Fourier Transform writes as following:

{\rm y_k} = \sum_{n=0}^{N-1} x_n exp(-2 i \pi \frac{kn}{N})

where x denotes the data to be transformed, of size N.

Examples

>>> import openturns as ot
>>> fft = ot.FFT()
>>> result = fft.transform(ot.Normal(8).getRealization())
transform2D(*args)

Perform 2D FFT.

Parameters:
matrixComplexMatrix, Matrix, 2-d sequence of float

Data to transform.

Returns:
resultComplexMatrix

The data in fourier domain.

Notes

The 2D Fast Fourier Transform writes as following:

{\rm Z_{k,l}} = \sum_{m=0}^{M-1}\sum_{n=0}^{N-1} X_{m,n} exp(-2 i \pi \frac{km}{M}) exp(-2 i \pi \frac{ln}{N})

where X denotes the data to be transformed with shape (M,:math:N)

Examples

>>> import openturns as ot
>>> fft = ot.FFT()
>>> x = ot.Normal(8).getSample(16)
>>> result = fft.transform2D(x)
transform3D(*args)

Perform 3D FFT.

Parameters:
tensorComplexTensor or Tensor or 3d array

Data to transform.

Returns:
resultComplexTensor

The data in fourier domain.

Notes

The 3D Fast Fourier Transform writes as following:

{\rm Z_{k,l,r}} = \sum_{m=0}^{M-1}\sum_{n=0}^{N-1}\sum_{p=0}^{P-1} X_{m,n,p} exp(-2 i \pi \frac{km}{M}) exp(-2 i \pi \frac{ln}{N}) exp(-2 i \pi \frac{rp}{P})

where X denotes the data to be transformed with shape (M,:math:N, P)

Examples

>>> import openturns as ot
>>> fft = ot.FFT()
>>> x = ot.ComplexTensor(8,8,2)
>>> y = ot.Normal(8).getSample(8)
>>> x.setSheet(0,fft.transform2D(y))
>>> z = ot.Normal(8).getSample(8)
>>> x.setSheet(1,fft.transform2D(z))
>>> result = fft.transform3D(x)