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()以單邊形式表示,其中僅包含低於 Nyquist 頻率的正頻率。要計算完整輸出,請使用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])