Friday, February 9, 2018

window functions - Fourier transform artifacts


My starting point in what follows is a radially symmetric random field. Taking the Fourier transform of this (and plotting it in logarithm to highlight the patterns), I obtain the following image in Fourier space:


enter image description here



As you can see, there is a radially symmetric part of concentric circles, superimposed with a cross-pattern. Now, I do not understand this last part, but I highly suspect this to be an artifact that is not supposed to be there...


It would not surprise me if this is a problem that more people have run into this problem, but I have not been able to find an answer yet.


So, bottom line: Why is there a cross-pattern in my image?



Answer



The cross pattern is typically a border effect, due to the periodicity induced by the standard implementation and hypotheses behind the Fast Fourier transform, when the image lacks periodicity from the right to the left, and the bottom to the top. In other words: if two opposite borders lacks continuity in values (when glued together), artifacts show.



  • The easiest way out is to multiply your image by an apodizing window, that goes smoothly to $0$ on the border (imagine for instance a 2D Hamming window).

  • A mirror extension is a second option.

  • More involved, you can try the Periodic plus smooth image decomposition, that has been used in random texture synthesis. Some Python versions have been offered:




No comments:

Post a Comment

digital communications - Understanding the Matched Filter

I have a question about matched filtering. Does the matched filter maximise the SNR at the moment of decision only? As far as I understand, ...