Comment calculer le spectre d’un signal audio Séance 4, très importante, 1 heure Version : 15 mars 2005 Auteur: Jean-Paul Stromboni Objectifs et idées clefs de la séance : Introduire le concept de spectre d’un signal audio et expliquer comment un ordinateur calcule spectre et spectrogramme avec l’algorithme de FFT. l’oreille perçoit le spectre, la composition fréquentielle des sons. on décrit aussi bien un son avec le signal associé ou avec le spectre associé à l’origine du spectre, la décomposition en séries de Fourier (19ème siècle) la transformation de Fourier calcule le spectre d’un signal en temps continu un ordinateur utilise la transformée de Fourier discrète et la FFT pour calculer le spectre à court terme et le spectrogramme Savez vous déjà répondre aux questions suivantes ? Qu’appelle t’on spectre, et quelle est l’infor-mation contenue dans le spectre d’un signal ? Qu’est ce qui fait distinguer à l’oreille un piano et une flûte ? Un adulte et un enfant ? Que calcule la transformation de Fourier, et à partir de quelle information ? Quand peut-on décomposer un signal audio en séries de Fourier ? Mais qui était J. Fourier, quand vivait-il et que cherchait il à résoudre avec ses séries ? Quel est l’intérêt de la FFT ? Quand doit-on utiliser la Transformée de Fourier Discrète ou TFD ? Dessiner une fenêtre temporelle de durée 20ms et d’expression : Le signal est-il à bande limitée ? Que valent spectre et spectrogramme de:
L’oreille humaine perçoit la composition fréquentielle des sons, c’est-à-dire le «spectre» Tout un chacun sait (plus ou moins ) différencier une note grave (basse fréquence, donc pitch élevé) et une note aigüe (fréquence élevée), sur une échelle de perception logarithmique allant de 20Hz à 20kHz reproduire un LA3 à 440 Hz reconnaître un instrument de musique selon la richesse harmonique de son timbre comparer l’intensité des notes sur une échelle d’amplitude logarithmique Ces informations sur un son (pitch, timbre, intensité) constituent son spectre: le spectre d’amplitude ou spectre regroupe l’ensemble des intensités des composantes fréquentielles du son: amplitude=f(fréquence) un son dont le spectre (d’amplitude) est nul au-delà d’une fréquence Fmax est dit à bande limitée Le spectre varie au cours du temps : En musique, cela crée le rythme, la mélodie, ou encore l’expression d’une interprétation En parole, cela permet de percevoir phonèmes, diphones, et aussi l’intonation, ou prosodie, … On représente l’évolution temporelle du spectre d’amplitude dans un spectrogramme : amplitude = g(instant, fréquence)
Un son est aussi bien décrit par les valeurs ins-tantanées du signal associé que par son spectre soit s(t) l’expression temporelle du signal associé t est l’instant (en seconde) éventuellement, s(t) est défini dans une fenêtre temporelle débutant en t0 et de durée T : on note S(f) le spectre associé à s(t) f est la fréquence exprimée en Hertz (Hz) on définit S(f) comme la transformée de Fourier de s(t) en distinguant les cas suivants : la décomposition en série de Fourier initiale ne s’applique qu’à s(t) de durée T (ou T-périodique). si s(t) est apériodique, S(f)= TF[s(t)]. si le signal est échantillonné s(nTe) , on utilise la transformée de Fourier discrète et on exécute l’algorithme de FFT qui calcule le spectre. Dans l’exemple de la note pure LA3, le spectre se réduit à une composante de fréquence f = 440 Hz Est-ce un signal à bande limitée ? L’utilisation de la fréquence et du spectre peut aussi simplifier certains problèmes : La décomposition en série de Fourier a été proposée au 19ème siècle par J. Fourier pour résoudre l’équation de propagation de la chaleur (il cherchait à estimer ainsi l’age de la terre !)
À l’origine du spectre, la décomposition en séries de Fourier d’un signal de durée finie Le problème posé par Fourier consistait à décrire une fonction du temps s(t) de durée T avec une somme de fonctions sinusoïdales : n est entier le terme n de fréquence n/T est l’harmonique Hn le terme de fréquence nulle est la composante continue CC ou valeur moyenne de s(t) (n=0) le terme de fréquence 1/T est dit fondamental F Par exemple, voici la décomposition d’un signal triangulaire défini sur l’intervalle [-T/2,T/2] : Préciser les amplitudes de CC, F, H3, H5 et H7 T s(t) t -1 1
La décomposition en séries de Fourier établit le spectre d’un signal périodique ou de durée T Que vaut f(t) entre –T/2 et T/2 ? Que vaut f(t) à lextérieur de cet intervalle ? Que représente le diagramme ci-dessous ? Quand T tend vers l’infini, 1/T tend vers 0 Les raies ci-dessus se rapprochent et le spectre devient une fonction continue de la fréquence. La décomposition en séries de Fourier devient la transformation de Fourier. 1/9 1/25 1/81 1/49 1
La transformation de Fourier établit le spectre d’un signal quelconque Définition de la transformation de Fourier (i2= - 1) Quelques propriétés de TF utilisées dans la suite Linéarité TF[produit de convolution] = produit Définition du produit de convolution Dualité de TF et TF-1 (permuter t et f, …)
La transformation de Fourier établit le spectre d’un signal apériodique ou de durée infinie Quelques transformées utilisées dans la suite : La distribution ou impulsion de Dirac : la transformée de l’impulsion de Dirac est : Définition de la fonction peigne de Dirac La transformée d’un peigne est un peigne h 1/h temps
La transformation de Fourier établit le spectre d’un signal apériodique ou de durée infinie Quelques transformées utilisées dans la suite la transformée du cosinus contient 2 raies : La fonction rectangle (ou fonction porte) La transformée de la fonction rectangle est la fonction sinus cardinal
La transformée de Fourier discrète établit le spectre d’un signal en temps discret x(nTe) La périodicité de TFD est : On ne conserve que N échantillons successifs pour calculer la transformée de Fourier à court terme Et on ne calcule que M fréquences fk de X(f) On aboutit à l’algorithme de FFT (ou Fast Fourier Transform), car le calcul du spectre est plus rapide en particulier si N=M=2K
Le spectrogramme représente l’évolution du spectre à court terme au cours du temps On sait par exemple que le spectre du signal vocal est constant durant 30ms, on utilisera une fenêtre de 240 échantillons avec la fréquence d’échantillonnage 8 kHz. On découpe l’axe des temps en zones de 30 millisecon-des (240 échantillons), et on calcule le spectre de chaque fenêtre par FFT 240 points. Le spectrogramme qui affiche tous ces résultats et indique donc l’évolution temporelle du spectre. Spectrogramme de la note piano_c3.wav (par WaveLab) (retrouver l’axe des temps et l’axe des fréquences)
Calcul du spectre avec Matlab fe=8000; t=[0:1023]*(1/fe); s=0.5*cos(2*pi*880*t); f=[0:1023]/1024*fe; plot(f,abs(fft(s,1024))) grid, figure f2=[-512:511]/1024*fe; spec= fftshift(fft(s,1024)) plot(f2,abs(spec)) N=? M=? Qu’est ce qui change ici ?
Calcul du spectrogramme avec Matlab fe=8000; t=[0:16000]*(1/fe); s=0.5*cos(2*pi*880*t)+0.75*cos(4000*pi*t); f=[-512:511]/1024*fe; spec= fftshift(fft(s(1:1024),1024)) plot(f,abs(spec)), grid, figure specgram(s,2048,fe,ones(1,1024)) colorbar Fenêtre Amplitude N M Fenêtre Amplitude N M overlap
Quelques propriétés de la distribution de Dirac qui seront réutilisées dans la suite : La distribution de Dirac peut être présentée comme la limite d’une impulsion de largeur h et de hauteur 1/h quand h tend vers 0. En conséquence, l’opération suivante permet de prélèver une valeur sur le signal s(t) Le produit de convolution par d(t-T) décale le signal s(t) de T : h 1/h temps
Revenons aux origines du spectre : la décomposition en séries de Fourier Le problème consiste à décrire une fonction s(t) de durée T sous la forme suivante : n est entier le terme n de fréquence n/T est l’harmonique Hn le terme de fréquence nulle est la composante continue CC ou valeur moyenne de s(t) (n=0) le terme de fréquence 1/T est dit fondamental F Fourier propose une méthode basée sur les propriétés des fonctions sinus et cosinus. Notons Et notons On vérifie aisément On en tire