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