rfft#
- scipy.fft.rfft(x, n=None, axis=-1, norm=None, overwrite_x=False, workers=None, *, plan=None)[source]#
计算实数输入的 1-D 离散傅里叶变换。
此函数通过高效算法(称为快速傅里叶变换 (FFT))计算实值数组的 1-D n 点离散傅里叶变换 (DFT)。
- 参数:
- xarray_like
输入数组
- nint, optional
输入中沿变换轴使用的点数。如果 n 小于输入的长度,则输入会被裁剪。如果它较大,则输入会用零填充。如果未给出 n,则使用沿由 axis 指定的轴的输入长度。
- axisint, 可选
计算 FFT 的轴。如果未给出,则使用最后一个轴。
- norm{"backward", "ortho", "forward"}, 可选
归一化模式(请参阅
fft)。默认值为“backward”。- overwrite_xbool, 可选
如果为 True,则 x 的内容可能会被销毁;默认值为 False。有关更多详细信息,请参阅
fft。- workersint, 可选
用于并行计算的最大 worker 数量。如果为负,则该值从
os.cpu_count()环绕。有关更多详细信息,请参阅fft。- plan对象,可选
此参数保留用于传递下游 FFT 供应商提供的预计算计划。目前在 SciPy 中未使用。
版本 1.5.0 中添加。
- 返回:
- out复数 ndarray
截断或零填充的输入,沿由 axis 指示的轴进行变换,如果未指定 axis,则沿最后一个轴进行变换。如果 n 是偶数,则变换轴的长度为
(n/2)+1。如果 n 是奇数,则长度为(n+1)/2。
- 引发:
- IndexError
如果 axis 大于 a 的最后一个轴。
附注
当对纯实数输入计算 DFT 时,输出是共轭对称的,即负频率项只是相应正频率项的复共轭,因此负频率项是冗余的。此函数不计算负频率项,因此输出的变换轴的长度为
n//2 + 1。当
X = rfft(x)且 fs 为采样频率时,X[0]包含零频率项 0*fs,由于共轭对称,它是实数。如果 n 是偶数,
A[-1]包含表示正负奈奎斯特频率(+fs/2 和 -fs/2)的项,并且也必须是纯实数。如果 n 是奇数,则没有 fs/2 处的项;A[-1]包含最大的正频率 (fs/2*(n-1)/n),并且在一般情况下是复数。如果输入 a 包含虚部,则会静默丢弃。
数组 API 标准支持
rfft除了 NumPy 之外,还实验性支持 Python 数组 API 标准兼容的后端。请考虑通过设置环境变量SCIPY_ARRAY_API=1并提供 CuPy、PyTorch、JAX 或 Dask 数组作为数组参数来测试这些功能。支持以下后端和设备(或其他功能)组合。库
CPU
GPU
NumPy
✅
不适用
CuPy
不适用
✅
PyTorch
✅
✅
JAX
✅
✅
Dask
⚠️ 计算图
不适用
有关更多信息,请参阅 对数组 API 标准的支持。
示例