评价此页

torch.fft.fftfreq#

torch.fft.fftfreq(n, d=1.0, *, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) Tensor#

计算大小为 n 的信号的离散傅里叶变换采样频率。

注意

约定上,fft() 先返回正频率项,然后是反向排列的负频率项,因此对于 Python 中的所有 0<in/20 < i \leq n/2f[-i] 表示负频率项。对于长度为 n 的 FFT,并且输入在长度单位 d 中间隔,频率为

f = [0, 1, ..., (n - 1) // 2, -(n // 2), ..., -1] / (d * n)

注意

对于偶数长度,奈奎斯特频率 f[n/2] 可以视为负频率或正频率。 fftfreq() 遵循 NumPy 的约定,将其视为负频率。

参数
  • n (int) – FFT 的长度

  • d (float, optional) – 采样长度尺度。FFT 输入的各个样本之间的间隔。默认假定为单位间隔,将该结果除以实际间隔可获得物理频率单位的结果。

关键字参数
  • out (Tensor, optional) – 输出张量。

  • dtype (torch.dtype, optional) – 返回张量的期望数据类型。默认值:如果 None,则使用全局默认值(参见 torch.set_default_dtype())。

  • layout (torch.layout, 可选) – 返回张量的所需布局。默认:torch.strided

  • device (torch.device, optional) – 返回张量的期望设备。默认值:如果为 None,则使用默认张量类型的当前设备(请参阅 torch.set_default_device())。对于 CPU 张量类型,device 将是 CPU,对于 CUDA 张量类型,将是当前 CUDA 设备。

  • requires_grad (bool, optional) – 如果 autograd 应记录在返回的张量上的操作。默认值:False

示例

>>> torch.fft.fftfreq(5)
tensor([ 0.0000,  0.2000,  0.4000, -0.4000, -0.2000])

对于偶数输入,我们可以看到 f[2] 处的奈奎斯特频率被指定为负值

>>> torch.fft.fftfreq(4)
tensor([ 0.0000,  0.2500, -0.5000, -0.2500])