Vous êtes sur la page 1sur 6

Ecole Nationale d’Electronique et de Télécommunication de Sfax

Introduction au codage canal


 Objectif: Etudier les moyens de codage permettant d’acheminer avec fiabilité

Cours des informations numériques sur un canal bruité.

Théorie de l’information et codage  La figure suivante représente un dispositif permettant de coder la transmission
d’un message sur un canal.
 Ce canal peut recevoir directement la séquence binaire du message d’entrée ou
son codage issu d’un codeur.
 Ce dernier introduit une redondance systématique dans le flux de données
sous la forme de bits complémentaires qui permettent de détecter et/ou de
corriger les bits erronés au niveau du récepteur.
Chapitre 4 :

Codage Canal (Partie 2)

Année Universitaire : 2022‐2023 2

Théorème du codage pour un canal Exemple: Code à répétition


010011 Données émises
 Etant donné une source discrète sans mémoire (SDSM) X d’entropie Codeur
000 111 000 000 111 111
H(X) b/symbole et un canal discret sans mémoire (CDSM) de capacité
 Code à répétition: 0 donne 000 et 1 donne 111.
Cs b/symbole, si H(X) ≤ Cs, il existe un codage qui permet de transmettre le
 Les seuls blocs de 3 bits autorisés sont les blocs 000 et 111.
message de la source sur le canal avec une probabilité d’erreur aussi petite
Données reçues
qu’on le désire. 000 110 000 010 111 110
Décodeur 010011

 En revanche, si H (X) > Cs, il est impossible de transmettre des informations


sur le canal considéré avec une probabilité d’erreur arbitrairement réduite. Si les erreurs sont rares, elles sont effectivement corrigées.
Exemple: 000 110 000 010 111 110.
 On retiendra que le théorème du codage affirme l’existence d’un codage sans Sinon, le décodeur va générer des erreurs là ou il n’y en avait pas.
donner les moyens de le construire. Exemple: 000 010 000 110 111 100.
 Un décodeur ne peut traiter correctement des données qu’à partir
3
d’une certaine qualité à l’entrée du décodeur.
5

Limitation des codes à répétition Codage canal


 Théoriquement, l’ajout de redondance contribue à augmenter les besoins
en bande passante. Codes correcteurs

 En pratique, le débit utile diminue (k/n*D), avec k le nombre de bits à


Codes non
l’entrée du code, n le nombre de bits à la sortie et D le débit de la Codes linéaires
linéaires
transmission.
 Compromis: plus la redondance augmente plus la protection augmente Codes à longueurs variables Codes à longueur fixe
Codes convolutifs Codes en blocs
mais le débit utile diminue.

 Fournir la meilleure capacité de correction en utilisant le moins de


Codes non cycliques Codes cycliques
bits de redondance selon une loi donnée.

Codes en blocs linéaires Codage par blocs


 Objectif: améliorer la qualité de la transmission
 Code en bloc: consiste à fractionner la trame d’information en
 Méthode: insertion de bits de redondance suivant une loi donnée
plusieurs blocs de taille fixe, ensuite, de transformer chacun des  Dans un codage par blocs, on code le message binaire ou la suite des
messages en un mot de code en appliquant une loi linéaire. données sous forme de blocs séquentiels longs de k-b et chacun de ces k-b blocs
 Les composants d’un mot de code appartiennent à un alphabet à q est converti en un n-b bloc avec n > k. On appelle le bloc obtenu un (n,k) bloc.
symboles.  On peut ainsi représenter un mot codé sous forme d’un (n,k) bloc:

 Exemples:
Sans codage: Avec codage:
- Si q=2 (code binaire), alors les mots de code sont constitués D=1/T, Du=1/T D=n/(kT), Du=1/T
de 0 et 1.
T ... T T ... T
- Si q>2 (code non binaire), alors les mots de code sont
k bits d’information pendant kT n bits pendant kT avec (n-k)
constitués de 0, 1,…,q-1.
bits de redondance
 Rendement du code : R=k/n
8
Codage par blocs Codage avec contrôle d’erreur
 1ère étape : Comment savoir si un flux de données comporte des erreurs ?
 Les n-k bits de la seconde partie du mot codé sont des bits de contrôle de
 Détecter les erreurs.
parité.
 2ème étape : Que faire lorsque le flux de données à traiter est erroné ?
 Dans ce cas, le codeur effectue l’opération de conversion suivante :
 Corriger les erreurs (protocoles de la couche 1). Puis, solliciter
T:UV
l’émission de nouvelles données (protocoles a partir de la couche 2). Enfin,
où U est un ensemble de mots binaires de longueur k et V est un ensemble de
interpoler entre les données précédentes et les données suivantes (applications).
mots binaires de longueur n avec n>k.
 Chacun des 2k mots de données est associé de façon biunivoque à un mot
 Les codes utilisés en communication peuvent corriger ou simplement détecter
codé.
les erreurs de transmission, suivant le taux de redondance des bits de contrôle
 Le rapport R=k/n est appelé Taux de remplissage du code ou Rendement du
de parité.
code.
 Il existe donc des codes correcteurs d’erreur de types très divers, tels que les
 Opération de décodage: retrouver les blocs de k bits à partir des blocs de n bits.
codes à contrôle de parité linéaire, les codes cycliques et les codes convolutifs.
 Nous allons parler ici des codes à contrôle de parité linéaire.
9 10

Codage avec contrôle d’erreur Principe: Définition d’un code linéaire


 1ère étape : Comment savoir si un flux de données comporte des erreurs ?  Soient p un nombre premier et s est un entier positif. Il existe un unique corps

 Détecter les erreurs. de taille q = ps, noté Fq. L’ensemble (Fq)n de tous les n-uples formés

 2ème étape : Que faire lorsque le flux de données à traiter est erroné ? d’éléments de Fq est un espace vectoriel sur Fq.

 Corriger les erreurs (protocoles de la couche 1). Puis, solliciter  Définition 1. L est un code linéaire si L est un sous-espace vectoriel de (Fq)n.
l’émission de nouvelles données (protocoles a partir de la couche 2). Enfin, On dit que L est un [n, k]-code si dim(L) = k.
interpoler entre les données précédentes et les données suivantes (applications). Si la distance minimale de L est d, on parle de [n, k, d]-code.

 Les codes utilisés en communication peuvent corriger ou simplement détecter  Définition 2. Le poids ω(x) du mot x de (Fq)n est le nombre de composantes
les erreurs de transmission, suivant le taux de redondance des bits de contrôle non nulles de x.
de parité. Le poids minimal ω(L) du code L est le minimum des poids de tous les
 Il existe donc des codes correcteurs d’erreur de types très divers, tels que les vecteurs non nuls de L.
codes à contrôle de parité linéaire, les codes cycliques et les codes convolutifs.  Exemple: ω(1101) = 3
 Nous allons parler ici des codes à contrôle de parité linéaire.
11 L = {00000, 10111, 11010, 01101} → ω(L) = 3 12
Principe: Poids d’un code linéaire Codes à contrôle de parité linéaire
 La relation (Eq.1) peut s’écrire sous la forme matricielle suivante:

 Théorème 1.
Eq. 2
Soit L un code linéaire. On a : d(L) = ω(L).
 où l’on a :
Eq. 3
 Théorème 2. En utilisant la règle de décodage par distance minimale, un code
linéaire peut détecter jusqu’à t erreurs, avec t = ω(L) − 1.  Dans la relation (Eq.3) Ik est la matrice unité d’ordre k et PT est la matrice

De plus, il en corrige jusqu’à t’, avec ω(L) = 2t’ + 1 ou 2t’ + 2. transposée de la matrice des coefficients P ayant pour expression :

 Exemple
Eq. 4
L = {00000, 10111, 11010, 01101} est 2-détecteur et 1-correcteur
 La matrice G de dimensions k x n est appelée matrice génératrice.
 Le code (ensemble complet des mots codés) engendré par la relation (Eq.1) ou
13 14
(Eq.2) est appelé code à contrôle de parité linéaire.

Dual d'un code linéaire: Définition Matrice de contrôle de parité

 Soit H la matrice appelée matrice de contrôle de parité, permettant le

contrôle d'erreur.

 Pour toute matrice G de taille (k×n), il existe une matrice H, de taille (n - k, n),

telle que les lignes de H soient orthogonales aux lignes de la matrice G;

 Autrement dit, GHT =0, où HT est la transposée de la matrice H et ‘0’ une

matrice (k, n - k) dont tous les éléments sont nuls.


Matrice de contrôle de parité Matrice Génératrice: Exemple
 Soit H la matrice de dimension m x n (m = n – k) ayant pour définition
 On construit un [6,3]-code linéaire binaire en choisissant trois vecteurs
ou
linéairement indépendants de (F2)6.
Eq. 5 Eq. 6
 Ainsi que

Eq. 7
où l’on a reconnu dans ‘0’ la matrice nulle de dimension k x m.
 Une post-multiplication par H des deux membres de la relation (Eq.2) et
l’utilisation de la relation (Eq.7) permet d’obtenir:
 Les mots du code L
ainsi que leur poids
Eq. 8 sont donnés par :
 La matrice H est appelée matrice de contrôle de parité du code considéré et la
relation (Eq.8) est appelée relation de parité,
 H est une matrice génératrice de 𝐿⊥. Cette matrice sera utilisée par la suite pour
17 18
le décodage.

Matrice Génératrice: Exemple Décodage syndromique


 La matrice de contrôle H de L est donnée par.

position i

19 20
Décodage syndromique DÉTECTION ET CORRECTION D’ERREUR
 Sous décodage syndromique, un (n,k) bloc de code linéaire peut corriger  Etant donné deux vecteurs codes ci et cj de même dimension (nombre

jusqu’à t erreurs par mot de code si n et k respectent la limite de Hamming. d’éléments), on définit une distance de Hamming d(ci,cj) entre ces vecteurs
égale au nombre de positions où leurs éléments sont différents.
 On définit également le poids de Hamming w(ci) d’un vecteur code ci égal au
Eq. 9 nombre de 1 de ci.
w(ci) = nombre de ‘1’ dans ci.
 On peut ainsi dire que le poids de Hamming de ci est sa distance de Hamming
par rapport au vecteur ‘0’, c’est-à-dire :.
 Un codage par blocs qui satisfait à l’égalité de l’Eq. 9 est appelé code
w(ci)= d(ci,0)
parfait.
où ‘0’ est le vecteur code dont tous les éléments sont nuls.
 Les codes parfaits capables de corriger une seule erreur sont appelés
 On peut aussi exprimer la distance de Hamming en fonction du poids de
codes de Hamming.
Hamming :
d(ci,cj) = w(ci⨁cj)
21 22

DÉTECTION ET CORRECTION D’ERREUR DÉTECTION ET CORRECTION D’ERREUR


 Distance minimale d’un code (dmin): représente la distance de Hamming la
 La distance minimale d’un codage par bocs linéaire est un paramètre important
plus petite entre deux mots de code appartenant au même ensemble. Plus
du code. Elle détermine les capacités de détection et de correction d’erreur du
dmin est grande plus le code est meilleur.
codage. C’est ce que confirme le théorème suivant :
d m in  m in d H  v i , v j   m in PH ( v i )
vi  v j C vi C ; vi  0

 Pouvoir de détection:
 THÉORÈME
La distance minimale d’un codage par blocs linéaire est égale au nombre de   d min  1
lignes de la matrice HT dont la somme est égale à 0.
 Pouvoir de correction: (E[.] est la partie entière)

 d  1
t  E  min 
 2 
23 24

Vous aimerez peut-être aussi