代码之家  ›  专栏  ›  技术社区  ›  user366312

为什么FFT不能自动产生以零频率为中心的输出?

  •  1
  • user366312  · 技术社区  · 6 年前

    有一个操作调用 轮班 在DFT之后进行,将零频率分量带到频谱中心。

    关于这次手术我有两个问题:

    1. 为什么DFT不能/不能自动将零频率分量居中?
    2. 如果我们不表演会怎么样 轮班 DFT后的操作?也就是说,它如何影响我们图像处理的其他任务?
    3. 有人能提供一些资料让我知道这个叫 轮班 是吗?

    参考文献:
    - fftw shift zero-frequency to the image center
    - Why we shift the zero-frequency component to the center of the spectrum?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Cris Luengo    6 年前

    DFT, by definition n=0..N-1 k=0..N-1 n k

    k=N-1 k=-1

    cc = ifft( fft(img1) * conj(fft(img2)) )
    

    cc img1==img2 fft img1 img2

    this recent question

    kernel = ifftshift(kernel)
    filtered = ifft( fft(img) * fft(kernel) )
    

    fftshift ifftshift