Codes correcteurs d’erreurs TP-1
Techniques du codage canal CODAGE DE SOURCE
Objectif du TP : Compression et décompression d’une séquence numérique, en utilisant les algorithmes de Huffman et Arithmétique. Comparaison de l’efficacité des deux algorithmes en matière de compression. 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. 2. Utiliser la fonction Matlab : o huffmandeco Pour décompresser la séquence binaire fournie par le compresseur du Huffman. Théorie de l'Information
1
Codes correcteurs d’erreurs TP-1
Techniques du codage canal CODAGE DE SOURCE
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. 4. Utiliser la fonction Matlab (correspondant à l’algorithme Arithmétique) : o arithenco Pour compresser la séquence des symboles numériques Seq. 5. Utiliser la fonction Matlab : o arithdeco Pour décompresser la séquence binaire fournie par le compresseur Arithmétique. 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. 7. Donner des constations sur l’efficacité de ces deux algorithmes en compression de la séquence. Théorie de l'Information
2
Codes correcteurs d’erreurs TP-2.1
Techniques du codage canal CODAGE DE SOURCE
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. 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
Théorie de l'Information
3
Codes correcteurs d’erreurs TP-2.2
Techniques du codage canal CODAGE DE SOURCE
Considérant le même énoncé du TP-2.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. Théorie de l'Information
4
Codes correcteurs d’erreurs TP-3
Techniques du codage canal CODAGE DE SOURCE
Objectif du TP : compression et décompression d’un texte, en utilisant l’algorithme de Huffman. 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. Théorie de l'Information
5
Codes correcteurs d’erreurs TP-3
Techniques du codage canal CODAGE DE SOURCE
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. Théorie de l'Information
6
Codes correcteurs d’erreurs TP-3
Techniques du codage canal CODAGE DE SOURCE
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 : Alph={Espace, a, …, z}. Noter que: ● Les symboles sont des lettres de ‘a’ à ‘z’ minuscules plus le caractère ‘Espace’. ● 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. Théorie de l'Information
7
Codes correcteurs d’erreurs TP-3
Techniques du codage canal CODAGE DE SOURCE
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.
Théorie de l'Information
8