Vous êtes sur la page 1sur 6

D

G
E

Filière d’ingénieurs : Systèmes Intelligents Au 2019/20


Communicants Et Mobiles (Sicom)
Module : Théorie De L’information Codage Source, Canal Vidéo Et Parole
Exercices de TDs


Exercice 1. : Code à longueur maximale
Pour tout entier pour tout entier n il existe un code à longueur maximale vérifiant les
propriétés suivantes :
Longueur du code : 𝑛 = 2! − 1
Nombre de bits du message 𝑘=𝑚
Distance minimale : 𝑑!"# = 2! − 1

Ce sont des codes cycliques avec 𝑛, 𝑘 = 2! − 1, 𝑚


où m est un entier positif. Les mots de code sont généralement générés au moyen d'un
registre à décalage numérique à m étages avec rétroaction, basé sur le polynôme de parité.
Le code à longueur maximale peuvent être générés par un polynôme de la forme :
!!! !
𝑔 𝑋 = ! !
.

h(X) et tout polynôme primitif de degré m. Nous avons déjà vu que tout code cyclique
générer par un polynôme primitif est un code de Hamming avec 𝑛 = 2! − 1 et 𝑛 − 𝑘 =
𝑚. Nous avons aussi vu comment construire un code de Hamming de distance minimale 3.
Il s’ensuit qu’un code à longueur maximale est un code dual du code de Hamming.
Le polynôme h(X) définit les connexions du codeur. Le polynôme générateur g(X)
définit une période du code à longueur maximale en supposant que le compteur (les
registres) est dans un état initial 0…01.
Considérons le code (7,3) qui est le dual du code de Hamming C(7,4), si on considère
ℎ 𝑋 = 1 + 𝑋 + 𝑋 ! , le polynôme générateur du code à longueur maximal :
𝑔 𝑋 = 1 + 𝑋 + 𝑋! + 𝑋!
Ce codeur est représenté par le circuit :
Les connections du codeurs sont définies par le polynôme h(X) et non g(X)
Pour chaque mot code à transmettre, le commutateur est sur la position ‘1’, et les m
bits d'information sont chargés dans le registre à décalage, puis le commutateur est switché
de la position 1 à la position 2. Le contenu du registre à décalage est décalé vers le gauche un
bit à la fois pour un total de 2! − 1 décalages. Cette opération génère un code systématique
avec la longueur de sortie souhaitée 𝑛 = 2! − 1. Les mots codes générés par ce codeur
sont donnés dans le tableau suivant.

Il faut notez que, à l'exception du mot code 000, tous les mots code générés par le
registre à décalage sont des décalages cycliques différents d'un seul mot code. La raison de
cette structure est facilement visible sur l’exemple sur le diagramme d'état du registre à
décalage pour le mot information 001 , pour m = 3
Lorsque le registre à décalage est chargé initialement et que le switch passe à l’état 2,
le système est équivalent à celui de la figure suivante :
Lorsque le registre à décalage est chargé initialement et décalé de 2! − 1 fois, il fera
défiler tous les 2! − 1 états possibles. Par conséquent, le registre à décalage est de retour à
son état d'origine en 2! − 1 shifts.
Par conséquent, la séquence de sortie est
périodique avec une longueur 𝑛 = 2! − 1 . Puisqu'il
y’a 2! − 1 états possibles, cette longueur correspond
à la plus longue période possible. Ceci explique
pourquoi les mots de code 2! − 1 sont les différents
décalages cycliques d'un seul mot de code.
Des codes de registre à décalage de longueur
maximale existent pour toute valeur positive de m.
Par exemple, le mot de code généré par le
registre à décalage à m = 3 étages pour le mot 001
est donné sur la figure. La période du code est n=7, si
on suppose que l’état initial est 001 la sortie sera :
1 1 1 0 1 0100 elle correspond au polynôme
générateur 𝑔 𝑋 = 1 + 𝑋 + 𝑋 ! + 𝑋 ! .
Si on considère comme polynôme primitif
ℎ 𝑋 = 1 + 𝑋! + 𝑋! pour le code longueur
maximale, alors nous aurons tous simplement le
code image du code précèdent, c.à.d la séquence sera
retournée dans le temps.
Le tableau suivant liste les connections à l’additionneur modulo 2 des registres à
décalage pour les codes à longueur maximale pour différents entiers m .
Une autre caractéristique des mots codes dans un codeur à registres à décalage de longueur
maximale est que chaque mot code, à l'exception du mot code t« 0 » contiennent 2! − 1 ’1’
uns et 2! − 1 zéros. Par conséquent, tous ces mots codes ont des poids identiques. à savoir,
𝑤 = 2! − 1. Puisque le code est est linéaire, ce poids est également la distance minimale du
code, i.e 𝑑!"# = 2! − 1.

Exercice
Le polynôme générateur d’un code de Hamming C(15, 11) est donné par :
𝑔 𝑋 = 1 + 𝑋 + 𝑋!
Donner le schéma du codeur sous sa forme systématique et du calculateur du
syndrome.
Considérons maintenant le code à longueur maximale (15,11) dual du code de
Hamming (15,4). Trouver le polynôme générateur 𝑔 𝑋 et trouver la séquence de sortie on
supposant l’état initial du compteur 0001, valider votre résultat par « cyclage » de l’état
initiale du codeur.

EXERCICE

Exercice 2. : Codeurs convolutifs


Un codeur convolutif est décrit par : g1=[1 1 1] , g2=[1 0 1]
1. Représentez le codeur associé à ce code. Et donner ses caractéristiques.
2. Déterminez la réponse impulsionnelle de ce codeur.
3. Donnez la séquence de sortie du codeur pour correspondant à la séquence d’entrée
m=101 par deux façon : on utilisant le fonctionnement du codeur et en utilisant la
réponse impulsionnelle.
4. Déterminez la représentation polynomiale du codeur et en déduire la séquence de
sortie correspondant à l’entrée m=101.
5. Tracez le diagramme des états et donnez l’état des registres, et la séquence de
sortie correspondant à l’entrée m=11011
6. Construire l’arbre de codage et le treillis de ce codeur, la séquence de sortie
correspondant à l’entrée m=11011
7. Ce codeur est utilisé pour transmettre à travers un canal binaire avec un AWGN. La
séquence reçue au niveau du démodulateur-récepteur est : 1101011001 ….., en
utilisant l’algorithme de Viterbi trouvez la séquence transmise

Exercice 3. : Codeurs convolutifs


Un codeur convolutif est décrit par : g1=[1 0 0] , g2=[1 0 1] , g3=[1 1 1]
1. Représentez le codeur associé à ce code.
2. Tracez le diagramme des états
3. Construire le treillis de ce codeur et l’arbre de codage.
4. Si on suppose que les états des registres sont initialement tous nuls, quelle est la
séquence codée associée à la séquence d’entrée 100110
5. Ce codeur est utilisé pour transmettre à travers un canal binaire avec un AWGN. La
séquence reçue au niveau du démodulateur-récepteur est : 101001011110111. …..,
en utilisant l’algorithme de Viterbi trouvez la séquence transmise.

Exercice 4. : Codeurs convolutifs
On considère le codeur convolutif décris par le diagramme ci contre.
1. Donner la matrice génératrice, la
représentation vectorielle et
polynomiale de ce code
2. Tracez le diagramme des états
3. Construire le treillis de ce codeur et
l’arbre de codage.
4. Déterminez la réponse impulsionnelle de
ce codeur.
5. Donnez la séquence de sortie du codeur pour correspondant à la séquence
d’entrée m=101 par deux façon : on utilisant le fonctionnement du codeur et en
utilisant la réponse impulsionnelle et le polynôme générateur.
Exercice 5. : Codeurs convolutifs

On considère le codeur convolutif décris par le
diagramme ci contre.
6. Donner la matrice génératrice de ce code
7. Tracer le diagramme d’état du code
8. Donner le treillis de codage.
9. Supposer qu’un message a été codé par ce
codeur et a été transmis à travers un canal
binaire symétrique de probabilité d’erreur p=10-5.
Si la séquence reçue est r =(110, 110, 110,
111,010, 101, 101), en utilisant l’algorithme de
Viterbi trouver la séquence transmise.

Exercice 6. : Codeurs RSC (Turbo-codes)
On considère les matrices génératrices suivantes de turbo-codes :
𝟏!𝑫!𝑫𝟐
Codeurs à 4 états : 𝒈 𝑫 = 𝟏, 𝟏!𝑫𝟐

𝟏!𝑫𝟐 !𝑫𝟑
Codeurs à 8 états : 𝒈 𝑫 = 𝟏, 𝟏!𝑫!𝑫𝟐 !𝑫𝟑
𝟏!𝑫𝟒
Codeurs à 16 états : 𝒈 𝑫 = 𝟏, 𝟏!𝑫!𝑫𝟐 !𝑫𝟑 !𝑫𝟒
Construire les blocks diagrammes de chacun des codeurs récursifs systématiques (RSC)

Exercice 7. : Codeurs RSC (Turbo-codes)


Une source binaire d’entropie maximale est
codée par le codeur convolutif à une
entrée et deux sorties représenté ci-contre.
1. Quel est le rendement de ce codeur ?
2. Écrire les équations logiques des deux
sorties S1n et S2n en fonction de xn, xn-1 et xn-2.
3. remplir le tableau donné ci-contre .
4. Le codeur possède 4 états internes que l’on désigne
par : a : 00, b: 01, c: 11 et d: 10. Donnez le diagramme
d’état de ce codeur (préciser les notations utilisées).
5. Construire le treillis de ce codeur.
6. Quelle est la séquence de sortie pour la séquence
d’entrée suivante : 1011 ?

7. Appliquez l’algorithme de Viterbi pour effectuer le


décodage de la séquence reçue suivante : 11 11 01 00.

Vous aimerez peut-être aussi