let's say we have signal in time domain. After we make FFT on it we will receive that signal in frequency domain. And as far as I know the real numbers mean magnitudes of each frequency bin, and imaginary numbers mean phase shifh of each frequency bin.
And then if we make inverse FFT we get again the the signal in time domain. And as far as I know that signal is expressed by real result of IFFT. But then what mean imaginary part of IFFT output?
And - what is also important - how to use it?
I am asking because I have problems with phase synchronising after IFFT so I wonder that maybe that imaginary part of IFFT has something to do?
What is very strange for me is that I have exactly the same algorithm and I get totally different results on two various computers.
I created the clean sine wave oscillator. And I use it to test my FFT->IFFT algorithm.
And on one machine it seems like phase is synchronised properly if my FFT->IFFT size is 4 times buffer size. I mean that for each one buffer (let's say size 512) I calculate FFT->IFFT size 2048. Where first 512 samples are my sine wave, and the rest 1536 samples are just zeros. And I get quite good results.
But on other machine with exact the same algorithm, the same buffer size 512 and the same sample rate 44100 I have phase issue that cause my signal sound awful.
I have no idea why it is happen. The only thing which come to my head is that the machine with awful IFFT signal is just slower and the awful sound is not caused by unsynchronised phase but because of gaps between each buffer. But I can't believe it while both machines are similarly powerfull.
So finally the main question is how to ensure phase is always synchronised after IFFT. And how to do that to work on all machines the same?
For any help great thanks in advance.