scipy.fftpack.rfft

scipy.fftpack.rfft(x, n=None, axis=- 1, overwrite_x=False)[源代码]

实序列的离散傅立叶变换。

参数
x类数组,实值

要转换的数据。

n整型,可选

定义傅立叶变换的长度。如果 n 未指定(默认值),则 n = x.shape[axis] 。如果 n < x.shape[axis]x 被截断,如果 n > x.shape[axis]x 是零填充的。

axis整型,可选

沿其应用变换的轴。默认值为最后一个轴。

overwrite_x布尔值,可选

如果设置为true,则 x 可以被覆盖。默认值为False。

退货
z真正的ndarray

返回的实数组包含::

[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

其中:

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

注意事项

在数字精度范围内, y == rfft(irfft(y))

实现了单精度和双精度例程。半精度输入将转换为单精度。非浮点输入将转换为双精度。不支持长双精度输入。

要获得具有复杂数据类型的输出,请考虑使用较新的函数 scipy.fft.rfft

示例

>>> 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])
>>> rfft(a)
array([  4.,   8.,  12.,  16.])