cupyx.scipy.signal.ZoomFFT#

class cupyx.scipy.signal.ZoomFFT(n, fn, m=None, *, fs=2, endpoint=False)[source]#

创建一个可调用的缩放 FFT 变换函数。

这是对单位圆周围一组等间隔频率的线性调频 Z 变换 (CZT) 的专用化,用于比计算整个 FFT 并截断更有效地计算 FFT 的一部分。 [1]

参数:
  • n (int) – 信号的大小。

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

  • m (int, 可选) – 要评估的点数。默认为 n

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

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

返回:

f – 可调用对象 f(x, axis=-1),用于计算 x 的缩放 FFT。

返回类型:

ZoomFFT

另请参阅

zoom_fft

计算缩放 FFT 的便捷函数。

scipy.signal.ZoomFFT

注意

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

采样频率是 1/dt,即信号 x 中采样点之间的时间步长。单位圆对应于从 0 到采样频率的频率。默认采样频率为 2 意味着 f1f2 的值(直到奈奎斯特频率)在 [0, 1) 范围内。对于以弧度表示的 f1f2 值,应使用 2*pi 的采样频率。

请记住,缩放 FFT 只能插值现有 FFT 的点。它无法帮助区分两个分开的邻近频率。频率分辨率只能通过增加采集时间来提高。

这些函数使用 Bluestein 算法实现(scipy.fft 也是如此)。[2]

参考

方法

__call__(x, *, axis=-1)[source]#

计算信号的线性调频 Z 变换。

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

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

返回:

out – 一个与 x 维度相同的数组,但变换轴的长度设置为 m

返回类型:

ndarray

points()[source]#

返回计算线性调频 Z 变换的点。

__eq__(value, /)#

返回 self==value。

__ne__(value, /)#

返回 self!=value。

__lt__(value, /)#

返回 self<value。

__le__(value, /)#

返回 self<=value。

__gt__(value, /)#

返回 self>value。

__ge__(value, /)#

返回 self>=value。