Title: Comment compresser avec le spectre
1Comment 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 dun 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 - Cest lénergie des bandes qui conduit à un taux
de compression supérieur à un
Savez vous répondre aux questions suivantes ?
Calculer lénergie dun échelon de Heaviside de longueur R256 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.2pi110000)
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 ?
2Un CODEC compresse et décompresse (on dit aussi
encode et décode) le signal audio
- La performance dun CODEC est le taux de
compression atteint, mais il faut aussi tenir
compte sil y a lieu de linformation 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é.
- cest aussi le rapport des débits dinformation
(bps) pour un téléchargement en temps réel. - le pourcentage dinformation 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, b16bits occupe 3070ko
- compressé en mp3 à 128kbps, quel est le taux de
compression ?
- idem si la taille devient 279ko. Préciser le
débit.
- Un lecteur propose 88ko, 20kbps, et fe? fe/4.
Quel est le risque ?
3Un banc de filtres permet danalyser la
composition fréquentielle du spectre
- Un banc de filtres est un ensemble de filtres
conçus pour partitionner le spectre dun signal
en bandes de fréquences de même largeur - Les réponses harmoniques des M filtres dun banc
sont semblables (dallure rectangulaire) et
réparties régulièrement sur laxe des fréquences
- Avec les réponses impulsionnelles hi, i1..M
Comment créer le banc suivant avec le filtre
H0(f)? Quel est le résultat obtenu avec un LA3 ?
4Pour comparer les signaux issus du banc de
filtres, on compare lénergie associée
- Les signaux issus du banc nont 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
5On peut décimer les signaux issus dun banc de
filtre tout en respectant la contrainte de Shannon
- Mettons que lon analyse le signal suivant x de
durée RTe et de longueur R - Lapplication dun 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 quun échantillon sur M, - Avec leffet sur le spectre
- Repliements autour de fe/M au lieu de fe
- Division par M
- Que réalisent les instructions suivantes ? gtgt s
0.5cos(2pi44001000/8000) gtgt sd
s(110length(s))
6Pour 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 ?gtgt Sse
zeros(10length(sd))gtgt Sse(11010length(sd))
sd - Pour récupérer le signal avant décimation, il
faut supprimer les alias et multiplier par M,
cest la fonction des filtres interpolateurs. - Quelle est la relation entre les filtres du banc
hi et les filtres interpolateurs gi ?
7Pour atteindre un taux de compression supérieur à
un, il faut accepter de perdre de linformation
- 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 lt a yd2, on ninclut
pas ydi de la bande i dans le signal transmis. - Proposer dautres stratégies
8On illustre la décomposition dun 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)
x1
g1
h1
xrec
x
x2
g2
h2
On demande de calculer les taux de compression et
les relation énergétiques tout au long de la
chaîne.
9On suit le signal sur la bande du filtre h1,
préciser la valeur du filtre interpolateur g1
Compléter et commenter les diagrammes suivants
10Construire les signaux de la bande h2