torch.fft.ihfft¶
- torch.fft.ihfft(input, n=None, dim=- 1, norm=None, *, out=None) → Tensor
计算
hfft()
的逆。input
必须是实值信号,在傅里叶域中解释。实信号的 IFFT 是厄米对称的,X[i] = conj(X[-i])
。ihfft()
表示这种单边形式,其中只包括低于奈奎斯特频率的正频率。要计算完整输出,请使用ifft()
。注意
支持 CUDA 上使用 GPU 架构 SM53 或更高版本的 torch.half。但是,它只支持每个变换维度上的 2 的幂次信号长度。
- 参数:
输入(张量)- 真实输入张量
n(int,可选)- 信号长度。如果提供,输入将在计算厄米共轭逆傅里叶变换之前被零填充或裁剪到这个长度。
dim(int,可选)- 沿着该维度进行一维厄米共轭逆傅里叶变换。
norm (str, optional) –
标准化模式。对于反向变换(
ihfft()
),它们对应于:无规范化
"backward"
- 通过1/n
正规化"ortho"
- 通过1/sqrt(n)
进行标准化(使 IFFT 正交归一化)
使用相同的标准化模式调用正向变换(
hfft()
)将在两个变换之间应用整体标准化1/n
。这是使ihfft()
成为精确逆变换所必需的。默认为
"backward"
(通过1/n
进行规范化)。
- 关键字参数:
输出(张量,可选)- 输出张量。
示例
>>> 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])