{ } Raw JSON

bundles / scipy 1.17.1 / scipy / fftpack / _basic / rfft

function

scipy.fftpack._basic:rfft

source: /scipy/fftpack/_basic.py :147

Signature

def   rfft ( x n = None axis = -1 overwrite_x = False )

Summary

Discrete Fourier transform of a real sequence.

Parameters

x : array_like, real-valued

The data to transform.

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.

axis : int, optional

The axis along which the transform is applied. The default is the last axis.

overwrite_x : bool, optional

If set to true, the contents of x can be overwritten. Default is False.

Returns

z : real ndarray

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

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)
rfft(a)

See also

fft
irfft
scipy.fft.rfft

Aliases

  • scipy.fftpack.rfft