FFT

class FFT(*args)

Base class for Fast Fourier Transform (FFT) and Inverse Fast Fourier Transform (IFFT).

Notes

Perform FFT and IFFT with array of ndim=1,2,3

Methods

getClassName() Accessor to the object’s name.
getId() Accessor to the object’s id.
getImplementation(*args) Accessor to the underlying implementation.
getName() Accessor to the object’s name.
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.
__init__(*args)
getClassName()

Accessor to the object’s name.

Returns:

class_name : str

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

getId()

Accessor to the object’s id.

Returns:

id : int

Internal unique identifier.

getImplementation(*args)

Accessor to the underlying implementation.

Returns:

impl : Implementation

The implementation class.

getName()

Accessor to the object’s name.

Returns:

name : str

The name of the object.

inverseTransform(*args)

Perform Inverse Fast Fourier Transform (fft).

Parameters:

collection : ComplexCollection or ScalarCollection, sequence of float

Data to transform.

Returns:

collection : ComplexCollection

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:

matrix : ComplexMatrix, Matrix, 2-d sequence of float

Data to transform.

Returns:

result : ComplexMatrix

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:

tensor : ComplexTensor or Tensor or 3d array

The data to be transformed.

Returns:

result : ComplexTensor

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:

name : str

The name of the object.

transform(*args)

Perform Fast Fourier Transform (fft).

Parameters:

collection : ComplexCollection or ScalarCollection, sequence of float

Data to transform.

Returns:

collection : ComplexCollection

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:

matrix : ComplexMatrix, Matrix, 2-d sequence of float

Data to transform.

Returns:

result : ComplexMatrix

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:

tensor : ComplexTensor or Tensor or 3d array

Data to transform.

Returns:

result : ComplexTensor

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)