numpy.fft.hfft

fft.hfft(a, n=None, axis=- 1, norm=None)[源代码]

计算具有赫米特对称性的信号的FFT,即真实频谱。

参数
aarray_like

输入数组。

n可选的

输出转换轴的长度。为了 n 输出点, n//2 + 1 输入点是必要的。如果输入的长度大于此值,则会将其裁剪。如果短于此,则用零填充。如果 n 不是给予,而是接受 2*(m-1) 在哪里? m 输入沿指定轴的长度 axis .

axis可选的

计算自由流速度的轴。如果没有给出,则使用最后一个轴。

norm{“向后”,“正交”,“向前”},可选

1.10.0 新版功能.

标准化模式(参见 numpy.fft ). 默认为“向后”。指示前向/后向变换对的哪个方向被缩放以及使用什么规格化因子。

1.20.0 新版功能: 添加了“向后”、“向前”值。

返回
out恩达雷

截断的或零填充的输入,沿所指示的轴转换 axis 或者最后一个如果 axis 未指定。转换轴的长度为 n ,或者,如果 n 没有给出, 2*m - 2 在哪里? m 是输入的转换轴的长度。要获得奇数个输出点, n 必须指定,例如 2*m - 1 在典型情况下,

加薪
IndexError

如果 axis 不是有效的轴 a .

参见

rfft

计算实际输入的一维FFT。

ihfft

hfft .

笔记

hfft /是一对类似于 `rfft /` IRFFT`,但情况正好相反:这里的信号在时间域具有赫米特对称性,在频率域是真实的。所以这里是 hfft 如果结果是奇数,则必须提供结果的长度。

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

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

厄米输入的正确解释取决于原始数据的长度,如 n . 这是因为每个输入形状可以对应于奇数或偶数长度信号。默认情况下, hfft 假设输出长度为偶数,将最后一个条目置于奈奎斯特频率;与对称对应项混叠。通过厄米对称性,这个值被认为是纯实数。为避免信息丢失,全信号的形状 must 被给予。

实例

>>> signal = np.array([1, 2, 3, 4, 3, 2])
>>> np.fft.fft(signal)
array([15.+0.j,  -4.+0.j,   0.+0.j,  -1.-0.j,   0.+0.j,  -4.+0.j]) # may vary
>>> np.fft.hfft(signal[:4]) # Input first half of signal
array([15.,  -4.,   0.,  -1.,   0.,  -4.])
>>> np.fft.hfft(signal, 6)  # Input entire signal and truncate
array([15.,  -4.,   0.,  -1.,   0.,  -4.])
>>> signal = np.array([[1, 1.j], [-1.j, 2]])
>>> np.conj(signal.T) - signal   # check Hermitian symmetry
array([[ 0.-0.j,  -0.+0.j], # may vary
       [ 0.+0.j,  0.-0.j]])
>>> freq_spectrum = np.fft.hfft(signal)
>>> freq_spectrum
array([[ 1.,  1.],
       [ 2., -2.]])