Objectif du TP
Exercice 1 :
Soit les symboles suivant avec le vecteur de probabilité correspondante
symbols = [1:5];
p = [.3 .3 .2 .1 .1];
symbols = [1 2 3];
p = [0.1 0.1 0.8];
- En utilisant la fonction huffmandict ( voir help Matlab) calculer le codage Huffman et la
longueur moyenne du code.
- La commande suivante génère le vecteur signal source en fonction des résultats de la question
précédente :
Generate a vector of random symbols.
sig = randsrc(100,1,[symbols; p]);
-En utilisant les fonctions huffmanenco et huffmandeco (voir help Matlab) faire le codage
huffman et le decodage, comparer les résultats avec la source.
Exercice 2 :
Considérant l’alphabet de la source Alpha= {1, 2, 3} et la séquence à compresser :
Seq=3313333323.
1. Utiliser les fonctions Matlab (correspondant à l’algorithme de compression de Huffman) :
o huffmandict
o huffmanenco
Pour compresser la séquence des symboles numériques Seq.
1
2. Utiliser la fonction Matlab :
o Huffmandeco
Pour décompresser la séquence binaire fournie par le compresseur du Huffman.
3. Comparer la taille initiale de la séquence (1 octet pour chaque symbole) avec la taille du
code fourni par le compresseur de Huffman.
6. Comparer la taille initiale de la séquence (1 octet pour chaque symbole) avec la taille du
code fourni par le compresseur Arithmétique.
2
Master 1 Réseaux et Télécommunication (S2)
Année Universitaire
Centre Universitaire Nour El- Bachir
2019-2020
Institut des Sciences
Département de Technologie
Filière Télécommunications
Objectif du TP
A partir d'un texte donné, vous devrez créer un script permettant de calculer la fréquence
(d'apparition), la probabilité (d'apparition) et l'information propre correspondant aux symboles
de l'alphabet de la source. Le script doit comprendre également un code MATLAB permettant
le calcul de l’entropie de la source.
Exercice 1 :
Considérant l’alphabet de la source Alpha= {espace, a, b, c, d, e, f, g, h}. Soit le texte à
compresser par un algorithme de compression est "a bccd aeffhg ga".
Ecrire un code Matlab permettant de faire les tâches suivantes :
1. Calcul de la fréquence d'apparition des caractères
2. Calcul des probabilités d'apparition des caractères
3. Calcul de l'information propre associée à chaque caractère
4. Calcul de la probabilité totale
5. Calcul de l'entropie
Exercice 2 :
Considérant le même énoncé de l’exercice 1. Ecrire un code Matlab permettant de réaliser
seulement les tâches suivantes :
1. Calcul d’un vecteur P dont les éléments sont les probabilités d'apparition des caractères
2. Calcul de la probabilité totale PT (Noter que, le calcul doit être effectué sans
exploitation des données du vecteur P).
3. Si la valeur de la probabilité totale est égale à 1, un calcul de l'entropie doit être effectué.
En outre, si la valeur de la probabilité totale est différente à 1, un message d’erreur
devra signaler que la valeur de la probabilité totale doit être égale à 1.
3
Centre Universitaire Nour El- Bachir Master 1 Réseaux et Télécommunication (S2)
Institut des Sciences Année Universitaire
Département de Technologie 2019-2020
Filière Télécommunications
Objectif du TP
Exercice 1 :
Considérant l’alphabet de la source Alpha= {espace, a, …, h}. Ecrire un code Matlab
permettant de faire les tâches suivantes :
1. Message demandant la saisie du texte à coder en respectant les caractères de
l’alphabet considéré. La chaîne de caractères saisie par l’utilisateur dans la
console doit être affectée automatiquement à la variable text.
2. Calcul du vecteur correspondant aux probabilités d'apparition des caractères de
l’alphabet dans le texte.
3. Affichage d’un message d’erreur au cas où la probabilité totale est différente de
1.
4. Calcul de l’information propre (quantité d’information).
5. Affichage des mots du code correspondant à chaque caractère de l'alphabet
considéré (la fonction qui sera utilisée est : huffmandict).
6. Encodage du texte par utilisation de la fonction huffmanenco.
7. Décodage de la séquence binaire reçue par le décodeur de Huffman en utilisant
la fonction huffmandeco.
8. Calcul de l'entropie de la source.
9. Calcul de la longueur moyenne du code avec affichage d’un message d’erreur si
la valeur d’entropie est plus grande que celle de la longueur moyenne du code.
10. Calcul de l'efficacité et la redondance du code.
11. Calcul du taux et du gain de compression.
12. Créer un script permettant de (ou modifier le script déjà créé pour) traiter
n’importe quel texte constitué des symboles constituant l’alphabet : Alpha=
{Espace, a, …, z}. Noter que :
Les symboles sont des lettres de ‘a’ à ‘z’ minuscules plus le caractère
‘Espace’.
4
Si un texte ne contient pas tous les symboles de l’alphabet, la fonction
huffmandict va tenir compte les symboles qui n’apparaissent pas dans le
message (ce qui implique une structure d’arbre de Huffman complexe et
taille du code importante) et cela va provoquer une fausse compression
puisque cette fonction ne doit recevoir que l’alphabet formé par les
symboles apparaissant dans le message.
13. Créer un script permettant de (ou modifier le script déjà créé pour) traiter
n’importe quel texte constitué de n’importe quels symboles. Noter que vous
devrez créer une fonction permettant de déterminer l’alphabet associé au texte
afin de l’utiliser dans la fonction huffmandict. À la fin du script, intégrer un code
Matlab permettant de signaler que le résultat fourni par la sortie du décodeur est
similaire (ou différent) au texte inséré à l’entrée du codeur.
5
Centre Universitaire Nour El- Bachir Master 1 Réseaux et Télécommunication (S2)
Institut des Sciences Année Universitaire
Département de Technologie 2019-2020
Filière Télécommunications
Objectif du TP
Utiliser les fonctions MATLAB pour afficher, lire et créer une image
Exercice :
Lire image (taille) :
img=imread('barbara.jpg') ;
imshow(img) ;
size(img)
6
d(35:65,35:65)=0;
figure;imshow(b);
figure;imshow(d);
Seuillage:
img=imread('cions.png');
figure;imshow(img);
img2=im2double(img);
figure;subplot(1,2,1);imshow(img);
result=(img2>0.5)
subplot(1,2,2);imshow(result);
Histogramme:
I = imread(‘coins.png’);
imshow(I)
figure, imhist(I,256)
histo = imhist(I,256);
figure;plot(histo);
7
Centre Universitaire Nour El- Bachir Master 1 Réseaux et Télécommunication (S2)
Institut des Sciences Année Universitaire
Département de Technologie 2019-2020
Filière Télécommunications
Objectif du TP
Exercice :
L'image étant très uniforme dans les noirs, on observe des pics « blancs » pour les basses
fréquences de chaque bloc.
2. On veut maintenant représenter l'énergie moyenne de chaque bloc, pour cela on créer une
Fonction 'energie' qui fait la moyenne du carré de la DCT :
function[z]= energie(x)
xcarr=x.^2;
z=mean(mean(xcarr)); %deux fois à cause de la 2D
Exemple : en utilisant la fonction mesh : afficher l’énergie moyenne après l’application de la
dct2
8
3-On regarde l'image en annulant les coefficients AC et identifier le pourcentage d'énergie
contenu en moyenne dans les coefficients DC.
9
La figure représente : en haut l’image après 1er filtre. En bas l’image après 2eme filtre
3. On réalise maintenant un programme dctprog.m qui va afficher au fur à mesure l'image avec
plus de détails. C'est à dire en prenant 1 puis 4, 9, 16, 25, 36, 49, 64 premiers coefficients en
fréquence de chaque bloc, séparé par une temporisation pour mieux visualiser l'influence des
coefficients.
10