14
Page Page 1 S.S.I. 2005, Comment calculer le spectre S.S.I. 2005, Comment calculer le spectre d’un signal audio d’un signal audio 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: ) 440 2 cos( 5 . 0 t ) 2000 ( cos ) ( 2 t t x ) 50 ( t

S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

Embed Size (px)

Citation preview

Page 1: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 2: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 3: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 4: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 5: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 6: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 7: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 8: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 9: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 10: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 11: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 12: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 13: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 14: S.S.I. 2005, Comment calculer le spectre dun signal audio Page 1 Comment calculer le spectre dun signal audio Séance 4, très importante, 1 heure Version

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 ,