捷徑

torch.fft.rfft

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

計算實數值 input 的一維傅立葉轉換。

實數訊號的 FFT 是 Hermitian 對稱的, X[i] = conj(X[-i]),因此輸出僅包含奈奎斯特頻率以下的正頻率。要計算完整的輸出,請使用 fft()

注意

在 GPU 架構 SM53 或更高版本的 CUDA 上支持 torch.half。 但是,它僅支持每個轉換維度中 2 的冪的訊號長度。

參數
  • input (Tensor) – 實數輸入張量

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

  • dim (int, optional) – 沿哪個維度進行一維實數 FFT。

  • norm (str, optional) –

    正規化模式。 對於正向轉換 (rfft()),這些對應於

    • "forward" - 按 1/n 正規化

    • "backward" - 不進行正規化

    • "ortho" - 按 1/sqrt(n) 正規化(使 FFT 正交)

    使用相同的正規化模式調用反向轉換 (irfft()) 將在兩個轉換之間應用 1/n 的整體正規化。 這是使 irfft() 成為精確反轉換所必需的。

    默認值為 "backward" (不進行正規化)。

關鍵字參數

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

範例

>>> t = torch.arange(4)
>>> t
tensor([0, 1, 2, 3])
>>> torch.fft.rfft(t)
tensor([ 6.+0.j, -2.+2.j, -2.+0.j])

fft() 的完整輸出進行比較

>>> torch.fft.fft(t)
tensor([ 6.+0.j, -2.+2.j, -2.+0.j, -2.-2.j])

請注意,省略了對稱元素 T[-1] == T[1].conj()。 在奈奎斯特頻率 T[-2] == T[2] 時,它是自身的對稱對,因此必須始終為實數值。

文件

Access comprehensive developer documentation for PyTorch

View Docs

Tutorials

Get in-depth tutorials for beginners and advanced developers

View Tutorials

Resources

Find development resources and get your questions answered

View Resources