DFT (Discret Fourier Transform) versió exponencial complexa

La sèrie de Fourier o desenvolupament de Fourier d'una funció f(x) versió exponencial complexa es defineix:


`f(x)=\sum_{n=-\infty}^\infty F(n)·e^((i2pinx)/N)`


On els coeficients de Fourier `F(n)` es calculen:


`F(n)=1/T_p\int_{-T_p/2}^(T_p/2) f(x)e^((-i2pikn)/N) dx`


Que en el cas discret es converteix:


`F(n)=1/N\sum_{k=0}^(N-1) f(k)e^((-i2pikn)/N)`


1-Si la funció és discreta i suposem que cada període té `4` valors, `{f(0), f(1), f(2), f(3)}`

L'anterior expressió queda:


`F(n)=1/4\sum_{k=0}^3 f(k)e^((-i2pikn)/4)`


`F(n)=1/4[f(0)e^((-i2pi·0·n)/4)+f(1)e^((-i2pi·1·n)/4)+f(2)e^((-i2pi·2·n)/4)+f(3)e^((-i2pi·3·n)/4)]`


    `F(0)=1/4[f(0)e^((-i2pi·0·0)/4)+f(1)e^((-i2pi·1·0)/4)+f(2)e^((-i2pi·2·0)/4)+f(3)e^((-i2pi·3·0)/4)]`


    `F(1)=1/4[f(1)e^((-i2pi·0·1)/4)+f(1)e^((-i2pi·1·1)/4)+f(2)e^((-i2pi·2·1)/4)+f(3)e^((-i2pi·3·1)/4)]`


    `F(2)=1/4[f(0)e^((-i2pi·0·2)/4)+f(1)e^((-i2pi·1·2)/4)+f(2)e^((-i2pi·2·2)/4)+f(3)e^((-i2pi·3·2)/4)]`


    `F(3)=1/4[f(0)e^((-i2pi·0·3)/4)+f(1)e^((-i2pi·1·3)/4)+f(2)e^((-i2pi·2·3)/4)+f(3)e^((-i2pi·3·3)/4)]`


O sigui `4·4=16` multiplicacions complexes i `4·3=12` sumes complexes. En general, si tenim `n` dades el nombre d0operacionss son aquestes. Algú podria pensar que n'hi ha menys que en la versió no exponencial complexa, cal recordar que son operacions amb nombres complexos.

Així si tenim `1024` dades, l'ordre de magnitud de les operacions que cal fer és de `1024^2 = 1048576`, més d'un milió. Per què he donat aquest nombre?, si fem l'análisi de les freqüències d'una veu mostrejada a `11025` mostres per segon, que no és de molt bona qualitat, `1024` mostres és aproximadament una dècima de segon de veu, que ja és de l'ordre de grandària de finestra que es fa servir.

Per veure que les dues formes són equivalents calculem, de les dues maneres el càlcul del coeficients FFT per aquetes 4 dades: `{f(0)=0, f(1)=1, f(2)=0, f(3)=-1}`



En la recerca de l'algorisme per calcular l'FFT "Divideix i venceràs"