評價此頁

torch.fft.fft#

torch.fft.fft(input, n=None, dim=-1, norm=None, *, out=None) Tensor#

計算 input 的一維離散傅立葉變換。

注意

任何實訊號的傅立葉域表示都滿足厄米特性質:X[i] = conj(X[-i])。此函式始終同時返回正頻率項和負頻率項,儘管對於實數輸入,負頻率是冗餘的。rfft() 返回更緊湊的單邊表示,其中僅返回正頻率。

注意

在 CUDA 上支援 torch.half 和 torch.chalf,GPU 架構 SM53 或更高版本。但是,它僅支援變換維度中為 2 的冪的訊號長度。

引數
  • input (Tensor) – 輸入張量

  • n (int, optional) – 訊號長度。如果給出,輸入將在計算 FFT 之前被零填充或截斷到此長度。

  • dim (int, optional) – 沿哪個維度取一維 FFT。

  • norm (str, optional) –

    歸一化模式。對於正向變換(fft()),這些對應於

    • "forward" - 歸一化因子為1/n

    • "backward" - 無歸一化

    • "ortho" - 歸一化因子為1/sqrt(n)(使FFT正交)

    使用相同的歸一化模式呼叫反向變換(ifft())將在兩個變換之間應用 1/n 的整體歸一化。這對於使 ifft() 成為精確逆變換是必需的。

    預設值為"backward"(無歸一化)。

關鍵字引數

out (Tensor, optional) – 輸出張量。

示例

>>> t = torch.arange(4)
>>> t
tensor([0, 1, 2, 3])
>>> torch.fft.fft(t)
tensor([ 6.+0.j, -2.+2.j, -2.+0.j, -2.-2.j])
>>> t = torch.tensor([0.+1.j, 2.+3.j, 4.+5.j, 6.+7.j])
>>> torch.fft.fft(t)
tensor([12.+16.j, -8.+0.j, -4.-4.j,  0.-8.j])