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()。注意
支持在 GPU 架构 SM53 或更高版本的 CUDA 上使用 torch.half。但仅支持各变换维度长度为 2 的幂的信号。
- 参数:
input (Tensor) – 实数输入张量
n (int, 可选) – 信号长度。如果提供,输入将在计算厄米 IFFT 之前被零填充或截断至此长度。
dim (int, 可选) – 进行一维厄米 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])