Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DISCRTE
G. BAUDOIN et J.-F. B ERCHER
cole Suprieure dIngnieurs en lectrotechnique et lectronique
C HAPTER I
Table des matires
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 :
+
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
(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.
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 .
Page 6
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.
x(t)
xe (t) =
n=
(t nTe )
TF
n=
1 +
P( f ) =
Te n=
n
f
Te
|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
Page 7
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
xc (t) = T0
xtr t nT0
n=
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
Page 8
cest--dire que la suite Xc (k) = Xc (k/T0 ) est prcisment la TFD de la suite x(n) = x(nTe ).
N1
x(nTe )e j2
nk
N
n=0
|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
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)
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
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
t
NTe
2
Page 11
|F(f)|
F(t)
NTe
|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
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
NTe
2
<t <
NTe
2
(N Te /2)2
Fg ( ) = exp
4k
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
Page 14
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.
Thorme de Parseval
N1
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
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
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
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
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)
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
+
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
N1
x(n)e j2
nk
N
n=0
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.
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
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
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
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
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
N
,N 1
2
Page 19
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
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
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
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
m=0
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
mi
m=0
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:
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
retourne
ordre entrelac
00
00
01
10
10
01
11
11
x(k)e j2
nk
N
k=0
x(k)wnk
k=0
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
X(n) =
x(k)wnk
k=0
X(n) =
Page 23
k0 =0 k1 =0
x(k2 , k1 , k1 )w
n0 k2 22
w
k2 =0
x(k2 , k1 , k0 )wn k 2
x1 (n0 , k1 , k0 ) =
0 2
k2 =0
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
k1 =0
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
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)
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 ) =
k0 =0
w4n2
= (1)n2
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
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)
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)
P1
x(i)y(n i)
i=0
Page 26
3
2 N log2 (N) + N
multiplications complexes
N log2 (N) additions complexes
x(n)
y1(n)
u1(n)
y2(n)
u2(n)
y3(n)
u3(n)
u(n) = x(n) * y(n)
Page 27
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)
xk ynk
k=0
xk ynk
k=0
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