MATLAB: Does the FFT2 function not return a principal diagonal matrix when applied to a circulant matrix in the Signal Processing Toolbox

circulantsdiagonalfft2matrixprincipalSignal Processing Toolbox

The FFT2 function, when applied to a circulant matrix, is supposed to give a principal diagonal matrix.
A circulants matrix is something like
x =
4 1 1
1 4 1
1 1 4
and the process of two dimensional fft on it should give:
FFT2(x)= 18 0 0
0 9 0
0 0 9
However, when I use the FFT2 function in MATLAB, the result is:
fft2(x)= 18 0 0
0 0 9
0 9 0
This is not a principal diagonal matrix.

Best Answer

FFT2 applies the FFT to the columns, then the rows. This is mentioned in the documentation for this function. You can find a copy of it online at:
Thus
fft2(x) = fft(fft(x).').'
Note that the transpose is a NON-conjugate transpose.
The theory that you are referring to is the conjugate transpose. Thus
Let
x = [ 4 1 1
1 4 1
1 1 4 ];
then
fft(fft(x)')'
ans =
18 0 0
0 9 0
0 0 9
which is a principal diagonal matrix.