I have an circularly symmetric image in Fourier space:

where the 0-frequency is in the center. Now, I want to take the FFT of this image. Having numpy's FFT conventions in mind (i.e. 0 frequency at (0,0)), I first apply the the inverse-fftshift, and then apply the inverse-fourier transform. As follows:

image = np.fft.ifft2(np.fft.ifftshift(FT_image))

This results in the following real space image:

enter image description here

But I can't really wrap my head around this result. It looks as if another fftshift would be in order, but in real space this shouldn't be necessary. I would expect a radially symmetric transform, centered in the center of the image.

Is this expectation wrong, or is my computation wrong? And either way: can you explain why?

  • $\begingroup$ The second image looks to me like it hasn't had the IFFT applied. It looks just like a shifted version of the first one. $\endgroup$
    – Jason R
    Nov 2, 2015 at 15:33
  • $\begingroup$ Pretty much, although the circular pattern extends out further in the second image (so it has definitly been transformed). $\endgroup$
    – user1991
    Nov 2, 2015 at 16:35

1 Answer 1


Your Fourier space image is purely real, so the inverse Fourier is going to be radially symmetric about the origin. Because the origin is at (0,0), it takes a shift to put the inverse image in the center of your matrix.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.