Search code examples
fftfftwifftasymmetric

FFTW non-symetric inverse transform c2r


Suppose I have a real 2D matrix A(MxN), by using the FFTW3 r2c transform I take the matrix into Fourier space where B is the complex array B=fft(A(Mx(N/2+1))).

I know that B has Hermetian redundancy, so I perform some operations (left-right, up-down flips and complex conjugates) to recover the Hermetian symmetry to obtain the full complex matrix B'.

Now I perform some operations on the full complex matrix B' (such that it is no longer symmetric and want to take the inverse using c2r, how do I do this since the c2r transform is now expecting a symmetric half matrix?


Solution

  • Since B' is not symmetric, its inverse transform is not real. You cannot use c2r meaningfully on this matrix. Use the regular complex-to-complex inverse transform.