Hello, I'm writing an application where I get the output of the IFFT operation, using the arm_cfft_f32 function from CMSIS-DSP library like this:
arm_cfft_f32(&arm_cfft_sR_f32_len128, out_ifft, 1, 1);
where out_ifft is a 128*2 element vector with Hermitian symmetry because I need a real output.
I prepare the same vector and I use it again in Matlab to check the results:
salidamod=ifft(ifftshift(vector,2),NFFT);
The ifftshift function swaps the left and right halves of the vector,and it's necessary due to the requirements of the Matlab ifft function. I get this results:
Only the even samples are wrong, and only reversed...It's strange and I don't know why it happens. Could someone explain me the reason, please?
Thank you in advance.
My guess would be that something isn't quite right with your Matlab code. In particular, if you are incorrectly using ifftshift then it will end up modulating your time domain signal by (-1)^n which corresponds precisely to the sign differences that you are seeing.