s.s.i. 2005, comment calculer le spectre dun signal audio page 1 comment calculer le spectre dun...
TRANSCRIPT
Page Page 11S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
Comment calculer le spectre d’un signal audio
Séance 4, très importante, 1 heureVersion : 15 mars 2005Auteur: 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:
)4402cos(5.0 t)2000(cos)( 2 ttx
)50( t
Page Page 22S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
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)
Page Page 33S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
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 !)
],[),( 00 TttFtts
Page Page 44S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
À 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
0
)]2sin()2cos([)(n
nn tT
nbt
T
nats
0 22 )12(
))12(4402cos(8)(
n n
tntf
T
s(t)
t
-1
1
2
T
2
T
Page Page 55S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
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.
)12(440 nfn
1/91/25
1/81
)/8/()( 2nn fa
f440
1/49
1
Page Page 66S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
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, …)
dtetsfSts ftiTF 2)()()(
dfefStsfS ftiTF 2)()()(1
)]([)]([)]()([ tfbTFtsaTFtbftasTF
)()()())(*()( fEfHfStehts TF
dtehdethteh )()()()())(*(
dtetXfxdfefXtx tfifti 22 )()()()(
)]([)()( 2 tXTFdtetXfx fti
TFtxtenvts )()()( )(*)()( fXfENVfS
Page Page 77S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
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
1)()( 02 dttedtet fti
)(t
t0
0lim
0)0(
1)(
t
t
dtt
)()( nTttPeigneT
n
T
T
T
nf
T
fPeigneT
tPeigneTF
)(1
)(1
)]([ 1
t0 T T2 T3T
)(tPeigneT
1
h
1/h
temps0
)(lim)(0
tt hh
)(th
Page Page 88S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
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
2)2cos()(
00 22
0
tfitfi eetfts
2
))()(()]2[cos()( 00
0
fffftfTFfS
f
221)()(
Tet
Tentre
T
tts
fT
fTTfTcTfS
)sin(
)(sin)(
t0 2/T2/T
)/( Tt
Page Page 99S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
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
n
fnTiee
eenTxfXnTxTFD 2)()()]([
1
20
0
)()(Nnn
nn
fnTie
eenTxfX
1)2/(
2/
2
1 2
)()1
()(
)()(0
0
N
Nk
N
nki
ke
Nn
nn
N
nki
ek
efXN
nTx
enTxfX
ee Tf /1
122
, MM
kM
fkf e
k
Page Page 1010S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
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)
Page Page 1111S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
Calcul du spectre avec Matlab
0 1000 2000 3000 4000 5000 6000 7000 80000
50
100
150
200
250
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, figuref2=[-512:511]/1024*fe;spec= fftshift(fft(s,1024))plot(f2,abs(spec))
-4000 -3000 -2000 -1000 0 1000 2000 3000 40000
50
100
150
200
250
N=?M=?
Qu’est ce qui change ici ?
Page Page 1212S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
Calcul du spectrogramme avec Matlabfe=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, figurespecgram(s,2048,fe,ones(1,1024)) colorbar
FenêtreAmplitudeNMoverlap
FenêtreAmplitudeNM
Page Page 1313S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
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 (t-T) décale le signal s(t) de T :
)0()()0()()( sdttsdttst
)()()(
)()(
)(*)(
TtsdTtTts
dsTt
tsTt
)()()()()( TsdtTtTsdttsTt
)()( TttT
h
1/h
temps0
)(lim)(0
tt hh
)(th
Page Page 1414S.S.I. 2005, Comment calculer le spectre d’un signal audioS.S.I. 2005, Comment calculer le spectre d’un signal audio
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
0
)]2sin()2cos([)(n
nn tT
nbt
T
nats
?? nn ba
)2
sin(),2
cos(T
ntSn
T
ntCn
T
dttmtsms0
)()(
2/TSnSnCnCn
T
nn dttsT
aetSnsT
bCnsT
a00 )(
12,
2
nmSmCnSmSnCmCn ,