mars.tensor.fft.ihfft#

mars.tensor.fft.ihfft(a, n=None, axis=-1, norm=None)[来源]#

计算具有厄米对称的信号的逆FFT。

Parameters
  • a (array_like) – 输入张量。

  • n (int, 可选) – 逆FFT的长度,输入中用于转换轴的点数。如果n小于输入的长度,则输入被裁剪。如果它更大,输入会用零填充。如果n未给出,则使用由axis指定的轴上的输入长度。

  • axis (int, 可选) – 用于计算逆FFT的轴。如果未给出,则使用最后一个轴。

  • norm ({无, "正交", 可选) – 归一化模式 (参见 numpy.fft)。默认值是无。

Returns

out – 被截断或零填充的输入,沿着由 axis 指定的轴进行变换,如果未指定 axis,则使用最后一个轴。变换轴的长度为 n//2 + 1

Return type

复合张量

另请参阅

hfft, irfft

备注

hfft/ihfft 是一对类似于 rfft/irfft 的函数,但用于相反的情况:在这里,信号在时间域中具有厄米对称性,并且在频率域中是真实的。因此这里是 hfft,如果结果是奇数,则必须提供结果的长度:

  • 偶数: ihfft(hfft(a, 2*len(a) - 2) == a, 在舍入误差范围内,

  • 奇数: ihfft(hfft(a, 2*len(a) - 1) == a, 在舍入误差范围内。

示例

>>> import mars.tensor as mt
>>> spectrum = mt.array([ 15, -4, 0, -1, 0, -4])
>>> mt.fft.ifft(spectrum).execute()
array([ 1.+0.j,  2.-0.j,  3.+0.j,  4.+0.j,  3.+0.j,  2.-0.j])
>>> mt.fft.ihfft(spectrum).execute()
array([ 1.-0.j,  2.-0.j,  3.-0.j,  4.-0.j])