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])