150 likes | 765 Views
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 :.
E N D
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 ?
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 !)
s(t) 1 t -1 T À 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
1 1/9 1/25 1/49 1/81 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.
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, …)
1/h temps 0 h 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
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) • Transformée de Fourier discrète : • 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
1/h temps 0 h 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 :
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