maxframe.tensor.fft.fftshift#

maxframe.tensor.fft.fftshift(x, axes=None)[源代码]#

将零频分量移至频谱中心。

此函数会交换所有指定轴的半空间(默认为所有轴)。注意,仅当 len(x) 为偶数时,y[0] 才是奈奎斯特分量。

参数:
  • x (array_like) -- 输入张量。

  • axes (int or shape tuple, optional) -- 指定进行移位的轴。默认为 None,表示对所有轴进行移位。

返回:

y -- 移位后的张量。

返回类型:

Tensor

参见

ifftshift

fftshift 的逆操作。

示例

>>> import maxframe.tensor as mt
>>> freqs = mt.fft.fftfreq(10, 0.1)
>>> freqs.execute()
array([ 0.,  1.,  2.,  3.,  4., -5., -4., -3., -2., -1.])
>>> mt.fft.fftshift(freqs).execute()
array([-5., -4., -3., -2., -1.,  0.,  1.,  2.,  3.,  4.])

仅沿第二轴移动零频分量:

>>> freqs = mt.fft.fftfreq(9, d=1./9).reshape(3, 3)
>>> freqs.execute()
array([[ 0.,  1.,  2.],
       [ 3.,  4., -4.],
       [-3., -2., -1.]])
>>> mt.fft.fftshift(freqs, axes=(1,)).execute()
array([[ 2.,  0.,  1.],
       [-4.,  3.,  4.],
       [-1., -3., -2.]])