当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python SciPy fftpack.rfft用法及代码示例


本文简要介绍 python 语言中 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 的内容。默认为假。

返回

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

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

要获得具有复杂数据类型的输出,请考虑使用较新的函数 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.])

相关用法


注:本文由纯净天空筛选整理自scipy.org大神的英文原创作品 scipy.fftpack.rfft。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。