Vous êtes sur la page 1sur 30

TRANSFORME DE FOURIER

DISCRTE
G. BAUDOIN et J.-F. B ERCHER
cole Suprieure dIngnieurs en lectrotechnique et lectronique

Novembre 2001 version 0.1

C HAPTER I
Table des matires

Table des matires

Transforme de Fourier discrte: TFD et TFR


1
Transforme de Fourier Discrte: TFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
Dfinition de la TFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
Inversion de la TFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
Lien entre la transforme de Fourier et la TFD . . . . . . . . . . . . . . . . . . . . .
1.4
Comparaison entre la transforme de Fourier et la TFD . . . . . . . . . . . . . . . . .
1.5
Fentres de pondration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.1
Fentres rectangulaires, triangulaires et paraboliques . . . . . . . . . . . . .
1.5.2
Fentres Fentres dtruisant par addition algbrique, les lobes secondaires de
la fentre rectangulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.5.3
Autres fentres: Gauss, Kaiser, Dolph-Chebychev . . . . . . . . . . . . . .
1.6
Problmes de visualisation de la TFD . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7
Proprits de la TFD et convolution circulaire . . . . . . . . . . . . . . . . . . . . . .
1.7.1
Thorme de Parseval . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.7.2
Thorme de la convolution discrte . . . . . . . . . . . . . . . . . . . . .
1.7.3
Thorme du retard circulaire . . . . . . . . . . . . . . . . . . . . . . . . .
2
Transforme de Fourier Rapide TFR, Fast Fourier transform FFT . . . . . . . . . . . . . . . .
2.1
FFT avec entrelacement temporel . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2
FFT avec entrelacement frquentiel . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3
Bit reversal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
Formulation matricielle de lalgorithme de Cooley-Tukey . . . . . . . . . . . . . . . .
2.5
Autres algorithmes de FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6
Utilisation de la FFT pour la convolution rapide . . . . . . . . . . . . . . . . . . . . .
2.7
Calcul de convolution par section dune des suites . . . . . . . . . . . . . . . . . . .
Exercices et problmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3
5
5
5
6
6
8
9
10
11
12
14
14
14
15
16
17
17
20
22
22
25
25
26
28

C HAPTER I
TRANSFORME DE FOURIER DISCRTE: TFD
ET TFR

ORSQU ON

dsire calculer la transforme de Fourier dune fonction x(t) laide dun ordinateur, ce dernier
nayant quun nombre fini de mots de taille finie, on est amen :

discrtiser la fonction temporelle,


tronquer la fonction temporelle,
discrtiser la fonction frquentielle.
X( f ) =

+

x(t)e j2 f t dt

En approchant lintgrale par une somme daires de rectangles de dure Te et en limitant la dure dintgration
lintervalle [0, (N 1)Te ], on obtient:
X( f ) Te

(N1)

x(nTe )e j2 f nTe

n=0

Ce qui donne pour les valeurs de frquences fk = k fe /N:


X( fk ) Te

(N1)

x(nTe )e j2

nk
N f e Te

Te

n=0

(N1)

x(nTe )e j2 N

nk

n=0

Ce nest pas une approximation sophistique de X( f ), mais elle est trs utilise en pratique sous le nom de
TFD car il existe un algorithme de calcul efficace appel FFT (Fast Fourier Transform) ou TFR (Transforme
de Fourier rapide).
La TFD est par ailleurs utilise, lorsque lon travaille avec des suites numriques sans lien avec un signal
physique, pour dfinir une reprsentation de la suite sur une base de fonctions frquentielles.

1 Transforme de Fourier Discrte: TFD


1.1 Dfinition de la TFD
On appelle transforme de Fourier discrte dune suite de N termes x(0), x(1), . . . , x(N 1), la suite de N termes
X(0), X(1), . . . , X(N 1), dfinis par
X(k) =

N1

x(n)e j2

nk
N

n=0

En pratique, les N termes x(n) peuvent tre N chantillons dun signal analogique chantillonn:
xn = x(nTe ), et les N termes X(k) correspondre une approximation ( un facteur multiplicatif Te prs) de la
transforme de Fourier de ce signal aux N points de frquence fk = k fe /N, avec k entre 0 et N 1, cest dire
f entre 0 et fe .

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 6

1.2 Inversion de la TFD


x(n) =

nk
1 N1
X(k)e j2 N

N k=0

En effet, calculons:
nk
1 N1
1 N1
X(k)e j2 N =

N k=0
N k=0


N1
(ni) k
1 N1
x(i) e j2 N
N i=0
k=0

A =
A =
si
si

N1

i = n

e j2

(ni) k
N

(ni) k
N

k=0
N1

i = n

e j2

k=0

1 N1
x(i)
N i=0

A =

x(i)e

j2

e j2

ik
N

nk
N

i=0

1 ei2 (ni)

N1

1 ei2

ni
N

=0

N1

1=N

k=0
N1

e j2

(ni) k
N

k=0

A = x(n)

1
x(n)N
N

c.q.f.d.

1.3 Lien entre la transforme de Fourier et la TFD


Soit x(t) un signal analogique continu.
1. On chantillonne x(t) fe = 1/Te .

x(t)

xe (t) =

x(nTe ) (t nTe ) = x(t)P(t)

n=

o P(t) est la fonction peigne :


P(t) =

(t nTe )

TF




n=

1 +
P( f ) =

Te n=

n
f
Te

Lchantillonnage rend le spectre priodique et peut entraner un phnomne de recouvrement de spectre


ou aliasing.
x(t)

|X(f)|
1

xe(t)

|Xe(f)|
1/Te

-1/Te 1/Te

2. On tronque la suite xe (nTe ) en ne conservant quun nombre fini N de termes pour obtenir le signal xtr (t)
form des chantillons: x(0) . . . x((N 1)Te ):
xtr (t) = xe (t)F(t) =

N1

x(nTe ) (t nTe)

n=0

xtr (t) = x(t)P(t)F(t)

1. Transforme de Fourier Discrte: TFD

Page 7

o F(t) est une fonction fentre de dure NTe



1
F(t) =
0



si t T2e , T0 T2e
sinon

o T0 = NTe.
F(t)

|F(f)|
1
T0

-Te/2

T0-Te/2

xtr(t)

f
|Xtr(f)|

La convolution avec un sinus cardinal introduit des ondulations sur le spectre. Elles sont appels ripples en
anglais.
Xtr ( f ) =

N1

x(nTe )e j2 f nT

n=0

3. On chantillonne Xtr ( f ) 1/T0


On obtient alors N valeurs diffrentes espaces de 1/T0 entre 0 et 1/Te , car T0 = NTe. Cette dernire
opration rend priodique la fonction dans le temps. Appelons xc (t) la fonction rsultante.


  

+
+
n
n
n
f
= Xtr
Xc ( f ) = Xtr ( f ) f
T0
T0
T0
n=
n=

 

+
N1
nk
n
Xc ( f ) =
x(kTe )e j2 N f T
n= k=0
0
+

xc (t) = T0

xtr t nT0

n=

xc (t) et Xc ( f ) sont deux distributions chantillonnes relies par la transformation de Fourier.

xc(t)

|Xc(f)|
Te
1/NTe

T0=NTe

fe=1/Te

On obtient donc une correspondance entre N points dans le domaine temporel xc (nTe ) et N points dans le
domaine frquentiel Xc (n/T0 ), pour n entre 0 et N 1. De plus:
xc (nTe ) = T0 x(nTe ) pour n [0, N 1]
 
N1
nk
k
= x(nTe )e j2 N
Xc
T0
n=0

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 8

cest--dire que la suite Xc (k) = Xc (k/T0 ) est prcisment la TFD de la suite x(n) = x(nTe ).

1.4 Comparaison entre la transforme de Fourier et la TFD


Soit un signal x(t) et sa transforme de Fourier X( f ) .
la suite x(nTe ) pour n [0, (N 1)] correspond la suite TFD X(k) pour k [0, (N 1)] avec:
X (k) =

N1

x(nTe )e j2

nk
N

n=0

Quel est le lien entre X( f ) et X(k) pour k [0, (N 1)] ?


On pose T0 = NTe .
Dans le cas o:
x(t) est priodique de priode ,
x(t) est bande limite [ fmax , fmax ],
la largeur de la fentre F(t) est gale un multiple de , T0 = k ,
et la frquence dchantillonnage fe = 1/Te est suprieure 2 fmax .
Il y a concidence un facteur multiplicatif prs entre X(k) et X( f = k/T0 ):
 
 
T
k
k
=NX
X(k) = 0 X
Te
T0
T0
En effet, x(t) tant priodique de priode a un spectre form de raies distantes de 1/ . De plus, ce spectre est
limit fmax .

|X(f)|
1

-fmax

1/

fmax

Les trois oprations qui conduisent la suite X(k) auront les consquences suivantes:
1. Lchantillonnage de x(t) fe rend priodique le spectre et le multiplie par 1/Te .

|Xe(f)|
1/Te

-fmax

1/

fmax

fe

1. Transforme de Fourier Discrte: TFD

Page 9

2. La troncation de xe (t) par une fentre de largeur T0 a pour effet de convoluer le spectre avec un sinus
cardinal qui sannule tous les 1/T0 avec T0 = k .
|Xtr(f)|

T0/Te

fe

3. Lchantillonnage du spectre la frquence 1/T0 a pour effet de ne conserver que des valeurs o Xtr et X
concident au facteur T0 /Te = N prs. Cest le seul cas o il y a identit entre la TFD et la TF au facteur
N prs, aux N points de calcul k/T0 avec k [0, (N 1)].
Dans tous les autres cas, la TFD diffre de la TF aux points k/T0 . Lerreur est introduite:
par recouvrement de spectre si X( f ) nest pas support limit, erreur que lon minimise en augmentant
fe .
par les ondulations dues la troncature par la fonction fentre si x(t) nest pas priodique ou dure limite: erreur que lon peut chercher attnuer en choisissant une fentre autre que la fentre rectangulaire
(fentre de Hanning par exemple) et en augmentant autant que possible la largeur de la fentre.
pour les deux premires raisons la fois si x(t) nest ni dure limite ni bande limite
mme si x(t) est priodique et bande limite, on introduit une erreur si la fentre de troncature na pas
une dure gale un multiple de la priode car la troncature introduit alors de fortes discontinuits (voir
la figure suivante).

xc(t)

x(t)

1.5 Fentres de pondration


De nombreuses fentres de pondration ont t proposes pour lanalyse spectrale. Ces fentres sont utilises
pour limiter (tronquer) la dure temporelle du signal x(t) analyser. En notant x(t) le signal, F(t) la fentre, et
xtr (t) le signal tronqu, on obtient la relation suivante:
xtr (t) = x(t)F(t)
et dans le domaine frquentiel:
Xtr ( f ) = X( f )  F( f )

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 10

Pour une mme dure temporelle NTe, on compare les diffrentes fentres essentiellement par leurs propits
frquentielles. Idalement, on aimerait que la troncation du signal en temps ne modifie pas son contenu frquentiel, cest- -dire que X( f ) = Xtr ( f ), ce qui suppose que F( f ) = ( f = 0). En pratique, ce nest pas possible
et les fentres F( f ) prsentent un lobe principal de largeur non nulle centr autour de la frquence nulle et en
gnral des lobes secondaires de hauteur non nulle. On peut caractriser une fentre par des paramtres tels
que:
La largeur du lobe principal, mesure 3 dB dattnuation par rapport lamplitude en f = 0, ou bien
mi-hauteur.
La hauteur maximale des lobes seconadaires (quand ils existent).
Ces paramtres influencent respectivement la rsolution et la dynamique de lanalyse spectrale.
La rsolution est la capacit distinguer 2 frquences proches. La dynamique est la capacit mesurer des
composantes frquentielles damplitudes trs diffrentes sans que la plus forte ne masque la plus faible.
De manire gnrale, la largeur du lobe principal est inversement proportionnelle la dure temporelle de
la fentre.
1.5.1

Fentres rectangulaires, triangulaires et paraboliques

Fentre rectangulaire Fr (t)


Une fentre rectangulaire Fr (t) centre de dure NTe scrit en temps et en frquence:
Fr (t) = rectNTe (t)
Fr ( f ) =

sin 2 f N Te /2
2 f N T2e

La transform de Fourier de la fentre rectangulaire, prsente des lobes secondaires importants qui ne
dcroissent quen 1f . Le lobe secondaire le plus haut nest qu -13 dB en dessous de lamplitude en
f = 0.
Fentre triangulaire Ft (t) et fentre parabolique Fp (t)
La fentre triangulaire Ft (t) (appele aussi fentre de Bartlett) et la fentre parabolique Fp (t) se dduisent
simplement de la fentre rectangulaire par lvation au carr ou au cube de Fr ( f ). Les transformes de
Fourier ainsi obtenues dcroissent donc en f12 et en f13 . elles sont respectivement gales :


2
3
sin E T6e
sin N T4
ou Fp ( ) =
Ft ( ) =
Te
Te
N

De plus, lamplitude maximum des lobes secondaires est -26 db en dessous du lobe principal dans le
cas de Ft ( ), et -39 db dans le cas de Fp ( ). Par contre, le lobe principal est, dans les 2 cas, plus large
que pour la fentre rectangulaire.
Dterminons les expressions temporelles de Ft ( ) et de Fp ( ):
Ft ( ) = Fr ( ) Fr ( )


donc
Ft (t) = Fr (t) Fr (t) = 1

2| t |
NTe

et
Fp ( ) = Ft ( ) Fr ( )
donc


Fp (t) = Ft (t) Fr (t) = 1

La figure suivante reprsente la fentre triangulaire.

t
NTe

2

1. Transforme de Fourier Discrte: TFD

Page 11

|F(f)|

F(t)

NTe

La figure suivante reprsente la fentre parabolique.


F(t)

|F(f)|

NTe

1.5.2

Fentres Fentres dtruisant par addition algbrique, les lobes secondaires de la fentre rectangulaire

Dautres fentres intressantes sobtiennent en dtruisant les lobes secondaires de la fentre rectangulaire, par
addition algbrique. On peut citer dans cette catgorie la fentre cosinusodale, les fentres de Hanning, de
Hamming, de Blackman.
Fentre cosinusode Fc (t)
Lexpression algbrique de la fentre cosinusode est:
 



1
1
1
FR f
+ FR f +
Fc ( f ) =
2
2NTe
NTe


t
Fc (t) = Fr (t) cos
NTe
Les lobes secondaires de Fc ( f ) sont plus faibles que ceux de Fr ( f ); ainsi lamplitude maximum de ces
lobes est 34 db en dessous de lamplitude en f = 0 et leur dcroissance est en 1/ f2 . Par contre, le lobe
principal est plus large.
Fentre de Hanning FH
Nous avons vu prcdemment comment, par une combinaison algbrique de deux fonctions dduites
de Fr ( f ) par des dcalages en frquence, on pouvait diminuer lamplitude des lobes secondaires mais
en augmentant la bande de transition. On peut encore diminuer lamplitude des lobes secondaires en
augmentant le nombre de fonctions combines algbriquement. Cest le cas pour la fentre de Hanning
(voir la figure suivante).
F(t)

|F(f)|

f
NTe

Lexpression algbrique de la fentre de Hanning est (en notant T0 = NTe ):






1
1
1
1
1
F ( f ) + FR f
+ FR f +
FH ( f ) =
2 R
4
T0
4
T0

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 12




1
t
FH (t) =
1 + cos 2
2
T0
FH (t) = 0 ailleurs.

pour



t T0 /2, T0 /2

Lamplitude maximum des lobes secondaires est alors gale -44 db (en dessous du lobe principal); ils
dcroissent en f13 . Le lobe principal est presque 2 fois plus large que pour la fentre rectangulaire.
Fentre de Hamming Fhm
On peut amliorer les rsultats obtenus par la fentre prcdente en modifiant les pondrations de Fr ( f ),
Fr ( f 1/NTe ) et Fr ( f + 1/NTe ):
Fhm ( f ) = 0.56 Fr ( f ) + 0.22 [Fr ( f 1/NTe ) + Fr ( f + 1/NTe )]
Dans ce cas, la dcroissance des lobes secondaires est toujours en 1/ f3 mais lamplitude maximum de
ces lobes est -60 db sous le lobe principal.
Lexpression temporelle Fhm (t)de la fentre de Hamming scrit:
e
Fhm (t) = 0, 56 + 0, 44 cos(2 t/NTe ) NT
2 < t <
= 0 ailleurs

NTe
2

Fentre de Blackman FB (t)


Pour diminuer encore lamplitude des lobes secondaires, on peut combiner:
Fr ( f ), Fr ( f 1/NTe ), Fr ( f 2/NTe ), Fr ( f + 2/NTe ), Fr ( f + 1/NTe ) selon la loi suivante:

FB ( f ) = 0, 42 Fr ( f ) + 0, 25 [Fr ( f 1/NTe ) + Fr ( f + 1/NTe )]


+ 0, 08 [Fr ( f 2/NTe ) + Fr ( f + 2/NTe )]
La dcroissance des lobes secondaires est en f15 ; lamplitude maximum des lobes secondaires est -87
db en dessous du lobe principal; Le lobe principal est 2 fois plus large que pour la fentre rectangulaire.
Lexpression temporelle de la fentre est:
FB (t) = 0, 42 + 0, 5 cos(2 t/NTe ) + 0, 08 cos(4 t/NTe )
ou 0 ailleurs
1.5.3

NTe
2

<t <

NTe
2

Autres fentres: Gauss, Kaiser, Dolph-Chebychev

Fentre de Gauss Fg (t)


Pour supprimer totalement les lobes de la transforme de Fourier de la fentre rectangulaire, on peut
utiliser une fentre telle que sa transforme de Fourier Fg ( f ) soit une exponentielle

(N Te /2)2
Fg ( ) = exp
4k

Le paramtre k est li ladispersion de lexponentielle en prenant comme variable rduite u =


N Te /2. est alors gal 2k. On pourra donc rgler la dispersion de Fg ( f ), cest--dire la largeur de
la bande de transition en faisant varier k.


Cherchons lexpression temporelle de cette fonction: Fg (t) = exp 4k(t/NTe )2 , une constante prs
puisque la transforme de Fourier conserve la loi gaussienne:

2
t2
)
exp ( ) exp (
2
2

La fentre gaussienne a donc pour expression:

1. Transforme de Fourier Discrte: TFD

Page 13



Fg (t) = exp 4k(t/MT )2 si | t | < NTe/2
Fg (t) = 0 si | t | > NTe/2
Le paramtre k permet de raliser un compromis entre londulation en bande attnue et la largeur de la
bande de transition, ce que ne permettaient pas de faire les fentres dcrites prcdemment.
Fentre de Kaiser FK (t)
Cette fentre est une des plus efficaces: sa transforme de Fourier FK ( f ) a pour expression


2 V2
sin

V
a
2

FK (V ) =
2
2
I0 (Va ) V Va
o V = f NTr , Va = fa NTe ,
premire espce.


V 2 Va2 peut tre complexe et I0 (x) est la fonction de Bessel modifie de

Cette fonction dpend dun paramtre Va qui permet de diminuer lamplitude des lobes secondaires mais
qui augmente la largeur du lobe principal. Dans la plupart des applications, une valeur de Va comprise
entre 4/ et 9/ conviendra.
4/ < Va < 9/
Lexpression temporelle de la fentre de Kaiser, transforme de Fourier inverse de FK ( f ) est

FK (t) =




I0 Va 1 (2t/NTe )2
I0 ( Va)
FK (t) = 0

si | t | < NTe /2

ailleurs

Comparaison avec la fentre de Hamming:


Pour obtenir une bande de transition gale celle de la fentre de Hamming, il suffit dimposer
que le

premier zro de la fonction FK ( f ) corresponde V = 2, cest--dire dimposer que Va = 3 puisque le


premier zro est solution de lquation V2 Va2 = 1. Dans ces conditions, la fentre de Kaiser a 99,8
% de son nergie dans le lobe principal alors que la fentre de Hamming na que 96,3 % de son nergie
dans ce lobe ; par consquent, londulation en bande attnue sera meilleure dans le cas de la fentre de
Kaiser.
Comparaison avec la fentre de Blackman:
On peut obtenir la mme largeur de lobe principal
avec la fentre de Kaiser, en positionnant le premier

zro V = 3, cest--dire en faisant Va = 2 2. A nouveau, londulation en bande attnue est infrieure


dans le cas de la fentre de Kaiser.
Fentre de Dolph-Chebychev FD
La fentre de Doph-Tchebychev est celle qui est ralise le meilleur compromis largeur du lobe principal,
hauteur des lobes secondaires.
Lexpression mathmatique de cette fentre exprime dans le domaine frquentiel est:


cos Pcos1 ( cos f Te )
FD ( f ) =
ch [P arg ch( )]
o P = N-1, N impair.
Le paramtre permet de rgler lamplitude des ondulations.
les fonctions cos(x) et cos1 (x) sont des fonctions complexes.

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 14

Lamplitude maximum des ondulations est lie au paramtre par la relation

1
ch [ P arg ch( ) ]

Lexpression temporelle de cette fentre na pas une forme simple ; la meilleure faon de lobtenir tant
de calculer la transforme de Fourier inverse de FD ( f ) en utilisant la transforme de Fourier discrte.
Dans tous les cas, nombre N de coefficients constant, on devra raliser un compromis entre lamplitude
des ondulations et la largeur du lobe principal. Il faudra choisir entre une moins grande dispersion ou une
meilleure rsolution.

1.6 Problmes de visualisation de la TFD


Quand on lui prsente un graphe discret, lil ralise une interpolation entre les points du dessin. Cette interpolation est dautant plus russie que les points sont rapprochs.
Pour observer la fois un beau signal x(n) et un beau spectre, on ne peut visualiser le mme buffer
.
Pour le graphe temporel, on a intrt ce que Te << T0 mais si Te << T0 alors 1/Te sera trop grand par
rapport 1/T0 et lil aura du mal interpoler le graphe frquentiel
. Pour amliorer le graphe frquentiel on peut rajouter des 0 la suite x(n), on ne change rien au rsultat
mais on augmente T0 /Te .
On appelle cette opration zero-padding en anglais.
Exemple: soit x(t) dont la frquence de Shannon (2 fmax ) est 128 Hz = fSH
1. pour visualiser en temps , on chantillonne une dure T 1024 Hz = 8 fSH
2. pour visualiser le spectre, on chantillonne 128 Hz une dure gale 8 T en rajoutant des 0 la suite
x(n).
On aura alors le mme nombre de points sur une priode de signal et de spectre et les deux graphes seront
bien visualiss.

1.7 Proprits de la TFD et convolution circulaire


Elles sont analogues celles de la Transforme de Fourier, mais il faut prendre en compte une notion de
priodicit des squences.
1.7.1

Thorme de Parseval

Le thorme de Parseval, sous sa forme discrte, scrit:


N1

N1

|x(nTe )|2 = N |X(k)|2

n=0

k=0

Dmonstration:
N1

|x(nTe )|

n=0

N1

|x(nTe )|

n=0

Or:
Si

k = l

1 N1

N 2 n=0

N1

Xk e

k=0

2 j nk
N

N1


nl
Xl e2 j N

l=0




N1
1 N1 N1

2 j n(kl)
Xk Xl e N
N 2 k=0
n=0
l=0
N1

e2 j

n=0

n(kl)
N

1 e2 j (kl)
=0
e2 j (kl)/N

1. Transforme de Fourier Discrte: TFD

Et si

Page 15

k=l

N1

e2 j

n(kl)
N

=N

n=0




N1
n(kl)
1 N1 N1
1 N1
= |Xk |2
|x(nTe )| = N 2 Xk Xl e2 j N
N k=0
n=0
n=0
k=0 l=0

On en dduit:

N1

1.7.2

Thorme de la convolution discrte

Avant de prsenter les rsultats concernant la convolution discrte, on a besoin de dfinir les notions de convolution circulaire et de convolution linaire.
Convolution circulaire:
Soit 2 suites priodiques (x(n)) et (y(n)) de priode N. La convolution circulaire de ces 2 suites donne la suite
(z(n)) de priode N dfinie par:


(z(n)) = (x(n)) (y(n)) =

N1

x(i)y(n i)

pour

n [0, N 1] ,

i=0

o la notation ||n i|| signifie (n i) modulo N.


Convolution linaire:
La convolution linaire dune priode de (x(n)) et dune priode de (y(n)) conduit quant--elle une suite
(u(n)) de longueur 2N 1 valant:


(u(n)) = (x(n)) (y(n)) =

N1

x(i)y(n i)

pour

n [0, 2N 1]

i=0

EXEMPLE:
Soit les suites (x(n)) et (y(n)) priodiques de priode N = 3, telles que
x(n) = y(n) = 1

pour n entre 0 et 2.

La suite (z(n)), convolution circulaire des suites (x(n)) et (y(n)) est priodique de priode N = 3, et vaut
z(n) = 3 pour n entre 0 et 2. La suite (u(n)), convolution linaire des suites (x(n)) et (y(n)) est de dure
2N 1 = 5, et vaut:
z(0) = 1, z(1) = 2, z(2) = 3, z(3) = 2, z(4) = 1.
La suite (z(n)) peut sobtenir en rptant priodiquement la suite (u(n)) avec la priode N.

Une priode de xn

Une priode zn

Une priode yn

Suite un

Suite zn obtenue en rendant un priodique

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 16

Thorme de la convolution discrte circulaire La TFD de la suite (z(n)) convolution circulaire de 2 suites
priodique (x(n)) et (y(n)) de priode N, est le produit des TFD des suites (x(n)) et (y(n)):
z(n) = x(n) y(n) T FD(z(n)) = T FD(x(n))T FD(y(n))

(I.1)

o le symbole reprsente la convolution circulaire.

Rciproquement, la suite p(n) produit des suites x(n) et y(n), a pour TFD une suite P(k) qui est la convolution circulaire des suites X(k) et Y (k):
p(n) = x(n)y(n) P(k) = X(k) Y (k)
avec P(k) = T FD(p(n)), X(k) = T FD(x(n)),Y (k) = T FD(y(n)).
Dmonstration de (I.1)

(z(n)) = (x(n)) (y(n)) =

N1

x(i)y(n i)

pour

i=0

Z(n) =

N1

z(i)e

i=0

Z(n) =

N1

j2 ni
N

N1

x(k)e

N1

x(k)e j2

k=0

N1

x(k)y(i k)

j2 nk
N

k=0

i=0

i=0

Z(n) =

N1

k=0

e j2 N

ni


j2 n(ik)
N

y(i k)e


nk
N

n [0, N 1]

N1

y(k)e j2

nk
N

N1

N1

x(k)e

i=0

j2 nk
N

j2 nik
N

y(i k)e

k=0

= X(n)Y (n)

k=0

Relation entre convolution discrte linaire et convolution continue


Soit x(t) et y(t) de dures finies. La convolution de x(t) avec y(t) scrit u(t):
u(t) =

+

x( )y(t )d

chantillonnons x(t) et y(t) fe = 1/Te . On obtient alors P chantillons pour x et Q chantillons pour y.
On peut approcher lintgrale u(t) par la mthode de lintgration rectangulaire (de pas Te ). La suite vn
ainsi obtenue (au terme multiplicatif Te prs) correspond une convolution discrte linaire (et non circulaire)
des suites x(n) et y(n).
P+Q1

v(n) =

x(k)y(n k)

k=0

1.7.3

Thorme du retard circulaire

Soit la suite x(n) priodique, de priode N.


Soit la suite yn obtenue en retardant x(n) de ko chantillons. La suite y(n) est priodique de priode N et
sa TFD Y (k) se dduit de celle de x(n) par:
Y (k) = X(k)e j2 kko /N
o Y (k) et X(k) sont les TFD de x(n) et y(n).

2 Transforme de Fourier Rapide TFR, Fast Fourier transform FFT


La Transforme de Fourier Rapide (note par la suite FFT) est simplement une TFD calcule selon un algorithme permettant de rduire le nombre doprations et, en particulier, le nombre de multiplications effectuer.
Il faut noter cependant, que la rduction du nombre doprations arithmtiques effectuer, nest pas synonyme
de rduction du temps dexcution. Tout dpend de larchitecture du processeur qui excute le traitement.
Pour calculer une TFD, on doit calculer N valeurs X(k):
X(k) =

N1

x(n)e j2

nk
N

n=0

et ceci pour k [0, N 1].


Si on effectue le calcul directement sans algorithme efficace, on doit effectuer:


N2
N(N 1)

multiplications complexes
additions complexes

Il existe diffrents algorithmes de FFT. Le plus connu est srement celui de Cooley-Tukey (appel aussi
entrelacement temporel ou decimation in time ) qui rduit
N
log2 (N) le nombre de multiplications.
2
Il existe deux versions de lalgorithme:
FFT avec entrelacement temporel,
FFT avec entrelacement frquentiel.
Lalgorithme ncessite que N soit une puissance de 2. Le principe de lalgorithme consiste dcomposer le
calcul de la TFD dordre N = 2l en l tapes successives.

2.1 FFT avec entrelacement temporel


Illustrons tout dabord la mthode par un exemple pour N = 4.
Les donnes sont notes x(n) et la suite TFD X(n).
La notation w reprsente e j2 /N , cest-- dire e j2 /4 . On peut remarquer que wN = 1 et wN/2 = 1.
Pour N = 4, w4 = 1 et w2 = 1.
la suite TFD scrit:
X(0) = x(0) + x(1) + x(2) + x(3) = (x(0) + x(2)) + (x(1) + x(3))
X(1) = x(0) + w1 x(1) + w2 x(2) + w3 x(3) = (x(0) x(2)) + w1 (x(1) x(3))
X(2) = x(0) + w2 x(1) + w4 x(2) + w6 x(3) = (x(0) + x(2)) (x(1) + x(3))
X(3) = x(0) + w3 x(1) + w6 x(2) + w9 x(3) = (x(0) x(2)) w1 (x(1) x(3))
Les donnes (x(0), x(1), . . . , x(N 1)) sont regroupes en 2 paquets: un paquet form des donnes dindices
pairs (x(0), x(2), . . . , x(N 2)) et un paquet form des donnes dindices impairs (x(1), x(3), . . . , x(N 1)).
Soit pour N = 4, un paquet (x(0), x(2)) et un paquet (x(1), x(3)).
Puis sur chaque paquet on effectue une DFT dordre N/2 et on combine les rsultats de ces 2 DFT pour obtenir
celle dordre N. Ce qui donne, toujours pour N = 4:

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 18

x0
x2

x1
x3

TFD
ordre
N/2=2

Y0 = x0+x2

X0=Y0+Z0=x0+x1+x2+x3

Y1 = x0 - x2

X1=Y1+w1Z1=x0+w1x1-x2-w1x3

TFD
ordre
N/2=2

Z0 = x1+x3

w1
X2=Y0 - Z0=x0 - x1+x2 - x3

Z1 = x1 - x3

X3=Y1 - w1Z1=x0 - w1x1 - x2 +w1x3

Pour obtenir les 4 valeurs X(k), il suffit donc de calculer 2 DFT dordre N/2 = 2 et de combiner les rsultats
2 2 laide dune addition et dune multiplication au maximum, pour chaque valeur X(k). Cette tape est
appele tage de papillons , pour des raisons videntes lies la forme du schma de calcul. Ce rsultat se
gnralise toute valeur valeur de N multiple de 2. En effet:
X(k) =

N1

x(n)e j2

nk
N

n=0

N/21

X(k) =

N/21

j2 2ik
N

x(2i)e

i=0

x(2i + 1)e j2

ik
j2 N/2

x(2i)e

j2 Nk

N/21

+e

i=0

x(2i + 1)e j2 N/2


ik

i=0

N/21

X(k) =

2(i+1)k
N

i=0

N/21

X(k) =

y(i)e j2 N/2 + wk
ik

N/21

i=0

z(i)e j2 N/2
ik

i=0

On note y(i) = x(2i) et z(i) = x(2i + 1), pour i [0, (N/2 1)]. On remarque que les 2 termes de la somme
donnant X(k) se dduisent directement des 2 TFD dordre N/2 des suites y(i) et z(i) de N/2 points. On note
ces TFD Y (k) et Z(k).
Ainsi pour k N/2 1, les 2 termes de la somme se dduisent des termes de rang k de Y (k) et Z(k):
N/21

X(k) =

j2

y(i)e

ik
N/2

N/21

+w

i=0

z(i)e j2 N/2 = Y (k) + wk Z(k)


ik

i=0

Pour k [N/2, (N 1)], on peut crire k = k + N/2, avec k [0, (N/2 1)]. De plus, comme quelque soit i
entier e j2 i = 1, on peut dduire X(k) des termes de rang k N/2 des 2 TFD Y (k) et Z(k):
N/21

X(k) =

y(i)e j2 N/2 + wk
ik

i=0
N/21

X(k) =

N/21

X(k) =

ik

i=0

y(i)e j2

i(k +N/2)
N/2

N/21

+ wk

i=0
N/21

z(i)e j2 N/2

z(i)e j2

i(k +N/2)
N/2

i=0

y(i)e j2 N/2 + wk
ik

i=0

N/21

z(i)e j2 N/2
ik

i=0

X(k) = Y (k N/2) + w Z(k N/2)


k

En conclusion, pour tout N multiple de 2, on peut calculer chaque terme X(k) de la TFD dordre N en combinant, laide dau plus 1 multiplication et 1 addition, 2 termes des TFD dordre N/2 des 2 suites y(i) et z(i)
de longueur N/2, formes respectivement des termes dindices pairs et des termes dindices impairs de la suite
x(n). En notant Y (k) et Z(k) les TFD dordre N/2 de ces suites on peut crire:


N
X(k) = Y (k) + wk Z(k)
Pour k 0, 1
2

2. Transforme de Fourier Rapide TFR, Fast Fourier transform FFT



Pour


N
,N 1
2

Page 19

X(k) = Y (k N/2) + wk Z(k N/2)

On appelle papillon , ltape de calcul consistant calculer 2 points de la TFD dindices distants de N/2,
par exemple X(k) et X(k + N/2) avec k [0, N/2 1]. Le calcul de ce couple de valeurs de la TFD dordre N
utilise le couple de valeurs Y (k) et Z(k) des TFD dordre N/2:


N
X(k) = Y (k) + wk Z(k)
Pour k 0, 1
X(k + N/2) = Yk + wk+N/2 Z(k) = Y (k) wk Z(k)
2
Chaque papillon ncessite 1 multiplication et 2 additions ou soustractions.
Ainsi tout TFD dordre N multiple de 2, peut se calculer laide de 2 TFD dordre N/2 et dun tage de
N/2 papillons.
La complexit de calcul, pour la TFD dordre N est donc gale celle de 2 TFD dordre N/2 plus celle de
N/2 papillons. Si on suppose que les TFD dordre N/2 sont calcules directement (sans algorithme efficace),
on peut dire que:
Le calcul dune TFD dordre N pair, avec cet algorithme, demande:


2
2
2 N2 = N2 multiplications complexes


Le calcul de 2 TFD dordre N/2:
2 N2 N2 1 = N N2 1 additions complexes
 N
2 multiplications complexes
Le calcul de N/2 papillons:
N additions/soustractions


Soit un total de

au lieu de:

N2 N
2 + 2 multiplications complexes
N2
2 additions complexes

N2
N(N 1)

multiplications complexes
additions complexes

pour le calcul direct.


Ainsi pour N = 4, on a besoin de 10 multiplications et de 8 additions/soustractions complexes au lieu de 16
multiplications et de 12 additions/soustractions complexes.
Si N/2 est un multiple de 2, on peut ritrer la mthode pour le calcul des 2 TFD dordre N/2. Chaque
TFD dordre N/2 est alors calcule laide de 2 TFD dordre N/4 et de N/4 papillons, ce qui donne au total 4
TFD dordre N/4 plus 2 tages de N/2 papillons.
Dune manire plus gnrale si N est une puissance de 2, N = 2l , on peut ritrer la mthode l fois et calculer la TFD dordre N laide de l tages de N/2 papillons, avec l = log2 (N). La complexit de calcul dune
TFD dordre N devient alors celle de l tages de N/2 papillons, soit:
 N
l 2 = log2 (N) N2 multiplications complexes
l N = log2 (N)N additions complexes
Cet algorithme est lalgorithme de FFT avec entrelacement temporel (base 2) de Cooley-Tukey.
Ainsi pour N = 1024 = 21 0, le calcul direct demande: 1024x1024 multiplications et 1024x1023 additions, alors
que le calcul avec lalgorithme de FFT demande: 10x512 multiplications et 10x1024 additions. Dans ce cas,
lalgorithme divise environ par 200 le nombre doprations effectuer. Lefficacit de la FFT augmente avec N.
Pour N = 4, le schma complet de lalgorithme est le suivant:

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 20

x0

Y0 = x0+x2

X0=Y0+Z0=x0+x1+x2+x3

x2

Y1 = x0 - x2

X1=Y1+w1Z1=x0+w1x1-x2-w1x3

w1
x1

Z0 = x1+x3

x3

Z1 = x1 - x3

X2=Y0 - Z0=x0 - x1+x2 - x3


1

X3=Y1 - w1Z1=x0 - w1x1 - x2 +w1x3

On remarque sur ce schma que les donnes x(n) en entre sont dsordonnes, alors que celles de sortie X(k)
sont dans lordre naturel. De ce fait cet algorithme de FFT sappelle FFT avec entrelacement temporel. On
verra par la suite quil existe un algorithme symtrique appel FFT avec entrelacement frquentiel.
Pour lalgorithme de FFT en base 2 avec entrelacement temporel, un papillon lmentaire, ltage i (en
numrotant de 1 l = log2 (N)), a la forme suivante:

Vk

Uk
Uk + N / 2(l-i+1)
Entre de ltage i

Vk +
w(k,i)

(l-i+1)
N/2

Sortie de ltage i

A ltape i, les indices des termes associs dans un papillon sont spars de Ni , Ni tant la taille des DFT
intervenant ltape i, cest dire Ni = 2i1 = 2l l/2(li+1) = N/2(li+1) .
Le terme w (i,k) vaut:
j2 2Nk
j2 Nk Ni
k2li
i = e
2 = w
w (i,k) = e

2.2 FFT avec entrelacement frquentiel


Cet algorithme est symtrique du prcdent. Les donnes temporelles x(n) restent dans lordre naturel, mais
les rsultats X(k) sont dsordonns.
Le principe consiste encore dcomposer le calcul de la TFD dordre N = 2l en l tapes successives. Mais
le regroupement de donnes se fait diffremment.
Illustrons la mthode par un exemple pour N = 4.
Les donnes frquentielles (X(0), X(1), . . . , X(N 1)) sont regroupes en 2 paquets: un paquet form
des donnes dindices pairs (X(0), X(2), . . . , X(N 2)) et un paquet form des donnes dindices impairs
(X(1), X(3), .., X((N 1))). Soit pour N=4, un paquet (X(0), X(2)) et un paquet (X(1), X(3)).
Pour N = 4, on peut crire:
X(0) = x(0) + x(1) + x(2) + x(3) = (x(0) + x(2)) + (x(1) + x(3))
X(2) = x(0) + w2 x(1) + w4 x(2) + w6 x(3) = (x(0) + x(2)) (x(1) + x(3))


X(1) = x(0) + w1 x(1) + w2 x(2) + w3 x(3) = (x(0) x(2)) + w1 (x(1) x(3))


X(3) = x(0) + w3 x(1) + w6 x(2) + w9 x(3) = (x(0) x(2)) w1 (x(1) x(3))
Pour obtenir chaque paquet de rsultats frquentiels, on effectue une DFT dordre N/2 sur des donnes rsultant
dune tape de papillons sur les donnes x(n).

2. Transforme de Fourier Rapide TFR, Fast Fourier transform FFT

x0
x1
0

Page 21

TFD
ordre
N/2=2

X0

TFD
ordre
N/2=2

X1

X2

w
x2
x3

X3

w1
On a donc un tage de 2 papillons suivi dun tage de 2 DFT dordre N/2 = 2.
Ce rsultat se gnralise tout valeur de N multiple de 2. En effet:

X(k) =

N1

x(n)e j2

nk
N

n=0

N/21

X(2i) =

x(n)e j2

n2i
N

n=0
N/21

X(2i) =
X(2i) =

x(n)e j2

n2i
N

n=N/2

x(n)e j2 N/2 +
ni

n=0
N/21

N1

N/21

x(m + N/2)e j2 N/2


mi

m=0

(x(n) + x(n + N/2)) e j2 N/2


ni

n=0

Ainsi les N/2 termes X(k) de rang pair sont gaux aux termes de la TFD dordre N/2 de la suite de N/2 valeurs
(x(n) + x(n + N/2)), avec n entre 0 et N/2 1 .
De mme pour les termes X(k) de rang impair:
X(k) =

x(n)e j2

nk
N

N/21

X(2i + 1) =

x(n)e j2

n(2i+1)
N

n=0
N/21

X(2i + 1) =

n=0
N/21

X(2i + 1) =

N1

x(n)e j2

n(2i+1)
N

n=N/2

x(n)e j2 N e j2 N/2
n

ni

N/21

x(m + N/2)e j2 N e j2 N/2


m

mi

m=0

wn (x(n) x(n + N/2)) e j2 N/2


ni

n=0

les N/2 termes X(k) de rang impair sont gaux aux termes de la TFD dordre N/2 de la suite de N/2 valeurs
wn (x(n) x(n + N/2)), avec n entre 0 et N/2 1.
Dune manire gnrale si N est une puissance de 2: N = 2l , on peut ritrer la mthode l fois et calculer
la TFD dordre N laide de l tages de N/2 papillons., avec l = log2 (N). La complexit de calcul dune FFT
avec entrelacement frquentiel est identique celle de la FFT avec entrelacement temporel.
Pour lalgorithme de FFT en base 2 avec entrelacement frquentiel, un papillon lmentaire, ltage i (en
numrotant de 1 l = log2 (N)), a la forme suivante:

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 22

Vk

Uk
Uk + N / 2i

Vk +
w(k,i)

Entre de ltage i

i
N/2

Sortie de ltage i

A ltape i, Les indices des termes associs dans un papillon sont spars de Ni , Ni tant la taille des DFT
intervenant ltape i, cest dire Ni = N/2i . Et le terme w (i,k) vaut:
j2

w (i,k) = e

k
2Ni

k2i

= e j2 2N = wk2

i1

2.3 Bit reversal


On remarque que dans les 2 cas prcdents: FFT avec entrelacement temporel et FFT avec entrelacement
frquentiel, lordre entrelac est obtenu partir de lordre naturel en appliquant une technique dite du bit
reversal .
Cette technique consiste crire en binaire lindice dans lordre naturel puis retourner lordre des bits
pour obtenir la reprsentation binaire de lindice correspondant dans lordre entrelac.
Par exemple pour N = 4:
indices

reprsentation reprsentation indices

ordre naturel binaire

retourne

ordre entrelac

00

00

01

10

10

01

11

11

2.4 Formulation matricielle de lalgorithme de Cooley-Tukey


On utilise les mmes notations que prcdemment:
N = 2l
2
w = e j N . On utilise le fait que wN = 1 et que wN/2 = 1
On illustre lalgorithme pour le cas N = 8, l = 3. Et on prsente lalgorithme avec entrelacement frquentiel.
On calcule la TFD de la suite x(n) avec n [0, 7]
On note la suite transforme X(n) avec n [0, 7]
X(n) =

x(k)e j2

nk
N

k=0

x(k)wnk

k=0

On dcompose les indices n et k (qui sont compris entre 0 et 7) en base 2:


n = n2 22 + n1 21 + n0 20
k = k2 22 + k1 21 + k0 20
On effectue le produit nk en dveloppant selon k, (Il suffirait de dvelopper selon n pour obtenir lalgorithme
avec entrelacement temporel):
2

wnk = wnk2 2 wnk1 2 wnk0


wnk = w(n2 2

2 +n 21 +n )k 22
1
0 2

w(n2 2

2 +n 21 +n )k 21
1
0 1

w(n2 2

w8 = 1
wnk = wn0 k2 2 w(n1 2
2

1 +n )k 21
0 1

w(n2 2

2 +n 21 +n )k
1
0 0

2 +n 21 +n )k
1
0 0

2. Transforme de Fourier Rapide TFR, Fast Fourier transform FFT

X(n) =

x(k)wnk

k=0

X(n) =

Page 23

k0 =0 k1 =0

x(k2 , k1 , k1 )w

n0 k2 22


w

(2n1 +n0 )k1 21

w(4n2 +2n1 +n0 )k0

k2 =0

On a ainsi dcompos la sommation unique sur k en 3 = log2 (8) sommations sur k0 , k1 , k2 .


Si on effectue la sommation sur k2 , on obtient un terme:
1

x(k2 , k1 , k0 )wn k 2

x1 (n0 , k1 , k0 ) =

0 2

k2 =0

x1 (n0 , k1 , k0 ) = x(0, k1 , k0 ) + x(1, k1 , k0 )w4n0


Si lon considre lensemble des valeurs x1 que lon peut obtenir en donnant aux indices n0 , k1 , k0 toutes les
valeurs possibles, on obtient 8 valeurs x1 (n) avec n [0, 7] qui vrifient les relations:
x1 (i) = x(i) + w0 x(i + 4) pour

i3

x1 (i + 4) = x(i) w x(i + 4)
0

avec

i = n0 22 + k1 2 + k0

On peut regrouper les valeurs de x1 2 par 2 pour former des paires duales que lon calcule partir de 2 noeuds
de mme indice de ltape prcdente. Les indices de 2 noeuds duaux tant espacs de 4 = N/2l . Lensemble
des relations prcdentes peut scrire sous la forme matricielle:

1 0 0 0 w0
0
0
0
x(0)
x1 (0)

x1 (1) 0 1 0 0
0
0
0
w0

x(1)

x1 (2) 0 0 1 0
0
0
0
w

x(2)

x (3) 0 0 0 1
0
0
0
w x(3)

x (4) = 1 0 0 0 w0
0
0
0

x(4)
1
0

x (5) 0 1 0 0
0
0 x(5)
0
w

1
0
x(6)
x (6) 0 0 1 0
0
0
0
w
1
x1 (7)
0 0 0 1
0
0
0
w0
x(7)
Ces relations peuvent aussi se reprsenter sous la forme graphique de papillons :
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)

-w0

x1(0)
x1(1)
x1(2)
x1(3)
x1(4)
x1(5)
x1(6)
x1(7)

w0

-w

w0

-w0

w0

w0

-w

La deuxime tape est la sommation sur k1 :


x2 (n0 , n1 , k0 ) =

x1 (n0 , k1 , k0 )w(2n +n )2k


1

k1 =0

x2 (n0 , n1 , k0 ) = x1 (n0 , 0, k0 ) + x1 (n0 , 1, k0 )w4n1 +2n0


avec

w4n1

= (1)n1

En donnant aux indices n0 , n1 , k0 toutes les valeurs possibles on obtient les relations duales:
x2 (i) = x1 (i) + w2n0 x1 (i + 2) pour
x2 (i + 2) = x1 (i) w
avec

i = 4n0 + k0

2n0

i3

x1 (i + 2)

cest dire

n1 = 0

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 24

Les valeurs de x2 se calculent 2 par 2 partir des 2 valeurs de x1 de mmes indices de ltape prcdente. Les
noeuds duaux tant espacs de N/22 = 2. Les relations prcdentes correspondent la forme matricielle:

x2 (0)
x2 (1)
x2 (2)
x2 (3)
x2 (4)
x2 (5)
x2 (6)
x2 (7)

0 w0
0
1
0
w0
0
0
0 w
1
0
w0
0
0
0
0
0
0
0
0
0
0
0
0

1
0
1
0
0
0
0
0

0
0
0
0
1
0
1
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0 w2
1
0
w2
0 w2
0
1
0
w2

x1 (0)
x1 (1)
x1 (2)
x1 (3)
x1 (4)
x1 (5)
x1 (6)
x1 (7)

Ces relations peuvent aussi se reprsenter sous la forme graphique de papillons:


x1(0)
x1(1)
x1(2)
x1(3)
x1(4)
x1(5)
x1(6)
x1(7)

x2(0)
x2(1)
x2(2)
x2(3)
x2(4)
x2(5)
x2(6)
x2(7)

w0
w0
-w0
-w0
w2
w2
-w2
-w2

Lexposant de w dans les relations prcdentes est obtenu en divisant logiquement i par 2 et en retournant le
rsultat.
Enfin la troisime tape est la sommation sur k0 qui conduit la relation:
x3 (n0 , n1 , n2 ) =

x2 (n0 , n1 , k0 )w(4n +2n +n )k


2

k0 =0

x3 (n0 , n1 , n2 ) = x2 (n0 , n1 , 0) + x2 (n0 , n1 , 1)w(4n2 +2n1 +n0 )


avec

w4n2

= (1)n2

Ce qui conduit aux relations duales:


x3 (i) = x2 (i) + w2n1 +n0 x2 (i + 1)

x3 (i + 1) = x2 (i) w2n1 +n0 x2 (i + 1) pour i pair


avec

i = 4n0 + 2n1

Les valeurs de x3 se calculent 2 par 2 partir des 2 valeurs de x2 de mmes indices de ltape prcdente.
Les noeuds duaux tant espacs de N/23 = 1. Lexposant de w sobtient en divisant logiquement i par 1 et en
retournant le rsultat.
Les relations prcdentes correspondent la forme matricielle:

x3 (0)
x3 (1)
x3 (2)
x3 (3)
x3 (4)
x3 (5)
x3 (6)
x3 (7)

1 w0
1 w0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
1 w2
1 w2
0
0
0
0
0
0
0
0

Relations qui se reprsentent graphiquement par:

0
0
0
0
0
0
0
0
1 w1
1 w1
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
1 w3
1 w3

x2 (0)
x2 (1)
x2 (2)
x2 (3)
x2 (4)
x2 (5)
x2 (6)
x2 (7)

2. Transforme de Fourier Rapide TFR, Fast Fourier transform FFT

x2(0)
x2(1)
x2(2)
x2(3)
x2(4)
x2(5)
x2(6)
x2(7)

w0

x3(0)
x3(1)
x3(2)
x3(3)
x3(4)
x3(5)
x3(6)
x3(7)

-w0

-w2

Page 25

-w2

W1 -w1
w3 3
-w

Cette dernire suite de valeurs est gale la suite cherche X(n) mais dans le dsordre:
X(n2 , n1 , n0 ) = x3 (n0 , n1 , n2 )
En rsum:

x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)

X(0)
X(4)
X(2)
X(6)
X(1)
X(5)
X(6)
X(7)

0
0 w0
1
0
w0
0
0 w0
1
0
w0
0
0
0
0
0
0
0
0
0
0
0
0

1
0
1
0
0
0
0
0
-w0
-w0

w0
0

-w0

w0

-w0

w0






=





0
0
0
0
1
0
1
0

x3 (0)
x3 (1)
x3 (2)
x3 (3)
x3 (4)
x3 (5)
x3 (6)
x3 (7)

0
0
0
0
0
0
0
0
0 w2
1
0
0 w2
1
0

1
1

0

0
=
0

0

0
0

0
0

0
x
0

w2

0
w2

w0
w0
0
0
0
0
0
0

1
0

0
0

x1(0)
x1(1)
x1(2)
x1(3)
x1(4)
x1(5)
x1(6)
x1(7)

0
0
0
0
1 w2
1 w2
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0

0
0
1
0
0
0
1
0

0
0
0
0
0
0
0
0
1 w1
1 w1
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
1 w3
1 w3

0
0
0
0 w0
0
0
0
0
w0
0
0
0
0
w0
1
0
0
0
w0
0
0 w
0
0
0
0
0
0
0
0
w
0
0
0
0
w0
1
0
0
0
w0

w0
w0
-w0
-w0
w2
w2
-w2
-w2

x2(0)
x2(1)
x2(2)
x2(3)
x2(4)
x2(5)
x2(6)
x2(7)

w0

x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)

-w0

-w2

-w2

w1 -w1
w3 3
-w

x3(0)
x3(1)
x3(2)
x3(3)
x3(4)
x3(5)
x3(6)
x3(7)

La mthode illustre pour N = 8 se gnralise pour tout N puissance de 2.

2.5 Autres algorithmes de FFT


Il existe de nombreux autres algorithme de FFT, qui sappliquent par exemple au cas o N nest pas une
puissance de 2.
Lorsque N est une puissance de 4, on peut appliquer un algorithme de FFT en base 4, plus efficace que
lalgorithme en base 2. Le nombre doprations ncessaires tant alors de:

log4 (N) 3N
4 multiplications complexes
log4 (N)N additions complexes

2.6 Utilisation de la FFT pour la convolution rapide


Soit la suite (u(n)) convolution de la suite (x(n)), de dure P, et de la suite (y(n)), de dure Q.:
u(n) =

P1

x(i)y(n i)

i=0

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 26

la suite (u(n)) a pour dure P + Q 1.


On peut calculer directement les (P+Q-1) valeurs de la suite (u(n)). Ce calcule ncessite P(Q + 1) multiplications pour (Q P). Si P et Q sont grands, il peut tre efficace de faire ce calcul par FFT.
Pour cela, on complte par des zros les suites (x(n)) et (y(n)) de faon quelles aient toutes les deux N
points, o N est une puissance de 2 telle que N P + Q 1.
Appelons (xl (n)) et (yl (n)) les suites prolonges par des zros.
La suite (zl (n)) = (xl (n)) (yl (n)) concide avec la suite (u(n)) sur ses P + Q 1 premiers points.
Pour calculer la suite (u(n)), il suffit donc de:
1. complter les suites (x(n)) et (y(n)) par des zros pour quelles aient N points, avec N P + Q 1.
2. Calculer par FFT les suites Xl (k) et Yl (k): DFT des suites (xl (n)) et (yl (n)).
3. Calculer la suite Zl (k) produit des suites Xl (k) et Yl (k):Zl (k) = Xl (k) Yl (k)
4. Calculer la suite zl (n) par FFT inverse de Zl (k)
5. Identifier (u(n)) avec les P + Q 1 premiers points de zl (n).
Le nombre doprations effectuer est de:
3 FFT (directes ou inverses) de N points + N multiplications complexes, cest dire:


3
2 N log2 (N) + N

multiplications complexes
N log2 (N) additions complexes

Ce quil faut comparer au calcul direct: P(Q + 1) multiplications et additions relles.


Exemple numrique: P = Q = 500
On choisirait N = 1024.
Le calcul direct demanderait 500 x 501 multiplications et additions relles.
Le calcul par FFT demanderait environ 1500 x 10 + 1000 soit 16000 multiplications complexes. Une multiplication complexe demandant 4 multiplications relles, on constate que le gain de calcul par FFT serait de:
500 500
4
16000 4

2.7 Calcul de convolution par section dune des suites


Souvent lune des suites est beaucoup plus courte que lautre. Le calcul peut alors se faire en sectionnant la
suite la plus longue en sous-suites.
Appelons (x(n)) la suite courte de longueur P et (y(n)) la suite longue de longueur Q.
(y(n)) est coupe en suites de longueur M > P.
La convolution totale de (x(n)) et (y(n)) est obtenue en sommant correctement les convolutions de (x(n))
avec les sous-suites de (y(n)). Ces petites convolutions sont calcules par exemple par FFT. Le rsultat concide
sur P + M 1 premiers points avec les bonnes valeurs. Les petites convolutions se superposent 2 2 sur (P 1)
points.

2. Transforme de Fourier Rapide TFR, Fast Fourier transform FFT

x(n)
y1(n)
u1(n)
y2(n)
u2(n)
y3(n)
u3(n)
u(n) = x(n) * y(n)

Cette mthode permet de limiter la taille de la mmoire ncessaire.

Page 27

Chapter I. Transforme de Fourier discrte: TFD et TFR

Page 28

EXERCICES ET PROBLMES
Exercice 1 : Calculer la transforme de Fourier discrte de la suite (xn ) forme de N = 8 points (n [0,7]),
obtenue en chantillonnant la frquence fe = 16 Hz le signal x(t):
x(t) = 2 sin(8 t) + 8 cos(4 t)

Exercice 2 : Calculer la TFD de la suite xn suivante:


xn est forme de N = 24 points obtenus en chantillonnant le signal x(t) = 3 sin(8 t)+ 4 cos(6 t) la frquence
fe = 24 Hz.
Exercice 3 : Comparer le rsultat de la convolution
et yn suivantes:

xn = 1 pour
xn = 0 pour

yn = 2 pour
yn = 0 pour

linaire et de la convolution circulaire des 2 suites xn


0n3
n
/ [0, 3]
0n3
n
/ [0, 3]

On appellera zn le rsultat de la convolution linaire:


zn =

xk ynk

k=0

et tn le rsultat de la convolution circulaire:


tn =

xk ynk

k=0

o n k signifie n-k modulo N = 4.


Exercice 4 : Pour N = 4, la TFD de la suite: x0 , x1 , x2 , x3 scrit: X0 , X1 , X2 , X3 avec:
Xk =

xne j2

nk
4

k=0

x0
X0
x
X
2 j
1
1
1) Ecrire la matrice de passage du vecteur
x au vecteur X . On notera w = e 4 .
2
2
x3
X3
2) Quel est le nombre de multiplications et dadditions effectuer pour effectuer le calcul de la TFD sans algorithme particulier?
3) Chercher dcomposer le calcul en 2 tapes pour diminuer le nombre doprations globales. Par exemple,
commencer par grouper les indices pairs et les indices impairs sparment.

plain

plain