You did not specify your source code ...
your result looks like a permission tree
used to recursively scale resolution / frequency information and extract the FFT function !!! So maybe your recursion is incorrect or you overlap the data (so that the code at the FFT location is almost madness), you should start with 1D conversion and then use it for 2D and visually check each step (also the inverse transformation according to the original data)
your FFT output must have a nonzero imaginary part !!!
- 2?
, FFT
:

=sqrt(Re*Re+Im*Im), Re Im , , . :

( , ).
[Edit1] power and wrap
power wrap , :

intensity=sqrt(Re^2+Im^2), . , , , swap((x,y),(x+xs/2,y)) swap((x,y),(x,y+ys/2)). OP,