Next topic

mmf.math.integrate

This Page

mmf.math.fft

fft(a, *v, **kw)
ifft(a, *v, **kw)
fftn(a, *v, **kw)
ifftn(a, *v, **kw)
rfft(a, *v, **kw)
irfft(a, *v, **kw)
rfftn(a, *v, **kw)
irfftn(a, *v, **kw)
fftshift(x[, axes]) Shift the zero-frequency component to the center of the spectrum.
ifftshift(x[, axes]) The inverse of fftshift.
fftfreq(n[, d]) Return the Discrete Fourier Transform sample frequencies.

Wrappers for the FFT. Uses the :pkg:`anfft` package if available (which wraps the FFTW3), otherwise uses numpy.fft.

mmf.math.fft.fft(a, *v, **kw)[source]
mmf.math.fft.ifft(a, *v, **kw)[source]
mmf.math.fft.fftn(a, *v, **kw)[source]
mmf.math.fft.ifftn(a, *v, **kw)[source]
mmf.math.fft.rfft(a, *v, **kw)[source]
mmf.math.fft.irfft(a, *v, **kw)[source]
mmf.math.fft.rfftn(a, *v, **kw)[source]
mmf.math.fft.irfftn(a, *v, **kw)[source]
mmf.math.fft.fftshift(x, axes=None)

Shift the zero-frequency component to the center of the spectrum.

This function swaps half-spaces for all axes listed (defaults to all). Note that y[0] is the Nyquist component only if len(x) is even.

Parameters :

x : array_like

Input array.

axes : int or shape tuple, optional

Axes over which to shift. Default is None, which shifts all axes.

Returns :

y : ndarray

The shifted array.

See also

ifftshift
The inverse of fftshift.

Examples

>>> freqs = np.fft.fftfreq(10, 0.1)
>>> freqs
array([ 0.,  1.,  2.,  3.,  4., -5., -4., -3., -2., -1.])
>>> np.fft.fftshift(freqs)
array([-5., -4., -3., -2., -1.,  0.,  1.,  2.,  3.,  4.])

Shift the zero-frequency component only along the second axis:

>>> freqs = np.fft.fftfreq(9, d=1./9).reshape(3, 3)
>>> freqs
array([[ 0.,  1.,  2.],
       [ 3.,  4., -4.],
       [-3., -2., -1.]])
>>> np.fft.fftshift(freqs, axes=(1,))
array([[ 2.,  0.,  1.],
       [-4.,  3.,  4.],
       [-1., -3., -2.]])
mmf.math.fft.ifftshift(x, axes=None)

The inverse of fftshift.

Parameters :

x : array_like

Input array.

axes : int or shape tuple, optional

Axes over which to calculate. Defaults to None, which shifts all axes.

Returns :

y : ndarray

The shifted array.

See also

fftshift
Shift zero-frequency component to the center of the spectrum.

Examples

>>> freqs = np.fft.fftfreq(9, d=1./9).reshape(3, 3)
>>> freqs
array([[ 0.,  1.,  2.],
       [ 3.,  4., -4.],
       [-3., -2., -1.]])
>>> np.fft.ifftshift(np.fft.fftshift(freqs))
array([[ 0.,  1.,  2.],
       [ 3.,  4., -4.],
       [-3., -2., -1.]])
mmf.math.fft.fftfreq(n, d=1.0)

Return the Discrete Fourier Transform sample frequencies.

The returned float array contains the frequency bins in cycles/unit (with zero at the start) given a window length n and a sample spacing d:

f = [0, 1, ..., n/2-1, -n/2, ..., -1] / (d*n)         if n is even
f = [0, 1, ..., (n-1)/2, -(n-1)/2, ..., -1] / (d*n)   if n is odd
Parameters :

n : int

Window length.

d : scalar

Sample spacing.

Returns :

out : ndarray

The array of length n, containing the sample frequencies.

Examples

>>> signal = np.array([-2, 8, 6, 4, 1, 0, 3, 5], dtype=float)
>>> fourier = np.fft.fft(signal)
>>> n = signal.size
>>> timestep = 0.1
>>> freq = np.fft.fftfreq(n, d=timestep)
>>> freq
array([ 0.  ,  1.25,  2.5 ,  3.75, -5.  , -3.75, -2.5 , -1.25])