Comment compresser avec le spectre

10
Page Page 1 S.S.I., ESSI1, lundi 9 mai S.S.I., ESSI1, lundi 9 mai 2005 2005 Comment compresser avec le spectre Séance 10, 1 heure Version : lundi 9 mai 2005 Auteur : Jean-Paul Stromboni Contenu de la séance : Un CODEC compresse et décompresse le signal audio Un banc de filtres découpe le spectre d’un signal en bandes On peut décimer les bandes en accord avec Shannon On récupère les signaux décimés en suréchantillonnant et en appliquant un filtre interpolateur C’est l’énergie des bandes qui conduit à un taux de compression supérieur à un Savez vous répondre aux questions suivantes ? Calculer l’énergie d’un échelon de Heaviside de longueur R=256 points de deux façons. Un son wav 44100Hz, 16 bits, mono, est compressé en mp3 à 128kbps, que vaut C ? Avec un taux de compression de 11 que devient un son wav de 33 Mo ? Comment décimer en Matlab dans un facteur 10 le vecteur: s= sin(0.2*pi*[1:10000]) Pourquoi peut-on décimer les signaux des bandes dans un banc de M filtres ? Comment sur- échantillonner le signal s avec MATLAB dans un rapport ? Décimer le signal suivant : Avec un banc de 32 filtres, quel taux m n y n x 2 2

description

Comment compresser avec le spectre. Séance 10, 1 heure Version : lundi 9 mai 2005 Auteur : Jean-Paul Stromboni . Contenu de la séance :. Un CODEC compresse et décompresse le signal audio Un banc de filtres découpe le spectre d’un signal en bandes - PowerPoint PPT Presentation

Transcript of Comment compresser avec le spectre

Page 1: Comment compresser avec le spectre

Page Page 11S.S.I., ESSI1, lundi 9 mai 2005S.S.I., ESSI1, lundi 9 mai 2005

Comment compresser avec le spectreSéance 10, 1 heureVersion : lundi 9 mai 2005 Auteur : Jean-Paul Stromboni

Contenu de la séance : Un CODEC compresse et décompresse le signal audio Un banc de filtres découpe le spectre d’un signal en bandes On peut décimer les bandes en accord avec Shannon On récupère les signaux décimés en suréchantillonnant et

en appliquant un filtre interpolateur C’est l’énergie des bandes qui conduit à un taux de

compression supérieur à un

Savez vous répondre aux questions suivantes ? Calculer l’énergie d’un échelon de Heaviside de longueur R=256 points de deux façons.

Un son wav 44100Hz, 16 bits, mono, est compressé en mp3 à 128kbps, que vaut C ?

Avec un taux de compression de 11 que devient un son wav de 33 Mo ?

Comment décimer en Matlab dans un facteur 10 le vecteur:s= sin(0.2*pi*[1:10000])

Pourquoi peut-on décimer les signaux des bandes dans un banc de M filtres ?

Comment sur-échantillonner le signal s avec MATLAB dans un rapport ?

Décimer le signal suivant : Avec un banc de 32 filtres, quel taux de compression peut on imaginer atteindre ?

mn ynx 2

2

Page 2: Comment compresser avec le spectre

Page Page 22S.S.I., ESSI1, lundi 9 mai 2005S.S.I., ESSI1, lundi 9 mai 2005

Un CODEC compresse et décompresse (on dit aussi encode et décode) le signal audio La performance d’un CODEC est le taux de compression atteint, mais il faut aussi tenir compte s’il y a lieu de l’information perdue. Le taux de compression est un rapport :

des espaces mémoires nécessaires (octets) pour le signal non compressé et pour le signal compressé.

c’est aussi le rapport des débits d’information (bps) pour un téléchargement en temps réel.

le pourcentage d’information perdue par com-pression peut être évalué en comparant l’énergie du signal original et celle du signal décompressé.

Un fichier enregistré en monophonie avec fe= 44100Hz, b=16bits occupe 3070ko :1. compressé en mp3 à 128kbps, quel est le taux

de compression ?

3. Un lecteur propose 88ko, 20kbps, et fe fe/4. Quel est le risque ?

2. idem si la taille devient 279ko. Préciser le débit.

55730705.5

1280001644100

3.3520

161.4488

3070

64000164410011

2793070

Page 3: Comment compresser avec le spectre

Page Page 33S.S.I., ESSI1, lundi 9 mai 2005S.S.I., ESSI1, lundi 9 mai 2005

Un banc de filtres permet d’analyser la composition fréquentielle du spectre

Comment créer le banc suivant avec le filtre H0(f)? Quel est le résultat obtenu avec un LA3 ?

Un banc de filtres est un ensemble de filtres conçus pour partitionner le spectre d’un signal en bandes de fréquences de même largeur :Les réponses harmoniques des M filtres d’un banc sont semblables (d’allure rectangulaire) et réparties régulièrement sur l’axe des fréquences :

Avec les réponses impulsionnelles hi, i=1..M

)(,),(),( 21 fHfHfH M

[2

,2

[,1)(1

eeM

l lffffH

)(0 fH

f

Mfe

2

1

1 )(2 fH )(3 fH )(4 fH

f

)(2 fH)(3 fH)(4 fH )(1 fH

0 2ef

2ef

1..0,,,, 21 Rnhhh Mnnn

kHzfe 8

Page 4: Comment compresser avec le spectre

Page Page 44S.S.I., ESSI1, lundi 9 mai 2005S.S.I., ESSI1, lundi 9 mai 2005

Pour comparer les signaux issus du banc de filtres, on compare l’énergie associée Les signaux issus du banc n’ont pas tous la

même importance, on peut utiliser l’énergie associée définie ci-dessous pour trancher :

soit le signal de longueur R et son spectre

On calcule l’énergie associée de deux façons

Faire un bilan des relations entre les signaux et leurs spectres pour le banc de filtres suivant

1..0, Rnxn

1..0),,( RkRxFFTX nk

1

0

21

0

2

21

21 R

k kR

n nx XR

xE

H1(f) H2(f) H3(f) H4(f)

1..0, RnxnSignal audio

nx1 nx2 nx3 nx4

4

1m mrec xx

Analyse

Synthèse

Banc de filtres

Page 5: Comment compresser avec le spectre

Page Page 55S.S.I., ESSI1, lundi 9 mai 2005S.S.I., ESSI1, lundi 9 mai 2005

On peut décimer les signaux issus d’un banc de filtre tout en respectant la contrainte de Shannon

Mettons que l’on analyse le signal suivant x de durée RTe et de longueur R :

L’application d’un banc de M filtres décompose x en M signaux de bandes fréquences différentes. Puisque la largeur du spectre des signaux issus du banc est réduite à fe/M, il est licite de diviser la fréquence d’échantillonnage par M sans violer la contrainte de Shannon. En pratique, on décime ces signaux, on ne conserve qu’un échantillon sur M, Avec l’effet sur le spectre :

Repliements autour de fe/M au lieu de fe Division par M

Que réalisent les instructions suivantes ? >> s = 0.5*cos(2*pi*440*[0:1000]/8000); >> sd = s(1:10:length(s));

k

ee kffxftxTF )(~)](*[

1

0)(~)](*[ M

kee

M Mfkfx

MftxTF

1..0, Rnxn

Page 6: Comment compresser avec le spectre

Page Page 66S.S.I., ESSI1, lundi 9 mai 2005S.S.I., ESSI1, lundi 9 mai 2005

Pour récupérer les signaux avant décima-tion, il faut sur-échantillonner et interpoler Insérer M-1 échantillons nuls entre les échan-

tillons du signal décimé ne modifie pas la for-me du spectre, mais seulement la fréquence d’échantillonnage, qui est multipliée par M.

Le signal sd décimé page5 est-il reconstitué dans Sse par les instructions suivantes ?>> Sse= zeros(10*length(sd));>> Sse(1:10:10*length(sd))= sd;

Pour récupérer le signal avant décimation, il faut supprimer les alias et multiplier par M, c’est la fonction des filtres interpolateurs.

Quelle est la relation entre les filtres du banc hi et les filtres interpolateurs gi ?

)(~)(~ 22 fxexexfxn

ifnMTn

k

ifkTkMM

ee

n

Mfifnn

TFDn

eexfxx )//(2)(~

MnksiMnksixx nkM 0,

Page 7: Comment compresser avec le spectre

Page Page 77S.S.I., ESSI1, lundi 9 mai 2005S.S.I., ESSI1, lundi 9 mai 2005

Pour atteindre un taux de compression supérieur à un, il faut accepter de perdre de l’information

Entre décimation et suréchantillonnage, il faut ajouter une stratégie susceptible de négliger les bandes de « faible » énergie :

Voici un exemple de stratégie possible : On calcule à tout instant les énergies du signal

décimé yd2 et des bandes ydi2, i = 1..M

On fixe un seuil a, et ydi2 < a yd2, on n’inclut

pas ydi de la bande i dans le signal transmis. Proposer d’autres stratégies

h1

h2

hM

M*h1

M*h2

… M*hM

Stratégie de com

pression

M

M

M

M

M

M

M

M

Page 8: Comment compresser avec le spectre

Page Page 88S.S.I., ESSI1, lundi 9 mai 2005S.S.I., ESSI1, lundi 9 mai 2005

On illustre la décomposition d’un signal par un banc de filtres et sa recomposition sur un exemple

Le banc ci-dessous contient deux filtres désignés par leurs réponses impulsionnelles h1et h2 et les réponses harmoniques H1 et H2, le signal x est de longueur R et de spectre donné X(f) :

h1

h2 g2

g1

2

2

2

2

x

x1

x2

21x

22x

xrec

SEx1

SEx2

2ef

4ef0

2ef

4ef

f

A)( fX

2ef

4ef

2ef

4ef 0

f

1 )(1 fH )(2 fH)(2 fH

On demande de calculer les taux de compression et les relation énergétiques tout au long de la chaîne.

Page 9: Comment compresser avec le spectre

Page Page 99S.S.I., ESSI1, lundi 9 mai 2005S.S.I., ESSI1, lundi 9 mai 2005

On suit le signal sur la bande du filtre h1, préciser la valeur du filtre interpolateur g1

2ef

4ef0

2ef

4ef

f

A)( fX

2ef

4ef0

2ef

4ef

f

A

2ef

4ef0

2ef

4ef

f

2A

2ef

4ef0

2ef

4ef

f

2A

2ef

4ef0

2ef

4ef

f

A

Compléter et commenter les diagrammes suivants

Page 10: Comment compresser avec le spectre

Page Page 1010S.S.I., ESSI1, lundi 9 mai 2005S.S.I., ESSI1, lundi 9 mai 2005

Construire les signaux de la bande h2

f

A )( fX

A

f

2A

2ef

4ef0

2ef

4ef

2A

f

A

efef

2ef

4ef0

2ef

4ef efef

f

0 efeff

4ef0

2ef

4ef efef

f

2ef

4ef0

2ef

4ef efef

f