torch.fft.ihfft¶
- torch.fft.ihfft(input, n=None, dim=-1, norm=None, *, out=None) Tensor ¶
計算
hfft()
的反轉換。input
必須是實數值的訊號,在傅立葉域中解釋。實數訊號的 IFFT 是 Hermitian 對稱的,X[i] = conj(X[-i])
。ihfft()
以單邊形式表示,其中僅包含低於奈奎斯特頻率的正頻率。 若要計算完整的輸出,請使用ifft()
。注意
在 GPU 架構 SM53 或更高版本的 CUDA 上支援 torch.half。 但是,它僅支援每個轉換維度中的 2 的冪次方訊號長度。
- 參數
input (Tensor) – 實數輸入張量
n (int, optional) – 訊號長度。 如果給定,輸入將在計算 Hermitian IFFT 之前進行零填充或修剪至此長度。
dim (int, optional) – 執行一維 Hermitian IFFT 的維度。
norm (str, optional) –
正規化模式。 對於反向轉換 (
ihfft()
),這些對應於"forward"
- 沒有正規化"backward"
- 按1/n
正規化"ortho"
- 按1/sqrt(n)
正規化 (使 IFFT 成為正交)
使用相同的正規化模式調用正向轉換 (
hfft()
) 將在兩個轉換之間應用1/n
的整體正規化。 這是使ihfft()
成為精確反轉換所必需的。預設值為
"backward"
(按1/n
正規化)。
- 關鍵字參數
out (Tensor, optional) – 輸出張量。
範例
>>> t = torch.arange(5) >>> t tensor([0, 1, 2, 3, 4]) >>> torch.fft.ihfft(t) tensor([ 2.0000-0.0000j, -0.5000-0.6882j, -0.5000-0.1625j])
與
ifft()
的完整輸出進行比較>>> torch.fft.ifft(t) tensor([ 2.0000-0.0000j, -0.5000-0.6882j, -0.5000-0.1625j, -0.5000+0.1625j, -0.5000+0.6882j])