GELE2511 Chapitre 7 : Transformée de Fourier discrète

Transcription

GELE2511 Chapitre 7 : Transformée de Fourier discrète
GELE2511 Chapitre 7 :
Transformée de Fourier discrète
Gabriel Cormier, Ph.D., ing.
Université de Moncton
Hiver 2013
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
1 / 79
Introduction
Contenu
Contenu
Série de Fourier discrète
Transformée de Fourier discrète
Applications
Transformée de Fourier rapide
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
2 / 79
Introduction
Introduction
La transformée de Fourier discrète est une méthode qui permet de
décrire un signal discret en fonction de la fréquence.
On verra ici comment se servir de la transformée de Fourier discrète
(DFT) pour analyser le contenu fréquentiel d’un signal.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
3 / 79
Introduction
Introduction
Il existe plusieurs termes pour définir la transformée de Fourier de signaux
continus et discrets.
Transformée de Fourier : s’applique aux signaux continus
apériodiques. Produit un spectre apériodique.
Série de Fourier : s’applique aux signaux continus périodiques.
Produit un spectre discret.
Transformée de Fourier à temps discret (DTFT) : s’applique aux
signaux discrets apériodiques. Produit un spectre continu périodique.
Transformée de Fourier discrète (DFT) : s’applique aux signaux
discrets périodiques. Produit un spectre discret.
Série de Fourier discrète (DFS) : sert d’approximation aux
coefficients de la série de Fourier.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
4 / 79
Introduction
Introduction
La seule transformée qui s’applique aux problèmes de traitement de
signaux est la transformée de Fourier discrète (DFT).
Les transformées qui s’appliquent aux signaux continus ne peuvent
pas être utilisées pour des signaux discrets.
Quant à la DTFT, elle s’applique aux signaux de durée infinie : on ne
peut pas s’en servir pour des signaux réels (qui auront une durée
finie).
Même si les signaux discrets ne sont pas nécessairement périodiques,
la DFT est la seule transformée applicable.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
5 / 79
Série de Fourier discrète
Série de Fourier discrète
La série de Fourier discrète est très semblable à la série de Fourier.
Pour le cas discret, le nombre de sinusoı̈des qui constituent un signal
est fini.
On peut utiliser 3 formes, comme la série de Fourier : forme réelle,
forme complexe, forme polaire.
Tout comme le cas à temps continu, on utilise une minuscule pour
représenter un signal en fonction du temps (x[n]) et une majuscule
pour représenter un signal en fonction de la fréquence (X[n]).
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
6 / 79
Série de Fourier discrète
Série de Fourier discrète
La série de Fourier discrète est obtenue à partir de la série de Fourier
continue :
∞
X
f (t) =
Cn ejnω0 t
n=−∞
où les coefficients de la série de Fourier sont :
Z
1 T
f (t)e−jnω0 t dt
Cn =
T 0
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
7 / 79
Série de Fourier discrète
Série de Fourier discrète
On peut transformer les coefficients de la série de Fourier continue
aux coefficients de la série de Fourier discrète en faisant les
substitutions suivantes :
f (t) → x[n] (le signal est échantillonné)
ω0 → 2πf
t → nts
dt → ts
On obtient :
XDF S [k] =
N −1
1 X
x[n]e−j2πkn/N
N
n=0
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
8 / 79
Série de Fourier discrète
Exemple
Soit un signal continu x(t) = 4 cos(100πt), échantillonné à 2 fois le taux
de Nyquist, pour 3 périodes. Puisque f = 50Hz, fN = 100Hz, et donc
fs = 200Hz.
4
2
0
−2
−4
0
2
4
6
n
8
10
12
Le signal échantillonné est x[n] = {4, 0, −4, 0, 4, 0, −4, 0, 4, 0, −4, 0}.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
9 / 79
Série de Fourier discrète
Exemple (2)
On applique l’équation de la DFS pour calculer le spectre.
2
1
0
0
2
4
6
8
10
12
k
Cependant, on a 2 pics dans le spectre, alors qu’il n’y a qu’un seul cosinus.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
10 / 79
Série de Fourier discrète
Exemple (3)
On a un pic à k = 3 et k = 9.
À cause de 3 périodes
50
1
1 3
3
k
f
=
= = · =
=
F =
fs
200
4
4 3
12
N
Est-ce que ça implique qu’on a 2 cosinus dans le signal ?
Il faut considérer la composante négative :
2 cos(−2π50t) + 2 cos(2π50t) = 4 cos(2π50t)
La DFS a la propriété d’être symétrique conjugué :
X[k] = X ∗ [N − k]
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
11 / 79
Série de Fourier discrète
Exemple (4)
On réarrange l’abscisse pour identifier les composantes négatives.
2
1
0
−6
−4
−2
0
2
4
6
k
Les pics sont à k = −3 et k = 3, qui sont donc à la même fréquence.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
12 / 79
Série de Fourier discrète
Exemple (5)
Les points de N/2 + 1 à N − 1 sont le conjugué des points de N/2 à
0.
Si on veut un graphe où il y a seulement des fréquences positives, il
faudra multiplier les amplitudes des coefficients 1 à N/2 (le DC est à
la bonne amplitude).
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
13 / 79
Série de Fourier discrète
Exemple (6)
Comment interpréter l’abscisse ?
L’abscisse fait seulement du sens en fonction du taux
d’échantillonnage.
Les points de k = 0 à N − 1 peuvent être remplacés par F = k/N ;
l’abscisse variera de 0 à 1.
Les points k = 0 à N − 1 peuvent être remplacés par f = (k/N )fs ;
l’abscisse variera de 0 à fs .
On peut aussi représenter les fréquences de façon radiale : on
multiplie par 2π.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
14 / 79
Série de Fourier discrète
Exemple (7)
On peut retracer le spectre en fonction de F ou fs .
2
2
1
1
0
0
0
0.2
0.4
0
F
20
40
60
80
100
f (Hz)
Le pic est bien à la bonne fréquence : 50Hz.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
15 / 79
Fuite spectrale
Problèmes de la DFS
On verra qu’on peut avoir des erreurs dans le spectre si
l’échantillonnage n’est pas fait correctement.
On verra qu’il y a des erreurs si on n’échantillonne pas pour un
nombre entier de points par période.
On reprend l’exemple précédent, mais cette fois on échantillonne à
240Hz au lieu de 200Hz.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
16 / 79
Fuite spectrale
Problèmes de la DFS
On échantillonne à 240Hz : on a 240/50 = 4.8 échantillons par période.
4
2
0
−2
−4
0
2
4
6
8
10
12
14
n
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
17 / 79
Fuite spectrale
Problèmes de la DFS
On calcule la DFS de ce signal.
2
1
0
0
10
20
30
40
50
60
70
80
90
100 110 120
f (Hz)
Il y a erreur dans la fréquence : c’est 51.5 Hz environ, une erreur de 3%.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
18 / 79
Fuite spectrale
Problèmes de la DFS
On peut aussi comprendre ce phénomène si on considère que de 0 à
120 Hz, il y a 8 points (incluant le DC). L’intervalle de 0 à 120 Hz est
divisé en 7 : 17.14 Hz par pas.
Le point le plus près de 50 Hz est 3×17.14, ou 51.4 Hz.
Dans ce cas-ci, on n’a pas assez de points pour représenter
correctement le 50 Hz.
L’intervalle entre les points est appelé l’espacement spectral, et
correspond à S/N .
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
19 / 79
Fuite spectrale
Fuite spectrale
Si on n’échantillonne pas un signal pour un nombre entier de points
par période, il y aura une erreur dans les coefficients de la série de
Fourier.
On appelle ce phénomène la fuite spectrale.
La série de Fourier discrète calculée donnera des fréquences autres
que celles dans le signal (mais quand même près de la vraie valeur).
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
20 / 79
Fuite spectrale
Effets de la fuite spectrale
La fuite spectrale est présente si on n’échantillonne pas pour un
nombre entier de points par période.
La transformée de Fourier aura des composantes non nulles à des
fréquences autres que celles du signal.
Il peut aussi avoir du repliement si le signal continu contient des
harmoniques de fréquence plus élevée que le taux d’échantillonnage.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
21 / 79
Fuite spectrale
Minimiser la fuite spectrale
On peut minimiser les effets de la fuite spectrale si on échantillonne à
un taux plus élevé que le taux de Nyquist.
De façon pratique, pour avoir une erreur plus petite que 5% dans les
M premières harmoniques, il faut échantillonner à fs = 8fM , où fM
est la fréquence de la M ieme harmonique.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
22 / 79
Fuite spectrale
Minimiser la fuite spectrale
On devrait idéalement échantillonner pour un nombre entier de points
par période.
Pratiquement, ceci est rarement possible, puisqu’on ne connaı̂t pas à
priori les fréquences d’un signal.
On doit donc échantillonner le plus longtemps possible, pour réduire
l’espacement spectral.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
23 / 79
Fuite spectrale
Exemple
Soit une onde carrée de 50 Hz échantillonnée à 1 kHz : 20 échantillons par
période.
1
0
−1
0
2
4
6
8
10
12
14
16
18
20
Temps (ms)
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
24 / 79
Fuite spectrale
Exemple (2)
Le spectre :
0.6
0.4
0.2
0
0
100
200
300
400
500
Fréquence (Hz)
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
25 / 79
Fuite spectrale
Exemple (3)
On compare les coefficients de la série de Fourier à ceux de la DFS :
DC
Fondamentale
2e harmonique
3e harmonique
4e harmonique
5e harmonique
|C(k)|
0
0.6366
0
0.212
0
0.1273
|X[k]|
0
0.6346
0
0.206
0
0.1169
Erreur
0
0.3%
0
2.9%
0
8.2%
La fondamentale et la 3e harmonique ont moins de 5% d’erreur :
S < 8(3f0 )
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
26 / 79
Transformée de Fourier discrète
Transformée de Fourier discrète
On peut obtenir la transformée de Fourier discrète à partir de la série de
Fourier discrète.
Transformée de Fourier discrète
XDF T [k] =
N
−1
X
x[n]e−j2πkn/N = N XDF S
n=0
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
27 / 79
Transformée de Fourier discrète
Transformée de Fourier discrète inverse
La transformée inverse (IDFT) est :
Transformée de Fourier discrète inverse
N −1
1 X
XDF T [k]ej2πkn/N
x[n] =
N
k=0
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
28 / 79
Transformée de Fourier discrète
Exemple
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 :
k = 0 : XDF T [0] =
3
X
x[n]e0 = 1 + 2 + 1 + 0 = 4
n=0
k = 1 : XDF T [1] =
3
X
x[n]e−jπn/2 = 1 + 2e−jπ/2 + e−jπ + 0 = −j2
n=0
k = 2 : XDF T [2] =
3
X
x[n]e−jπn = 1 + 2e−jπ + e−j2π + 0 = 0
n=0
k = 3 : XDF T [3] =
3
X
x[n]e−j3πn/2 = 1 + 2e−j3π/2 + e−j3π + 0 = j2
n=0
XDF T = {4, −j2, 0, j2}
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
29 / 79
Transformée de Fourier discrète
Quelques propriétés
Quelques transformées utiles :
{1, 0, 0, 0, . . . , 0} impulsion ⇐⇒ {1, 1, 1, 1, . . . , 1} constante
{1, 1, 1, 1, . . . , 1} constante ⇐⇒ {N, 0, 0, 0, . . . , 0} impulsion
cos(2πnk0 /N ) sinusoı̈de ⇐⇒ 0.5N (δ[k − k0 ] + δ[k − (N − k0 )])
Remarquer qu’un signal qui est court dans le temps est long en fréquence,
et vice-versa.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
30 / 79
Applications
Applications
On verra quelques applications de la transformée de Fourier discrète :
Analyse spectrale d’un signal
Réponse en fréquence d’un système
Convolution
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
31 / 79
Applications
Analyse spectrale
Analyse spectrale
Il existe plusieurs signaux dont l’information est codé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 fixe (ex : A4 est
440Hz).
Les pales d’un sous-marin tournent à une fréquence qui peut être
détectée.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
32 / 79
Applications
Analyse spectrale
Exemple 1
Supposons qu’on veut caractériser les sons enregistrés dans l’océan.
On place un microphone dans l’eau pour enregistrer les sons, puis on
amplifie le signal.
On utilise un filtre passe-bas pour couper les sons au-dessus de 80Hz.
On échantillonne à 160Hz.
On procède ensuite à l’analyse du spectre.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
33 / 79
Applications
Analyse spectrale
Exemple 1
On observe le signal en fonction du temps pour voir si on peut déduire de
l’information.
0.3
0.2
0.1
0
−0.1
−0.2
0
0.5
1
1.5
temps (s)
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
34 / 79
Applications
Analyse spectrale
Exemple 1
On observe maintenant le spectre.
0.8
0.6
0.4
0.2
0
0
10
Gabriel Cormier (UdeM)
20
30
40
50
Fréquence (Hz)
GELE2511 Chapitre 7
60
70
Hiver 2013
80
35 / 79
Applications
Analyse spectrale
Exemple 1
On analyse le contenu spectral :
Si on ignore les pics, on voit qu’entre 10Hz et 70Hz le spectre est
constant ; c’est le bruit blanc gaussien.
Le bruit blanc gaussien est appelé ainsi parce qu’il est constant sur
toutes les fréquences.
Le bruit blanc est causé par plusieurs choses : ici, ça peut être le
microphone, ou même l’océan.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
36 / 79
Applications
Analyse spectrale
Exemple 1
Analyse du contenu spectral (suite) :
Pour les fréquences très faibles, on remarque que le bruit augmente
très rapidement, avec une forme qui ressemble à 1/f : c’est le bruit
rose (flicker noise).
Ce type de bruit apparaı̂t dans pratiquement tous les systèmes
physiques, que ce soit électrique, mécanique, etc. Aucune théorie ne
permet d’expliquer tous les cas où se trouve ce type de bruit.
Pour les systèmes électriques courants, c’est généralement en-dessous
de 100Hz qu’on retrouve ce type de bruit.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
37 / 79
Applications
Analyse spectrale
Exemple 1
Analyse du contenu spectral (suite) : les pics
À 60Hz, il y a généralement pollution causée par l’équipement
électronique. On peut observer des harmoniques à 120Hz, 180Hz, etc.
Il y a souvent des pics entre 25kHz et 40kHz qui sont causés par
certains types d’alimentations à découpage.
Les appareils mécaniques rotatifs causent aussi des fréquences faibles :
un moteur qui tourne à 1800rpm cause des vibrations à 30Hz.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
38 / 79
Applications
Analyse spectrale
Exemple 1
Analyse du contenu spectral (suite) : les pics
Il y a un pic important à 13Hz, et un pic plus faible à 26Hz, qui est
probablement une harmonique de celui de 13Hz.
Ce signal pourrait être causé par les pâles triples d’un sous-marin qui
tournent à 4.33 tours/seconde.
Cette technique est la base du sonar passif.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
39 / 79
Obtention du spectre
Obtention du spectre
Pour obtenir le spectre d’un signal à l’aide de la DFT, il suffit
d’appliquer l’équation de la DFT aux échantillons.
Cependant, il faut bien savoir interpréter les résultats.
On prend donc un exemple simple pour démontrer comment
interpréter correctement la DFT.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
40 / 79
Obtention du spectre
Exemple
Obtention du spectre
Le signal :
x(t) = 0.5 cos(2π44t) + 0.4 sin(2π232t) + 0.5 cos(2π415t)
On va ajouter du bruit blanc gaussien à ce signal en utilisant la commande
awgn dans Matlab.
Le signal sera échantillonné à 3kHz, et on utilisera 256 échantillons.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
41 / 79
Obtention du spectre
Exemple
Obtention du spectre
Le signal est le suivant :
1.5
1
0.5
0
−0.5
−1
−1.5
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
0.08
0.09
Code Matlab :
N
S
t
x
=
=
=
=
256;
3000;
0 : 1/S : (N-1)/S;
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);
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
42 / 79
Obtention du spectre
Exemple
Obtention du spectre
À l’aide de la DFT, on obtient le spectre suivant :
60
50
40
30
20
10
0
0
20
40
60
80
100
120
140
k
Code Matlab :
X = fft(x);
k = 1:N;
plot(k,abs(X));
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
43 / 79
Obtention du spectre
Exemple
Obtention du spectre
Quelques remarques sur la figure précédente :
L’abscisse est en fonction de k, et pas en fonction de la fréquence.
Il faut transformer l’abscisse de sorte qu’elle soit en fonction de la
fréquence d’échantillonnage, si on veut que le graphe fasse du sens du
côté pratique.
Les points de 0 à 128 doivent en fait varier de 0 à 1500Hz (0 à fs /2).
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
44 / 79
Obtention du spectre
Exemple
Obtention du spectre
En fonction de la fréquence :
60
50
40
30
20
10
0
0
500
1000
1500
f (Hz)
Code Matlab :
f = 0: S/N : 0.5*S;
stem(f,abs(X(0:129))); xlabel(’f (Hz)’);
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
45 / 79
Obtention du spectre
Exemple
Obtention du spectre
Il y a peu d’information utile après 500Hz, donc on fait un zoom sur cette
partie du spectre à l’aide de la commande xlim.
60
40
20
0
0
50
100
150
200
250
f (Hz)
300
350
400
450
500
Cependant, la résolution spectrale (S/N ) est de 11.72Hz, ce qui ne permet
pas de bien déterminer les fréquences. Il faudrait utiliser plus de points.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
46 / 79
Obtention du spectre
Exemple
Obtention du spectre
Avec 1024 points, la résolution est bien meilleure.
300
200
100
0
0
50
100
150
200
250
f (Hz)
300
350
400
450
500
Cependant, plus on a de points, plus le temps de calcul est élevé.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
47 / 79
Obtention du spectre
Fenêtre de Hamming
Fenêtre de Hamming
Un façon d’améliorer les pics sans utiliser plus de points est de
multiplier le signal en fonction du temps par une composante appelée
une fenêtre de Hamming.
La fenêtre de Hamming va atténuer les bouts du signal. En termes de
spectre, la fenêtre de Hamming va rendre les pics plus grands par
rapport au bruit, mais ça va aussi les élargir.
Il existe plusieurs autres fenêtres.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
48 / 79
Obtention du spectre
Fenêtre de Hamming
Fenêtre de Hamming
Effet de la fenêtre de Hamming :
Fenêtre de Hamming
Signal multiplié par la fenêtre
1
2
0.8
1
0.6
0
0.4
−1
0.2
0
0
50
100
150
200
250
−2
0
n
0.02
0.04
t
0.06
0.08
Code Matlab :
x = x.*hamming(N)’;
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
49 / 79
Obtention du spectre
Fenêtre de Hamming
Fenêtre de Hamming
On peut voir l’effet de la fenêtre de Hamming sur le spectre.
Sans fenêtre de Hamming
Avec la fenêtre de Hamming
80
40
60
30
40
20
20
10
0
0
100
200
300
f (Hz)
Gabriel Cormier (UdeM)
400
500
0
0
GELE2511 Chapitre 7
100
200
300
f (Hz)
400
Hiver 2013
500
50 / 79
Réponse en fréquence
Réponse en fréquence
Une autre application de la DFT est la réponse en fréquence d’un
système, qui permet de voir le comportement en termes de fréquence.
La réponse en fréquence d’un système est la transformée de Fourier
de la réponse impulsionnelle.
Dans certains cas, la réponse en fréquence donne beaucoup plus
d’information sur la fonction d’un système que sa réponse
impulsionnelle.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
51 / 79
Réponse en fréquence
Réponse en fréquence
Exemple : réponse impulsionnelle d’un système quelconque. Il est difficile
de déterminer la fonction du système.
0.4
0.2
0
−0.2
−0.4
0
Gabriel Cormier (UdeM)
10
20
30
n
GELE2511 Chapitre 7
40
50
60
Hiver 2013
52 / 79
Réponse en fréquence
Réponse en fréquence
En faisant la DFT de ce signal, la fonction est plus claire : c’est un filtre
passe-bande.
1.5
1
0.5
0
0
0.1
0.2
0.3
0.4
0.5
F
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
53 / 79
Réponse en fréquence
Réponse en fréquence
Pour obtenir plus de résolution, on va effectuer la DFT avec plus de
points. On ajoute des zéros à la fin du signal.
signal additioné de zéros
DFT
0.4
1.5
0.2
1
0
0.5
−0.2
−0.4
0
100
200
300
400
500
0
0
n
0.1
0.2
0.3
0.4
0.5
F
On n’a pas augmenté la précision du spectre, seulement sa résolution.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
54 / 79
Convolution
Convolution par la DFT
Une autre application de la DFT est pour faire la convolution de deux
signaux.
Dans le domaine du temps, on utilise la convolution pour calculer la
sortie d’un système.
Dans le domaine de fréquence, on fait la multiplication.
x[n]h[n] ⇐⇒ X[k]H[k]
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
55 / 79
Convolution
Convolution par la DFT
Bien qu’il y ait des étapes supplémentaires, c’est plus rapide de passer
par la DFT pour faire la convolution.
Étapes : DFT de x[n], DFT de h[n], multiplication, transformée
inverse.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
56 / 79
Convolution
Convolution par la DFT
Certains problèmes :
La longueur de la convolution n’est pas la même que la DFT.
Pour un signal x[n] de longueur N et h[n] de longueur M , la
longueur de la convolution est N + M − 1.
La longueur de la DFT est N (si N > M ).
Il manque des points.
Il faut donc ajouter des zéros aux signaux pour qu’ils soient de
longueur N + M − 1, avant de faire la DFT.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
57 / 79
Convolution
Exemple
Soit x[n] = {1, −3, 1, 5} et h[n] = {4, 3, 2, 1}. Effectuer la convolution par
la DFT.
La convolution serait de longueur 4 + 4 − 1 = 7. Il faut ajouter 3 zéros à
chaque séquence.
X[k] = {4.0, −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.72, 2.32 + j0.72,
2.15 + j1.28, 4.52 + j4.73}
On multiplie point par point :
Y [k] = {40, −29.11 + j22.86, 17.63 + j10.72, 5.47 − j8.77, 5.47 + j8.77,
17.63 − j10.70, −29.11 − j22.86}
Puis la transformée inverse :
y[n] = {4, −9, −3, 18, 14, 11, 5}
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
58 / 79
Convolution
Déconvolution
Si on connaı̂t la sortie d’un système et la réponse impulsionnelle, on peut
calculer l’entrée à l’aide de la déconvolution.
Déconvolution est beaucoup plus complexe que la convolution.
Beaucoup plus facile dans le domaine de fréquence.
Division simple dans le domaine de fréquence.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
59 / 79
Propriétés
Propriétés de la DFT
Si XDF T est la DFT d’un signal discret x[n], alors :
kx[n] ⇐⇒ kXDF T [k]
linéarité
x1 [n] + x2 [n] ⇐⇒ X1 [k] + X2 [k]
additivité
∗
XDF
T [k]
repliement
x[n − s] ⇐⇒ e
XDF T [k]
1
x[n]y[n] ⇐⇒ XDF T [k] ~ YDF T [k]
N
x[n] ~ y[n] ⇐⇒ XDF T [k]YDF T [k]
déphasage
x[−n] ⇐⇒ XDF T [−k] =
−j2πsk/N
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
multiplication
convolution périodique
Hiver 2013
60 / 79
Propriétés
Propriétés de la DFT
Si XDF T [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 XDF T et multipliée par M .
{x[n], x[n], x[n], . . . , x[n]} ⇐⇒ M XDF T [k/M ]
|
{z
}
M fois
2
Si un signal subit une interpolation zéro de M , alors la DFT est
répétée M fois :
x[n/M ] ⇐⇒ {XDF T [k], XDF T [k], XDF T [k], . . . , XDF T [k]}
|
{z
}
M fois
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
61 / 79
Propriétés
Théorème de Parseval
Puisque le temps et la fréquence sont deux domaines équivalents pour
représenter un signal, ils doivent avoir la même énergie.
C’est le théorème de Parseval :
N
−1
X
x2 [n] =
i=0
Gabriel Cormier (UdeM)
1
N
N/2
X
|X[k]|2
k=−N/2
GELE2511 Chapitre 7
Hiver 2013
62 / 79
Propriétés
Formulation matricielle
On peut exprimer la DFT sous forme matricielle. Soit WN = e−j2π/N ,
XDF T [k] =
N
−1
X
x[n]WNnk ,
k = 0, 1, . . . , N − 1
n=0
ce qui donne :
X = WN x
où
0
WN
0
 WN

W 0
N
=
 .
 .
 .
0
WN

WN
Gabriel Cormier (UdeM)
0
WN
1
WN
2
WN
..
.
N −1
WN
0
WN
2
WN
4
WN
..
.
2(N −1)
WN
GELE2511 Chapitre 7
···
···
···
..
.
···
0
WN
N −1
WN
2(N −1)
WN
..
.
(N −1)(N −1)








WN
Hiver 2013
63 / 79
Détection de signaux
Détection de signaux
On peut utiliser la DFT pour détecter la fréquence de signaux.
On utilise les effets du repliement.
L’emplacement des composantes spectrales peut changer à cause du
repliement.
Si on peut échantillonner à des taux différents, on peut trouver les
composantes spectrales d’un signal.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
64 / 79
Détection de signaux
Détection de signaux
Pour S = 100, 200 et 500Hz, les pics changent de fréquence. Mais à
S = 1kHz, les pics sont au même endroit que S = 500Hz.
S = 100Hz
S = 200Hz
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0
0
10
20
30
f (Hz)
S = 500Hz
40
50
0
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0
0
Gabriel Cormier (UdeM)
50
100
150
f (Hz)
200
250
0
0
0
GELE2511 Chapitre 7
50
f (Hz)
S = 1000Hz
100
200
300
f (Hz)
100
400
500
Hiver 2013
65 / 79
DTFT
DTFT
La DTFT (Transformée de Fourier à temps discret) est une méthode
pour décrire un signal discret comme une somme d’exponentiels
complexes.
La DTFT produit un spectre continu.
La DFT est la version échantillonnée de la DTFT.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
66 / 79
DTFT
DFT
Par définition, la DTFT est :
∞
X
X(F ) =
x[m]e−j2πmF
m=−∞
où F est une variable continue.
La DTFT est périodique, avec une période de 1. L’intervalle
−0.5 < F < 0.5 est la période principale.
La DTFT inverse est :
Z
0.5
x[n] =
X(F )ej2πnF dF
−0.5
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
67 / 79
DTFT
Exemple
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 suivante.
8
Amplitude
6
4
2
0
−0.5
0
0.5
1
F
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
68 / 79
FFT
FFT
Il existe plusieurs méthodes pour calculer la DFT, mais la plus rapide
est la FFT.
Cet algorithme est très efficace, jusqu’à des centaines de fois plus
rapide que les méthodes conventionnelles.
Sans la FFT, plusieurs techniques de traitement de signal ne seraient
pas pratique.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
69 / 79
FFT
FFT
J.W. Cooley et J.W. Tukey sont les 2 ingénieurs crédités pour
l’invention de la FFT, dans un article paru en 1965.
Bien que la technique elle-même n’étaient pas récente, les auteurs
étaient les premiers à réaliser que les méthodes mathématiques de
Gauss pouvaient être utilisées avec des ordinateurs.
La FFT est comme le transistor du traitement de signal.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
70 / 79
FFT
Problèmes de la DFT
L’algorithme de la DFT a quelques problèmes :
Inefficace
N’utilise pas les propriétés de la DFT (symétrie conjuguée, etc.)
On optimise la DFT en exploitant certaines propriétés.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
71 / 79
FFT
Optimiser la DFT
On peut exploiter la symétrie et périodicité de WN .
WNn+N = e−j2π(n+N )/N = e−j2πn/N e−j2πN/N = e−j2πn/N = WNn
n+N/2
WN
= e−j2π(n+N/2)/N = e−j2πn/N e−jπ = −e−j2π/N = −WNn
WNN k = e−j2πN k/N = e−j2πk = 1, où k est un entier
WN2 = e−j2π2/N = e−j2π/(N/2) = e−j2π/N = WN/2
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
72 / 79
FFT
Optimiser la DFT
Choisir une valeur de N qui est le produit de plusieurs petits chiffres.
On veut que N = r1 r2 · · · rm . Il est utile de choisir la même valeur de
r, de sorte que N = rm . Le plus commun est r = 2.
Décimation des indices
On accélère le calcul si on sépare le signal en composantes paires et
impaires.
Utilisation efficace de la mémoire
Ce aspect touche plutôt le côté pratique : on enregistre les résultats des
calculs dans les mêmes adresses qui contenaient les données.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
73 / 79
FFT
Optimiser la DFT
Quelques résultats simples mais fondamentaux peuvent simplifier les
calculs :
La DFT d’un seul échantillon est l’échantillon lui-même :
XDF T [0] = x[0]W10 = x[0]
La DFT de deux échantillons est une opération simple :
X2 [0] = x[0]W20 + x[1]W20 = x[0] + x[1]
X2 [1] = x[0]W20 + x[1]W21 = x[0] − x[1]
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
74 / 79
FFT
FFT
Le calcul de la DFT est une opération d’ordre N 2 . Selon l’équation de
la DFT,
N
−1
X
X[k] =
x[n]WNnk
n=0
on remarque qu’il faut :
N 2 multiplications complexes
N (N − 1) additions complexes
Il y a beaucoup d’opérations à effectuer.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
75 / 79
FFT
FFT
À l’aide des propriétés vues auparavant, on peut grandement accélérer
le calcul de la DFT.
On passe d’un calcul ayant N 2 multiplications à un calcul ayant
log2 (N ) multiplications.
Pour des signaux à plusieurs échantillons, la FFT est beaucoup plus
rapide.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
76 / 79
FFT
FFT
L’implantation pratique de la FFT nécessite un nombre de points qui
est une puissance de 2.
Si le nombre de points n’est pas une puissance de 2, on doit ajouter
des zéros à la fin de la séquence.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
77 / 79
FFT
IFFT
Pour calculer la transformée inverse, on utilise la formulation
matricielle :
−1
X = WM x ⇒ x = WM
X=
1
∗ T
[WM
] X
M
C’est pratiquement le même calcul que la FFT, sauf qu’on utilise le
conjugué de WM transposé.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
78 / 79
Conclusion
Conclusion
Les points clés de ce chapitre sont :
Calculer la DFT (FFT) d’un signal.
Savoir appliquer l’axe de fréquence à la DFT.
Utiliser la fenêtre de Hamming.
Utiliser la DFT pour faire la convolution, la détection de signaux et la
réponse en fréquence.
Gabriel Cormier (UdeM)
GELE2511 Chapitre 7
Hiver 2013
79 / 79