Vous êtes sur la page 1sur 31

Chapitre 7

Transformée de Fourier discrète

La transformée de Fourier discrète (DFT) est une méthode qui permet de décrire un
signal discret en termes de fréquence, tout comme la transformée de Fourier permet de
décrir un signal continu en termes de fréquence. On verra comment se servir de la trans-
formée de Fourier discrète pour analyser le contenu fréquentiel d’un signal discret.

À la fin du chapitre, on expliquera brièvement la Transformée de Fourier rapide, la


FFT. C’est une méthode beaucoup plus rapide pour calculer la DFT, et c’est l’opération la
plus importante en traitement de signal.

7.1 Introduction

La transformée de Fourier discrète est une méthode pour décomposer un signal en


composantes sinusoı̈dales. Pourquoi utiliser des composantes sinusoı̈dales, plutôt que
des ondes triangulaires ou carrées ? L’avantage des ondes sinusoı̈dales est la fidélité si-
nusoı̈dale : si l’entrée d’un système linéaire est un sinusoı̈de, la sortie doit être un si-
nusoı̈de de même fréquence et de même forme (c’est aussi un sinusoı̈de à la sortie). Seule
l’amplitude et la phase peuvent changer. Les sinusoı̈des sont les seules formes d’onde à
posséder cette propriété. Cette propriété simplifie énormément l’analyse et la décomposi-
tion des signaux.

La transformée de Fourier continue dit qu’un signal continu peut être décomposé
en une somme infinie de sinusoı̈des. Pour le cas discret, le nombre de sinusoı̈des n’est
pas infini : c’est un chiffre fini. La figure 7.1 montre un exemple de signal discret à 10
échantillons.

1
CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

40

20

−20
0 1 2 3 4 5 6 7 8 9 10
n

Figure 7.1 – Signal à décomposer

On peut décomposer le signal de la figure 7.1 en 6 cosinus et 6 sinus. Ces ondes sont
montrées aux figures 7.2 et 7.3. Les points en bleu sont les échantillons, tandis que les
courbes en rouge sont juste tracées pour montrer que les points appartiennent bien aux
sinusoı̈des. Ce n’est peut-être pas évident, mais si on fait la somme de ces 12 signaux,
on obtient exactement le signal de la figure 7.1. Chaque cosinus et chaque sinus est de
fréquence différente.

Il existe quatre termes qui peuvent définir une transformée de Fourier. Ces quatres
termes proviennent du fait qu’un signal peut être continu ou discret, et périodique ou
apériodique. La combination de ces caractéristiques donne les quatre termes suivants :
1. Transformée de Fourier : Ceci s’applique aux signaux continus apériodiques. Ce
genre de signal s’étend vers l’infini (positif ou négatif) sans se répéter. Un exponen-
tiel est un exemple, ou une courbe gaussienne.
2. Série de Fourier : S’applique aux signaux continus périodiques. Ces signaux se
répètent avec une période finie. Un sinusoı̈de, une onde carrée, une onde triangu-
laire sont des exemples de ce genre de signal.
3. Transformée de Fourier à temps discret (DTFT) : S’applique aux signaux discrets
apériodiques.
4. Transformée de Fourier discrète (DFT) : S’applique aux signaux discrets périodi-
ques. Ce genre de signal se répète avec une période finie.
La seule transformée qui s’applique aux problèmes de traitement du signal est la
Transformée de Fourier discrète (DFT). Les deux premières transformées sont appliquées
à des signaux continus, et donc ne peuvent pas être utilisées pour des signaux discrets.
Quand à la DTFT, elle s’applique à des signaux allant de −∞ à +∞, et donc ne peut pas
être utilisée ici, puisque l’information traitée est toujours de longueur finie. Il reste donc
la DFT. Bien que les signaux réels sont très peu souvent périodiques, on va les supposer
périodiques pour pouvoir les traiter.

Gabriel Cormier 2 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

10 10

0 0

−10 −10
0 2 4 6 8 10 0 2 4 6 8 10
n n
10 10

0 0

−10 −10
0 2 4 6 8 10 0 2 4 6 8 10
n n
10 10

0 0

−10 −10
0 2 4 6 8 10 0 2 4 6 8 10
n n

Figure 7.2 – Composantes cosinusoı̈dales

7.2 Série de Fourier discrète

La DFT peut être représentée sous trois formes : forme réelle, forme complexe (ou
exponentielle) et la forme polaire. Certaines formes permettent de simplifier les calculs
mathématiques, tandis que d’autres permettent de mieux comprendre de la transforma-
tion. La Transformée de Fourier discrète dans sa forme réelle permet de transformer un
signal discret de N échantillons dans le temps en deux signaux de longueur N /2 + 1 dans
le domaine de fréquence. Le premier signal transformé représente l’amplitude des ondes
cosinusoı̈dales qui forment le signal discret, tandis que le deuxième signal transformé
représente l’amplitude des ondes sinusoı̈dales qui forment le signal discret.

Le signal ainsi décomposé contient la même information que le signal original ; elle
est juste sous une autre forme. Si on connaı̂t un domaine, on peut calculer l’autre do-
maine. Le fait de passer du domaine du temps au domaine de fréquence implique la
transformée de Fourier directe (ou juste la transformée de Fourier) ; si on passe du do-
maine de fréquence au domaine du temps, c’est la transformée inverse. Si on connaı̂t le

Gabriel Cormier 3 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

10 10

0 0

−10 −10
0 2 4 6 8 10 0 2 4 6 8 10
n n
10 10

0 0

−10 −10
0 2 4 6 8 10 0 2 4 6 8 10
n n
10 10

0 0

−10 −10
0 2 4 6 8 10 0 2 4 6 8 10
n n

Figure 7.3 – Composantes sinusoı̈dales

domaine de fréquence, le calcul du domaine du temps est appelé la synthèse ; si on calcul


le domaine de fréquence, il s’agit de l’analyse.

Le nombre d’échantillons choisis N est typiquement une puissance de 2 : 128, 256,


512, 1024, etc. Il y a deux raisons pour ceci. Premièrement, l’information est stockée dans
un ordinateur, où on utilise le binaire ; les puissances de 2 sont donc un choix naturel.
Deuxièmement, on verra plus loin qu’on peut accélérer énormément le calcul de la DFT
si la longueur des échantillons est une puissance de 2 ; c’est la Transformée de Fourier
rapide (FFT). Les échantillons vont habituellement de 0 à N − 1.

La notation typique en DSP est d’utiliser des lettres minuscules pour représenter des
signaux en fonction du temps (comme x[ ], y[ ]), et des majuscules pour les signaux en
fonction de la fréquence (X[ ], Y [ ]).

La transformée de Fourier discrète est obtenue à partir de la série de Fourier continue,

Gabriel Cormier 4 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

qui est :

X
f (t) = Cn ejnω0 t (7.1)
n=−∞
où les coefficients de la série sont :
Z T
1
Cn = f (t)e−jnω0 t (7.2)
T 0

On peut transformer les coefficients de la série continue aux coefficients de la série


discrète, en faisant les substitutions suivantes : f (t) → x[n] (le signal devient échantillon-
né) ; ω0 → 2πf ; t → nts (le temps continu devient un temps discret), dt → ts ; N = T /ts .
On obtient alors :
N −1
1X
XDFS [k] = x[n]e−j2πkn/N (7.3)
N
n=0
C’est la série de Fourier discrète (DFS).

La partie réelle des coefficients obtenus représente l’amplitude des cosinus qui forment
le signal original, tandis que la partie imaginaire représente l’amplitude des sinus qui
forment le signal original. Cependant, les coefficients obtenus représentent aussi les coef-
ficients des fréquences négatives du signal. On prend un exemple pour démontrer.

Soit un signal analogique x(t) = 4 cos(100πt). On échantillonne ce signal à 2 fois la


fréquence Nyquist, pour 3 périodes. La fréquence du signal x(t) est 50Hz ; le taux de Ny-
quist est 100Hz, et donc on échantillonne à S = 200Hz. Le signal et l’échantillonnage sont
montrés à la figure 7.4. Puisque l’échantillonnage se fait à 4 fois la fréquence du signal
(200/50), on prend 4 échantillons par période, pour un total de 12 échantillons.

−2

−4
0 1 2 3 4 5 6 7 8 9 10 11 12
n

Figure 7.4 – Signal échantillonné

Gabriel Cormier 5 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

On applique maintenant la série de Fourier discrète à la séquence obtenue (équation


7.3). On trace à la figure 7.5 l’amplitude de la partie réelle de X[k]. La partie réelle
représente l’amplitude des cosinus qui forment le signal.

1.5

0.5

0
0 1 2 3 4 5 6 7 8 9 10 11 12
k

Figure 7.5 – Amplitude des coefficients de la DFS

Remarquer qu’on obtient deux pics d’amplitude 2, alors qu’on sait qu’il n’y a qu’un
seul cosinus d’amplitude 4. Que se passe-t’il alors ? Et comment interpréter l’abscisse du
graphe ? Il y a un pic au point k = 3 et k = 9, ce qui implique qu’il y a deux cosinus de
présents dans le signal, alors qu’on sait qu’il n’y en a qu’un seul.

La série de Fourier discrète a la propriété d’avoir la symétrie conjugée :

X[k] = X ∗ [N − k] (7.4)

Ce qui veut dire que les points de k = N /2 + 1 à k = N − 1 sont le conjugué des points
k = 0, 1, · · · , N /2. De façon pratique, les points de N /2 à N représentent les fréquences
imaginaires. Pour obtenir le spectre réel de notre signal, il faut prendre les points de
N /2 + 1 à N − 1 et les replier. Le point N /2 + 1 devient le point k = −1, le point N /2 + 2
devient le point k = −2, et ainsi de suite. Pour la figure 7.5, si on réarrange les points, on
obtient la figure 7.6. Remarquer que les points varient maintenant de k = −5 à k = 6. On
voit bien aussi qu’il y a une fréquence négative d’amplitude de 2 au point k = −3.

Si on veut un graphe où il y a seulement des fréquences positives, et que ces fréquences
contiennent l’ensemble de l’énergie disponible dans le signal, il faudra multiplier tous les
coefficients par 2, sauf le premier (le DC est à la bonne amplitude).

L’abscisse, quant à elle, peut être représentée de plusieurs façons.


1. Les points de k = 0 à N − 1 peuvent être substitués par F = k/N , la fréquence
discrète. L’abscisse prendra donc des valeurs de 0 à 1. C’est un peu comme si les

Gabriel Cormier 6 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

1.5

0.5

0
−6 −5 −4 −3 −2 −1 0 1 2 3 4 5 6
k

Figure 7.6 – Amplitude des coefficients des cosinus de la DFS

points représentent un pourcentage de la fréquence d’échantillonnage. Cependant,


les seules fréquences qui font du sens d’un côté pratique sont les fréquences de 0 à
0.5F.
2. Les points de k = 0 à N −1 peuvent être substitués par f = (k/N )fs . Dans ce cas-ci, on
utilise une échelle absolue : les fréquences sont des fréquences réelles. Tout comme
la situation précédente, seule les fréquences de 0 à 0.5fs ont un sens pratique.
3. On peut aussi tracer les fréquences sur l’abscisse en termes de fréquences radiales.
Il suffit alors de multiplier les valeurs par 2π.
On peut donc retracer la figure 7.5 pour obtenir un graphe qui donne plus d’infor-
mation pratique. On obtient la figure 7.7, où on montre 2 options : tracer le graphe en
fonction de F ou de f . Dans ce cas, on voit bien que la DFS donne la bonne fréquence du
signal : 50Hz.

2 2

1 1

0 0
0 0.1 0.2 0.3 0.4 0.5 0 20 40 60 80 100
F f (Hz)

Figure 7.7 – Amplitude de la partie réelle de la DFS

Gabriel Cormier 7 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

7.2.1 Problèmes de la DFS

Qu’arrive-t’il si on n’échantillonne pas un nombre entier de périodes ? Est-ce que ça va


changer le spectre obtenu ?

On reprend l’exemple précédent, sauf qu’on échantillonne à 240Hz. Le rapport S/f0 ne


donne pas un entier ; il n’y a donc pas un nombre entier d’échantillons par période, et on
n’a pas échantillonné pour un nombre entier de périodes (on n’a pas une période complète
du signal discret). La figure 7.8 montre ce signal échantillonné.

−2

−4
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
n

Figure 7.8 – Signal échantillonné

On va maintenant faire la DFS de ce signal échantillonné, comme on l’a fait pour


l’exemple précédent. On va seulement montrer la partie pratique de la DFS, c’est-à-dire
les fréquences de 0 à 0.5S, donc 0 à 120Hz. La figure 7.9 montre le spectre.

Il y a bien une erreur dans le spectre : la fréquence réelle est 50Hz, alors que la
fréquence montrée est 51.5Hz, une erreur de 3%. Cette erreur se produit si on ne prend
pas un nombre entier de points par période.

On peut aussi comprendre ce phénomène si on considère que de 0 à 120Hz, il y a 8


points au total (à cause du nombre d’échantillons utilisés). Donc, l’intervalle de 0 à 120
est divisé en 7 pas égaux, ce qui donne 17.14 Hz par pas. Le point le plus proche de 50Hz
est 3 fois 17.14, ou 51.4Hz. On n’a pas assez de points pour représenter correctement le
50Hz. L’intervalle entre les points dans le domaine de la fréquence est appelé l’espacement
spectral, et est donné par S/N .

Si on n’échantillonne pas un signal pour un nombre entier d’échantillons par période,


il y aura une erreur dans les coefficients de la série Fourier discrète calculés. On appelle

Gabriel Cormier 8 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

1.5

0.5

0
0 10 20 30 40 50 60 70 80 90 100 110 120
f (Hz)

Figure 7.9 – Spectre du signal échantillonné à 240Hz

ce phénomène de la fuite spectrale (leakage), et la série de Fourier calculée donnera des


fréquences autres que celles contenues dans le signal (mais quand même près de la vraie
fréquence).

7.2.2 Effets de la fuite spectrale

La fuite spectrale est présente si on n’échantillonne pas un signal périodique x(t) pour
un nombre entier de périodes. La transformée de Fourier discrète aura des composantes
non-nulles à des fréquences autres que ±f0 , parce que l’extension de notre signal x(t)
n’est pas égale à la période du signal x[n]. Il peut aussi avoir du repliement si le si-
gnal continu contient des harmoniques de fréquences plus élevées que la moitié du taux
d’échantillonnage.

On peut réduire les effets du repliement si on échantillonne à un taux plus grand que
le taux de Nyquist. De façon pratique, pour avoir une erreur plus petite que 5% dans
les M premières harmoniques, on utilise un taux d’échantillonnage S = 8fM , où fM est la
fréquence de la Mième harmonique.

Pour minimiser les effets de fuite spectrale, on devrait idéalement échantillonner pour
un nombre entier de périodes. De façon pratique, ceci n’est pas possible. On doit donc
échantillonner le plus longtemps possible, pour avoir plus d’échantillons (et donc réduire
l’espacement spectral).

On prend un autre exemple pour montrer les effets de la fuite. Soit le signal de la figure
7.10. Il s’agit d’une onde carrée à 50Hz échantillonnée à 1kHz, donc 20 échantillons par
période.

Gabriel Cormier 9 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

−1
0 2 4 6 8 10 12 14 16 18 20
Temps (ms)

Figure 7.10 – Onde carrée à 50Hz échantillonnée à 1kHz

j2
Les coefficients de la série de Fourier pour une onde carrée sont X[k] = − kπ où k est
impair. On va donc appliquer la série de Fourier discrète au signal échantillonné pour
trouver les fréquences de ce signal (un rappel qu’une onde carrée a une infinité d’harmo-
niques).

On obtient le spectre de la figure 7.11. On voit bien l’amplitude des harmoniques.

0.6

0.4

0.2

0
0 50 100 150 200 250 300 350 400 450 500
Fréquence (Hz)

Figure 7.11 – Spectre de l’onde carrée à 50Hz échantillonnée à 1kHz

Les coefficients calculés de la série de Fourier discrète sont


X[k] = {0, −j0.6346, 0, −j0.206, 0, −j0.1169, . . .} (7.5)
Cependant, les coefficients de la série de Fourier sont
X[k] = {0, −j0.6366, 0, −j0.212, 0, −j0.1273, . . .} (7.6)
L’erreur sur les coefficients de la série de Fourier discrète augmentent de plus en plus
selon les harmoniques.

Gabriel Cormier 10 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

7.3 Transformée de Fourier discrète

La transformée de Fourier discrète est donnée par :


N
X −1
XDFT [k] = x[n]e−j2πkn/N (7.7)
n=0

La relation entre la série de Fourier discrète et la transformée de Fourier discrète est


très simple :
XDFT = N XDFS (7.8)

La transformée inverse (IDFT), qui permet de retrouver le signal x[n], est :


N −1
1X
x[n] = XDFT [k]ej2πkn/N (7.9)
N
k=0

Exemple 1

Calculer la DFT du signal suivant : x[n] = {1, 2, 1, 0}

Dans ce cas-ci, on a N = 4, et donc selon la définition de la DFT, e−j2πkn/N = e−jπkn/2 .


On calcule les valeurs :
3
X
k = 0 : XDFT [0] = x[n]e0 = 1 + 2 + 1 + 0 = 4
n=0
X3
k = 1 : XDFT [1] = x[n]e−jπn/2 = 1 + 2e−jπ/2 + e−jπ + 0 = −j2
n=0
X3
k = 2 : XDFT [2] = x[n]e−jπn = 1 + 2e−jπ + e−j2π + 0 = 0
n=0
X3
k = 3 : XDFT [3] = x[n]e−j3πn/2 = 1 + 2e−j3π/2 + e−j3π + 0 = j2
n=0

La DFT est donc : XDFT = {4, −j2, 0, j2}. Noter que XDFT est symétrique conjugué par
rapport à k = N /2 = 2.

Gabriel Cormier 11 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

Quelques transformées utiles :

{1, 0, 0, 0, . . . , 0} impulsion ⇐⇒ {1, 1, 1, 1, . . . , 1} constante (7.10)


{1, 1, 1, 1, . . . , 1} constante ⇐⇒ {N , 0, 0, 0, . . . , 0} impulsion (7.11)
cos(2πnk0 /N ) sinusoı̈de ⇐⇒ 0.5N (δ[k − k0 ] + δ[k − (N − k0 )]) paire δ (7.12)

Remarquer qu’un signal qui est court dans le temps est long en fréquence, et vice-
versa.

7.4 Applications

On verra ici quelques applications de la transformée de Fourier.

7.4.1 Analyse spectrale d’un signal

Il existe plusieurs signaux dont l’information est encodée dans des sinusoı̈des. La voix
est un bon exemple ; les humains peuvent distinguer des sons de 20Hz à 20kHz environ ;
la musique n’est qu’une suite de notes de fréquence fixes (la note A4 est 440Hz). Les pales
d’un sous-marin tournent à une fréquence qui peut être détectée.

On prend un exemple pour démontrer comment l’information peut être contenue dans
des sinusoı̈des. Supposons qu’on veut caractériser le son qui se propage dans l’océan. On
place un microphone dans l’eau, puis on amplifie le signal jusqu’à ce qu’il soit de quelques
volts. Un filtre passe-bas est utilisé pour enlever les fréquences au-dessus de 80Hz, et donc
on échantillonne à 160 échantillons par secondes. Après avoir échantillonné le signal,
quelle est la prochaine étape ?

La première chose à faire est de tout simplement regarder le signal échantillonné.


La figure 7.12 montre le signal échantillonné. On ne peut pas distinguer quelque chose
d’utile dans ce signal. Il y a beaucoup de bruit.

Après avoir filtré le signal pour éliminer le bruit, et fait la transformée de Fourier, on
obtient le spectre de la figure 7.13.

On peut maintenant analyser le contenu du spectre. Si on ignore les pics pour le mo-
ment, on voit que entre 10Hz et 70Hz que la valeur est relativement constante. Ceci est
dû au bruit blanc gaussien. Le bruit blanc est appelé ainsi parce qu’il contient une mon-
tant égal de fréquences, tout comme la lumière blanche. C’est un bruit non corrélé : la

Gabriel Cormier 12 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

0.4

0.2

−0.2

0 0.2 0.4 0.6 0.8 1 1.2 1.4


Temps (s)

Figure 7.12 – Signal échantillonné

0.4

0.2

0
0 10 20 30 40 50 60 70 80
Fréquence (Hz)

Figure 7.13 – Spectre du signal échantillonné

valeur du bruit pour un échantillon ne donne aucune information à propos d’un autre
échantillon. Par exemple, le mouvement aléatoire des électrons produit du bruit blanc.
Donc, dans le spectre de la figure 7.13, le bruit blanc peut être causé par plusieurs choses,
soit l’électronique utilisée pour mesurer le signal, ou l’océan lui-même.

Pour les fréquences très faibles, moins de 5Hz dans ce cas-ci, on remarque que le bruit
augmente rapidement, avec une forme qui ressemble à 1/f . C’est le bruit rose, ou fli-
cker noise, ou 1-over-f noise. La source de ce type de bruit est inconnu. Le bruit rose ap-
paraı̂t dans pratiquement tous les systèmes, que ce soit électrique, mécanique, etc. Au-
cune théorie ne permet présentement d’expliquer tous les cas où ce bruit se trouve. Pour
les système électroniques et plusieurs systèmes physiques, le bruit rose devient plus faible
que le bruit blanc entre 1 et 100Hz environ.

On peut maintenant analyser sur les pics. Le plus simple à expliquer est celui de 60Hz :
c’est la contamination des appareils électroniques. On voit aussi souvent des pics à 120Hz,
180Hz, etc à cause des harmoniques. Il y a aussi souvent de la contamination électronique

Gabriel Cormier 13 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

à 25-40kHz, qui sont les fréquences les plus utilisées pour les alimentations à découpage.
Des pics à basses fréquences peuvent aussi être causés par des mouvements mécaniques :
par exemple, le moteur d’un bateau qui tourne à 1800 tours/minute apparaı̂tront à 30Hz.

Dans le signal de la figure 7.13, on obtient un pic très prononcé à 13Hz environ, et
un pic plus faible à 26 Hz, ce qui est probablement un harmonique du signal de 13Hz. Ce
signal pourrait être causé par un sous-marin dont les pales tournent à 4.33 tours/seconde.
Cette technique est la base du sonar passif utilisé pour détecter des sous-marins.

Obtention du spectre

Pour obtenir le spectre d’un signal à l’aide de la DFT, il suffit d’appliquer l’équation
7.7 aux échantillons. Cependant, il faut bien savoir interpréter les résultats. On prend un
exemple assez simple : soit le signal de la figure 7.14. Ce signal fut généré en Matlab, et
est la somme de trois sinusoı̈des :

x[t] = 0.5 cos(2π44t) + 0.4 sin(2π322t) + 0.5 cos(2π415t) (7.13)

On a aussi ajouté du bruit blanc gaussien, avec un rapport signal-à-bruit (SNR) de


15dB. Le signal est échantillonné à 3kHz, et on prend 256 échantillons. Le code Matlab
pour générer la figure est le suivant :

N = 256; S = 3000;
t = 0:1/S:(N-1)/S;
x = 0.5*cos(2*pi*t*44)+0.4*sin(2*pi*t*322)+0.5*cos(2*pi*t*415);
x = awgn(x,15);

−1

0 10 20 30 40 50 60 70 80 90
Temps (ms)

Figure 7.14 – Signal échantillonné

Gabriel Cormier 14 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

On peut maintenant appliquer la transformée de Fourier à ce signal pour retrouver les


fréquences. Le code Matlab pour implanter l’équation 7.7 est :

n = 1:N;
X = fft(x);

où x est le signal généré avec le code plus haut. On obtient ainsi le graphe de la figure
7.15. Remarquer qu’on n’a conservé que les 129 premiers points ; les autres ne sont pas
nécessaires.

60

40

20

0
0 10 20 30 40 50 60 70 80 90 100 110 120 130
k

Figure 7.15 – DFT du signal échantillonné

Pour tracer la figure, on utilise :

n = 0:N/2;
X1 = abs(X); stem(n,X1(1:N/2+1),’o’);xlabel(’f (Hz)’);

Il y a un problème avec la figure : l’abscisse est en fonction des points k, et ne donne


aucune information quant à la fréquence. Il faut transformer l’axe des x à un axe en
fonction de la fréquence d’échantillonnage. C’est seulement en fonction de la fréquence
d’échantillonnage que le graphe peut faire du sens du côté pratique. Les points de 0 à 128
doivent en fait être de 0 à 1500Hz. On utilisera donc, en Matlab,

f = 0:S/N:0.5*S;
X1 = abs(X); stem(f,X1(1:N/2+1),’o’);xlabel(’k’);

au lieu du code précédent, ce qui donne la figure 7.16.

Gabriel Cormier 15 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

60

40

20

0
0 200 400 600 800 1,000 1,200 1,400
Fréquence (Hz)

Figure 7.16 – DFT du signal échantillonné, en fonction de la fréquence

Il y a peu d’information utile après 500Hz, selon le spectre obtenu. On va donc limiter
l’axe x à 500Hz pour mieux voir les composantes spectrales. En Matlab, pour limiter l’axe
x, on utilise la commande xlim().

xlim([0 500]);

Le spectre obtenu après toutes ces modifications est donné à la figure 7.17. Remarquer
qu’on obtient un pic à 44Hz, et deux pics à environ 330Hz et deux pics à environ 420Hz.
Les pics sont tous aux bonnes fréquences, mais on n’a pas assez de points pour obtenir
une bonne résolution.

60

40

20

0
0 50 100 150 200 250 300 350 400 450 500
Fréquence (Hz)

Figure 7.17 – DFT du signal échantillonné, en fonction de la fréquence

Avec 1024 points, on obtient le spectre de la figure 7.18. La résolution spectrale est
bien meilleure.

Gabriel Cormier 16 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

200

100

0
0 50 100 150 200 250 300 350 400 450 500
Fréquence (Hz)

Figure 7.18 – DFT du signal échantillonné, en fonction de la fréquence, avec 1024 points

Avec plus de points, la résolution est encore meilleure, mais le temps de calcul aug-
mente. Avec 4096 points, en utilisant l’algorithme présenté plus haut, il faut plus de 15
secondes avec un Pentium IV 2.4GHz pour faire le calcul de la DFT. Pour des applications
en temps réel ceci est beaucoup trop long ; et souvent, pour des applications réelles, il faut
plusieurs milliers de points.

Fenêtre de Hamming

Une autre façon d’améliorer les pics sans utiliser plus de points est de multiplier le
signal par une composante qu’on appelle une fenêtre de Hamming. Une fenêtre de Ham-
ming est un graphe qui ressemble à celui de la figure 7.19 a), tandis que son effet sur le
signal échantillonné est montré à la figure 7.19 b). L’effet de la fenêtre de Hamming est
d’atténuer les bouts du signal.

1
1

0.5 0

−1
0
0 50 100 150 200 250 0 20 40 60 80
n Temps (ms)

Figure 7.19 – Fenêtre de Hamming et son effet sur le signal échantillonné

Gabriel Cormier 17 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

En termes de spectre, l’effet de la fenêtre de Hamming est de rendre les pics plus
grands par rapport au bruit, mais cependant ça les élargit. On peut voir à la figure 7.20
le spectre sans la fenêtre de Hamming et avec celle-ci. Remarquer qu’avec la fenêtre de
Hamming, les pics sont plus grands par rapport au bruit, mais qu’ils sont plus larges.

Sans fenêtre de Hamming Avec la fenêtre de Hamming

60
30

40
20

20 10

0 0
0 100 200 300 400 500 0 100 200 300 400 500
Fréquence (Hz) Fréquence (Hz)

Figure 7.20 – Effet de la fenêtre de Hamming sur le spectre

Il existe d’autre fenêtres que celle de Hamming : fenêtre de Blackman, fenêtre flat-top,
fenêtre Bartlett, etc. Celles-ci ont tous différents avantages et désavantages : ou bien elles
permettent d’avoir un pic plus étroit et des bandes latérales plus larges, ou le pic est plus
large mais les bandes latérales sont plus faibles. Le choix d’une fenêtre se fait en fonction
de l’application : a-t’on besoin de pics très minces, ou est-ce qu’il faut éliminer les bandes
latérales à tout prix ? Toutes les fenêtres doivent maximiser l’énergie dans le lobe principal
(de leur spectre en fréquence) et minimiser l’énergie dans les lobes latéraux.

7.4.2 Réponse en fréquence d’un système

Une autre application de la DFT est la réponse en fréquence d’un système, qui permet
de voir comment un système se comporte en termes de fréquence. La réponse en fréquence
d’un système est la transformée de Fourier de sa réponse impulsionnelle. Dans certains
cas, la réponse en fréquence donne beaucoup plus d’information sur la fonction d’un
système.

Soit la réponse impulsionnelle de la figure 7.21. À regarder ce signal, on ne peut pas


dire quelle est la fonction du système.

Cependant, si on fait la DFT de ce système, alors la fonction devient bien plus claire.
La figure 7.22 montre la DFT du système effectuée avec 64 points. Le système est en fait

Gabriel Cormier 18 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

0.2

−0.2
0 5 10 15 20 25 30 35 40 45 50 55 60
n

Figure 7.21 – Réponse impulsionnelle d’un système quelconque

un filtre passe-bande.

0.5

0
0 5 · 10−2 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
F

Figure 7.22 – DFT du système à 64 points

Pour obtenir plus de résolution, on va effectuer la DFT avec plus de points. Pour ac-
complir ceci, il suffit d’ajouter des zéros après la séquence mesurée. La figure 7.23 montre
ceci.

7.4.3 Convolution par la DFT

Une autre application de la DFT est pour faire la convolution de deux signaux. Sup-
posons qu’on a un signal et la réponse impulsionnelle d’un système. Comment trouver la
sortie ? On a vu que dans le domaine du temps, on doit utiliser la convolution. Mais on
peut aussi utiliser la DFT. En effet, une convolution dans le domaine du temps est égal à
la multiplication des DFT :
x[n] ∗ h[n] ⇐⇒ XDFT [k]HDFT [k] (7.14)

Gabriel Cormier 19 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

Signal additionné de zéros DFT

1
0.2

0 0.5

−0.2 0
0 100 200 300 400 500 0 0.1 0.2 0.3 0.4 0.5
n F

Figure 7.23 – DFT du système à 512 points

Bien qu’il y a des étapes supplémentaires (on doit faire la DFT de x[n], la DFT de h[n],
puis multiplier les deux et faire ensuite la transformée inverse), en termes de temps de
calcul, ce processus est souvent plus rapide, surtout à cause de la FFT, qu’on verra au
prochain chapitre.

Une autre application de la DFT à la convolution est la déconvolution. Si on a la sortie


à un système et sa réponse impulsionnelle, comment faire pour calculer l’entrée ? Si on
essaie de faire ce calcul dans le domaine du temps, il s’agit de la déconvolution. Cepen-
dant, la déconvolution est beaucoup plus complexe que la convolution et très difficile à
conceptualiser. Dans le domaine de la fréquence, en utilisant la DFT, la déconvolution est
une simple opération de division.

Il y a cependant un problème associé à faire la convolution en passant par la DFT : la


longueur de la séquence de sortie. On a vu que la longueur d’un signal qui est le résultat de
la convolution de deux signaux de longueur M et N est M + N − 1. La longueur d’une DFT
appliquée à un signal de longueur N est de longueur N aussi. Il manque donc les M − 1
points pour obtenir la vraie convolution, Exemple : soit un signal d’entrée de longueur
N =256 points, et la réponse impulsionnelle du système de M = 51 points. La convolution
produira alors un signal de longueur 306 points. Mais si on utilise la DFT pour calculer la
sortie, on aura 256 points à la sortie. Comment peut-on prendre les 306 points et les placer
dans 256 points ? On ne peut pas. Ceci est appelé le problème de la convolution circulaire.

Ce qui arrive lorsqu’on fait la convolution circulaire, c’est que les M −2 derniers points
de la convolution s’additionnent aux premiers points de la convolution. Les M−2 premiers
points sont alors faux : les valeurs sont ajoutées ensembles, et on ne peut plus reconstruire
la bonne information.

Pour éviter ce problème, il suffit d’ajouter des zéros aux signaux, de sorte que lorsque

Gabriel Cormier 20 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

les M − 2 derniers points s’additionnent aux premiers points, il n’y ait pas d’erreur. Par
exemple, on pourrait ajouter des zéros au signal d’entrée et à la réponse impulsionnelle
des signaux mentionnés ci-haut de sorte qu’ils soient 512 points de longueur. La DFT de
ces signaux sera alors composée de 306 échantillons qui ne sont pas zéro, et les 206 autres
échantillons seront nuls.

Exemple 2

Soit x[n] = {1, −3, 1, 5} et h[n] = {4, 3, 2, 1}. Calculer la convolution par la DFT.

La convolution régulière donne y[n] = {4, −9, −3, 18, 14, 11, 5}.

Si on fait la DFT de x[n] et h[n], on obtient X[k] = {4, j8, 0, −j8} et H[k] = {10, −2 −
j2, 2, −2 + j2}.

La multiplication point par point de ces deux séquences est :


Y [k] = {40, 16 + j16, 0, 16 − j16}
et ensuite on calcule la transformée inverse,
y[n] = {18, 2, 2, 18}
ce qui est bien différent de la convolution régulière.

Il faut ajouter des zéros aux séquences originales. La convolution régulière aura une
longueur de 4 + 4 − 1 = 7 échantillons. Il faut donc ajouter 3 zéros à chacune des séquences
x[n] et h[n] pour qu’elles soient de longueur 7.

Si on refait les étapes de calcul, on aura


X[k] = {4, −5.60 − j0.80, 3.88 + j7.27, 3.21 − j2.79, 3.21 + j2.79, 3.88 − j7.27, −5.60 + j0.80}
H[k] = {10, 4.52 − j4.73, 2.15 − j1.28, 2.32 − j0.71, 2.32 + j0.71, 2.15 + j1.282, 4.52 + j4.73}

On multiplie les séquences :

Y [k] = {40, −29.11 + j22.86, 17.63 + j10.70, 5.47 − j8.77,


5.47 + j8.77, 17.63 − j10.70, −29.11 − j22.86}
Puis on fait la IDFT :
y[n] = y[n] = {4, −9, −3, 18, 14, 11, 5}
ce qui est la même chose.

Gabriel Cormier 21 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

7.5 Propriétés de la DFT

Voici certaines propriétés de la DFT. Si XDFT est la DFT d’un signal discret x[n], alors

kx[n] ⇐⇒ kXDFT [k] linéarité (7.15)


x1 [n] + x2 [n] ⇐⇒ X1 [k] + X2 [k] additivité (7.16)

x[−n] ⇐⇒ XDFT [−k] = XDFT [k] repliement (7.17)
x[n − s] ⇐⇒ e−j2πsk/N XDFT [k] déphasage (7.18)
1
x[n]y[n] ⇐⇒ XDFT [k] ~ YDFT [k] multiplication (7.19)
N
x[n] ~ y[n] ⇐⇒ XDFT [k]YDFT [k] convolution périodique (7.20)

Si XDFT [k] est la DFT d’une séquence x[n], alors :


1. Si un signal est répété M fois, la DFT de ce signal est l’interpolation zéro de XDFT et
multipliée par M.

{x[n], x[n], x[n], . . . , x[n]} ⇐⇒ MXDFT [k/M] (7.21)


| {z }
Mfois

2. Si un signal subit une interpolation zéro de M, alors la DFT est répétée M fois :

x[n/M] ⇐⇒ {XDFT [k], XDFT [k], XDFT [k], . . . , XDFT [k]} (7.22)
| {z }
Mfois

7.5.1 Théorème de Parseval

Puisque le domaine du temps et de la fréquence sont équivalents pour représenter un


signal, ils doivent avoir la même énergie. On appelle ceci la loi de Parseval. Pour la DFT,
on l’exprime de la façon suivante :
N −1 N /2
X 1 X
x2 [n] = |X[k]|2 (7.23)
N
i=0 k=−N /2

Bien que d’un côté physique ce théorème soit intéressant, d’un côté pratique il est peu
utilisé.

Gabriel Cormier 22 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

7.5.2 Formulation matricielle de la DFT

On peut exprimer la DFT sous forme matricielle. Dans certains cas, ceci peut aider la
programmation de la DFT. Soit WN = e−j2π/N , alors
N
X −1
XDFT [k] = x[n]WNnk , k = 0, 1, . . . , N − 1 (7.24)
n=0

On peut alors écrire la relation matricielle suivante :

X = WN x (7.25)

où X et x sont des matrices N × 1, et la matrice WN est la matrice DFT :


 0
WN WN0 WN0 WN0

··· 
 0 1 2 N −1
WN WN WN ··· WN


2(N −1) 
 
W 0 W 2 W 4
· · · W
WN =  N (7.26)

N N N 
 .. .
. .
. . . .
.

 .
 . . . . 

 0 N −1 2(N −1) (N −1)(N −1) 
WN WN WN · · · WN

7.6 Détection de signaux avec la DFT

Étant donné un signal analogique x(t), qu’on sait contient des composantes périodi-
ques, comment faire pour les détecter ? Une méthode simple est d’utiliser les effets du
repliement : l’emplacement des composantes du spectre peut changer à cause du replie-
ment. Si on peut échantillonner les données à de différents taux d’échantillonnage, on
peut trouver les composantes périodiques du signal. Cette méthode est simple, mais ce
n’est certainement pas la meilleure façon de détecter un signal.

Un exemple est donné à la figure 7.24. Dans ce cas-ci, le signal utilisé est

x(t) = 0.5 cos(170πt) + 0.3 cos(230πt) + 0.8 cos(450πt)

On va échantillonner ce signal à différents taux d’échantillonnage pour voir si le spectre


varie.

Dans la figure 7.24, on voit que les pic changent de position et d’amplitude pour S =
100Hz, 200Hz et 500Hz. Pour S = 1kHz, les pics n’ont pas changé de position ; seule
l’amplitude a changé un peu.

Gabriel Cormier 23 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

S = 100Hz S = 200Hz

0.4 0.4

0.2 0.2

0 0
0 10 20 30 40 50 0 20 40 60 80 100
f (Hz) f (Hz)
S = 500Hz S = 1000Hz
0.3 0.4

0.3
0.2
0.2
0.1
0.1

0 0
0 50 100 150 200 250 0 100 200 300 400 500
f (Hz) f (Hz)

Figure 7.24 – Spectre d’un signal pour différents taux d’échantillonnage

7.7 DTFT

La DTFT (transformée de Fourier à temps discret) est une méthode pour décrire un si-
gnal discret comme une somme d’exponentiels complexes. La DTFT, qui est appliquée sur
un signal discret, produit un spectre continu. La DFT représente la version échantillonnée
de la DTFT.

Par définition, la DTFT est :



X
X(F) = x[m]e−j2πmF (7.27)
m=−∞

où F est une variable continue.

La DTFT est périodique, avec une période de 1. L’intervalle de −0.5 < F < 0.5 est appelé

Gabriel Cormier 24 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

la période principale.

La DTFT inverse est : Z 0.5


x[n] = X(F)ej2πnF dF (7.28)
−0.5

Exemple 3

Calculer la DTFT de la séquence x[n] = {1, 0, 3, −2}.

À partir de la définition,

X
X(F) = x[m]e−j2πmF = 1 + 3e−j4πF − 2e−j6πF
m=−∞

L’amplitude du spectre est montré à la figure 7.25.

5
Amplitude

2
−0.4 −0.2 0 0.2 0.4 0.6 0.8 1
F

Figure 7.25 – Amplitude de la DTFT de l’exemple 3

Remarquer le spectre périodique de X(F) par rapport à F = 0 et F = 0.5.

7.8 Transformée de Fourier rapide

Il existe plusieurs méthodes pour calculer la DFT, mais la plus rapide est la trans-
formée de Fourier rapide (FFT). Cet algorithme est très efficace, jusqu’à des centaines de

Gabriel Cormier 25 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

fois plus rapide que les méthodes conventionnelles. Si la FFT n’aurait pas été inventée, il
ne serait pas pratique d’utiliser plusieurs méthodes de traitement du signal.

J.W. Cooley et J.W. Tukey sont les deux ingénieurs crédités pour l’invention de la FFT,
dans un article paru en 1965. Bien que la technique utilisée n’était pas récente, les deux
auteurs étaient les premiers à réaliser que les méthodes mathématiques de Gauss pou-
vaient être utilisées avec des ordinateurs. La FFT est comme le transistor du traitement
des signaux.

7.8.1 Problèmes de la DFT

L’algorithme de la DFT, tel que présenté au chapitre précédent, a certains problèmes.


L’algorithme est inefficace : il n’utilise pas certaines propriétés intéressantes de la trans-
formée, comme par exemple le fait que la deuxième moitié de la transformée est le conju-
gué de la première moitié. L’optimisation du calcul de la DFT est rendue possible en ex-
ploitant les propriétés suivantes :
1. Exploiter la symétrie et la périodicité de WN : En fait, puisque WN = e−j2π/N , il
possède de la symétrie et de la périodicité.
(a) WNn+N = e−j2π(n+N )/N = e−j2πn/N e−j2πN /N = e−j2πn/N = WNn ,
(b) WNn+N /2 = e−j2π(n+N /2)/N = e−j2πn/N e−jπ = −e−j2π/N = −WNn ,
(c) WNN k = e−j2πN k/N = e−j2πk = 1, où k est un entier,
(d) WN2 = e−j2π2/N = e−j2π/(N /2) = e−j2π/N = WN /2
2. Choisir une valeur de N qui est le produit de plusieurs petit chiffres : On veut
que N = r1 r2 · · · rm . Il est utile de choisir la même valeur de r, de sorte que N = r m . Le
choix le plus populaire est r = 2.
3. La décimation des indices : On accélère le calcul si on sépare les indices en nombres
pairs et impaires.
4. Utilisation efficace de la mémoire : Cet aspect touche plutôt le côté pratique, si
on emmagasine les résultats des calculs dans les même adresses qu’occupaient les
données.
5. L’utilisation de quelques résultats simples mais fondamentaux :
(a) La DFT d’un seul échantillon est l’échantillon lui-même :

XDFT [0] = x[0]W10 = x[0] (7.29)

(b) La DFT de deux échantillons est une opération simple :

X2 [0] = x[0]W20 + x[1]W20 = x[0] + x[1] (7.30)


X2 [1] = x[0]W20 + x[1]W21 = x[0] − x[1] (7.31)

Gabriel Cormier 26 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

7.8.2 FFT

Le calcul de la DFT est une opération d’ordre N 2 . On considère en premier l’équation


de la DFT,
N
X −1
X[k] = x[n]WNnk (7.32)
n=0
où
WN = e−j2π/N (7.33)

En regardant les équations précédentes, on remarque qu’il faut :


1. N 2 multiplications complexes
2. N (N − 1) additions complexes
pour faire le calcul de la DFT.

Il y beaucoup d’opérations à effectuer. Qu’arrive-t’il si on sépare le travail en deux,


c’est-à-dire de diviser le signal en deux parties égales, et faire la DFT sur chaque signal,
puis recombiner à la fin ?

On sépare le signal original x[n] en deux composantes xe [n] et xo [n], qui représentent
les parties paires et impaires du signal original, respectivement. Selon les propriétés de la
DFT, on obtient :
X X
X[k] = Xe [k] + Xo [n] = x[n]WNnk + x[n]WNnk (7.34)
n=pair n=impair

On fait la substitution n = 2m pour les indices paires et n = 2m + 1 pour les indices


impaires, et on obtient :
NX
/2−1 NX
/2−1
k(2m+1)
X[k] = x[2m]WN2mk + x[2m + 1]WN (7.35)
m=0 m=0

Si on regarde cette dernière équation de plus près, on remarque qu’il faut N · (N /2) mul-
tiplications pour le premier groupe pair, et la même chose pour le groupe impair. Il y a
donc au total N 2 /2 + N 2 /2 = N 2 multiplications. On en est donc au même point qu’avant !
Cependant, on peut prendre avantage de la symétrie pour réduire le nombre d’opérations.

En effet, WN2 = WN /2 . On peut réécrire l’équation 7.35 à :


NX
/2−1 NX
/2−1
X[k] = x[2m]WNkm/2 + WNk x[2m + 1]WNkm/2 (7.36)
m=0 m=0

Gabriel Cormier 27 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

Les signaux x[2m] et x[2m + 1] sont de longueur N /2. On utilise X e [k] et X o [k] pour
désigner leur DFT. On obtient :

X[k] = X e [k] + WNk X o [k] (7.37)


où k = 0, 1, · · · , N − 1.

Puisque X e [k] et X o [k] sont des DFT de longueur N /2, ils sont périodiques avec une
période N /2. Avec les propriétés de la DFT, on peut écrire X e [k + N /2] = X e [k], et X o [k +
N /2] = X o [k]. Et comme on a vu plus haut, WNk+N /2 = −WNk . On peut donc écrire :

X[k] = X e [k] + WNk X o [k], k = 0, 1, · · · , N /2 − 1 (7.38)


X[k + N /2] = X e [k] − WNk X o [k], k = 0, 1, · · · , N /2 − 1 (7.39)

Si on calcul le nombre d’opérations nécessaires, on voit qu’il faut (N /2)(N /2) multipli-
cations pour calculer X e [k], et la même chose pour calculer X o [k]. Il faut N /2 multiplica-
tions de plus pour calculer WNk X o [k], ce qui fait un total de N 2 /2 + N /2 multiplications,
au lieu de N 2 . L’algorithme est déjà plus rapide.

On peut continuer ce processus, en divisant chaque signal en deux, pour finir par avoir
des DFT de 1 seul point. Dans ce cas, il faudra (N /2) log2 N multiplications, ce qui est bien
moins que N 2 pour N grand.

7.8.3 Décimation

La FFT fonctionne en décomposant un signal discret de N échantillons en N signaux


de longueur d’un seul point. La deuxième étape est de calculer les N spectres qui corres-
pondent aux N signaux. La dernière étape est de reconstruire le spectre de N points.

La figure 7.26 montre un exemple de la décomposition utilisée pour la FFT. Un signal


de 16 points est décomposé en 4 étapes à 16 signaux de 1 point chacun. À chaque étape,
on divise les signaux en composantes paires et impaires : c’est la décimation des indices.
Il y a donc log2 N étages de décomposition.

Bien que la décomposition semble donner une séquence aléatoire, l’ordre des indices
suit un ordre particulier. En fait, il s’agit de lire les indices sous forme binaire en ordre
inverse. Au lieu de lire les chiffres binaires de gauche à droite, on fait la lecture de droite
à gauche ; c’est aussi la même chose que de tourner les bits de 180° par rapport au centre.
La figure 7.27 montre un exemple de décimation pour un signal à 16 points.

La prochaine étape dans le calcul de la FFT est de trouver la DFT des signaux de 1
point. Rien n’est plus facile : la DFT d’un signal d’un seul point est le point lui-même,

Gabriel Cormier 28 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

1 signal de 16
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
points

2 signaux de 8
0 2 4 6 8 10 12 14 1 3 5 7 9 11 13 15
points

4 signaux de 4
0 4 8 12 2 6 10 14 1 5 9 13 3 7 11 15
points

8 signaux de 2
0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15
points

16 signaux de 1
0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15
point

Figure 7.26 – Décomposition d’une FFT à 16 points

Séquence originale sous


Séquence originale forme binaire
0 1 2 3 ... 0000 0001 0010 0011

Séquence de la FFT Inversion de la séquence


0 8 4 12 . . . 0000 1000 0100 1100

Figure 7.27 – Décimation des indices (système à 4 bits)

comme on a vu plus haut. Il n’y a donc rien à faire à cette étape ici. Une fois la décimation
terminée, le signal n’est plus un signal en fonction du temps, mais un signal en fonction
de la fréquence.

La dernière étape de l’algorithme est de recombiner les N signaux en un seul signal


de N points. Il faut faire la reconstruction en suivant exactement l’ordre inverse de celui
utilisé pour la décimation. Cependant, il n’y a pas de raccourci ou de séquence facile à
utiliser ; il faut faire la reconstruction étape par étape.

Lorsqu’on combine les séquences pour reconstruire le spectre, si on effectue la recons-


truction dans le domaine du temps, c’est comme si on ajoute des zéros entre les bits :
l’interpolation zéro est utilisée. La figure 7.28 illustre ce concept, en utilisant la même
séquence que dans la figure 7.26.

Cependant, à ce stade-ci, la reconstruction se fait dans le domaine de la fréquence.

Gabriel Cormier 29 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

2 séquences de Ajout de 1 séquence de


2 points zéros 0 0 8 0 4 points
0 8 4 12 + 0 4 8 12
0 4 0 12

Figure 7.28 – Reconstruction du signal, dans le domaine du temps

Quel est l’effet de la reconstruction dans le domaine de la fréquence ? L’ajout de zéros


dans le domaine du temps correspond à doubler le spectre dans le domaine de fréquence.
Si on a une séquence abcd dans le domaine du temps, et qu’on ajoute des zéros pour
avoir a0b0c0d0, dans le domaine de fréquence on aura ABCDABCD. Par contre, pour
la séquence impaire, on ajoute un zéro au début. Dans le domaine de fréquence, ceci
correspond à multiplier par un sinusoı̈de.

On peut représenter la combinaison de deux séquences de 1 point en une séquence de


2 points par une figure appelée un papillon de calcul. La figure 7.29 montre ce papillon de
calcul pour la FFT.

a + A = a + WN b

b ×W − + B = a − WN b

Figure 7.29 – Papillon de calcul de la FFT

7.8.4 Ordinogramme

On utilise souvent un graphique appelé un ordinogramme pour représenter les calculs


de la FFT. L’ordinogramme montre comment les échantillons du signal original sont mul-
tipliés et décimés pour obtenir la FFT. C’est un assemblage des papillons de calcul. La
figure 7.30 montre un exemple d’ordinogramme pour une FFT à 8 points.

7.8.5 Implantation de la FFT

L’implantation pratique de la FFT nécessite un nombre de points (d’échantillons) qui


est une puissance de 2. Si le nombre d’échantillons n’est pas une puissance de 2, on doit

Gabriel Cormier 30 GELE2511


CHAPITRE 7. TRANSFORMÉE DE FOURIER DISCRÈTE

x[0] X[0]

x[4] W0 X[1]
0
W
x[2] X[2]
W0
x[6] W0 W2 X[3]
1
W
x[1] X[4]
2
W
x[5] W0 X[5]
W0 W3
x[3] X[6]
W2
x[7] W0 X[7]

Figure 7.30 – Ordinogramme d’une FFT à 8 points

ajouter des zéros à la fin de la séquence pour combler le manque. De plus, l’algorithme vu
précédemment est appelé la décimation en temps : on fait la décimation sur les échantillons
qui sont en fonction du temps. Il est aussi possible de faire la décimation dans le domaine
de la fréquence. Dans ce cas-là, on utilise les échantillons en fonction du temps dans
l’ordre, et ensuite il faut organiser les échantillons en fonction de la fréquence. Le résultat
est le même.

Gabriel Cormier 31 GELE2511