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(self)

Accessor to the object’s name.

getId(self)

Accessor to the object’s id.

getImplementation(self, \*args)

Accessor to the underlying implementation.

getName(self)

Accessor to the object’s name.

inverseTransform(self, \*args)

Perform Inverse Fast Fourier Transform (fft).

inverseTransform2D(self, \*args)

Perform 2D IFFT.

inverseTransform3D(self, \*args)

Perform 3D IFFT.

setName(self, name)

Accessor to the object’s name.

transform(self, \*args)

Perform Fast Fourier Transform (fft).

transform2D(self, \*args)

Perform 2D FFT.

transform3D(self, \*args)

Perform 3D FFT.

__init__(self, *args)

Initialize self. See help(type(self)) for accurate signature.

getClassName(self)

Accessor to the object’s name.

Returns
class_namestr

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

getId(self)

Accessor to the object’s id.

Returns
idint

Internal unique identifier.

getImplementation(self, *args)

Accessor to the underlying implementation.

Returns
implImplementation

The implementation class.

getName(self)

Accessor to the object’s name.

Returns
namestr

The name of the object.

inverseTransform(self, *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(self, *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(self, *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(self, name)

Accessor to the object’s name.

Parameters
namestr

The name of the object.

transform(self, *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(self, *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(self, *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)