Re: need help understanding meaning of FFT



On Aug 8, 4:21 pm, kennheinr...@xxxxxxxxxxxx wrote:
On Aug 8, 1:21 pm, ggk <ggkm...@xxxxxxxxxxx> wrote:





Jim,

I should clarify. The data I listed above is the raw FFT data, but
when I plot the FFT to identify the spurs I only plot the magnitude
(that is, I plot 2*abs(Y)). I just wanted to show the raw FFT data in
case it helped. Also, the numbers are close to zero but the
measurement is fairly sensitive, and the noise floor is actually an
order of magnitude lower.

Rune,

I agree the energy is fairly small. It just so happens to be the
nature of the phenomenon I'm trying to analyze. Not sure what the
total energy is. Let's see, if I type sum(Y1.*conj(Y1)), it returns
4.86e-024.

Per your definitions I am using coherent averaging to evaluate the
average FFT. I think you and Ken are pointing to the same root cause
of this... lack of a fixed time reference.  If coherent averaging
isn't taking me where I want to go, can you talk about "cross
spectra"... what is it, how to do it, how it would help determine the
spur frequencies present?

Ken,

Thanks for the mental exercise to hightlight the point. I may not have
got it without that! So if I understand what you and Rune are saying,
is that because the 5 waveforms are not connected in real-time, they
lack a consistent time reference between the files, which means when
you throw in the phase information (the imaginary number in the FFT
freq bin), things don't line up. Thus, I shouldn't use coherent
averaging, but rather ... what? If I have 3 frequency bins to average,
should I use...

a1 + b1i
a2 + b2i
a3 + b3i

--> ( abs(a1 + b1i) + abs(a2 + b2i) + abs(a3 + b3i)) / 3

... for example?

Thanks so much! -GGK

If you have 3 captures to average, just average the co-located bins'
magnitude (a.k.a absolute value), not the phase.  Taking the absolute
value of a complex number is more or less the same thing as taking
x*conj(x), as suggested earlier   - that's just some alegbra to show
that (abs(x))^2 = x*conj(x).

In matlab, you'd do something like
p=(abs(fft(a))+abs(fft(b))+abs(fft(c)))/3;
where a,b,c are the three equal-length input signal captures from your
scope. Then look at the value of, for example, p(363540), to find the
average amplitude in bin 363540 across all three captures. If you then
want to average adjacent bins (say bins 363540 through 363543) you can
do this as a simple arithmetic average, since the values are real.

This will get you to the point where you know that the spur is there -
trying to extract, demodulate, or measure it accurately will be a
little more work.

 - Kenn- Hide quoted text -

- Show quoted text -

Generally for averaging FFTs, you average the magnitude squared for
each frequency rather than the magnitude.

Dirk
.



Relevant Pages

  • Re: My Sinc Estmator
    ... All other bins have almost zero magnitude. ... for the FFT. ... Increasing the FFT size will make the Quadratic Estimator more precise. ...
    (comp.dsp)
  • Re: need help understanding meaning of FFT
    ... when I plot the FFT to identify the spurs I only plot the magnitude ... If I have 3 frequency bins to average, ...
    (comp.dsp)
  • Re: My Sinc Estmator
    ... FFT bins ... For each of the array indices/bins we calculate the magnitude of the signal: ... The FFT transforms a rectangular window to a Sinc function. ... Fortunately this has reduced to a very easy-to-calculate estimator. ...
    (comp.dsp)
  • Re: Calibrating FFT results, amplitude in to magnitude out
    ... between time domain signal amplitude and frequency domain bin magnitudes. ... FFT might require that the results be divided by N to correlate with the ...  Should I expect one frequency magnitude ... Most commonly done is the DFThas a gain of N/2 where is is ...
    (comp.dsp)
  • Calibrating FFT results, amplitude in to magnitude out
    ... many DSP libraries are very meticulous about documenting the differences between their FFT or IFFT implementation results versus Matlab. ... What I haven't found in the general texts is mention of the values I should expect if I plug sinat a constant frequency into a time domain array and calculate the FFT. ... Should I expect one frequency magnitude bin to have a value of 1.0 because the sinfunction varies between -1.0 and +1.0? ...
    (comp.dsp)