Vous êtes sur la page 1sur 7

TP 2 théorie de l’information

Exercice n°1 : codage d’Huffman


Question 1 - a :
randsrc (m, n, [alphabet ; prob]) :
Génère une matrice m-par-n, avec chaque entrée choisie indépendamment
parmi les entrées du vecteur alphabet. Le vecteur prob répertorie les
probabilités correspondantes, de sorte que le symbole alphabet(k) apparaît
avec probabilité prob(k)

Question 1 - b :
dec2bin(message) renvoie la représentation binaire, ou base-2, de l'entier
décimal message
Question 1 - c :
size(A) renvoie un vecteur ligne dont les éléments sont les longueurs des
dimensions correspondantes de A

Question 1 - d :
La fonction entropie retourne un réel qui représente l’entropie de probabilité p
ou p est un vecteur qui représente les probabilités des diffèrent symboles
Question 1 - e :
Le codage de Huffman : est un algorithme de compression de données sans
perte. Le codage de Huffman utilise un code à longueur variable pour
représenter un symbole de la source. Le code est déterminé à partir d'une
estimation des probabilités d'apparition des symboles de source, un code court
étant associé aux symboles de source les plus fréquents.

[dict, avglen] = huffmandict (symbols, prob) : génère un dictionnaire binaire de


code Huffman, dict, pour les symboles source, symbols, en utilisant
l'algorithme de variance maximale. Le paramétré prob spécifie la probabilité
d'occurrence pour chacun des symbols d'entrée. La longueur de prob doit être
égale à la longueur de symbols. La fonction renvoie également la longueur
moyenne des mots de code avglen du dictionnaire, pondérée en fonction des
probabilités dans le paramétré prob.
code = huffmanenco (sig, dict) : encode le signal d'entrée sig en utilisant les
codes de Huffman décrits par le dictionnaire dict
Question 1 - f :

Question 1 - g :
Le rendement = H / L
H : entropie
L : nombre moyenne de bits par symbole source utilisé

Le rendement approche de 1 donc le code huffman est un code efficace


Question 1 - h :
sig = huffmandeco (code, dict) décode le vecteur de code Huffman numérique,
code, en utilisant les codes Huffman décrits par le dictionnaire de code dict.

Isequal (A, B) : renvoie un 1 logique (true) si A et B sont équivalents sinon, il


renvoie un 0 logique (false)

Donc la séquence décompressée est identique à la séquence originale


Question 2 :

Longueur_huffman / m donne le nombre de bit par symbole donc la longueur


moyenne L
Donc pourcentage_egalite donne le rendement et puisque le résultat est
presque 100% donc le codage huffman est efficace

Exercice n°2 : codage Arithmétique


Question 1 :
Le codage arithmétique : (au même titre que le Codage de Huffman) est un
code à longueur variable, c'est-à-dire qu'un symbole de taille fixe (en bits) sera
codé par un nombre variable de bits, de préférence inférieur ou égal à sa taille
originale. On ne modifie donc pas la densité de symboles mais leur codage afin
de réduire l'espace qu'ils occupent.
code = arithenco (seq, counts) : génère le code arithmétique binaire
correspondant à la séquence de symboles spécifiée dans seq. Le paramètre
counts spécifie les statistiques de la source en répertoriant le nombre de fois
que chaque symbole de l'alphabet source apparaît dans un ensemble de
données de test.
dseq = arithdeco (code, counts, len) : décode le code arithmétique binaire en
code pour récupérer la séquence de len symboles correspondante. Le
paramètre counts spécifie les statistiques de la source en répertoriant le
nombre de fois où chaque symbole de l'alphabet source apparaît dans un
ensemble de données de test. code doit être une sortie de la fonction
arithenco.

Question 2 :

Le code huffman est plus efficace que le code arithmétique

Mohamed Azaiez
Islem Gassara
2 LTIC TELECOM

Vous aimerez peut-être aussi