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