[LAD] FFT 1D real
    Fons Adriaensen 
    fons at linuxaudio.org
       
    Mon Mar 14 16:02:01 UTC 2011
    
    
  
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
    
    
More information about the Linux-audio-dev
mailing list