DSPRelated.com
Forums

Inverse FFT Results

Started by norw...@yahoo.com March 5, 2009
I will do my best to explain my problem clearly. I have this same problem using Labview, Matlab, and Scilab.

I start by building an array with three frequencies (f1,f2,and f3) starting at different times. f1 for .5 seconds, f2 for .25 seconds, and f3 for .25 seconds. So, I have one second worth of data consisting of three frequencies that are at different times.

Then, I do an FFT of this data and get my results. f1 has a higher magnitude than f2 and f3. One can make out the frequency content (for the most part); however, from the FFT results, one can't tell which frequencies started at what times. Ok, fine. I understand this so far.

BUT! What happens when you do an IFFT on this set of data? I would anticipate that I'd get some waveform with all three frequencies combined - NOT a result that displays them in their original order. But, that is exactly what I am seeing - the same time-domain data I started with.

I have also tried this by switching the order of f1,f2, and f3. And, I also did this with zero-stuffing three sets of data at different places. Meaning, each set of data had the same portion of data in it; however, at different locations. (For example, for 1000 points, let's say 100 of them contained data for 3 periods of a sine wave. For set 1, the first 100 points were used for this data. For set 2, 300-400 were used for this data. For set 3, 700-800 were used.) Then, I run an FFT on each set and then average the FFT results. I then run an IFFT on the averaged FFT results and end up the sum of the time-domain signals. ?!?!?!

How is the IFFT able to identify the times at which these signals took place?

And, finally, I ran a two chirps. One chirp starting at f4 and ending at f5. The second chirp starts at f5 and ends at f4. I then run FFT's on each of these and get the same results. Ok... But, the IFFT of these results give me the the same chirps I started with?

I am really clueless why this is working. The only explanation would be computation mehtods. But, I even saved the FFT results to a file, completely closed out of that program, opened another program, and used the FFT results to run an IFFT and got the same time-domain chirp back! I am really confused. Any help is appreciated. I hope this is somewhat clear. Let me know if I need to clarify anything.

Undergrad Student,
Dave