Re: [LAD] FFT 1D real

From: Fons Adriaensen <fons@email-addr-hidden>
Date: Mon Mar 14 2011 - 18:02:01 EET

On Mon, Mar 14, 2011 at 02:11:00PM +0200, Alfs Kurmis wrote:

> What typical comes in to FFT function ? Pointer to already windowed
> array of samples ?

Yes.

> What return FFT ?

Either it overwrites the input, or it needs a second pointer
to the output array.

Function return value: up to you, normally you don't need one.

> What exact physical dimensions return FFT , if input function
> dimensions was - voltage depends from (time) U=U(t) ?

The dimension of the data is the same in both domains.
If one is a function of T, then the other is a function
of 1/T (for example: T = time, 1/T = frequency).

> How from ...1024 or 2048 or 4096... FFT return values i calculate
> power magnitudes for all bands,
> and finally values for visual 10-20 hopping bars, like in Winamp ,
> XMMS , QMMP ... ?

If you want such a display the FFT is not a good way to do it.
It's possible but not simple if you want a correct result.

> If i exact know my FFT window size [for example 4096 samples] and
> window type , and it will be constant forever,
> is it possible to calculate window(,sine,cosine,) and store all
> values in constant array,
> so that in runtime it do not need be calculated , but i can just
> take values form array ?

Yes.

> 43303.2715 + 796.7285 = 44100 or 44100 - 43303.2715 = 796.7285>
> Why Frequency 796.7285 is mirrored as Frequency 43303.2715 , and
> magnitude for both Frequencies is divided by 2 ????

Because you are using a complex FFT, and the imaginary part
of your signal is zero. That means that the spectrum must be
symmetric.

> Is here way direct calculate full magnitude and without Frequency
> mirroring , in band 0 Hz ... FSampl/2 ONLY ,

Use an FFT operating on real data instead of complex.

Ciao,

-- 
FA
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev@email-addr-hidden
http://lists.linuxaudio.org/listinfo/linux-audio-dev
Received on Mon Mar 14 20:15:01 2011

This archive was generated by hypermail 2.1.8 : Mon Mar 14 2011 - 20:15:02 EET