Vous êtes sur la page 1sur 18

République algérienne démocratique populaire

Ministère de l’enseignement supérieur et de la recherche scientifique

Université de sidi bel abbés

Département de génie électrique

Master 1 en Réseaux et Télécommunications

Codage et compression
Par : SADOUKI Alaeddine.

Année Universitaire : 2022/2023


●Introduction :
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 (par
exemple un caractère dans un fichier). 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.
Un code de Huffman est optimal au sens de la plus courte longueur pour un codage par symbole,
et une distribution de probabilité connue. Des méthodes plus complexes réalisant une
modélisation probabiliste de la source permettent d'obtenir de meilleurs ratios de compression.
Il a été inventé par David Albert Huffman, et publié en 1952.

●Objectif de la formation :
L’objectif de la formation est d’acquérir les bases de MATLAB , de son interface, de
ses capacités de simulation et d’apprendre à créer ses propres modèles dynamiques à partir de
fonctions disponibles.

 Etudie l’Entropie dans un modèle MATLAB.

 Donner une démarche de conception d’un déroulement de l’algorithme du codage et


compression d’une information.

 Observation des résultats sous forme des spectres et des constellations.


 Etude du codage du Huffman et le dictionnaire de Huffman et son implémentation sur
MATLAB.

1-manipulation :

1) Entropie :
• Considérons une source pouvant émettre N messages différents. Notons pi la 
probabilité d’émission du message mi .

• On appelle entropie de la source S l’espérance mathématique de I (sk) prise comme 
variable aléatoire.

• L’entropie fournit une mesure de la quantité d’information moyenne par symbole issue de la 
source, exprimée en bit/symbole.
 Sous Malabo on écrit cette fonction sous la forme :
Fonction H = entropy(p)

Avant il y a 1 condition pour faire :

- La somme des probabilités égale 1.

 Le programme suivant représente la fonction D’entropie sous MATLAB :

La commande SNZ : pour Utilisez des éléments non nuls pour renvoyer les éléments non nuls
dans un vecteur.
- Il faut sauvegarder ce script de cette fonction pour chaque utilisation de l’entropie faire
l’appel de la fonction directement. (Ce programme est générale c à d sans valeurs et il est utile pour
tous les sources).

Exemple :

L’affichage du « command window » :

 N=1 ………La somme des probabilités.

 Snz………..tous les probabilités égale pas à 0 .

 L’Entropie :
2) Création du dictionnaire Huffman :

Dictionnaire est un tableau de cellules N par 2, où N est le nombre de symboles distincts

possibles à encoder. La première colonne de dictionnaire représente les symboles distincts et la

deuxième colonne représente les mots de code correspondants. Chaque mot de code est

représenté comme une vectrice ligne, et aucun mot de code dans dictionnaire ne peut être le

préfixe d'un autre mot de code dans dict. Vous pouvez générer dictionnaire en utilisant la fonction ‘’

‘’ Huffmandict ’’.

 Le programme :

- Générez un code Huffman binaire, affichant la longueur moyenne du code et le tableau


de cellules contenant le dictionnaire de mots de code.
-
 L’exécution :

- Avglen : La longueur moyenne= 2.2


- L’Entropie H= 2.1710.

Le code optimal doit avoir une longueur inférieure ou


égale à celui-ci :

H(X) ≤ LC(X) < H(X) + 1.


- Donc :
2.1710 ≤ 2.2 < 3.1710

 ce code est optimal.

- Tableau des cellules :


{[1]} {[ 0 1]}
{[2]} {[ 0 0]}
{[3]} {[ 1 0]}
{[4]} {[1 1 1]}
{[5]} {[1 1 0]}
L’affichage du « dictionnaire » :

Remarque :
Dans la première colonne on a 5 symboles distincts et la deuxième colonne les mots de code
correspondants. Chaque mot de code est représenté comme une vectrice ligne, et nous
remarquons qu’aucun mot de code dans dictionnaire ne peut être le préfixe d'un autre mot de
code.

 Vérification des mots de code dans le dictionnaire :

Dans cette étape on va vérifier chaque symbole avec son mot de code a partir d’une
instruction « dict { symbole , :} ».

Le programme :

 L’exécution :
- C’est un code optimal car 0.9219 ≤ 1.2 < 1.9219.

 Le dictionnaire :

 On va verifier les mots de code de chaque symbole avec la fonction (dict) :

Au dictionnaire Chaque mot de code est représenté comme une vectrice ligne comme ci-
dessus : - Le symbole 1 [1 1]

- Le symbole 2 [1 0]

- Le symbole 3 [ 0]
2)-additions des sous-porteuses à la modulation QPSK  :

- Nous allons réaliser le montage suivant :


 La configuration des blocs :

1- Multiports selector :

Dans ce cas on a 8 sous-porteuse chaque sous-porteuse contient 24 echantillons

Alors : 192/8= 24

Donc le vecteur précédent signifie :

On a 1 :24 (24 Échants)

25 : du pilot.

26+24=49 donc la deuxième valeur [26 : 49]

2- Les constantes de la partie complexe :


3- Matrix concatenate :

- Dans ce block on va modifier le nombre des ports : 17 (8 pour les sous-porteuse et 9 pour
les pilots).

4- IFFT( the inverse fast Fourier transform ):


- On a N=256 [un vecteur du taille 256 ]
5- Selector :
- Pour étendre le signal du 192 jusqu'à 256.

6- AWGN Channel :
- Nous allons modifier le mode [signal sur bruit SNR] et nous allons travailler avec une valeur de
10dB et la puissance du signal égale à 0.01watts .

7- Selector 1 :

- Pour étendre le signal du 65 jusqu'à 320.

Conclusion :

Le concept de ce travail est de :

- Connaitre le fonctionnement des blocs FFT et IFFT.

- Etudier a faire une manipulation avec l’application de l’OFDM.

- visualisation des résultats pratique et comparaison avec les résultats théorique.


2- partie récepteur :

Cette partie représente l’inverse de la partie émetteur, nous allons ajouter des blocs [FFT,
démodulateur, égaliseur…].

Figure : OFDM basée QPSK sous simulink


Configuration : SNR=25dB.
1- Nous allons ajouter une fonction pour éliminée le préfixe de
cyclique.

Dans ce bloc on a 2 vecteurs :

[1 :256] : vecteur totale.

[193 :256] : le préfixe de cyclique(63).

 Le rôle du préfixe de cyclique :


Est une technique qui consiste à insérer une copie d’un bloc d’information à transmettre
en amont de ce bloc. Plus clairement, il s’agit de récupérer une partie des informations à
transmettre et d’insérer ces informations en début du bloc, on appelle ce mécanisme Préfixe
Cyclique (CP-OFDM).

Ainsi, le préfixe cyclique permet d’éviter les interférences causées par les effets des trajets
multiples et maintenir l’orthogonalité temporelle entre les symboles.
2- La FFT :

Dan la modulation OFDM on a le fonctionnement IFFT et


l’insertion d’un préfixe cyclique, par contre dans La démodulation
OFDM on a la suppression du préfixe cyclique et le fonctionnement de
la FFT.

Pour un vecteur contient 256 symboles.

3- Le retour au FRAME :

4- Elimination des zéros :


Dans l’émiettions nous avons ajouté des zéros, 29 zéros a gauche et 28 zéros a
droite, et dans cette partie on va relever ces zéros donc :

256 - 28 = 228 ; 1 + 29 = 30 alors le vecteur sera [30 : 228].

5- La démodulation :
Addition du bloc démodulateur QPSK :

6- La conversion du signale : Cette étape pour voir l’exécution


dans le bloc Display.
Integer to bit :

Bit to integer :
- Le blocs display va afficher le BER( taux d’erreur binaire) :

Le taux d’erreur binaire(TEB) : permet de mesurer la fréquence à laquelle


les erreurs se produisent, il correspond au rapport entre le nombre de bits
erronés et le nombre total des bits émis.

On a TEB = 0.01563 parc que TEB £ {1/100}.

Interférence entre symboles (ISI) :

Les signaux OFDM sont transmis à des intervalles égaux, et ils doivent parcourir
un certain trajet pour atteindre le récepteur. Dans le cas d'un canal multi-trajets, un
symbole transmis prend différents retards pour arriver au récepteur à cause des différents
chemins de propagation, ce qui cause des étalements temporels différents. La
prolongation de la durée des symboles fait chevaucher les symboles entre eux, ce qui
donne naissance à l'interférence entre symboles (IES).
 Le spectre d’un signal OFDM est la somme de tous ces spectres.

Figure : Spectre du signal en sortie du modulateur OFDM

- Conclusion :

Dans ce TP, le principe de base de la modulation multi-porteuse à


fréquences orthogonales a été expliqué. L’avantage apporté par l’OFDM est
de combattre les effets des multi-trajets et donc rend un canal sélectif en
fréquence en plusieurs sous canaux non sélectifs en fréquence et par l’ajout
de l’intervalle de garde on aura la suppression des interférences entre
symboles OFDM.

Vous aimerez peut-être aussi