Vous êtes sur la page 1sur 30

TRANSFORME DE FOURIER

DISCRTE
G. BAUDOIN et J.-F. BERCHER
cole Suprieure dIngnieurs en lectrotechnique et lectronique
Novembre 2001 version 0.1
CHAPTER I
Table des matires
I Table des matires 3
I Transforme de Fourier discrte: TFD et TFR 5
1 Transforme de Fourier Discrte: TFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.1 Dnition de la TFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2 Inversion de la TFD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Lien entre la transforme de Fourier et la TFD . . . . . . . . . . . . . . . . . . . . . 6
1.4 Comparaison entre la transforme de Fourier et la TFD . . . . . . . . . . . . . . . . . 8
1.5 Fentres de pondration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1 Fentres rectangulaires, triangulaires et paraboliques . . . . . . . . . . . . . 10
1.5.2 Fentres Fentres dtruisant par addition algbrique, les lobes secondaires de
la fentre rectangulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.5.3 Autres fentres: Gauss, Kaiser, Dolph-Chebychev . . . . . . . . . . . . . . 12
1.6 Problmes de visualisation de la TFD . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7 Proprits de la TFD et convolution circulaire . . . . . . . . . . . . . . . . . . . . . . 14
1.7.1 Thorme de Parseval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.7.2 Thorme de la convolution discrte . . . . . . . . . . . . . . . . . . . . . 15
1.7.3 Thorme du retard circulaire . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 Transforme de Fourier Rapide TFR, Fast Fourier transform FFT . . . . . . . . . . . . . . . . 17
2.1 FFT avec entrelacement temporel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 FFT avec entrelacement frquentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Bit reversal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.4 Formulation matricielle de lalgorithme de Cooley-Tukey. . . . . . . . . . . . . . . . 22
2.5 Autres algorithmes de FFT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6 Utilisation de la FFT pour la convolution rapide . . . . . . . . . . . . . . . . . . . . . 25
2.7 Calcul de convolution par section dune des suites . . . . . . . . . . . . . . . . . . . 26
Exercices et problmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
CHAPTER I
TRANSFORME DE FOURIER DISCRTE: TFD
ET TFR
L
ORSQUON dsire calculer la transforme de Fourier dune fonction x(t) laide dun ordinateur, ce dernier
nayant quun nombre ni de mots de taille nie, 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 T
e
et en limitant la dure dintgration
lintervalle [0, (N 1)T
e
], on obtient:
X( f ) T
e
(N1)

n=0
x(nT
e
)e
j2 f nT
e
Ce qui donne pour les valeurs de frquences f
k
= k f
e
/N:
X( f
k
) T
e
(N1)

n=0
x(nT
e
)e
j2
nk
N
f
e
T
e
T
e
(N1)

n=0
x(nT
e
)e
j2
nk
N
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 efcace 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 dnir une reprsentation de la suite sur une base de fonctions frquentielles.
1 Transforme de Fourier Discrte: TFD
1.1 Dnition 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(N1), dnis par
X(k) =
N1

n=0
x(n)e
j2
nk
N
En pratique, les N termes x(n) peuvent tre N chantillons dun signal analogique chantillonn:
x
n
= x(nT
e
), et les N termes X(k) correspondre une approximation ( un facteur multiplicatif T
e
prs) de la
transforme de Fourier de ce signal aux N points de frquence f
k
= k f
e
/N, avec k entre 0 et N1, cest dire
f entre 0 et f
e
.
Page 6 Chapter I. Transforme de Fourier discrte: TFD et TFR
1.2 Inversion de la TFD
x(n) =
1
N
N1

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

k=0
X(k)e
j2
nk
N
=
1
N
N1

k=0
_
N1

i=0
x(i)e
j2
i k
N
_
e
j2
nk
N
A =
1
N
N1

i=0
x(i)
_
N1

k=0
e
j2
(ni)k
N
_
si i = n
N1

k=0
e
j2
(ni)k
N
=
1e
i2 (ni)
1e
i2
ni
N
= 0
si i = n
N1

k=0
e
j2
(ni)k
N
=
N1

k=0
1 = N
A =
1
N
N1

i=0
x(i)
_
N1

k=0
e
j2
(ni)k
N
_
=
1
N
x(n)N
A = x(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) f
e
= 1/T
e
.
x(t) x
e
(t) =
+

n=
x(nT
e
) (t nT
e
) = x(t)P(t)
o P(t) est la fonction peigne :
P(t) =
+

n=
(t nT
e
)
TF

P( f ) =
1
T
e
+

n=

_
f
n
T
e
_
Lchantillonnage rend le spectre priodique et peut entraner un phnomne de recouvrement de spectre
ou aliasing.
x(t)
|X(f)|
f t
t
x
e
(t)
|X
e
(f)|
f 1/T
e
-1/T
e
1
1/T
e
2. On tronque la suite x
e
(nT
e
) en ne conservant quun nombre ni N de termes pour obtenir le signal x
tr
(t)
form des chantillons: x(0). . . x((N 1)T
e
):
x
tr
(t) = x
e
(t)F(t) =
N1

n=0
x(nT
e
) (t nT
e
)
x
tr
(t) = x(t)P(t)F(t)
1. Transforme de Fourier Discrte: TFD Page 7
o F(t) est une fonction fentre de dure NT
e
F(t) =
_
1 si t
_

T
e
2
, T
0

T
e
2

0 sinon
o T
0
= NT
e
.
t
F(t)
-T
e
/2
f
|F(f)|
t
x
tr
(t)
f
|X
tr
(f)|
T
0
-T
e
/2
1
T
0
La convolution avec un sinus cardinal introduit des ondulations sur le spectre. Elles sont appels ripples en
anglais.
X
tr
( f ) =
N1

n=0
x(nT
e
)e
j2 f nT
e
3. On chantillonne X
tr
( f ) 1/T
0
On obtient alors N valeurs diffrentes espaces de 1/T
0
entre 0 et 1/T
e
, car T
0
= NT
e
. Cette dernire
opration rend priodique la fonction dans le temps. Appelons x
c
(t) la fonction rsultante.
X
c
( f ) = X
tr
( f )
+

n=

_
f
n
T
0
_
=
+

n=
X
tr
_
n
T
0
_

_
f
n
T
0
_
X
c
( f ) =
+

n=
_
N1

k=0
x(kT
e
)e
j2
nk
N
_

_
f
n
T
0
_
x
c
(t) = T
0
+

n=
x
tr
_
t nT
0
_
x
c
(t) et X
c
( f ) sont deux distributions chantillonnes relies par la transformation de Fourier.
T
0
=NT
e
t
x
c
(t) |X
c
(f)|
T
e
f
e
=1/T
e
f
1/NT
e
On obtient donc une correspondance entre N points dans le domaine temporel x
c
(nT
e
) et N points dans le
domaine frquentiel X
c
(n/T
0
), pour n entre 0 et N1. De plus:
x
c
(nT
e
) = T
0
x(nT
e
) pour n [0, N1]
X
c
_
k
T
0
_
=
N1

n=0
x(nT
e
)e
j2
nk
N
Page 8 Chapter I. Transforme de Fourier discrte: TFD et TFR
cest--dire que la suite X
c
(k) = X
c
(k/T
0
) est prcisment la TFD de la suite x(n) = x(nT
e
).
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(nT
e
) pour n [0, (N 1)] correspond la suite TFD X(k) pour k [0, (N 1)] avec:
X (k) =
N1

n=0
x(nT
e
)e
j2
nk
N
Quel est le lien entre X( f ) et X(k) pour k [0, (N 1)] ?
On pose T
0
= NT
e
.
Dans le cas o:
x(t) est priodique de priode ,
x(t) est bande limite [f
max
, f
max
],
la largeur de la fentre F(t) est gale un multiple de , T
0
= k,
et la frquence dchantillonnage f
e
= 1/T
e
est suprieure 2 f
max
.
Il y a concidence un facteur multiplicatif prs entre X(k) et X( f = k/T
0
):
X(k) =
T
0
T
e
X
_
k
T
0
_
= NX
_
k
T
0
_
En effet, x(t) tant priodique de priode a un spectre form de raies distantes de 1/. De plus, ce spectre est
limit f
max
.
f f
max -f
max
1
|X(f)|
1/
Les trois oprations qui conduisent la suite X(k) auront les consquences suivantes:
1. Lchantillonnage de x(t) f
e
rend priodique le spectre et le multiplie par 1/T
e
.
f f
e
f
max
-f
max
1/T
e
|X
e
(f)|
1/
1. Transforme de Fourier Discrte: TFD Page 9
2. La troncation de x
e
(t) par une fentre de largeur T
0
a pour effet de convoluer le spectre avec un sinus
cardinal qui sannule tous les 1/T
0
avec T
0
= k.
f
|X
tr
(f)|
f
e
T
0
/T
e
3. Lchantillonnage du spectre la frquence 1/T
0
a pour effet de ne conserver que des valeurs o X
tr
et X
concident au facteur T
0
/T
e
= 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/T
0
avec k [0, (N 1)].
Dans tous les autres cas, la TFD diffre de la TF aux points k/T
0
. Lerreur est introduite:
par recouvrement de spectre si X( f ) nest pas support limit, erreur que lon minimise en augmentant
f
e
.
par les ondulations dues la troncature par la fonction fentre si x(t) nest pas priodique ou dure lim-
ite: 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 gure suivante).
t
x(t)
x
c
(t)
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
x
tr
(t) le signal tronqu, on obtient la relation suivante:
x
tr
(t) = x(t)F(t)
et dans le domaine frquentiel:
X
tr
( f ) = X( f ) F( f )
Page 10 Chapter I. Transforme de Fourier discrte: TFD et TFR
Pour une mme dure temporelle NT
e
, on compare les diffrentes fentres essentiellement par leurs propits
frquentielles. Idalement, on aimerait que la troncation du signal en temps ne modie pas son contenu frquen-
tiel, cest- -dire que X( f ) = X
tr
( 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 inuencent 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 F
r
(t)
Une fentre rectangulaire F
r
(t) centre de dure NT
e
scrit en temps et en frquence:
F
r
(t) = rect
NT
e
(t)
F
r
( f ) =
sin 2 f NT
e
/2
2 f N
T
e
2
La transform de Fourier de la fentre rectangulaire, prsente des lobes secondaires importants qui ne
dcroissent quen
1
f
. Le lobe secondaire le plus haut nest qu -13 dB en dessous de lamplitude en
f = 0.
Fentre triangulaire F
t
(t) et fentre parabolique F
p
(t)
La fentre triangulaire F
t
(t) (appele aussi fen

tre de Bartlett) et la fentre parabolique F


p
(t) se dduisent
simplement de la fentre rectangulaire par lvation au carr ou au cube de F
r
( f ). Les transformes de
Fourier ainsi obtenues dcroissent donc en
1
f
2
et en
1
f
3
. elles sont respectivement gales :
F
t
() =
_
sin N
T
4
N
T
e
4
_
2
ou F
p
() =
_
sin E
T
e
6
N
T
e
6
_
3
De plus, lamplitude maximum des lobes secondaires est -26 db en dessous du lobe principal dans le
cas de F
t
(), et -39 db dans le cas de F
p
(). Par contre, le lobe principal est, dans les 2 cas, plus large
que pour la fentre rectangulaire.
Dterminons les expressions temporelles de F
t
() et de F
p
():
F
t
() = F
r
() F
r
()
donc
F
t
(t) = F
r
(t) F
r
(t) = 1
_
2 | t |
NT
e
_
et
F
p
() = F
t
() F
r
()
donc
F
p
(t) = F
t
(t) F
r
(t) = 1
_
t
NT
e
_
2
La gure suivante reprsente la fentre triangulaire.
1. Transforme de Fourier Discrte: TFD Page 11
t f
|F(f)|
F(t)
NT
e
La gure suivante reprsente la fentre parabolique.
f
|F(f)|
t
F(t)
NT
e
1.5.2 Fentres Fentres dtruisant par addition algbrique, les lobes secondaires de la fentre rectan-
gulaire
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 F
c
(t)
Lexpression algbrique de la fentre cosinusode est:
F
c
( f ) =
1
2
_
F
R
_
f
1
2NT
e
_
+F
R
_
f +
1
NT
e
__
F
c
(t) = F
r
(t)cos
_

t
NT
e
_
Les lobes secondaires de F
c
( f ) sont plus faibles que ceux de F
r
( f ); ainsi lamplitude maximum de ces
lobes est 34 db en dessous de lamplitude en f = 0 et leur dcroissance est en 1/f
2
. Par contre, le lobe
principal est plus large.
Fentre de Hanning F
H
Nous avons vu prcdemment comment, par une combinaison algbrique de deux fonctions dduites
de F
r
( 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 gure suivante).
NT
e
t
f
|F(f)|
F(t)
Lexpression algbrique de la fentre de Hanning est (en notant T
0
= NT
e
):
F
H
( f ) =
1
2
F
R
( f ) +
1
4
F
R
_
f
1
T
0
_
+
1
4
F
R
_
f +
1
T
0
_
Page 12 Chapter I. Transforme de Fourier discrte: TFD et TFR
F
H
(t) =
1
2
_
1+cos
_
2
t
T
0
__
pour t
_
T
0
/2, T
0
/2

F
H
(t) = 0 ailleurs.
Lamplitude maximum des lobes secondaires est alors gale -44 db (en dessous du lobe principal); ils
dcroissent en
1
f
3
. Le lobe principal est presque 2 fois plus large que pour la fentre rectangulaire.
Fen

tre de Hamming F
hm
On peut amliorer les rsultats obtenus par la fentre prcdente en modiant les pondrations de F
r
( f ),
F
r
( f 1/NT
e
) et F
r
( f +1/NT
e
):
F
hm
( f ) = 0.56F
r
( f ) + 0.22[F
r
( f 1/NT
e
) + F
r
( f + 1/NT
e
)]
Dans ce cas, la dcroissance des lobes secondaires est toujours en 1/f
3
mais lamplitude maximum de
ces lobes est -60 db sous le lobe principal.
Lexpression temporelle F
hm
(t)de la fentre de Hamming scrit:
F
hm
(t) = 0, 56 + 0, 44 cos(2 t/NT
e
)
NT
e
2
< t <
NT
e
2
= 0ailleurs
Fentre de Blackman F
B
(t)
Pour diminuer encore lamplitude des lobes secondaires, on peut combiner:
F
r
( f ), F
r
( f 1/NT
e
), F
r
( f 2/NT
e
), F
r
( f + 2/NT
e
), F
r
( f + 1/NT
e
) selon la loi suivante:
F
B
( f ) = 0, 42F
r
( f ) + 0, 25 [F
r
( f 1/NT
e
) + F
r
( f + 1/NT
e
)]
+0, 08[F
r
( f 2/NT
e
) + F
r
( f + 2/NT
e
)]
La dcroissance des lobes secondaires est en
1
f
5
; 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:
F
B
(t) = 0, 42 + 0, 5cos(2t/NT
e
) + 0, 08cos(4t/NT
e
)
NT
e
2
< t <
NT
e
2
ou 0 ailleurs
1.5.3 Autres fentres: Gauss, Kaiser, Dolph-Chebychev
Fentre de Gauss F
g
(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 F
g
( f ) soit une exponentielle
F
g
() = exp
_

(NT
e
/2)
2
4k
_
Le paramtre k est li la dispersion de lexponentielle en prenant comme variable rduite u =
NT
e
/2. est alors gal

2k. On pourra donc rgler la dispersion de F


g
( f ), cest--dire la largeur de
la bande de transition en faisant varier k.
Cherchons lexpression temporelle de cette fonction: F
g
(t) = exp
_
4k(t/NT
e
)
2

, une constante prs


puisque la transforme de Fourier conserve la loi gaussienne:
_
exp(
t
2
2
) exp (

2
2
)
_
La fentre gaussienne a donc pour expression:
1. Transforme de Fourier Discrte: TFD Page 13
F
g
(t) = exp
_
4k(t/MT)
2

si | t | < NT
e
/2
F
g
(t) = 0 si | t | > NT
e
/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 F
K
(t)
Cette fentre est une des plus efcaces: sa transforme de Fourier F
K
( f ) a pour expression
F
K
(V) =
2
I
0
(V
a
)
sin
_

_
V
2
V
2
a
_

_
V
2
V
2
a
o V = f NT
r
, V
a
= f
a
NT
e
,
_
V
2
V
2
a
peut tre complexe et I
0
(x) est la fonction de Bessel modie de
premire espce.
Cette fonction dpend dun paramtre V
a
qui permet de diminuer lamplitude des lobes secondaires mais
qui augmente la largeur du lobe principal. Dans la plupart des applications, une valeur de V
a
comprise
entre 4/ et 9/ conviendra.
4/ < V
a
< 9/
Lexpression temporelle de la fentre de Kaiser, transforme de Fourier inverse de F
K
( f ) est
F
K
(t) =
I
0
_
Va
_
1(2t/NT
e
)
2
_
I
0
( Va)
si | t | < NT
e
/2
F
K
(t) = 0 ailleurs
Comparaison avec la fentre de Hamming:
Pour obtenir une bande de transition gale celle de la fentre de Hamming, il suft dimposer que le
premier zro de la fonction F
K
( f ) corresponde V = 2, cest--dire dimposer que V
a
=

3 puisque le
premier zro est solution de lquation V
2
V
2
a
= 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 V
a
= 2

2. A nouveau, londulation en bande attnue est infrieure


dans le cas de la fentre de Kaiser.
Fentre de Dolph-Chebychev F
D
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:
F
D
( f ) =
cos
_
Pcos
1
( cos f T
e
)

ch[Parg ch()]
o P = N-1, N impair.
Le paramtre permet de rgler lamplitude des ondulations.
les fonctions cos(x) et cos
1
(x) sont des fonctions complexes.
Page 14 Chapter I. Transforme de Fourier discrte: TFD et TFR
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 F
D
( f ) en utilisant la transforme de Fourier discrte.
Dans tous les cas, nombre N de coefcients 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 inter-
polation 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 T
e
<< T
0
mais si T
e
<< T
0
alors 1/T
e
sera trop grand par
rapport 1/T
0
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 T
0
/T
e
.
On appelle cette opration zero-padding en anglais.
Exemple: soit x(t) dont la frquence de Shannon (2 f
max
) est 128 Hz =f
SH
1. pour visualiser en temps , on chantillonne une dure T 1024 Hz = 8 f
SH
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

n=0
|x(nT
e
)|
2
=
1
N
N1

k=0
|X(k)|
2
Dmonstration:
N1

n=0
|x(nT
e
)|
2
=
1
N
2
N1

n=0
_
N1

k=0
X
k
e
2 j
nk
N
N1

l=0
X

l
e
2 j
nl
N
_
N1

n=0
|x(nT
e
)|
2
=
1
N
2
N1

k=0
N1

l=0
_
X
k
X

l
_
N1

n=0
e
2 j
n(kl)
N
__
Or:
Si k = l
N1

n=0
e
2 j
n(kl)
N
=
1e
2 j(kl)
e
2 j(kl)/N
= 0
1. Transforme de Fourier Discrte: TFD Page 15
Et si k = l
N1

n=0
e
2 j
n(kl)
N
= N
On en dduit:
N1

n=0
|x(nT
e
)|
2
=
1
N
2
N1

k=0
N1

l=0
_
X
k
X

l
_
N1

n=0
e
2 j
n(kl)
N
__
=
1
N
N1

k=0
|X
k
|
2
1.7.2 Thorme de la convolution discrte
Avant de prsenter les rsultats concernant la convolution discrte, on a besoin de dnir les notions de convo-
lution 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 dnie par:
(z(n)) = (x(n)) (y(n)) =
_
N1

i=0
x(i)y(ni)
_
pour n [0, N 1] ,
o la notation ||ni|| signie (ni) 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 2N1 valant:
(u(n)) = (x(n)) (y(n)) =
_
N1

i=0
x(i)y(ni)
_
pour n [0, 2N 1]
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
2N1 = 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 x
n
Une priode y
n
Une priode z
n
Suite u
n
Suite z
n
obtenue en rendant u
n
priodique
Page 16 Chapter I. Transforme de Fourier discrte: TFD et TFR
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) TFD(z(n)) = TFD(x(n))TFD(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 convo-
lution circulaire des suites X(k) et Y(k):
p(n) = x(n)y(n) P(k) = X(k) Y(k)
avec P(k) = TFD(p(n)), X(k) = TFD(x(n)),Y(k) = TFD(y(n)).
Dmonstration de (I.1)
(z(n)) = (x(n)) (y(n)) =
_
N1

i=0
x(i)y(ni)
_
pour n [0, N 1]
Z(n) =
N1

i=0
z(i)e
j2
ni
N
=
N1

i=0
_
N1

k=0
x(k)y(i k)
_
e
j2
ni
N
Z(n) =
N1

i=0
_
N1

k=0
x(k)e
j2
nk
N
y(i k)e
j2
n(ik)
N
_
=
N1

i=0
_
N1

k=0
x(k)e
j2
nk
N
y(i k)e
j2
nik
N
_
Z(n) =
_
N1

k=0
x(k)e
j2
nk
N
__
N1

k=0
y(k)e
j2
nk
N
_
= X(n)Y(n)
Relation entre convolution discrte linaire et convolution continue
Soit x(t) et y(t) de dures nies. La convolution de x(t) avec y(t) scrit u(t):
u(t) =
+
_

x()y(t )d
chantillonnons x(t) et y(t) f
e
= 1/T
e
. 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 T
e
). La suite v
n
ainsi obtenue (au terme multiplicatif T
e
prs) correspond une convolution discrte linaire (et non circulaire)
des suites x(n) et y(n).
v(n) =
P+Q1

k=0
x(k)y(nk)
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 k
o
chantillons. La suite y(n) est priodique de priode N et
sa TFDY(k) se dduit de celle de x(n) par:
Y(k) = X(k)e
j2kk
o
/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 algo-
rithme 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

n=0
x(n)e
j2
nk
N
et ceci pour k [0, N1].
Si on effectue le calcul directement sans algorithme efcace, on doit effectuer:
_
N
2
multiplications complexes
N(N1) 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
2
log
2
(N) le nombre de multiplications.
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 = 2
l
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 w
N
= 1 et w
N/2
=1.
Pour N = 4, w
4
= 1 et w
2
=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) +w
1
x(1) +w
2
x(2) +w
3
x(3) = (x(0) x(2)) +w
1
(x(1) x(3))
X(2) = x(0) +w
2
x(1) +w
4
x(2) +w
6
x(3) = (x(0) +x(2)) (x(1) +x(3))
X(3) = x(0) +w
3
x(1) +w
6
x(2) +w
9
x(3) = (x(0) x(2)) w
1
(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:
Page 18 Chapter I. Transforme de Fourier discrte: TFD et TFR
x
0
x
2
Y
0
= x
0
+x
2
Y
1
= x
0
- x
2
x
1
x
3
Z
0
= x
1
+x
3
Z
1
= x
1
- x
3
X
0
=Y
0
+Z
0
=x
0
+x
1
+x
2
+x
3
X
1
=Y
1
+w
1
Z
1
=x
0
+w
1
x
1
-x
2
-w
1
x
3
X
2
=Y
0
- Z
0
=x
0
- x
1
+x
2
- x
3
X
3
=Y
1
- w
1
Z
1
=x
0
- w
1
x
1
- x
2
+w
1
x
3
TFD
ordre
N/2=2
TFD
ordre
N/2=2
w
1
w
1
Pour obtenir les 4 valeurs X(k), il suft 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

n=0
x(n)e
j2
nk
N
X(k) =
N/21

i=0
x(2i)e
j2
2ik
N
+
N/21

i=0
x(2i +1)e
j2
2(i+1)k
N
X(k) =
N/21

i=0
x(2i)e
j2
ik
N/2
+e
j2
k
N
N/21

i=0
x(2i +1)e
j2
ik
N/2
X(k) =
N/21

i=0
y(i)e
j2
ik
N/2
+w
k
N/21

i=0
z(i)e
j2
ik
N/2
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 TFDY(k) et Z(k).
Ainsi pour k N/21, les 2 termes de la somme se dduisent des termes de rang k de Y(k) et Z(k):
X(k) =
N/21

i=0
y(i)e
j2
ik
N/2
+w
k
N/21

i=0
z(i)e
j2
ik
N/2
=Y(k) +w
k
Z(k)
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
j2i
= 1, on peut dduire X(k) des termes de rang k N/2 des 2 TFDY(k) et Z(k):
X(k) =
N/21

i=0
y(i)e
j2
ik
N/2
+w
k
N/21

i=0
z(i)e
j2
ik
N/2
X(k) =
N/21

i=0
y(i)e
j2
i(k+N/2)
N/2
+w
k
N/21

i=0
z(i)e
j2
i(k+N/2)
N/2
X(k) =
N/21

i=0
y(i)e
j2
ik
N/2
+w
k
N/21

i=0
z(i)e
j2
ik
N/2
X(k) = Y(k N/2) +w
k
Z(k N/2)
En conclusion, pour tout N multiple de 2, on peut calculer chaque terme X(k) de la TFD dordre N en com-
binant, 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:
Pour k
_
0,
N
2
1
_
X(k) =Y(k) +w
k
Z(k)
2. Transforme de Fourier Rapide TFR, Fast Fourier transform FFT Page 19
Pour k
_
N
2
, N1
_
X(k) =Y(k N/2) +w
k
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/21]. 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:
Pour k
_
0,
N
2
1
_ _
X(k) =Y(k) +w
k
Z(k)
X(k +N/2) =Y
k
+w
k+N/2
Z(k) =Y(k) w
k
Z(k)
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 efcace),
on peut dire que:
Le calcul dune TFD dordre N pair, avec cet algorithme, demande:
Le calcul de 2 TFD dordre N/2:
_
2
_
N
2
_
2
=
N
2
2
multiplications complexes
2
N
2
_
N
2
1
_
= N
_
N
2
1
_
additions complexes
Le calcul de N/2 papillons:
_
N
2
multiplications complexes
N additions/soustractions
Soit un total de
_
N
2
2
+
N
2
multiplications complexes
N
2
2
additions complexes
au lieu de:
_
N
2
multiplications complexes
N(N1) 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 = 2
l
, on peut ritrer la mthode l fois et cal-
culer la TFD dordre N laide de l tages de N/2 papillons, avec l = log
2
(N). La complexit de calcul dune
TFD dordre N devient alors celle de l tages de N/2 papillons, soit:
_
l
N
2
= log
2
(N)
N
2
multiplications complexes
l N = log
2
(N)N additions complexes
Cet algorithme est lalgorithme de FFT avec entrelacement temporel (base 2) de Cooley-Tukey.
Ainsi pour N =1024 =2
1
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. Lefcacit de la FFT augmente avec N.
Pour N = 4, le schma complet de lalgorithme est le suivant:
Page 20 Chapter I. Transforme de Fourier discrte: TFD et TFR
x
0
x
2
Y
0
= x
0
+x
2
Y
1
= x
0
- x
2
x
1
x
3
Z
0
= x
1
+x
3
Z
1
= x
1
- x
3
X
0
=Y
0
+Z
0
=x
0
+x
1
+x
2
+x
3
X
1
=Y
1
+w
1
Z
1
=x
0
+w
1
x
1
-x
2
-w
1
x
3
X
2
=Y
0
- Z
0
=x
0
- x
1
+x
2
- x
3
X
3
=Y
1
- w
1
Z
1
=x
0
- w
1
x
1
- x
2
+w
1
x
3
w
1
w
1
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 = log
2
(N)), a la forme suivante:
U
k
U
k + N / 2
(l-i+1)
V
k
V
k + N / 2
(l-i+1)
Entre de ltage i
Sortie de ltage i w
(k,i)
A ltape i, les indices des termes associs dans un papillon sont spars de N
i
, N
i
tant la taille des DFT
intervenant ltape i, cest dire N
i
= 2
i1
= 2
l
l/2
(li+1)
= N/2
(li+1)
.
Le terme w
(i,k)
vaut:
w
(i,k)
= e
j2
k
2N
i = e
j2
k
N
N
2
i
= w
k2
li
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 = 2
l
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(N1)) sont regroupes en 2 paquets: un paquet form
des donnes dindices pairs (X(0), X(2), . . . , X(N2)) 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) +w
2
x(1) +w
4
x(2) +w
6
x(3) = (x(0) +x(2)) (x(1) +x(3))
X(1) = x(0) +w
1
x(1) +w
2
x(2) +w
3
x(3) = (x(0) x(2)) +
_
w
1
(x(1) x(3))

X(3) = x(0) +w
3
x(1) +w
6
x(2) +w
9
x(3) = (x(0) x(2))
_
w
1
(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 Page 21
x
0
x
1
x
2
x
3
X
0
X
2
X
1
X
3
TFD
ordre
N/2=2
w
1
w
0
TFD
ordre
N/2=2
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

n=0
x(n)e
j2
nk
N
X(2i) =
N/21

n=0
x(n)e
j2
n2i
N
+
N1

n=N/2
x(n)e
j2
n2i
N
X(2i) =
N/21

n=0
x(n)e
j2
ni
N/2
+
N/21

m=0
x(m+N/2)e
j2
mi
N/2
X(2i) =
N/21

n=0
(x(n) +x(n+N/2))e
j2
ni
N/2
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/21 .
De mme pour les termes X(k) de rang impair:
X(k) =

n
x(n)e
j2
nk
N
X(2i +1) =
N/21

n=0
x(n)e
j2
n(2i+1)
N
+
N1

n=N/2
x(n)e
j2
n(2i+1)
N
X(2i +1) =
N/21

n=0
x(n)e
j2
n
N
e
j2
ni
N/2

N/21

m=0
x(m+N/2)e
j2
m
N
e
j2
mi
N/2
X(2i +1) =
N/21

n=0
w
n
(x(n) x(n+N/2)) e
j2
ni
N/2
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
w
n
(x(n) x(n+N/2)), avec n entre 0 et N/21.
Dune manire gnrale si N est une puissance de 2: N = 2
l
, on peut ritrer la mthode l fois et calculer
la TFD dordre N laide de l tages de N/2 papillons., avec l = log
2
(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 = log
2
(N)), a la forme suivante:
Page 22 Chapter I. Transforme de Fourier discrte: TFD et TFR
U
k
U
k + N / 2
i
V
k
V
k + N / 2
i
Entre de ltage i
Sortie de ltage i w
(k,i)
A ltape i, Les indices des termes associs dans un papillon sont spars de N
i
, N
i
tant la taille des DFT
intervenant ltape i, cest dire N
i
= N/2
i
. Et le terme w
(i,k)
vaut:
w
(i,k)
= e
j2
k
2N
i = e
j2
k2
i
2N
= w
k2
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
ordre naturel
0
1
2
3
reprsentation
binaire
00
01
10
11
reprsentation
retourne
00
10
01
11
indices
ordre entrelac
0
2
1
3
2.4 Formulation matricielle de lalgorithme de Cooley-Tukey
On utilise les mmes notations que prcdemment:
N = 2
l
w = e
j
2
N
. On utilise le fait que w
N
= 1 et que w
N/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) =
7

k=0
x(k)e
j2
nk
N
=
7

k=0
x(k)w
nk
On dcompose les indices n et k (qui sont compris entre 0 et 7) en base 2:
n = n
2
2
2
+n
1
2
1
+n
0
2
0
k = k
2
2
2
+k
1
2
1
+k
0
2
0
On effectue le produit nk en dveloppant selon k, (Il sufrait de dvelopper selon n pour obtenir lalgorithme
avec entrelacement temporel):
w
nk
= w
nk
2
2
2
w
nk
1
2
1
w
nk
0
w
nk
= w
(n
2
2
2
+n
1
2
1
+n
0
)k
2
2
2
w
(n
2
2
2
+n
1
2
1
+n
0
)k
1
2
1
w
(n
2
2
2
+n
1
2
1
+n
0
)k
0
w
8
= 1
w
nk
= w
n
0
k
2
2
2
w
(n
1
2
1
+n
0
)k
1
2
1
w
(n
2
2
2
+n
1
2
1
+n
0
)k
0
2. Transforme de Fourier Rapide TFR, Fast Fourier transform FFT Page 23
X(n) =
7

k=0
x(k)w
nk
X(n) =
1

k
0
=0
_
1

k
1
=0
_
1

k
2
=0
x(k
2
, k
1
, k
1
)w
n
0
k
2
2
2
_
w
(2n
1
+n
0
)k
1
2
1
_
w
(4n
2
+2n
1
+n
0
)k
0
On a ainsi dcompos la sommation unique sur k en 3 = log
2
(8) sommations sur k
0
, k
1
, k
2
.
Si on effectue la sommation sur k
2
, on obtient un terme:
x
1
(n
0
, k
1
, k
0
) =
1

k
2
=0
x(k
2
, k
1
, k
0
)w
n
0
k
2
2
2
x
1
(n
0
, k
1
, k
0
) = x(0, k
1
, k
0
) +x(1, k
1
, k
0
)w
4n
0
Si lon considre lensemble des valeurs x
1
que lon peut obtenir en donnant aux indices n
0
, k
1
, k
0
toutes les
valeurs possibles, on obtient 8 valeurs x
1
(n) avec n [0, 7] qui vrient les relations:
x
1
(i) = x(i) +w
0
x(i +4) pour i 3
x
1
(i +4) = x(i) w
0
x(i +4)
avec i = n
0
2
2
+k
1
2+k
0
On peut regrouper les valeurs de x
1
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/2
l
. Lensemble
des relations prcdentes peut scrire sous la forme matricielle:
_

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

_
=
_

_
1 0 0 0 w
0
0 0 0
0 1 0 0 0 w
0
0 0
0 0 1 0 0 0 w
0
0
0 0 0 1 0 0 0 w
0
1 0 0 0 w
0
0 0 0
0 1 0 0 0 w
0
0 0
0 0 1 0 0 0 w
0
0
0 0 0 1 0 0 0 w
0
_

_
_

_
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
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)
x
1
(0)
x
1
(1)
x
1
(2)
x
1
(3)
x
1
(4)
x
1
(5)
x
1
(6)
x
1
(7)
w
0
w
0
w
0
w
0
-w
0
-w
0
-w
0
-w
0
La deuxime tape est la sommation sur k
1
:
x
2
(n
0
, n
1
, k
0
) =
1

k
1
=0
x
1
(n
0
, k
1
, k
0
)w
(2n
1
+n
0
)2k
1
x
2
(n
0
, n
1
, k
0
) = x
1
(n
0
, 0, k
0
) +x
1
(n
0
, 1, k
0
)w
4n
1
+2n
0
avec w
4n
1
= (1)
n
1
En donnant aux indices n
0
, n
1
, k
0
toutes les valeurs possibles on obtient les relations duales:
x
2
(i) = x
1
(i) +w
2n
0
x
1
(i +2) pour i 3
x
2
(i +2) = x
1
(i) w
2n
0
x
1
(i +2)
avec i = 4n
0
+k
0
cest dire n
1
= 0
Page 24 Chapter I. Transforme de Fourier discrte: TFD et TFR
Les valeurs de x
2
se calculent 2 par 2 partir des 2 valeurs de x
1
de mmes indices de ltape prcdente. Les
noeuds duaux tant espacs de N/2
2
= 2. Les relations prcdentes correspondent la forme matricielle:
_

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

_
=
_

_
1 0 w
0
0 0 0 0 0
0 1 0 w
0
0 0 0 0
1 0 w
0
0 0 0 0 0
0 1 0 w
0
0 0 0 0
0 0 0 0 1 0 w
2
0
0 0 0 0 0 1 0 w
2
0 0 0 0 1 0 w
2
0
0 0 0 0 0 1 0 w
2
_

_
_

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

_
Ces relations peuvent aussi se reprsenter sous la forme graphique de papillons:
x
1
(0)
x
1
(1)
x
1
(2)
x
1
(3)
x
1
(4)
x
1
(5)
x
1
(6)
x
1
(7)
x
2
(0)
x
2
(1)
x
2
(2)
x
2
(3)
x
2
(4)
x
2
(5)
x
2
(6)
x
2
(7)
w
0
w
0
-w
0
-w
0
w
2
w
2
-w
2
-w
2
Lexposant de w dans les relations prcdentes est obtenu en divisant logiquement i par 2 et en retournant le
rsultat.
Enn la troisime tape est la sommation sur k
0
qui conduit la relation:
x
3
(n
0
, n
1
, n
2
) =
1

k
0
=0
x
2
(n
0
, n
1
, k
0
)w
(4n
2
+2n
1
+n
0
)k
0
x
3
(n
0
, n
1
, n
2
) = x
2
(n
0
, n
1
, 0) +x
2
(n
0
, n
1
, 1)w
(4n
2
+2n
1
+n
0
)
avec w
4n
2
= (1)
n
2
Ce qui conduit aux relations duales:
x
3
(i) = x
2
(i) +w
2n
1
+n
0
x
2
(i +1)
x
3
(i +1) = x
2
(i) w
2n
1
+n
0
x
2
(i +1) pour i pair
avec i = 4n
0
+2n
1
Les valeurs de x
3
se calculent 2 par 2 partir des 2 valeurs de x
2
de mmes indices de ltape prcdente.
Les noeuds duaux tant espacs de N/2
3
= 1. Lexposant de w sobtient en divisant logiquement i par 1 et en
retournant le rsultat.
Les relations prcdentes correspondent la forme matricielle:
_

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

_
=
_

_
1 w
0
0 0 0 0 0 0
1 w
0
0 0 0 0 0 0
0 0 1 w
2
0 0 0 0
0 0 1 w
2
0 0 0 0
0 0 0 0 1 w
1
0 0
0 0 0 0 1 w
1
0 0
0 0 0 0 0 0 1 w
3
0 0 0 0 0 0 1 w
3
_

_
_

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

_
Relations qui se reprsentent graphiquement par:
2. Transforme de Fourier Rapide TFR, Fast Fourier transform FFT Page 25
x
2
(0)
x
2
(1)
x
2
(2)
x
2
(3)
x
2
(4)
x
2
(5)
x
2
(6)
x
2
(7)
x
3
(0)
x
3
(1)
x
3
(2)
x
3
(3)
x
3
(4)
x
3
(5)
x
3
(6)
x
3
(7)
w
0
-w
0
-w
2
-w
2
-w
1 W
1
w
3
-w
3
Cette dernire suite de valeurs est gale la suite cherche X(n) mais dans le dsordre:
X(n
2
, n
1
, n
0
) = x
3
(n
0
, n
1
, n
2
)
En rsum:
_

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

_
=
_

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

_
=
_

_
1 w
0
0 0 0 0 0 0
1 w
0
0 0 0 0 0 0
0 0 1 w
2
0 0 0 0
0 0 1 w
2
0 0 0 0
0 0 0 0 1 w
1
0 0
0 0 0 0 1 w
1
0 0
0 0 0 0 0 0 1 w
3
0 0 0 0 0 0 1 w
3
_

_
x
_

_
1 0 w
0
0 0 0 0 0
0 1 0 w
0
0 0 0 0
1 0 w
0
0 0 0 0 0
0 1 0 w
0
0 0 0 0
0 0 0 0 1 0 w
2
0
0 0 0 0 0 1 0 w
2
0 0 0 0 1 0 w
2
0
0 0 0 0 0 1 0 w
2
_

_
x
_

_
1 0 0 0 w
0
0 0 0
0 1 0 0 0 w
0
0 0
0 0 1 0 0 0 w
0
0
0 0 0 1 0 0 0 w
0
1 0 0 0 w
0
0 0 0
0 1 0 0 0 w
0
0 0
0 0 1 0 0 0 w
0
0
0 0 0 1 0 0 0 w
0
_

_
_

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

_
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
w
0
w
0
w
0
w
0
-w
0
-w
0
-w
0
-w
0
x
1
(0)
x
1
(1)
x
1
(2)
x
1
(3)
x
1
(4)
x
1
(5)
x
1
(6)
x
1
(7)
w
0
w
0
-w
0
-w
0
w
2
w
2
-w
2
-w
2
x
2
(0)
x
2
(1)
x
2
(2)
x
2
(3)
x
2
(4)
x
2
(5)
x
2
(6)
x
2
(7)
x
3
(0)
x
3
(1)
x
3
(2)
x
3
(3)
x
3
(4)
x
3
(5)
x
3
(6)
x
3
(7)
w
0
-w
0
-w
2
-w
2
-w
1 w
1
w
3
-w
3
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 efcace que
lalgorithme en base 2. Le nombre doprations ncessaires tant alors de:
_
log
4
(N)
3N
4
multiplications complexes
log
4
(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

i=0
x(i)y(ni)
Page 26 Chapter I. Transforme de Fourier discrte: TFD et TFR
la suite (u(n)) a pour dure P+Q1.
On peut calculer directement les (P+Q-1) valeurs de la suite (u(n)). Ce calcule ncessite P(Q+1) multi-
plications pour (Q P). Si P et Q sont grands, il peut tre efcace 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+Q1.
Appelons (x
l
(n)) et (y
l
(n)) les suites prolonges par des zros.
La suite (z
l
(n)) = (x
l
(n)) (y
l
(n)) concide avec la suite (u(n)) sur ses P+Q1 premiers points.
Pour calculer la suite (u(n)), il suft donc de:
1. complter les suites (x(n)) et (y(n)) par des zros pour quelles aient N points, avec N P+Q1.
2. Calculer par FFT les suites X
l
(k) et Y
l
(k): DFT des suites (x
l
(n)) et (y
l
(n)).
3. Calculer la suite Z
l
(k) produit des suites X
l
(k) et Y
l
(k):Z
l
(k) = X
l
(k) Y
l
(k)
4. Calculer la suite z
l
(n) par FFT inverse de Z
l
(k)
5. Identier (u(n)) avec les P+Q1 premiers points de z
l
(n).
Le nombre doprations effectuer est de:
3 FFT (directes ou inverses) de N points + N multiplications complexes, cest dire:
_
3
2
Nlog
2
(N) +N multiplications complexes
Nlog
2
(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 multipli-
cation complexe demandant 4 multiplications relles, on constate que le gain de calcul par FFT serait de:
500500
160004
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+M1 premiers points avec les bonnes valeurs. Les petites convolutions se superposent 2 2 sur (P1)
points.
2. Transforme de Fourier Rapide TFR, Fast Fourier transform FFT Page 27
x(n)
y
1
(n)
u
1
(n)
y
2
(n)
u
2
(n)
y
3
(n)
u
3
(n)
u(n) = x(n) * y(n)
Cette mthode permet de limiter la taille de la mmoire ncessaire.
Page 28 Chapter I. Transforme de Fourier discrte: TFD et TFR
EXERCICES ET PROBLMES
Exercice 1 : Calculer la transforme de Fourier discrte de la suite (x
n
) forme de N = 8 points (n [0,7]),
obtenue en chantillonnant la frquence f
e
= 16 Hz le signal x(t):
x(t) = 2sin(8t) +8cos(4t)
Exercice 2 : Calculer la TFD de la suite x
n
suivante:
x
n
est forme de N =24 points obtenus en chantillonnant le signal x(t) =3sin(8t)+4cos(6t) la frquence
f
e
= 24 Hz.
Exercice 3 : Comparer le rsultat de la convolution linaire et de la convolution circulaire des 2 suites x
n
et y
n
suivantes:
_
x
n
= 1 pour 0 n 3
x
n
= 0 pour n / [0, 3]
_
y
n
= 2 pour 0 n 3
y
n
= 0 pour n / [0, 3]
On appellera z
n
le rsultat de la convolution linaire:
z
n
=
3

k=0
x
k
y
nk
et t
n
le rsultat de la convolution circulaire:
t
n
=
3

k=0
x
k
y
nk
o nk signie n-k modulo N = 4.
Exercice 4 : Pour N = 4, la TFD de la suite: x
0
, x
1
, x
2
, x
3
scrit: X
0
, X
1
, X
2
, X
3
avec:
X
k
=
3

k=0
x
n
e
j2
nk
4
1) Ecrire la matrice de passage du vecteur
_
_
_
_
x
0
x
1
x
2
x
3
_
_
_
_
au vecteur
_
_
_
_
X
0
X
1
X
2
X
3
_
_
_
_
. On notera w = e
2 j

4
.
2) Quel est le nombre de multiplications et dadditions effectuer pour effectuer le calcul de la TFD sans algo-
rithme 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

Vous aimerez peut-être aussi