Vous êtes sur la page 1sur 73

Génie Telecoms et Réseaux

Communications Numériques

Pr. Malika ALAMI MARKTANI

AU: 2020/2021
Enjeu du codage de canal

Dans le chapitre précédent sur le codage de source, aucun élément


extérieur ne venait modifier l'information. Au contraire lorsque l'information
va transiter dans le canal, elle sera perturbée par un bruit.

Le résultat principal de ce chapitre nous assure qu'il est possible de coder


l'information de façon à ce que la détérioration soit négligeable. Cela se
fera bien entendu au prix d'une redondance de l'information.

En fait pour tout canal de transmission, nous définirons une grandeur


caractéristique appelée capacité et qui s'interprète comme la quantité
maximale d'information pouvant transiter à travers le canal.

AU 2020-2021 2
Enjeu du codage de canal
Le codage de canal rajoute de l’information pour permettre au récepteur
de détecter ou corriger les erreurs éventuellement apparues.

 Comment le récepteur lit-il les données reçues ?

• Il échantillonne le signal physique reçu à intervalle de temps fixe,


au milieu du bit. Suivant le niveau de tension lu, il déduit la valeur
du bit : 0 ou 1.

5V
0V

Message reconstitué 0 1 1 0 1 0 0 1 1 1

AU 2020-2021 3
Enjeu du codage de canal
 D’où viennent les erreurs ?
Le signal est déformé sur le canal :
l’échantillonnage peut se faire sur
une perturbation.

Pic de bruit

A l’échantillonnage, le récepteur
interprète le niveau de tension
comme un 0.

 Conclusion : Puisque le récepteur ne peut se fier au signal électrique reçu,


on va rajouter des bits dans les messages qui permettront de repérer les
erreurs.
AU 2020-2021 4
Rôle du codage de canal

• Pour que la transmission soit performante, il faut fournir au récepteur


la quantité d’information manquante qui est H(X/Y). Pour cela il est
imaginé d’introduire une redondance dans l’information qui permettra de
détecter et de corriger les erreurs dues à la transmission.
• Exemples simples :
- Ajouter un bit de parité et, en cas d’erreur à la réception,
interroger de nouveau l’émetteur.
- Transmettre l’information en trois exemplaires et, en cas de
désaccord, faire confiance à la majorité.

AU 2020-2021 5
Rôle du codage de canal

Ces méthodes proviennent d’une analyse empirique de la situation et,


d’après le modèle de Shannon, elles ont pour effet de diminuer la
quantité d’information perdue et donc d’augmenter la capacité du canal.
Grâce à cette analyse, il est possible de mettre au point des méthodes
de codage plus efficaces pour atteindre cet objectif.

un codage de canal performant est d’autant plus nécessaire que le


canal est bruité et perd de l’information.

AU 2020-2021 6
Canaux discrets

Canaux et codage de canal


Pour modéliser correctement un canal de transmission il est nécessaire de
spécifier l'ensemble des entrées et l'ensemble des sorties possibles. Le cas le
plus simple est celui du canal discret sans mémoire : l'entrée est une lettre d'un
alphabet fini {a1, . . . , aK}, et la sortie est une lettre d'un autre alphabet fini,
éventuellement identique, {b1, . . . , bJ}. Ces lettres sont émises en séquence,
et pour que le canal soit sans mémoire, il faut que chaque lettre de la
séquence reçue ne dépende statistiquement que de la lettre émise de même
position. Ainsi un canal discret sans mémoire est entièrement décrit par la
donnée des probabilités conditionnelles P(bj | ak), pour tout ak dans l'alphabet
d'entrée et tout bj dans l'alphabet de sortie.

AU 2020-2021 7
Canaux discrets

Canaux et codage de canal


Par exemple le canal binaire symétrique, représenté dans la figure suivante, est
un canal discret sans mémoire, dont l'alphabet d'entrée et l'alphabet de sortie
sont égaux tous deux à {0, 1}. La probabilité pour qu'un symbole soit inchangé
est 1−ε, et la probabilité pour qu'il soit transformé en son opposé est ε.

Canal binaire symétrique

On peut également considérer des canaux discrets à mémoire dans lesquels


chaque lettre de la séquence de sortie peut dépendre de plusieurs lettres de la
séquence d'entrée.
AU 2020-2021 8
Canaux continus

Canaux et codage de canal


Il existe une classe de modèles de canaux, appelé canaux continus, beaucoup
plus proche des canaux physiques, dans lesquels l'entrée et la sortie sont des
fonctions continues du temps.
Pour les canaux de cette classe, il est possible, et commode, de séparer le
codeur et le décodeur en deux parties, comme le montre la figure suivante.

Canal continu et canal discret

AU 2020-2021 9
Canaux continus

Canaux et codage de canal


La première partie du codeur, que nous appellerons codeur de canal discret,
transforme une séquence binaire en une séquence de lettres d'un alphabet fini
{a1, . . . , aK}, la seconde partie du codeur, le modulateur de données digitales
(MDD) envoie pendant un temps τc sur le canal une des fonctions du temps
prédénies s1(t), . . . , sK(t). La durée τc sera l'intervalle de temps séparant
l'émission de deux lettres par le codeur de canal discret.
L'ensemble de ces fonctions du temps mises bout à bout sera convertie à la
sortie du canal par le démodulateur de données digitales (DDD) en une
séquence de lettres d'un alphabet de sortie {b1, . . . , bJ} au rythme, là encore,
d'une lettre toutes les τc secondes.

AU 2020-2021 10
Canaux continus

Canaux et codage de canal


On voit que de cette manière l'ensemble MDD-canal-DDD peut être considéré
comme un canal discret dont l'alphabet d'entrée est {a1, . . . , aK}, et l'alphabet
de sortie {b1, . . . , bJ}. Si de plus le bruit est indépendant entre chaque
intervalle de τc secondes, alors ce canal sera sans mémoire.

L'étude des canaux discrets nous permettra donc de déduire des résultats sur
les canaux continus.

AU 2020-2021 11
Capacité d'un canal

Canaux et codage de canal


L'un des paramètres les plus important d'un canal est sa capacité, nous
verrons que cette capacité peut s'interpréter comme une mesure de la quantité
d'information, exprimée en bits par seconde par exemple, pouvant être
transmise à travers ce canal. L'intérêt de cette grandeur nous vient
essentiellement du théorème sur le codage des canaux bruités :
grossièrement, ce théorème dit que dans un canal de capacité C bits/s, si l'on
veut faire transiter une quantité d'information à un taux utile de R bits/s, tel que
R < C, alors il existe une procédure de codage et une procédure de décodage
telles que le taux d'erreur résiduel soit arbitrairement faible.
La réciproque de ce théorème nous dit par contre que si R > C alors pour toute
procédure de codage et de décodage, le taux d'erreur résiduel est supérieur à
une constante strictement positive qui dépend de R et C.

AU 2020-2021 12
Définition du canal discret
Pour définir un canal de transmission, il est nécessaire de décrire l'ensemble
des entrées et des sorties possibles du canal, ainsi que le bruit qui perturbera
la transmission.
Le canal discret est le modèle le plus simple de canal de transmission.
L'ensemble des entrées comme celui des sorties seront des ensembles finis X
et Y et le bruit se modélisera par la donnée d'une loi de probabilité
conditionnelle de Y sachant X.

AU 2020-2021 13
Canal discret sans mémoire
Un canal discret sans mémoire est déni par la donnée de :
1. Un alphabet d'entrée X = {a1, . . . , aK},
2. Un alphabet de sortie Y = {b1, . . . , bJ},
3. Une loi de transition définies par les probabilités conditionnelles P(bj | ak).
La matrice K × J suivante:

est appelée matrice stochastique du canal. Nous parlerons d'un canal (X, Y, π).

AU 2020-2021 14
Canal discret sans mémoire
Exemple: Le canal binaire symétrique de probabilité de transition p représenté
par le diagramme:

P(0I0) P(1I0)
a pour matrice stochastique: =
P(0I1) P(1I1)

La probabilité de transition p du canal sera souvent appelée probabilité d'erreur


du canal.

AU 2020-2021 15
Canal discret symétrique
Un canal discret est dit symétrique si les lignes de sa matrice stochastique sont
formées des mêmes éléments à l'ordre près.
Un canal symétrique n'a pas forcément le même nombre d'entrées et de
sorties.

AU 2020-2021 16
Canal discret symétrique
Exemple: Le canal binaire symétrique à effacement est déni par le diagramme:

p=probabilité de transition
p∞= probabilité d’effacement

a pour matrice stochastique:

P(0I0) P(∞I0) P(1I0)


=
P(0I1) P(∞I1) P(1I1)

AU 2020-2021 17
Capacité d'un canal
Soit un canal dont l'ensemble des entrées est X et l'ensemble des sorties Y . La
donnée du canal nous fourni également la loi de transition, c'est à dire la loi de
probabilité conditionnelle de Y sachant X. Cette loi sera notée P, pour tout x dans
X et tout y dans Y , nous connaissons P(y | x).
Si nous connaissons également la loi d'émission, c'est-à-dire la loi de probabilité
de X, alors nous sommes en mesure de calculer l'information mutuelle I(X; Y )
entre X et Y . En effet
et P(x, y) et P(y) peuvent être calculés et valent:

L'information mutuelle entre X et Y s'interprète comme l'information transmise à


travers le canal.

AU 2020-2021 18
Capacité d'un canal
La relation:
exprime alors que l'information transmise à travers le canal est égale à l'entropie
de X, H(X) diminuée de la quantité H(X | Y ) que l'on peut interpréter alors
comme la perte d'information due au bruit.
Pour un canal donné, seule la loi de transition est connue. La loi d'émission ne
dépend que de la source et du codeur de canal. La capacité du canal sera la
plus grande valeur que peut atteindre l'information mutuelle de X et Y .

AU 2020-2021 19
Définition

Capacité d'un canal


Soit un canal d'entrée X et de sortie Y . La capacité de ce canal est égale au
maximum de l'information mutuelle entre X et Y pour toutes les lois d'émission
possible.

Cette définition ne nécessite pas un canal discret, et reste parfaitement


applicable à un canal continu. Nous ne nous intéresserons cependant qu'à la
capacité des canaux discrets sans mémoire.

AU 2020-2021 20
Capacité d'un canal discret sans mémoire

Si la définition de la capacité d'un canal peut sembler simple, son calcul


pratique est d'une grande complexité en général. En effet si l'alphabet d'entrée
est X = {a1, . . . , aK}, et que la loi d'émission est p1, . . . , pK, où pk = P(ak) pour
tout k, il faut calculer le maximum de I(X; Y) sur l'ensemble des K-uplets
(p1, . . . , pK) avec les contraintes pk ≥ 0 pour tout k, et Σ pk = 1.

Ce calcul est cependant possible dans certains cas particuliers.

AU 2020-2021 21
Définitions

Capacité d'un canal symétrique


Canal fortement symétrique:
Un canal discret est dit fortement symétrique si les lignes et les colonnes de
sa matrice stochastique sont égales à une permutation près.
Décomposition d'un canal:
Nous dirons que le canal T = (X, Y, π) se décompose en une combinaison des
canaux Ti = (X, Yi, πi)1≤ i ≤ L, si les Yi sont disjoints et s'il existe des nombres réels
positifs q1+q2+. . . +qL = 1 tels que
Nous noterons formellement:

Un canal discret est symétrique si et seulement si il se décompose en une


combinaison de canaux fortement symétriques.

AU 2020-2021 22
Capacité d'un canal symétrique
Pour un canal symétrique, la matrice stochastique:

est telle que ses lignes sont toutes égales à l'ordre près. On pose pour tout
couple (k, j), πk,j = P(bj | ak).
L'information mutuelle moyenne s'écrit: I(X; Y) = H(Y) − H(Y | X), où H(Y | X)
l'entropie conditionnelle de Y sachant X est égale à

AU 2020-2021 23
Capacité d'un canal symétrique
Par définition d'un canal symétrique, le terme
est indépendant de k. Notons le H(π). Nous avons alors

Donc pour maximiser I(X; Y ) = H(Y ) − H(π) il suffira de maximiser H(Y ).

AU 2020-2021 24
Capacité d'un canal symétrique
Soit T un canal symétrique dont la décomposition en canaux fortement
symétrique s'écrit q1T1 + . . . + qLT . Sa capacité est atteinte lorsque la loi
d'émission est uniforme et vaut:

où les Ci sont les capacités des canaux fortement symétriques Ti.

Exemple: Considérons le canal binaire symétrique. Sa matrice stochastique

vaut:

et donc H(π) = −p log2 p − (1 − p) log2(1 − p).

La capacité du canal binaire symétrique de probabilité d'erreur p est donc égale

à C = 1 + p log2 p + (1 − p) log2(1 − p).

AU 2020-2021 25
Théorème fondamental
Avant d'énoncer le second théorème de Shannon sur le codage des canaux
bruités, nous allons décrire les façons par lesquelles nous pouvons opérer ce
codage.
D'après les hypothèses que nous avons admises jusqu'à présent, l'entrée du
codeur de canal est égale à la sortie du codeur de source, c'est-à-dire qu'il s'agit
d'une séquence binaire.

Un codage d'un canal discret (X, Y, π) est une procédure qui associe à chaque
séquence binaire finie Y une séquence finie de lettres de X.
Bien évidemment, il est hautement désirable qu'après passage dans le canal la
séquence de lettres de Y reçue puisse être décodée pour retrouver la séquence
binaire, et ce avec une probabilité la plus élevée possible.

AU 2020-2021 26
Théorème fondamental
Un code en bloc d'un canal discret (X, Y, π) est une procédure qui associe à
chaque séquence binaire de longueur donnée k une séquence finie de n lettres
de X appelée mot de code. L'entier n est appelé longueur du code, 2k est le
cardinal du code.

Nous désignerons également par code l'ensemble des mots de codes pour tous
les k-uplets binaires possibles.
À tout codage, il faudra évidemment associer une procédure de décodage. Cette
procédure va pendre en entrée une séquence de lettres à la sortie du canal, et
donner en sortie une séquence binaire. Ce décodage devra se faire de façon à
maximiser la vraisemblance.

AU 2020-2021 27
Théorème fondamental

Un algorithme de décodage d'un codage d'un canal (X, Y, π) sera une


procédure qui à toute séquence de lettres de Y associe une séquence binaire.
Un algorithme de décodage d'un code en bloc d'un canal (X, Y, π) de longueur n
et de cardinal 2k sera une procédure qui à tout n-uplet de Y associe un k-uplet
binaire.

AU 2020-2021 28
Canal binaire symétrique

Théorème fondamental
Nous nous contenterons d'exposer le théorème fondamental de Shannon pour le
codage de canal dans le cas d'un canal binaire symétrique. Il est aisé de
généraliser au cas q-aire, c'est-à-dire lorsque les alphabet d'entrée et de sortie
du canal sont égaux et de cardinal q.
Comme nous l'avons déjà vu le canal binaire symétrique de probabilité de
transition p à pour capacité C = 1 + p log2 p + (1 − p) log2(1 − p).
Pour un tel canal, nous utiliserons des codes binaires, c'est-à-dire des sous
ensemble de {0, 1}n pour un certain entier n.

AU 2020-2021 29
Le second théorème de Shannon pour un CBS
Soit un canal binaire symétrique de capacité C. Pour tout R < C il existe une
suite Cn de codes de longueur n de taux Rn d'algorithme de décodage de taux
d'erreur résiduel Pen telle que:

Ce théorème signifie donc qu'il existe des codes en bloc permettant de réaliser
un code dont le taux est aussi proche qu'on le désire de la capacité du canal.
Il existe un autre résultat qui est le réciproque de ce théorème.

AU 2020-2021 30
Le second théorème de Shannon pour un CBS
Soit un canal binaire symétrique de capacité C. Soit un code de taux R > C alors
tout algorithme de décodage de ce code est tel que son taux d'erreur résiduel
Pe> K(R,C) > 0, où K(R,C) est une constante strictement positive ne dépendant
que de R et de C.

Ce résultat nous indique qu'il est inutile de chercher des codes de taux supérieur
à la capacité du canal. La capacité C est donc bien le taux de codage maximal
que l'on puisse atteindre pour faire transiter une information dans un canal
donné.

AU 2020-2021 31
Plus simplement

Le second théorème de Shannon pour un CBS


Théorème de Shannon concernant le codage canal (A mathematical theory of
communication. Octobre 1948)
Soit un canal discret de capacité C et une source discrète d’entropie H.
Puisque H(XIY) = H(X) - C

AU 2020-2021 32
Transmettre de l’information sans erreur ?

AU 2020-2021 33
Détection/correction d’erreur

 Certains codes permettent de détecter des erreurs,


d’autres de détecter et corriger les erreurs.

 La correction d’erreur contraint à ajouter plus de bits que


la détection d’erreur.

 Par conséquent, on adopte un code correcteur d’erreur


quand on ne peut pas retransmettre les messages :
• Transmission dans un seul sens (émission TV)
• Transmission satellite (la retransmission prend trop de
temps)
• Transmission en temps réel.

AU 2020-2021 34
Métriques: Distances et poids de Hamming

AU 2020-2021 35
Métriques: le poids d’un code

AU 2020-2021 36
Métriques: la distance de Hamming

AU 2020-2021 37
Métriques: Distance de Hamming du code à répétition

AU 2020-2021 38
Métriques: code correcteur d’erreurs

AU 2020-2021 39
Ex: code de parité

Métriques: code correcteur d’erreurs

AU 2020-2021 40
Métriques: paramètres d’un code (n,k)

AU 2020-2021 41
Classification des codes
détecteurs et correcteurs d’erreurs

AU 2020-2021 42
Codes de bloc linéaire
Codes de bloc Linéaires: Algo de codage

AU 2020-2021 44
Codes en blocs linéaires
 Lemme : Un code linéaire de distance minimum d peut
détecter jusqu'à d-1 erreurs et en corriger jusqu'à t avec
d=2t+1 ou d=2t+2, si on utilise la règle de décodage à
distance minimum
 d: nombre d’erreurs détectées
 t: nombre d’erreurs corrigés

 Notations
• Un code de dimension k de longueur n de distance
minimale d est noté C(n,k,d)
• Un code qui corrige jusqu'à t erreurs est appelé t-
correcteur

AU 2020-2021 45
Codes de bloc Linéaires: Algo de codage

AU 2020-2021 46
Exemple

Codes de bloc Linéaires: Algo de codage

On veut construire un code linéaire C(6,3) à partir de la matrice génératrice G


suivante:

a u = Ga
101
000 000000
011
001 110110 1
010
G= 010 011101 1
111 0
001 011 101011 0
G 0 =
110 100 100101 1
1
101 010011
1
0
110 111000
111 001110

AU 2020-2021 47
Exemple

Codes de bloc Linéaires: Algo de codage

La structure du codeur dans ce cas est:


a1 a2 a3

101 u1
011
010 u2
G=
111
001
u3
110

u4

u5

u6

AU 2020-2021 48
Exemple

Codes de bloc Linéaires: Algo de codage


 remarque : Pour un code C fixé, toute application linéaire faisant
correspondre à la base canonique de G définit le même code.
• l'ensemble des vecteurs de code est le même
• seule la correspondance entre vecteurs et codes est différente
a u = Ga a u = G'a
000 000000 000 000000
101 010 001 001110
001 110110
011 100
010 011101 010 101011
010 111
G= 011 101011 G'= 011 100101
111 101
100 100101 011 100 011101
001
110 101 010011 110 101 010011
110 111000 110 110110
e1 e2 e3
111 001110 e2 e2 e1 111 111000
+ +
e3 e2
+
e3
AU 2020-2021 49
Exemple

Codes de bloc Linéaires: Algo de codage


Matrice génératrice du code (7,4,3)
Le message est le mot d1d2d3d4. Le mot du code est constitué des quatre lettres
du mot du message, puis de trois sommes de contrôles p1p2p3.
La valeur de pi est égal à zéro si la somme des trois lettres du message incluses
dans son cercle sur la figure est paire et un sinon.
Il possède donc la matrice génératrice Gh suivante :
d1
d2
d3
d4
p1
p2
p3
AU 2020-2021 50
Exemple

Codes de bloc Linéaires: Algo de codage


Matrice génératrice du code (7,4,3)
Le message est le mot d1d2d3d4. Le mot du code est constitué des quatre lettres
du mot du message, puis de trois sommes de contrôles p1p2p3.
La valeur de pi est égal à zéro si la somme des trois lettres du message incluses
dans son cercle sur la figure est paire et un sinon.
Il possède donc la matrice génératrice Gh suivante :

AU 2020-2021 51
Codes de bloc Linéaires: Algo de codage

Exemple code (7,4)

Matrice
Matrice de
génératrice
controle Transposé de
Matrice
la Matrice de
de parité
parité

AU 2020-2021 52
Codes de bloc Linéaires: Algo de codage
On considère un code dont la matrice génératrice est :

Déduisez les matrices H et HT

AU 2020-2021 53
Codes de bloc Linéaires: Algo de codage
 Proposition : Tout code linéaire C(n,k) est équivalent à un code linéaire
sous forme systématique C'(n,k) avec
 Ik   Pt 
G'    et H'    càd matrice de contrôle  P I n -k 

P  I n -k 

Dem : par combinaisons linéaires des colonnes de G on peut trouver une matrice
identité d'ordre k (puisque le rang est k), ce qui ne change pas le sous-espace
vectoriel. Par une permutation des lignes on peut placer la matrice identité dans
les k premières colonnes. Les lignes de H' sont orthogonales aux lignes de G'.
Comme elles sont linéairement indépendantes alors H' peut être considéré
comme la matrice de contrôle de C'.

AU 2020-2021 54
Rappel: codage systématique

Codes de bloc Linéaires: Algo de codage

AU 2020-2021 55
Passage au code systématique

Codes de bloc Linéaires: Algo de codage

101 100
011 011
G=
010 1/ On remplace la troisième colonne G'= 0 1 0
111 par la somme de la 1ere et de la 3eme 110
001 001
110 111

2/ On fait la permutation de lignes (1 3 5 2 4 6)

100 011
010 Ik 111 Pt
001
G‘’= 0 1 1  H'= 1 0 1
100
P
110 010 In-k
111 001

AU 2020-2021 56
Codes de bloc Linéaires: le syndrome

AU 2020-2021 57
Codes de bloc Linéaires:
Lien entre distance minimale et matrice de parité

AU 2020-2021 58
Codes de bloc Linéaires:
Correction des erreurs et distance de Hamming (revisitée)

AU 2020-2021 59
Codes de bloc Linéaires:
Algorithme de Correction des erreurs par syndrome

AU 2020-2021 60
Codes de bloc Linéaires:
Exemple1

AU 2020-2021 61
Codes de bloc Linéaires:
Exemple1

AU 2020-2021 62
Codes de bloc Linéaires:
Exemple1

AU 2020-2021 63
Codes de bloc Linéaires:
Exemple2

AU 2020-2021 64
Codes de Hamming
Codes de Hamming (canaux bruités)
 Code de Hamming (1948):

• code linéaire

• corrigeant toutes les erreurs de poids 1 (de façon fiable)

• de rendement ρ = k/n maximum pour une redondance fixée m = n-k

 Théorème

• un code c(n,k) est au moins 1-correcteur si et seulement si toutes les


colonnes de sa matrice de contrôle sont distinctes et non nulles

 Propriétés
1/ distance minimale 3

2/ capacité de correction 1

3/ parfait c-à-d toute erreur à distance 1 (c-à-d une erreur sur un seul bit) d'un
code est corrigée
AU 2020-2021 66
Codes de Hamming (canaux bruités)

 Rendement

1/ Les n colonnes de la matrice de contrôle H sont des vecteurs de taille m avec


m= n-k, il y a 2m vecteurs possibles

2/ Si le code est de capacité de correction t≥1, les n colonnes de H sont non


nulles et toutes distinctes. On a donc : n  2m -1

3/ rendement ρ = k/n= (n-m)/n = 1-m/n

ρ est maximum si m/n minimum, c-à-d si n est maximum ce qui implique


n = 2m -1 (et donc k = n-m = 2m - m -1)

 H a donc pour colonnes tous les vecteurs de taille m sauf le vecteur nul

AU 2020-2021 67
Codes de Hamming (canaux bruités)
 Ce sont des codes (n,k,d)=(2m-1, 2m-m-1,3) avec m = la redondance
• En pratique, on fixe la redondance m, ce qui donne k et n
 On code donc chaque bloc de k=2m-m-1bits par un bloc de n=2m-1 bits
 rem : la valeur de m est au moins 2 (si m=1, alors n=1, pas de sens)

m 2 3 4 5 6 7
n = 2m-1 3 7 15 31 63 127
k = n-m 1 4 11 26 57 120
codes H(3,1) H(7,4) H(15,11) H(31,26) H(63,57) H(127,120)

rendement 0,33 0,57 0,73 0,83 0,90 0,94

 H(7,4) : 7 bits de code, pour 4 bits à coder.


il peut y avoir 7 erreurs de 1 bit => 3 bits pour les identifier => 4+3 = 7

AU 2020-2021 68
Codes de Hamming : en pratique
 Obtenus par la matrice de contrôle
 H contient tous les vecteurs sauf le vecteurs nul
 Par exemple la matrice de contrôle H de H(15,11) (m=4) est:

000000011111111
000111100001111
011001100110011
101010101010101

 Par permutation des colonnes, on obtient toute une famille de codes de


Hamming

AU 2020-2021 69
Codes de Hamming : en pratique
Rappel : les codes de Hamming permettent de coder des mots de longueur 1= (22-1-2)
ou 4 (23-1-3) ou11 = (24-1-4) ou 26 = (25-1-5) ou 57 = (26-1-6) ou120 = (27-1-7),…

Comment obtenir un code de Hamming pour les autres longueurs ?


 v1 
Soit par exemple des mots de longueur 3 : 



V := v2 

 
  
 v3   v0 
 
 v1 
On agrandit le mot jusqu'à la dimension k' (4,11,26..) immédiatement supérieure. V' :=  

 v2 
 
 
 v3 
Pour k = 3, on considère que c'est un mot de longueur 4 ,dont le premier bit v0 est fixé à
une valeur quelconque, par exemple 0.

On effectue le codage sur la nouvelle forme, puis on fixe dans l'expression des bits de
code la valeur de v0 choisie.

AU 2020-2021 70
Codes de Hamming : en pratique
Par exemple, on fixe la valeur de v0 à 0 et on utilise un code de Hamming séparable

La valeur de ce bit v0 restera inchangée.


 1 0 0 0
 
Soit alors les matrices de H(7,4) séparable, par exemple : 


0 1 0 0
 
 
0 1 1 1 1 0 0  0 0 1 0
   
   
H :=  1 0 1 1 0 1 0 G :=  0 0 0 1
   
   
1 1 0 1 0 0 1  0 1 1 1
 
 
 1 0 1 1
 
 
 1 1 0 1

 v0 
 
   v1 
 v1   
   
   v2 
 v2   
   
   v3 
G.V'=C' =  v3  C=  
   
  v0= 0 v1 + v2 + v3 
v1 + v2 + v3   
   
   v2 + v3 
v0 + v2 + v3   
   
   v1 + v3 
v0 + v1 + v3 

AU 2020-2021 71
Codes de Hamming : en pratique
En codage : la première colonne de G ajoute les termes en v0.

 1 0 0 0  0 
 0     
     
   0 1 0 0  v1 
 v1     
   
V :=  
  0 0 1 0  v2 
 v2     
     
  G :=  0 0 0 1  v3 
 v3     
   
 0 1 1 1 v1 + v2 + v3 
   
   
 1 0 1 1  v2 + v3 
   
   
 1 1 0 1  v1 + v3 

=> En prenant v0 =0, on peut supprimer la première colonne et la première ligne de G

 1 0 0  v1 
   
   
 0 1 0  v2 
 v1     
     
  G :=  0 0 1  v3 
V :=  v2     
     
   1 1 1 v1 + v2 + v3 
 v3     
   
 0 1 1  v2 + v3 
   
   
 1 0 1  v1 + v3 

AU 2020-2021 72
Codes de Hamming : en pratique résumé
Pour des mots d'information de longueur k autre que 4,11,26, etc.., on considère
un codage de Hamming séparable pour des mots de longueur k' = 4,11, 26
immédiatement supérieure (on "ajoute" k'-k bits).

On supprime dans la matrice génératrice les (k'-k) premières lignes et (k'-k)


premières colonnes.

On supprime dans la matrice de contrôle les (k'-k) premières colonnes

Le nombre de bits de redondance est le même que pour des mots d'information
de longueur k' :
- pour des mots de longueur 2 ou 3, on ajoute 3 bits comme pour des mots
de 4 bits
- pour des mots de longueur 5,6,7,8,9,10, on ajoute 4 bits comme pour des
mots de 11 bits
- etc…

AU 2020-2021 73

Vous aimerez peut-être aussi