Is FFT unitary?
The standard (conventional) definition of DFT (1D or 2D) is not unitary. Hence MATLAB's fft() and fft2() functions will not provide unitary transforms; i.e., they do not preserve energy.
What does fft2 do in Matlab?
Y = fft2( X ) returns the two-dimensional Fourier transform of a matrix using a fast Fourier transform algorithm, which is equivalent to computing fft(fft(X). '). ' . If X is a multidimensional array, then fft2 takes the 2-D transform of each dimension higher than 2.