Vous êtes sur la page 1sur 24

ÉCOLE NATIONALE D’INGÉNIEURS DE TUNIS

Traitement numérique de signal

Compression de la parole par


codage en sous-bandes

Elaboré par :

Atrous Sarra

Hachani Salma

Encadré par :

Mme. Soumaya MEHERZI

1ère Année MIndS

Année universitaire : 2022/2023


TABLE DES MATIÈRES

Table des figures 3

1 Principe 3
1.1 Analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Réalisation 4
2.1 Banc de filtres d’analyse . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Décimation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 Quantification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.5 Filtres de synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2
TABLE DES FIGURES
REMERCIEMENTS

ous tenons à exprimer nos sincères remerciements à toutes les personnes qui
N ont contribué à la réalisation de ce rapport. Tout d’abord, nous souhaitons
remercier Madame Soumaya MEHERZI pour la quantité impressionnante du temps
qu’elle nous a consacré. Ainsi que pour ses remarques constructives. Enfin, nous
remercions nos collègues pour leur collaboration et leur soutien tout au long de la
réalisation de ce projet.

1
INTRODUCTION

L e
codage en sous-bande est une méthode couramment utilisée pour compresser les
signaux audio. Elle implique de diviser le signal en différentes bandes de fréquences
et d’adapter la technique de codage à chaque bande, dans le but de minimiser le
débit total tout en assurant une qualité "acceptable" selon des critères perceptuels
objectifs et subjectifs.
Ce projet consiste à implémenter cette technique en utilisant Matlab, avec une
architecture simple, et à la tester sur un exemple audio. Pour réaliser cela, les prin-
cipaux concepts théoriques abordés dans le cours seront utilisés, tels que le filtrage,
la décimation, l’interpolation et la quantification. Cela permettra une illustration
pratique et concrète de ces concepts, offrant ainsi une meilleure compréhension
tout en maîtrisant l’utilisation de Matlab.

2
CHAPITRE 1
PRINCIPE

Le but principal de cette technique est d’obtenir une compression de haute qua-
lité d’un signal donné en utilisant un débit minimal. Le principe de base repose sur
la subdivision du spectre du signal en différentes sous-bandes, et sur la conception
d’une technique de compression adaptée pour chaque sous-bande. Les sous-bandes
sont généralement sélectionnées en fonction de leur importance perceptuelle, que
ce soit en termes d’énergie ou d’entropie.

On peut distinguer principalement deux phases dans cette approche :

1.1 Analyse
— Banc de filtres d’analyse : permettant de subdiviser le signal en sous-bandes.
— Décimation : permettant de réduire la fréquence d’échantillonnage. — Quantifi-
cation/Codage : permettant de représenter les différents échantillons par des codes
bianires.

1.2 Synthèse
— Décodage : permet de transformer les codes binaires en échantillons. —
Interpolation : restituer la fréquence d’échantillonnage pour chaque sous-bande. —
Banc de filtre de synthèse : restituer chaque composante dans sa bande de départ.

3
CHAPITRE 2
RÉALISATION

2.1 Banc de filtres d’analyse


Dans cette partie, on vise à mettre en œuvre une technique de codage en sous-
bande pour la compression de signaux audio. Cette technique consiste à subdiviser
le spectre du signal en sous-bandes et à appliquer une technique de compression
adaptée à chaque sous-bande, afin de minimiser le débit total tout en maintenant
une qualité perceptuelle satisfaisante.
Pour ce faire nous avons utilisé des filtres RIF pour découper le signal en deux
sous-bandes, à savoir la bande BF (basse fréquence) et la bande HF (haute fré-
quence). Nous avons conçu un filtre passe-bas pour récupérer la bande BF et un
filtre passe-haut pour récupérer la bande HF.

4
2.1. BANC DE FILTRES D’ANALYSE chapitre 2

Lecture du signal audio


Le signal audio contenu dans le fichier "violon.wav" est lu à l’aide de la fonction
"audioread" et stocké dans la variable "s". La fréquence d’échantillonnage est égale-
ment récupérée dans la variable "Fe".
Voici le spectre du signal s :

Filtre passe bas d’ordre 7


Pour la bande BF, nous avons réalisé un filtre passe-bas d’ordre 7 avec une
fréquence de coupure de Fe/4, où Fe représente la fréquence d’échantillonnage du
signal audio. Dans un premier lieu, nous avons utilisé une fenetre rectangulaire
pour la conception du filtre. On a obtenu la réponse fréquentielle suivante :

En second lieu,on a utilisé la fenêtre de Hamming pour la conception d’un filtre.


On a obtenu la réponse fréquentielle suivante :

Interprétation En analysant leur réponse fréquentielle. Nous avons constaté que


l’utilisation d’une fenêtre de Hamming permet d’obtenir une meilleure atténuation
des fréquences indésirables hors de la bande BF.

5
2.1. BANC DE FILTRES D’ANALYSE chapitre 2

6
2.1. BANC DE FILTRES D’ANALYSE chapitre 2

Filtre passe bas d’ordre 24


On a choisi de travailler avec la fenetre de Hamming puisqu’elle est plus précise.
Ensuite, On comparé la réponse frequentielle pour l’odre égal à 7 et l’ordre égal à
24 :

Interprétation En augmentant l’ordre du filtre à p = 24, nous observons une


réponse fréquentielle plus précise et sélective. Les fréquences indésirables situées en
dehors de la bande de coupure sont fortement atténuées, ce qui permet une meilleure
élimination des composantes non souhaitées du signal. De plus, la transition entre
la zone atténuée et la zone de passage du signal devient plus abrupte, ce qui se
traduit par une meilleure séparation des fréquences.

7
2.1. BANC DE FILTRES D’ANALYSE chapitre 2

Application du filtre passe bas


Nous appliquons le filtre passe-bas sur le signal audio "s" pour obtenir la sous-
bande BF. Le signal résultant est noté "s1".
Nous représentons le spectre du signal s1 pour analyser la répartition des fré-
quences et vérifier si le filtre a bien extrait la bande BF du signal d’origine.

Filtre passe haut


Pour la bande HF, nous avons réalisé un filtre passe-haut pour récupérer les
hautes fréquences du signal. La conception de ce filtre a été basée sur les mêmes
principes que pour le filtre passe-bas, en choisissant une fréquence de coupure
appropriée.

8
2.1. BANC DE FILTRES D’ANALYSE chapitre 2

Application du filtre passe haut


Nous appliquons le filtre passe-haut sur le signal audio "s" pour obtenir la sous-
bande HF. Le signal résultant est noté "s2". Nous représentons le spectre du signal
s2 pour analyser la répartition des fré- quences et vérifier si le filtre a bien extrait
la bande HF du signal d’origine.

Qualité du signal reconstruit


Pour évaluer la qualité du signal reconstruit, nous comparons le signal reconstruit
"sr" avec le signal d’origine "s". La fonction "soundsc" est utilisée pour écouter les
deux signaux et évaluer leur similarité auditive. Tel que sr=s1+s2 Après avoir
écouté les signaux s et sr, on a constaté que le signal reconstruit sr est fidèle au
signal d’origine s, avec une reproduction précise des caractéristiques sonores et
une absence notable de distorsion ou de pertes de fréquences importantes, cela
indique une bonne qualité de reconstruction. Cela signifie que les filtres RIF utilisés
(passe-bas et passe-haut) ont réussi à découper le signal en sous-bandes BF et HF
de manière satisfaisante.

9
2.2. DÉCIMATION chapitre 2

Représentation dans le domaine temporel

Filtres RIF ou RII


Dans ce projet, l’utilisation de filtres RIF, tels que les filtres réalisés avec la
méthode de la fenêtre (rectangulaire ou de Hamming), répond aux exigences de
séparation des sous-bandes et de restitution précise du signal. Ces filtres permettent
de découper le signal en bandes BF et HF, tout en conservant une bonne qualité
de reconstruction du signal d’origine.

Bien que les filtres RII (Réponse Impulsionnelle Infinie), tels que les filtres
butter ou cheby, offrent une plus grande flexibilité dans la conception des réponses
fréquentielles, ils peuvent introduire une complexité accrue et ne sont pas nécessai-
rement adaptés à l’objectif spécifique de découpage en sous-bandes sans distorsion
dans ce projet.
En conclusion, il est recommandé de choisir des filtres RIF pour assurer une sé-
paration claire des sous-bandes, une restitution précise du signal et une mise en
œuvre pratique et stable.

2.2 Décimation
Après avoir filtré les signaux s1 et s2 pour récupérer les bandes BF et HF
respectivement, il est nécessaire de réduire la fréquence d’échantillonnage à la
fréquence de Nyquist Fe1 = Fe/2. Cela permet de réduire le nombre d’échantillons

10
2.3. QUANTIFICATION chapitre 2

par seconde et, par conséquent, le débit binaire résultant, tout en préservant le
contenu spectral de chaque signal.
Le sous-échantillonnage est réalisé avec un facteur M = 2, ce qui signifie que
seul un échantillon sur deux est conservé. Le signal sous-échantillonné y(m) peut
être exprimé dans le domaine temporel comme suit :
y(m) = x(n)δ(n − mM )
Cette équation correspond à un spectre périodisé de période Fe/M, avec une
représentation spectrale Y(f) donnée par :
Y (f ) = (1/M ) ∗ X(f − kF e/M )
En procédant au sous-échantillonnage des signaux s1 et s2 selon le facteur M =
2, nous obtenons les signaux s1d et s2d respectivement.

2.3 Quantification
Dans cette partie, nous avons utilisé la technique de quantification uniforme
pour quantifier les signaux s1d et s2d. La quantification uniforme consiste à subdi-
viser l’intervalle d’amplitude du signal en L = 2l sous-intervalles de même longueur,
où l est le nombre de bits utilisés pour représenter chaque échantillon quantifié.
Chaque échantillon quantifié est représenté par la valeur médiane du sous-intervalle
auquel il appartient.

Nous avons implémenté une fonction appelée "unifquant" pour réaliser la quan-
tification uniforme d’un signal donné. Cette fonction prend comme arguments le
signal x, les bornes Amin et Amax de l’intervalle d’amplitude, ainsi que le nombre
de bits l. Elle retourne le signal quantifié xq ainsi que la valeur du RSB (Rapport
Signal sur Bruit) correspondant.

11
2.4. INTERPOLATION chapitre 2

Ensuite, on a appliqué cette fonction sur les signaux s1d et s2d.

En appliquant cette fonction sur les signaux s1d et s2d pour différentes valeurs de
l, choisies entre 2 et 12, nous avons pu observer les effets de la quantification sur la
qualité du signal reconstruit.

Dans notre cas, on a obtenu pour l=2 , rsb_s1d = 1.12 et rsb_s2d = 1.41 alors
que pour l=12 on a obtenu rsb_s1d = 59.067 et rsb_s2d = 53.529
En augmentant le nombre de bits utilisés pour la quantification, nous obtenons
une meilleure précision dans la représentation des échantillons quantifiés. Cela se
traduit par une diminution de l’erreur de quantification et donc une amélioration
du RSB.

2.4 Interpolation
La phase d’interpolation a pour objectif de ramener les deux composantes vers la
bande spectrale initiale, qui a une largeur de Fe/2. Cela est réalisé en rétablissant la
fréquence d’échantillonnage à Fe par le biais d’une opération de suréchantillonnage
avec un facteur M = 2.
Le suréchantillonnage consiste à insérer M-1 zéros entre deux échantillons consé-
cutifs du signal d’entrée x. Ainsi, le signal résultant, appelé y, s’exprime dans le
domaine temporel de la manière suivante :

Notons aussi qu’une périodisation du spectre fait apparaître des spectres ’images’

12
2.4. INTERPOLATION chapitre 2

ou ’miroirs’ autour des fréquences kFe/M. Ces spectres seront éliminés par la suite
par les filtres de synthèse qui seront elaborés plus loin dans la partie suivante.
Pour ce faire nous avons élaboré le code suivant :

où ici la fonction upsample sert à réaliser l’opération de suréchantillonnage.On


obtient donc ces deux présentation spectrales pour les deux composantes su signal
s associé à l’audio "AAAH1.WAV" :

13
2.5. FILTRES DE SYNTHÈSE chapitre 2

2.5 Filtres de synthèse


Après l’opération de suréchantillonnage, nous appliquons les mêmes filtres d’ana-
lyse aux signaux suréchantillonnés. Cela permet d’éliminer les spectres miroirs et
de conserver les bandes utiles des deux composantes, ce qui est nécessaire pour la
suite du processus de synthèse.
Pour ce faire nous avons utliser le code suivant :

Où la fonction filpr() permet ici d’inverser l’ordre des coefficients des filtres de
l’analyse. Cela permet de les utiliser comme filtres de synthèse pour reconstruire le
signal original à partir des sous-bandes. On obtient donc les deux présentations
spectrales des deux composantes du signal :

14
2.5. FILTRES DE SYNTHÈSE chapitre 2

Nous allons par la suite déterminer la valeur du décalage temporel résul-


tante,exprimée en fonction de nombre de bits en fonction de l1 et l2, nombre
de bits alloués à chaque sous-bande.dans ce cas nous avons pris l1=12=12 le code
qui nous permet d’avoir ces résultat la est le suivant :

15
2.5. FILTRES DE SYNTHÈSE chapitre 2

Notons que

-le signal ss est le signal synthèse,

-xcorr(s, ss) calcule la corrélation croisée entre le signal original s et le signal


synthétisé ss,

-max(correlation) détermine l’indice du pic de corrélation maximale dans le


résultat de la corrélation, ce qui correspond au décalage temporel optimal entre les
deux signaux,

- decalagetemporel = idx - (length(s) - 1) calcule le décalage temporel


absolu entre les signaux en ajustant l’indice du pic de corrélation maximale par
rapport à la longueur du signal original s

-decalage_bits = (decalage_temporel * Fe) / (l1 + l2) convertit le décalage


temporel en décalage en nombre de bits en utilisant la fréquence d’échantillonnage
Fe et la somme des nombres de bits alloués à chaque sous-bande l1 et l2.

Nous obtenons grâce à ce code la présentation spectrale du signal synthèse aprés


normalisation :

16
2.5. FILTRES DE SYNTHÈSE chapitre 2

Nous calculons par la suite , le débit binaire résultant de toute la chaîne ainsi
que le RSB grace au code suivant :

nous obtenons donc les résultats suivants :

nous avons par la suite varier les valeurs de l1 et l2 et enregistrer les resultats
obtenus tout en comparant la qualité de l’audio obtenu à partir du signal synthèse :
-pour l1=l1=8 :

-pour l1=l1=2 :

-pour l1=l1=10 :

17
2.5. FILTRES DE SYNTHÈSE chapitre 2

Choix du couple (l1,l2) : Pour atteindre l’objectif du codage en sous-bande,


qui est de fournir une qualité audio perceptuellement acceptable tout en minimisant
le débit nécessaire, il est important de trouver un compromis entre la qualité audio
et le débit.
En augmentant les valeurs de l1 et l2, la qualité audio s’améliore car une plus
grande quantité d’informations est allouée à chaque sous-bande. Cependant, cela
augmente également le débit nécessaire pour représenter le signal.
D’un autre côté, en diminuant les valeurs de l1 et l2, le débit est réduit car moins
d’informations sont nécessaires pour représenter chaque sous-bande. Cependant,
cela peut entraîner une diminution de la qualité audio.
Il est donc important de choisir des valeurs appropriées pour l1 et l2 qui
permettent d’atteindre un bon compromis entre la qualité audio et le débit. Dans
la plage de valeurs entre 2 et 12, il peut être judicieux de choisir la valeur 8, car
elle offre un équilibre raisonnable entre la qualité audio et le débit.

18
CONCLUSION

En conclusion, ce projet a exploré le domaine de la compression de la parole par


codage en sous-bandes. Nous avons étudié les différentes étapes de l’algorithme de
compression, de l’analyse du signal à la synthèse, en passant par la quantification
et le sous-échantillonnage. Cette technique utilise les principes fondamentaux tels
que le filtrage, la décimation, l’interpolation et la quantification. En appliquant
ces notions théoriques à la compression audio par codage en sous-bandes, nous
avons pu mettre en pratique les différentes étapes de l’algorithme et observer leur
impact sur la qualité et la taille des données audio compressées. Cette approche
pratique nous a permis d’approfondir notre compréhension des concepts théoriques
et de renforcer nos compétences en programmation. On a démontre l’efficacité de la
technique de compression par codage en sous-bandes pour la parole. ce projet met en
évidence l’importance des choix de filtres, de quantification et de paramètres pour
obtenir les meilleurs résultats de compression. Ce domaine offre des opportunités
intéressantes pour réduire la taille des données audio tout en maintenant une qualité
acceptable, ce qui est essentiel dans de nombreuses applications de communication
et de stockage de la parole.

19

Vous aimerez peut-être aussi