MATLAB中的fft后为何要用fftshift?

2024-11-30 10:27:57
推荐回答(1个)
回答1:

  fft是一维傅里叶变换,即将时域信号转换为频域信号;

  fftshift是针对频域的,将FFT的DC分量移到频谱中心;

  即对频域的图像,(假设用一条水平线和一条垂直线将频谱图分成四块)对这四块进行对角线的交换与反对角线的交换。

  fftshift就是对换数据的左右两边比如

  x=[1 2 3 4]

  fftshift(x) ->[3 4 1 2]


  IFFTSHIFT Inverse FFT shift.(就是fftshift的逆)

  x=[1     2     3     4     5];

  y=fftshift(x)

  y =

  4     5     1     2     3

  ifftshift(y)

  ans =

  1     2     3     4     5

  直接用fft得出的数据与频率不是对应的,fftshift可以纠正过来。

  示例如下: