Académique Documents
Professionnel Documents
Culture Documents
1
INTRODUCTION
Les canaux mobiles et/ou sans fil, à titre d’exemple, sont des environnements très
hostiles et fortement corrompus. Néanmoins, ces systèmes réels fonctionnent de
manière satisfaisante et sont améliorés d’année en année. Ceci est dû surtout au codage
de canal
Le codage de canal est utilisé pour détecter et souvent corriger les symboles reçus en
erreur
La détection d'erreur peut être utilisée par le récepteur pour générer un ARQ 1
(Automatic Repeat reQuest) vers l'émetteur pour une retransmission de la trame en
erreur, comme dans les réseaux informatiques (stop & wait, go-back-n, protocoles de
répétition sélective)
Lorsque la retransmission n'est pas une option : codage de correction d'erreur directe
FEC (Forward Error Correction) , basé sur une redondance dans les données
transmises pour que le récepteur détecte et corrige les erreurs.
Un code de bloc (qk, n) sur X dans Fq est appelé un code linéaire (n, k) si ses
mots de code forment un sous-espace vectoriel k-dimensionnel de l'espace
vectoriel Fqn
Le code C est un groupe additif, en particulier, si c, c ‘ C alors c + c' C
Le vecteur tout zéro est un mot de code: 0 C.
Les combinaisons linéaires de mots de code sont des mots de code: c1, ..., cl
C et a1, ..., al Fq, puis a1c1 + ··· alcl C
6
CODES LINEAIRES
Un codeur de bloc linéaire est une transformation linéaire Fk2 Fn2
8
CODES LINEAIRES
Définition et propriété
Un code linéaire est entièrement déterminé par une de ses bases.
Définition :
Une matrice génératrice d’un code linéaire CD sur le corps est une
matrice sur dont les lignes forment une base de CD. C’est une matrice
de k lignes et n colonnes.
Les mots du code CD sont toutes les combinaisons linéaires des lignes
d’une matrice génératrice.
Les mots du code CD sont toutes les combinaisons linéaires des lignes
d’une matrice génératrice.
11
CODES LINEAIRES
Matrice génératrice d’un code linéaire systématique
Code Systématique
Un code de n dans k avec n≥k, est systématique si, x k, le vecteur
formé des k premiers bits du code est égal à x.
12
CODES LINEAIRES
Matrice génératrice d’un code linéaire systématique
Sous forme normale, une matrice génératrice G peut prendre la forme
suivante : ou bien encore Ik
G Ik P P
Où Ik est la matrice identité k × k et P une matrice quelconque k × (n-k)
1 0 0 1 1 0
G 0 1 0 0 1 1
0 0 1 1 0 1
Si G est une matrice génératrice d’un code linéaire (n,k) noté CD sur (F2)3,
alors :
Comme nous venons de le voir, un code linéaire peut être représenté par une matrice
génératrice G de taille k × n, avec k le nombre de bits d’information et n le nombre de
bits codés. (n – k) c’est la redondance du code, avec = k/n le rendement du code.
H est matrice de contrôle de parité du code linéaire permettant de définir les n-k bits
16
de contrôle en fonction des bits d’information et du transposé du vecteur CD formé des
CODES LINEAIRES
Matrice de contrôle de Parité d’un code linéaire
H est matrice de contrôle de parité du code linéaire permettant de définir les n-k bits
de contrôle en fonction des bits d’information et du transposé du vecteur CD formé des
bits codés.
G Ik P H P I nk
n c’est la taille du code,
t
K la taille de la donnée
N-k c’est la taille des bits de contrôle qu’on va
Exemple : rajouter dans le code: ex= n=6, k=3 n-k=3
N=7, k=4 , n-k=3
1 0 0 1 1 0 1 0 1 1 0 0
G 0 1 0 0 1 1
H 1 1 0 0 1 0
0 0 1 1 0 1 0 1 1 0 0 1
17
CODES LINEAIRES
Matrice de contrôle de Parité d’un code linéaire
A quoi va servir la matrice de contrôle de parité?
G Ik .P CD D.G H Pt .Ink
Cont H.CD't
Au niveau du codeur où D : les H permet de savoir si un mot reçu est
données fournies par la source et CD un mot du code, en calculant son
les données codées appelées syndrome. Si le syndrome du mot est
également l’alphabet X nul, ce mot appartient au code.
En effet, un mot codé CD a été généré par la matrice génératrice G si et
seulement si HCDt = 0.
Proposition: La distance minimum d de C est caractérisée par les propriétés suivantes:
d−1colonnes de H sont toujours linéairement indépendantes.
Il y a un système de d colonnes de H qui est lié.
1963 Robert Gallager rédige son doctorat. mémoire "Codes de contrôle de parité
à faible densité". Il a introduit les codes LDPC, les a analysés et a donné des
algorithmes de décodage.
1982 Michael Tanner considère les codes LDPC de Gallager et ses propres codes
structurés. Il a introduit la notion d'utilisation d'un graphe bipartite, parfois appelé
graphe de Tanner.
1993 Les codes Turbo ont été introduits. Ils dépassaient les performances de tous
les codes connus et avaient une faible complexité de décodage
1995 L'intérêt est renouvelé pour les codes LDPC de Gallager, dirigé par David
MacKay et bien d'autres. Il a été démontré que les codes LDPC peuvent
essentiellement atteindre la capacité de Shannon sur les canaux AWGN et
d'effacement binaire. 29
CODES LINEAIRES
CODAGE LDPC
Les codes LDPC (Low-Density Parity-Check) sont des codes binaires linéaires
ayant une matrice de contrôle de parité clairsemée (plein de 0) souvent générée
aléatoirement : le nombre de «un» dans la matrice est proportionnel à la
longueur du bloc.
Les bits de parité p1, p2, p3, p4 et p5 sont calculés selon les équations suivantes
Nœuds de vérification
Figure : Graphique bipartite de la matrice de contrôle de parité H
Les nœuds de ces bits dont la somme (modulo 2) doit être nulle. Cette
représentation est généralement utilisée en conjonction avec des codes de
contrôle de parité à faible densité (codes LDPC) et s'appelle un graphe de
33
Tanner
CODES LINEAIRES
CODAGE LDPC
Description générale d’un codage LDPC
La description des codes de canal est également possible via un (graphe
bipartite), qui combine les bits de données avec les bits de parité (figure ci-
dessous). Les nœuds supérieurs (nœuds variables) correspondent aux bits qui
ont été transférés. Les nœuds inférieurs (vérifier les nœuds) se combinent
Bits variables
Nœuds de vérification
Figure : Graphique bipartite de la matrice de contrôle de parité H
Les nœuds de ces bits dont la somme (modulo 2) doit être nulle. Cette
représentation est généralement utilisée en conjonction avec des codes de
contrôle de parité à faible densité (codes LDPC) et s'appelle un graphe de
34
Tanner
CODES LINEAIRES
CODAGE LDPC
Description générale d’un codage LDPC
Cependant, avec les codes LDPC, il est habituel que chaque nœud ait au
moins deux bords.
Dans l'exemple utilisé ci-dessus, les nœuds des bits de parité n'ont qu'un
front chacun, car le code du canal est systématique.
En règle générale, aucune distinction n'est faite entre les bits de données et
les bits de parité en relation avec les codes LDPC.
Cependant, il faut s'assurer qu'au moins un bit de parité est impliqué dans
chaque équation de parité. Les bits de parité doivent apparaître au moins deux
fois dans les équations de parité afin de générer un graphe de Tanner avec au
moins deux arêtes par nœud.
Cependant, dans les équations précédentes, cela ne s'applique qu'aux bits de
données. Néanmoins, on pourrait combiner linéairement deux équations de
parité ou plus entre elles.
35
CODES LINEAIRES
CODAGE LDPC
Description générale d’un codage LDPC
Exemple:
Exemple:
38
DECODAGE D’UN CODE LINEAIRE
Syndromes
Pour un code code CD linéaire (n,k) , si Y est le
^
mot de code transmis et
une erreur survient, le mot reçu est alors Y Y . Si H est une
matrice de contrôle de parité pour le code C utilisé, alors :
^
C.Ht (C ).Ht C.Ht .Ht 0 .Ht .Ht
^
Définition (Syndrome) : Le syndrome d'un mot
^
Y relatif à une matrice
de contrôle H est le produit. t
C.H
^
Ce syndrome dépend de l’erreur C C et non du mot codé C.
39
DECODAGE D’UN CODE LINEAIRE
Syndromes
n
^ ^
s C C .H t .H t k hk
k 1
Avec hk la kème colonne de H
40
DECODAGE D’UN CODE LINEAIRE
Décodage par Syndromes
Le plan d’un décodage (et correction) d’un message reçu est le suivant :
^ ^ t
Calculer le syndrome ; s C C .H
41
DECODAGE D’UN CODE LINEAIRE
Syndromes
1 1 0 0 1 0 1 1 1 1
Les correcteurs suivants peuvent alors être dérivés des colonnes de :
Syndrome Correcteur
101 10000
111 01000
100 00100
010 00010
001 00001 42
DECODAGE D’UN CODE LINEAIRE
Syndromes
Exemple: Suite
Exemple: Suite
Pour 011 et 110, le correcteur n'est dans cet exemple pas unique : par
exemple 011=010+001 donne 00011 (00001+00010 ), mais 011=111+100
donne une autre correction, 01100
Ceci est dû au fait que la distance minimale de ce code est 3 et que ce code
ne peut donc corriger que tous les schémas à 1 erreur, mais pas tous les
schémas à 2 erreurs !
44
DECODAGE D’UN CODE LINEAIRE
Décodage par Syndromes
Exemple: Soit un code linéaire dont la matrice génératrice G est donnée par :
1 0 1 0 1 1 1 1 0 0
G
0 1 1 1 1 H 0 1 0 1 0
1 1 0 0 1
Il s’agit d’un code linéaire (5,2). Si le message (bits d’information) à envoyer est 10.
Alors le code généré sera C=(10101) . Supposant que le code reçu présente un bit
erroné soit (00101).
^
^
Le calcul du syndrome donne : s C C .H t , soit s=……..
Le correcteur sera donc =
Ainsi le mot décodé sera : ……… + ………..= ………. Les deux premiers bits du code corrigé
représentent le message original à savoir …….
45
DECODAGE D’UN CODE LINEAIRE
Décodage par Syndromes
Exemple: Soit un code linéaire dont la matrice génératrice G est donnée par :
1 1 1 0 0
1 0 1 0 1 H 0 1 0 1 0
G
0 1 1 1 1 1 1 0 0 1
Il s’agit d’un code linéaire (5,2). Si le message (bits d’information) à envoyer est 10.
Alors le code généré sera C=(10101) . Supposant que le code reçu présente un bit
erroné soit (00101). ^ ^ t
s C C .H
Le calcul du syndrome donne : ^ , soit s=101
Le correcteur sera donc =10000=C- C
Ainsi le mot décodé sera : 00101 + 10000 = 10101. Les deux premiers bits du code
corrigé représentent le message original à savoir 10
46
CODES LINEAIRES
Borne de SINGLETON
Si d est la distance minimale d’un code linéaire CD(n,k) alors d≤n-k+1 est
appelée borne de Singleton.
Définition:
Un code linéaire CD(n,k) est M.D.S. (Maximum Distance Separable), si
sa distance minimale d atteint la borne de singleton, d=n-k+1
47
CODE PARFAIT
Dans un code parfait tout mot reçu peut être décodé.
Définition:
Soit C un code canal, correcteur d'erreurs, composé de N mots de code, dans
lequel chaque mot de code se compose de n lettres appartenant à un alphabet F
de longueur finie q (Fq), et tous les deux mots de code distincts diffèrent d'au
moins d = 2e + 1 emplacements. Alors C est dit parfait si pour chaque mot
possible w0 de longueur n avec des lettres en F, il y a un mot de code unique w
en C dans lequel au plus e lettres de w diffèrent des lettres correspondantes de
w0.
48
CODE PARFAIT
Autres défintions
Soit m ∈ {0,1}n et k ∈ N.
Une sphère:
On appelle sphère de centre m et de rayon k, et on note S(m, k), l’ensemble des
mots de {0,1}n, a distance k de m:
S(m, k) :={r∈{0,1}n, d(r, m) =k}.
Une boule
On appelle boule de centre m et de rayon k, et on note B(m, k), l’ensemble des
mots de{0,1}n, a distance inférieure ou égale à k de m:
B(m, k) :={r∈{0,1}n, d(r, m)≤k}
50
CODE PARFAIT
le code de GolayG23:
La version binaire G23 est un code linéaire binaire (23,12,7) composé de 212 =
4096 mots de code de longueur 23 et de distance minimale 7.
La version ternaire est un (11,6,5) code linéaire ternaire, composé de 3 6 = 729
mots de code de longueur 11 avec une distance minimale de 5.
51
CODE PARFAIT
le code de Golay G23:
le code de GolayG24:
le code de GolayG24:
53
DECODAGE D’UN CODE LINEAIRE
Propriété:
h(x) = h(y) si et seulement si x – y Ker(h) : partition de Kn en classes
d’équivalences
Classes latérales:
u Kn, classe latérale : u + CD = {u+x, x CD}.
Il y’a qn-k classes latérales et chacune d’elles contient pk vecteurs
Propriété:
2 classes latérales sont disjointes ou confondues
54
DECODAGE D’UN CODE LINEAIRE
Principe du décodage:
Algorithme du décodage:
calcul de C = C’ -
56