栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

torch.fft

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

torch.fft

这是离散傅立叶变换及其相关函数的包。使用之前必须先import torch.fft。

torch.fft.fft(input, n=None, dim=-1, norm=None) → Tensor

一维傅立叶变换。

参数:

input (Tensor):输入张量n (int, optional) :信号长度,如果给定,那么输入张量要么被zero-padding到信号长度,要么被剪裁到信号长度。dim (int, optional):做一维傅立叶变换的维度。norm (str, optional):归一化模式。

“forward” - normalize by 1/n“backward” - no normalization“ortho” - normalize by 1/sqrt(n) (making the FFT orthonormal)

例子:

>>> import torch.fft
>>> 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 = 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])

torch.fft.ifft(input, n=None, dim=-1, norm=None) → Tensor

一维傅立叶逆变换。

参数: 与一维傅立叶变换一致。

例子:

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

torch.fft.fftn(input, s=None, dim=None, norm=None) → Tensor

N维傅立叶变换。

参数:

input (Tensor):输入张量s (Tuple[int], optional):信号尺寸,如果给定,那么输入张量要变换的维度要么被zero-padding到信号尺寸,要么被剪裁到信号尺寸。dim (Tuple[int], optional):做N维傅立叶变换的维度。norm (str, optional):归一化模式。

“forward” - normalize by 1/n“backward” - no normalization“ortho” - normalize by 1/sqrt(n) (making the FFT orthonormal)。n = prod(s),是s中所有元素的乘积。

例子:

>>> import torch.fft
>>> x = torch.rand(10, 10, dtype=torch.complex64)
>>> fftn = torch.fft.fftn(t)

由于离散傅立叶变换是可分的,因此二维的离散傅立叶变换等价于两个一维的离散傅立叶变换。

>>> two_ffts = torch.fft.fft(torch.fft.fft(x, dim=0), dim=1)
>>> torch.allclose(fftn, two_ffts)

torch.fft.ifftn(input, s=None, dim=None, norm=None) → Tensor

N维傅立叶逆变换。

参数: 与维维傅立叶变换一致。

例子:

>>> import torch.fft
>>> x = torch.rand(10, 10, dtype=torch.complex64)
>>> ifftn = torch.fft.ifftn(t)

由于离散傅立叶逆变换是可分的,因此二维的离散傅立叶逆变换等价于两个一维的离散傅立叶逆变换。

>>> two_iffts = torch.fft.ifft(torch.fft.ifft(x, dim=0), dim=1)
>>> torch.allclose(ifftn, two_iffts)

torch.fft.fftshift(input, dim=None) → Tensor

把转换后的频域图的低频部分放到图像中间,仅起到便于观察的作用。适用于N维。

参数:

input (Tensor):输入的频域张量。dim (int, Tuple[int], optional):做顺序调换的维度。

例子:

>>> f = torch.fft.fftfreq(4)
>>> f
tensor([ 0.0000,  0.2500, -0.5000, -0.2500])
>>> torch.fft.fftshift(f)
tensor([-0.5000, -0.2500,  0.0000,  0.2500])

torch.fft.ifftshift(input, dim=None) → Tensor

fftshift()的逆变换。

参数: 与fftshift参数一致。

例子:

>>> f = torch.fft.fftfreq(5)
>>> f
tensor([ 0.0000,  0.2000,  0.4000, -0.4000, -0.2000])
>>> shifted = torch.fft.fftshift(f)
>>> torch.fft.ifftshift(shifted)
tensor([ 0.0000,  0.2000,  0.4000, -0.4000, -0.2000])
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/700518.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号