I'm using MKL DFTI to do 2D complex in-place DFTs. I found that when the size of my data array is odd, say 89x89 or 45x45, DFT results are incorrect while when the size of my data array is even say 48x48 or 80x80, DFT results are correct. I read the MKL manual, it says that MKL supports arbitrary size of DFTs. I wonder what could cause this odd/even problem. I appreciate any help or hint.
you may take a look at the one of 2D FFT examples we have in mkl package ( <mklroot>\examples\dftc\source ). for example - basic_dp_complex_dft_2d.c - this example - complex-to-complex in-place 2D with odd problem sizes ( n1=7, n2=11).
Thanks for all the comments and replies. I finally found the problem. It is in my implementation of ifftshift of matlab function. I wish that Intel MKL have such commonly used DFT utility function, which could save me days of work.