Vous êtes sur la page 1sur 5

univdocs.

com
TD 4 FFT

1.
Démontrer la correspondance temporelle-fréquentielle de l’étape de recombinaison lors
d’une FFT et interpréter sa représentation sous la forme du diagramme « papillon ».

Domaine temporel Domaine fréquentiel

a b c d e f g h A B C D E F G H

E F× sinusoïde
G H

a 0 b 0 c 0 d 0 0 e 0 f 0 g 0 h A B C D A B C D E F G H E F G H

+ +

a e b f c g d h

Dilution avec des 0 Duplication du spectre

Décalage Multiplication par une sinusoïde

Addition Addition

Diagramme
papillon :


+ +
univdocs.com
2.

FFT de suite réelle :


Soit : x[n], n ∈ (0, N − 1) avec N pair. On construit y[n] = x[2n] + j x[2n + 1]
On note A[k ] et B[k ] les TFD de x[2n] et x[2n + 1] . Par conséquent, la TFD de y[n]
est Y [k ] = A[k ] + j B[k ] .

1. En notant que x[2n] = ( y[n] + y * [n1])/ 2 , déterminer l’expression de A[k ] en


fonction de Y [k ] . Faire de même pour B[k ] .

2. En s’inspirant de l’exercice précédent, montrer que X [k ] s’exprime en


fonction de A[k ] et B[k ] . En déduire un algorithme de calcul de la TFD d’une
suite réelle de longueur N à partir de l’algorithme de FFT complexe de
longueur N/2.

3. Comparer en nombre de multiplication l’algorithme précédent et un algorithme


de FFT complexe de longueur N.
univdocs.com
TD 4 FFT Correction

1.
Démontrer la correspondance temporelle-fréquentielle de l’étape de recombinaison lors
d’une FFT et interpréter sa représentation sous la forme du diagramme « papillon ».

Domaine temporel Domaine fréquentiel

a b c d e f g h A B C D E F G H

E F× sinusoïde
G H

a 0 b 0 c 0 d 0 0 e 0 f 0 g 0 h A B C D A B C D E F G H E F G H

+ +

a e b f c g d h

Dilution avec des 0 Duplication du spectre

Décalage Multiplication par une sinusoïde

Addition Addition

Diagramme
papillon :


+ +
univdocs.com
Pour une FFT d’ordre N = 2 m , il y a m = log 2 N étages de recombinaison : par exemple

16 signaux
de 1 point
a b c d e f g h i j k l m n o p

8 signaux
de 2 points
a b c d e f g h i j k l m n o p

4 signaux
de 4 points
a c b d e g f h i k j l m o n p

2 signaux
de 8 points
a e c g b f d h i m k o j n l p

1 signal de
16 points
a i e m c k g o b j f n d l h p

pour m = 4, N = 16 , il y a 4 étages :

Si on numérote les étages l = 0 ... m − 1 , pour l’étage l il y a (n / 2 − l ) recombinaisons de 2


signaux de 2 l points en un signal de 2 l +1 points. Si l’on appelle N l = 2 l le nombre de
points des signaux à recombiner lors de l’étage l, on a :

Dilution avec des zéros :


N l −1
Soit X [k ] = ∑ x[i ] e − j 2πki / Nl
i =0

y[2n] = x[n]
et
y[2n + 1] = 0
On a :
2 N l −1
Y [k ] = ∑ y[m] e
m =0
− j 2πkm / 2 N l
k ∈ [0, 2 N − 1]
N l −1 N −1
= ∑ y[2n] e − j 2π k 2 n / 2 Nl + ∑ y[2n + 1] e − j 2π k (2 n +1) / 2 Nl
n =0

n =0

=0
N l −1
= ∑ x[n] e − j 2π k n / N l = X [k mod N l ] = X [k mod 2 l ]
n =0

Décalage : y[n + 1] = x[n] ⇒ Y [k ] = X [k ] e j 2π k / Nl = X [k ] e j 2π k / 2 = X [k ] W2kl


l

(Pour illustration, voir l’exemple de programme en C en annexe, ou ceux en Fortran et en


Basic dans le cours).
univdocs.com
2.
FFT de suite réelle :
Soit : x[n], n ∈ (0, N − 1) avec N pair. On construit y[n] = x[2n] + j x[2n + 1]
On note A[k ] et B[k ] les TFD de x[2n] et x[2n + 1] . Par conséquent, la TFD de y[n]
est Y [k ] = A[k ] + j B[k ] .
1. En notant que x[2n] = ( y[n] + y * [n1])/ 2 , déterminer l’expression de A[k ] en
fonction de Y [k ] . Faire de même pour B[k ] .
2. En s’inspirant de l’exercice précédent, montrer que X [k ] s’exprime en
fonction de A[k ] et B[k ] . En déduire un algorithme de calcul de la TFD d’une
suite réelle de longueur N à partir de l’algorithme de FFT complexe de
longueur N/2.
3. Comparer en nombre de multiplication l’algorithme précédent et un algorithme
de FFT complexe de longueur N.

1. On a x[2n] = ( y[n] + y * [n1])/ 2 et x[2n + 1] = − j ( y[n] − y * [n1])/ 2 . Par linéarité de la


TFD :
 A[k ] = (Y [k ] + Y * [−k mod( N / 2)])
Y [k ] = A[k ] + jB[k ] avec 
 B[k ] = − j (Y [k ] + Y [−k mod( N / 2)])
*

N 2 −1 N 2 −1
2. On a A[k ] = ∑ x[2n]WNn / 2 et B[k ] =
n =0
∑ x[2n + 1]W
n =0
n
N /2 avec WN = e −2 j π / N
N 2 −1 N 2 −1
 
donc X [k ] = ∑ x[2n]W + WNk  ∑ x[2n + 1] WN2 n  = A[k ] + WNk B[k ]
2n
N
n=0  n =0 
On en déduit l’algorithme suivant pour calculer X [k ] à partir de A[k ] et B[k ] :
a. On forme la suite y[n] = x[2n] + j x[2n + 1] et on calcule la FFT Y [k ] d’ordre
N/2.
b. On calcule A[k ] et B[k ] , parties réelle et imaginaire de Y [k ] .
c. On calcule X [k ] = A[k ] + WNk B[k ] .
3. Si l’on considère que le calcule d’une FFT complexe compte ( N 2)log 2 N
multiplications complexes, on a ici ≈ ( N 4)log 2 ( N 2) multiplications pour l’étape (a)
et ( N 2) pour l’étape (c) soit en tout : ( N 2)log 2 (N 2) + (N 2) . Par exemple, pour
N = 1024 , on obtient 2816 multiplications complexes au lieu de 5120.

Vous aimerez peut-être aussi