How to interpret FFT::performFrequencyOnlyForwardTransform returned data

How do I read the returned values of the FFT for an analyzer? I'm using the FFT::performFrequencyOnlyForwardTransform method:

How I understand by looking at the SimpleFFTExample, I fill the array with getSize() numbers of samples. The second half of the data is zeroed.

Can somebody please tell me,

  • what frequency do I read at which position in the array?
  • how do I calculate the amplitude from the value, is it already like 1.0f = maximum amplitude (0dBFS)?
  • And is it linear?

Here is what I am assuming, but I want to do it right...:

Looking at the sources, the returned array is aligned with one real part and one imaginary part (phase), right?

So I should read on each even adress a frequency amplitude and e.g. for an analyzer drop every odd adress, right?

The frequency on each adress depends on getSize() and the sampling frequency, right?

The longer the data (i.e. higher order), the lower the lowest detectable frequency?

I'm looking very much forward for the DSP modules to come, my low level knowledge is unfortunately too limited...

Hey, sorry for bumping, but i have exactly the same questions. Have you found an answer to this?

1 Like