cupyx.scipy.signal.zoom_fft#

cupyx.scipy.signal.zoom_fft(x, fn, m=None, *, fs=2, endpoint=False, axis=-1)[source]#

仅计算 x 在频率范围 fn 内的 DFT。

参数:
  • x (array) – 要进行变换的信号。

  • fn (array_like) – 一个长度为 2 的序列 [f1, f2],给出频率范围;或者一个标量,此时范围假定为 [0, fn]。

  • m (int, 可选) – 要计算的点数。默认为 x 的长度。

  • fs (float, 可选) – 采样频率。例如,如果 fs=10 表示 10 kHz,那么 f1f2 也应以 kHz 为单位给出。默认采样频率为 2,因此 f1f2 应在 [0, 1] 范围内,以保持变换在奈奎斯特频率以下。

  • endpoint (bool, 可选) – 如果为 True,则 f2 是最后一个样本点。否则,不包含 f2。默认为 False。

  • axis (int, 可选) – 计算 FFT 的轴。如果未指定,则使用最后一个轴。

返回值:

out – 变换后的信号。傅里叶变换将在点 f1, f1+df, f1+2df, …, f2 处计算,其中 df=(f2-f1)/m。

返回类型:

ndarray

另请参阅

ZoomFFT

创建可调用的部分 FFT 函数的类。

scipy.signal.zoom_fft

注意

默认值选择使得 signal.zoom_fft(x, 2) 等效于 fft.fft(x),并且如果 m > len(x),则 signal.zoom_fft(x, 2, m) 等效于 fft.fft(x, m)

要绘制结果变换的幅度图,请使用

plot(linspace(f1, f2, m, endpoint=False),
     abs(zoom_fft(x, [f1, f2], m)))

如果需要重复进行变换,请使用 ZoomFFT 构造一个专门的变换函数,该函数可以重复使用而无需重新计算常数。