xrscipy.fftpack.rfft

xrscipy.fftpack.rfft(x, coord, n=None)

rfft(x, coord, n=None)

Parameters:
  • obj (xarray object) – The data to transform.

  • coord (string) – The axis along which the transform is applied. The default is the last axis.. The coordinate must be evenly spaced.

  • n (int, optional) – Defines the length of the Fourier transform. If n is not specified (the default) then n = x.shape[axis]. If n < x.shape[axis], x is truncated, if n > x.shape[axis], x is zero-padded.

Returns:

z

The returned real array contains:

[y(0),Re(y(1)),Im(y(1)),...,Re(y(n/2))]              if n is even
[y(0),Re(y(1)),Im(y(1)),...,Re(y(n/2)),Im(y(n/2))]   if n is odd

where:

y(j) = sum[k=0..n-1] x[k] * exp(-sqrt(-1)*j*k*2*pi/n)
j = 0..n-1

Return type:

real ndarray

See also

fft, irfft, scipy.fft.rfft

numpy.fftpack.rfft

scipy.fft.rfft : Original scipy implementation

Notes

Within numerical accuracy, y == rfft(irfft(y)).

Both single and double precision routines are implemented. Half precision inputs will be converted to single precision. Non-floating-point inputs will be converted to double precision. Long-double precision inputs are not supported.

To get an output with a complex datatype, consider using the newer function scipy.fft.rfft.

Examples

>>> from scipy.fftpack import fft, rfft
>>> a = [9, -9, 1, 3]
>>> fft(a)
array([  4. +0.j,   8.+12.j,  16. +0.j,   8.-12.j])

Examples

>>> rfft(a)
array([  4.,   8.,  12.,  16.])