You are on page 1of 51

Introduction

Codes à faible densité de parité


Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

GEL-7064 : Théorie et pratique des codes


correcteurs
Codes à faible densité de parité LDPC
Notes de cours

Jean-Yves Chouinard

Département de génie électrique et de génie informatique


Université Laval
jean-yves.chouinard@gel.ulaval.ca

25 avril 2013

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Plan de la présentation

1 Introduction

2 Codes à faible densité de parité

3 Construction des codes à faible densité de parité

4 Graphes de Tanner

5 Décodage des codes LDPC

6 Références

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Introduction

Les codes à faible densité de parité, appelés codes LDPC 1 ont été
découverts en 1962 par Robert Gallager [Gal62]. Les codes LDPC
sont des codes binaires caractérisés par une matrice de parité H
ayant un faible nombre, ou une faible densité, de “1”. L’utilisation
des codes LDPC permet de s’approcher, en terme de performance,
de la limite théorique de la capacité de Shannon [Sha48]. Même s’il
n’a pas proposé de méthode de construction systématique des
codes LDPC, Gallager a toutefois présenté une méthode pour
construire des codes LDPC pseudoaléatoires.

1. LDPC : Low Density Parity Check.


Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Introduction

L’étude des codes LDPC a été négligée jusqu’en 1981 : Tanner


[Tan81] a proposé une interprétation des codes LPDC à l’aide de la
théorie des graphes, aujourd’hui connus sous le nom de graphes de
Tanner. Toutefois, ce n’est qu’en 1995 que les chercheurs en
théorie de l’information et du codage se sont réellement penchés
sur la construction algébrique et l’analyse des performances des
codes LDPC et des principes du décodage itératif (e.g., [Mac99]).

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Introduction

Les codes LDPC ont des performances qui égalent aujourd’hui et


même surpassent celles des codes turbo. De plus, ils peuvent
atteindre des seuils irréductibles d’erreurs plus faibles que les codes
turbo. Cependant, la plupart des codes LDPC doivent être
construits par ordinateur et le processus de codage est
particulièrement complexe. Des méthodes de construction
algébriques des codes LDPC (e.g., [KFL01]) permettent de générer
des codes LDPC cycliques et quasicycliques bénéficiant de bonnes
distances minimales, et dont le codage est grandement simplifié.
Dans ce chapitre, on s’intéresse à la construction de bons codes
LDPC et aux méthodes de décodage.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Codes à faible densité de parité

Un code à faible densité de parité LDPC C(N, K ) est un code bloc


linéaire de longueur N, de dimension K et de matrice génératrice
G. Comme pour tous les codes linéaires, on a la condition
d’orthogonalité entre la matrice génératrice G et la matrice de
parité H :

GH| = 0

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Définition (code à faible densité de parité LDPC)

Définition (code à faible densité de parité LDPC) :


Un code LDPC régulier C(N, K ) est un code linéaire dont la
matrice de parité H présente les caractéristiques additionnelles
suivantes :
1 chaque rangée comprends wr “1”s et
2 chaque colonne comprends wc “1”s.
3 De plus, le nombre de “1”s en commun pour toute paire
de colonnes est plus petit ou égal à 1.
Les valeurs de wr et de wc est petit comparativement à la lon-
gueur N et au nombre de rangées L de la matrice de parité
H.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Définition (code à faible densité de parité LDPC)


La densité δLDPC de la matrice de parité H est donnée par :

wr wc
δLDPC = =
N L
On peut considérer que la densité de H est faible lorsque [Bla03] :

δLDPC ≤ log2 N

Lorsque la densité de la matrice de parité H n’est pas la même pour


toutes les rangées et pour toutes les colonnes, alors le code LDPC
est dit code LDPC irrégulier. On peut aussi définir un code LDPC
irrégulier comme étant un code dont la matrice de parité contient
approximativement wr “1”s par rangée et wc “1”s par colonne.
Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Construction de Gallager

Gallager a proposé une méthode simple pour construire des codes


LDPC réguliers [Gal63]. Elle consiste à former une matrice de parité
H de dimensions kwc × kwr à l’aide de wc sous-matrices,
{H1 , H2 , . . . , Hwc }, de dimensions k × kwr :
   
H1 h1,1 h1,2 · · · h1,N
 H2   h2,1 h2,2 · · · h2,N 
H =  . = . .. .. 
   
 ..   .. ..
. . . 
Hwc hL,1 hL,2 · · · hL,N

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (construction d’un code LDPC)

Gallager donne dans [Gal63] un exemple de construction de code


LDPC C(20, 7). Il s’agit d’un code de longueur N = 20 dont les
rangées et les colonnes de la matrice de parité ont respectivement
un poids de wr = 4 et wc = 3. La matrice de parité H est formée
de k = 3 sous-matrices, {H1 , H2 , H3 }, de dimension 5 × 20.
 
H1
H =  H2 
H3

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (construction d’un code LDPC)

Les rangées de la première sous-matrice H1 sont constituées de quatre


“1”s consécutifs, wr = 4, de telle sorte que le poids de chaque colonne
soit 1, wc = 1.
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 
 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
H1 =  0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
 

 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

De plus, il n’y a aucune paire de rangées avec 2 “1”s en commun,


c’est-à-dire à la même position pour les 3 paires possibles de
sous-matrices, (H1 , H2 ), (H1 , H3 ) et (H2 , H3 ).

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (construction d’un code LDPC)


Chacune des deux autres sous-matrices, H2 et H3 , sont obtenues en
permutant les colonnes de la sous-matrice H1 .
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0
 
 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 
H2 =  0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0
 

 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1

c’est-à-dire que H2 = Π2 (H1 ) avec la permutation de colonnes


Π2 ( ) = [1, 5, 9, 13, 2, 6, 10, 17, 3, 7, 14, 18, 4, 11, 15, 19, 8, 12, 16, 20] et
1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0
 
 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 
H3 =  0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0
 

 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 
0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

i.e. H3 = Π3 (H1 ) avec la permutation de colonnes


Π3 ( ) = [1, 6, 12, 18, 2, 7, 11, 16, 3, 8, 13, 19, 4, 9, 14, 17, 5, 10, 15, 20].
Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (construction d’un code LDPC)

1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 
 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
 
 
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0
 
 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
 
 
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0
 
 
0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0
 
 
H= 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0
 

0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0
 
 
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
 
 

 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 


 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 


 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 

 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 
0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

On obtient ainsi une matrice de parité H avec des poids de wr = 4,


wc = 3 et de densité δLDPC = wNr = wLc = 20%.
Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Graphes de Tanner
On peut représenter graphiquement la relation entre les bits de données et
les bits de parité d’un code linéaire afin de montrer leur interdépendance
lors du décodage à l’aide d’un graphe de Tanner [Tan81, Mac99].

Définition (Graphe de Tanner) :


Un graphe de Tanner est un graphe bipartite, c’est-à-dire composé de
deux types de noeuds, les noeuds de symboles codés et les noeuds de
parité et sans connections entre noeuds du même type. Ainsi, un code
C(N, K ), de longueur N et de dimension K est donc représenté par un
graphe de Tanner avec N noeuds de symboles codés et L noeuds de
parité (i.e. le nombre de lignes de la matrice de parité H).

Le graphe de Tanner permet de visualiser les contraintes de parité du


code pouvant être exploitées lors du décodage.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (graphe de Tanner d’un code LDPC avec N = 10)


Considérons la matrice de parité H suivante :
 
1 1 1 1 0 0 0 0 0 0
 1 0 0 0 1 1 1 0 0 0 
 
H =   0 1 0 0 1 0 0 1 1 0 

 0 0 1 0 0 1 0 1 0 1 
0 0 0 1 0 0 1 0 1 1
La longueur des mot-codes N = 10, le nombre de rangées de la matrice
de parité H L = 5, le nombre de “1”s par rangée wr = 4 et le nombre de
“1”s par colonne wc = 2. Ici, le nombre maximal de colonnes de L = 5
rangées ayant wc = 2 “1”s est :
   
L 5
= = 10
wc 2
c’est-à-dire le nombre de colonnes, ou longueur des mot-codes N.
Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (graphe de Tanner d’un code LDPC avec N = 10)


Le graphe de Tanner de ce code est :
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10

z1 z2 z3 z4 z5
Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (graphe de Tanner d’un code LDPC avec N = 10)

Le graphe de Tanner du code est donc constitué de N = 10 noeuds


de symboles, {c}i=1,...,10 , et L = 5 noeuds de parité, {z}j=1,...,5 .
Ici, les noeuds c1 , c2 , c3 et c4 sont connectés au noeud de parité
z1 . La somme des noeuds c1 , c2 , c3 , c4 , doit donc être nulle pour
une contrainte de parité paire ou égale à 1 pour une contrainte de
parité impaire, selon la règle de codage préalablement établie pour
le code. De la même façon, les noeuds c3 , c6 , c8 et c10 sont
connectés au noeud de parité z4 et la somme de leur valeur doit
être nulle ou égale à 1 selon la contrainte de parité du code LDPC.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (graphe de Tanner d’un code LDPC avec N = 10)

Remarquez que les rangées de la matrice de parité H ne sont pas


indépendantes : la première rangée est la somme des quatre autres
rangées. Le code LDPC peut être défini par la matrice H0 , en
éliminant la première rangée de H :

 
1 0 0 0 1 1 1 0 0 0
 0 1 0 0 1 0 0 1 1 0 
H0 = 
 0

0 1 0 0 1 0 1 0 1 
0 0 0 1 0 0 1 0 1 1

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (graphe de Tanner d’un code LDPC avec N = 10)

La longueur des mot-codes N = 10 alors que la dimension du code


est K = 4. Il s’agit en fait d’un code écourté de Hamming 2
C(10, 6) [Bla03], c’est-à-dire un code de Hamming
C(N 0 , K 0 ) = C(15, 11) pour lequel on a éliminé 5 coordonnées du
message : C(N 0 − 5, K 0 − 5) = C(N, K ) = C(10, 6). Les messages
sont maintenant des vecteurs binaires de longueur K = 6 et les
mot-codes sont obtenus avec 4 bits de redondance, la capacité de
correction demeurant t = 1.

2. En anglais : shortened Hamming code.


Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (graphe de Tanner d’un code LDPC avec N = 20)


La matrice de parité H du code Gallager C(20, 7), de poids
wr = 4, wc = 3 et de densité δLDPC = 20% est :
1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
 
 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0
 
 
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0
 
 
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1
 
 
1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0
 
 
0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0
 
 
H= 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0
 

0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0
 
 
0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1
 
 

 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 


 0 1 0 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 0 


 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 

 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 
0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (graphe de Tanner d’un code LDPC avec N = 20)

La figure ci-dessous montre le graphe de Tanner du code Gallager


C(20, 7).
c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 c16 c17 c18 c19 c20

z1 z2 z3 z4 z5 z6 z7 z8 z9 z10 z11 z12 z13 z14 z15

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Introduction

Il existe plusieurs méthodes pour décoder les codes LDPC [LC04] ;


certaines reposent sur des décisions fermes telles que le décodage à
logique majoritaire 3 et par basculement de bits 4 alors que les
autres exploitent le principe de décodage itératif et les décisions
souples telles que l’algorithme de décodage à probabilité a
posteriori maximale APP ainsi que l’algorithme somme-produit.
Nous présentons ici l’algorithme de décodage à décisions fermes par
basculement de bits et l’algorithme itératif à décisions souples
somme-produit.

3. En anglais : majority logic decoding.


4. En anglais : bit flipping.
Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Algorithme de décodage par basculement de bits


L’algorithme de décodage par basculement de bits consiste
essentiellement à corriger les bits du vecteur reçu r en observant la
sortie de l’ensemble des équations de parité. En premier lieu, on
calcule le syndrôme s du vecteur reçu. Si celui-ci est nul, on
suppose que le vecteur reçu est correct et on le décode avec le
message correspondant. Dans le cas contraire, le syndrôme étant
différent de zéro, il y a donc des bits en erreur. L’algorithme
consiste à faire basculer les bits reçus causant le plus grand nombre
d’erreur de parité. Le syndrôme est à nouveau calculé et les bits
reçus inversés à nouveau jusqu’à ce que l’on obtienne un syndrôme
nul, et donc un mot-code valide qui peut alors être décodé en un
message, ou lorsque l’algorithme a atteint un nombre maximal
prédéterminé d’itérations (si le syndrôme diffère de zéro,
l’algorithme rapporte une erreur de décodage).
Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Algorithme de décodage par basculement de bits

1 Calcul du syndrôme : s = rH| . Si s = 0, l’algorithme se


termine : le vecteur reçu est un mot-code valide, c̃, qui peut
être décodé en un message m̃.
2 Déterminer pour chacun des N bits reçus le nombre
d’équations de parité en erreur : {f1 , . . . , fN }.
3 Déterminer l’ensemble S des bits reçus pour lesquels on
obtient un maximum d’équations de parité en erreur, i.e.
max[f1 , . . . , fN ].
4 Faire basculer l’ensemble des bits reçus dans S et retourner à
la première étape (calcul de syndrôme).

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage par basculement de bits d’un code


LDPC)

La matrice de parité H d’un code LDPC de longueur N = 12 et


L = 6, de poids de wr = 6 et wc = 3 est donnée par :
 
1 1 0 1 0 0 0 0 1 1 0 1
 1 1 1 1 1 0 0 1 0 0 0 0 
 
 1 0 1 0 1 1 0 0 0 1 1 0 
H =   0 0 0 1 1 1 1 0 1 0 1

 0 

 0 1 1 0 0 0 1 1 0 0 1 1 
0 0 0 0 0 1 1 1 1 1 0 1

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage par basculement de bits d’un code


LDPC)

Le graphe de Tanner de ce code LDPC est :


c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12

z1 z2 z3 z4 z5 z6

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage par basculement de bits d’un code


LDPC)
Supposons que l’on reçoive le vecteur :
 
r = 1 0 0 0 0 1 1 0 1 0 0 0
Le calcul du syndrôme donne :
s = rH| = 0 1 0 1 1 1
 

ce qui indique que le vecteur reçu est en erreur. On détermine alors


pour chacun des N = 12 bits le nombre d’équations de parité en
erreur :
[f1 = 1, f2 = 2, f3 = 2, f4 = 2, f5 = 2, f6 = 2, f7 = 3, f8 = 3, f9 = 2, f10 = 1, f11 = 2, f12 = 2]

L’ensemble S des bits reçus conduisant à un maximum d’équations


de parité en erreur est : S = {c7 , c8 }.
Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage par basculement de bits d’un code


LDPC)

On fait alors basculer les bits reçus c7 , c8 :


 
r = 1 0 0 0 0 1 0 1 1 0 0 0
 
et le calcul du syndrôme s = 0 0 0 0 1 1 . Le syndrôme
étant différent de zéro, on effectue une second itération de
l’algorithme de basculement de bits. Les erreurs dans les équations
de parité pour chaque bit reçu sont cette fois-ci :
[f1 = 0, f2 = 1, f3 = 1, f4 = 0, f5 = 0, f6 = 1, f7 = 2, f8 = 2, f9 = 1, f10 = 1, f11 = 1, f12 = 2]

et S = {c7 , c8 , c12 }.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage par basculement de bits d’un code


LDPC)

On fait basculer les bits c7 , c8 et c12 :


 
r = 1 0 0 0 0 1 1 0 1 0 0 1
 
et le syndrôme s = 1 1 0 1 0 0 : celui-ci étant toujours
différent de zéro, on effectue une troisième itération :
[f1 = 2, f2 = 2, f3 = 1, f4 = 3, f5 = 2, f6 = 1, f7 = 1, f8 = 1, f9 = 2, f10 = 1, f11 = 1, f12 = 1]

Donc S = {c4 }.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage par basculement de bits d’un code


LDPC)

On ne fait basculer que le quatrième bit du vecteur reçu :


 
r = 1 0 0 1 0 1 1 0 1 0 0 1

Le calcul
 du syndrôme est cette fois-ci nul :
s = 0 0 0 0 0 0 et le vecteur est maintenant un
mot-code valide, c̃, (idéalement le bon) qui peut être maintenant
décodé en un message.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Décodage itératif des codes LDPC

L’algorithme somme-produit (SPA) consiste à déterminer le


mot-code reçu c̃ le plus vraisemblable du vecteur reçu r en traitant
alternativement les rangées et les colonnes de la matrice de parité
H avec la contrainte d’orthogonalité des mot-codes avec la matrice
de parité : c̃H| = 0. L’algorithme somme-produit est un algorithme
itératif à entrées et sorties souples SISO. L’algorithme poursuit ses
itérations jusqu’à ce que l’on atteigne un critère d’arrêt, par
exemple un syndrôme nul ou un nombre maximal d’itérations.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Algorithme de décodage itératif somme-produit

1 Calcul des probabilités a posteriori que les N bits reçus soient “1” ou
“0” :

p0 = {p10 , . . . , pi0 , . . . , pN
0
} et p1 = {p11 , . . . , pi1 , . . . , pN
1
}

2 Calcul du syndrôme : s = rH| . Si s = 0, le vecteur reçu est un


mot-code valide et l’algorithme se termine.
3 Calcul des probabilités, P0 = {Pi,j 0
} et P1 = {Pi,j0
}, que chaque bit
codé soit un “1” ou un “0” étant donné les équations de parités
excluant la j ème équation de parité. À la première itération, les
0
probabilités Pi,j = pi0 et Pi,j
1
= pi1 , pour i = 1, . . . , N et
j = 1, . . . , L.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Algorithme de décodage itératif somme-produit


4 Décodage des noeuds de parité vers les noeuds de variables
(décodage par rangée) :
1 Calcul des matrices de différence de probabilités
0 1
∆P = {∆Pi,j = Pi,j − Pi,j }:
 P 0 −P 1 ··· P 0 −P 1
··· P 0 −P 1

1,1 1,1 i ,1 i ,1 N,1 N,1
.. .. .. .. ..

 . . . . .


0 1
 P1,j −P1,j ··· Pi0,j −Pi1,j ··· 0
PN,j 1
−PN,j 
 
 .. .. .. .. .. 
. . . . .
0 1
P1,L −P1,L ··· Pi0,L −Pi1,L ··· PN,L
0 1
−PN,L
2 Calcul la matrice du produit de probabilités ∆Q = {∆Qi,j }
QN
telle que : ∆Qi,j = l =1 ∆Pl,j , j = 1, . . . , L
l 6=i
3 Calcul des matrices Q0 = {Qi,j
0
} et Q1 = {Qi,j
0
}:
0 1 1 1
Qi,j = 2 (1 + ∆Qi,j ) et Qi,j = 2(1 − ∆Qi,j )

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Algorithme de décodage itératif somme-produit

5 Décodage des noeuds de variables vers les noeuds de parité


(décodage par colonne) :
1 Calcul des matrices de probabilités P0 = {Pi,j
0
} et P1 = {Pi,j
1
}
0 L
= pi0 × k=1 Qi,k
0
Q
telles que : Pi,j et
k6=j
1
QL
Pi,j = pi1 × k=1 Qi,k 1
, i = 1, . . . , N
k6=j
0 1
2 Normalisation des valeurs de {Pi,j } et {Pi,j } de telle sorte que
0 1
{Pi,j + Pi,j = 1}.
3 Calcul des vecteurs de probabilités {Pi0 } et {Pi1 } :
QL QL
pi0 = pi0 × j=1 Qi,j0
et pi1 = pi1 × j=1 Qi,j 1

i = 1, . . . , N
4 Normaliser {pi0 } et {pi1 } : pi0 + pi1 = 1, i = 1, . . . , N.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Algorithme de décodage itératif somme-produit

0 1
 1 sur {pi } et {pi } pour déterminer le vecteur c̃ :
Décision ferme
6
pi
λ (ci ) = ln p0
i

Le calcul du syndrôme permet de vérifier s’il s’agit d’un mot-code


valide. Si c’est le cas, l’algorithme est terminé et on décode le
message. Sinon, on fait une nouvelle itération en retournant à
l’étape de décodage par rangée. L’algorithme continue de faire des
itérations jusqu’à ce que la condition du syndrôme nul soit atteinte
ou jusqu’à ce que l’on atteigne le nombre maximal d’itérations
déterminé au préalable.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :

Pour cet exemple, nous reprenons le code LDPC de longueur


C(N = 12, L = 6) avec la matrice de parité H :
 
1 1 0 1 0 0 0 0 1 1 0 1

 1 1 1 1 1 0 0 1 0 0 0 0 

 1 0 1 0 1 1 0 0 0 1 1 0 
H =  

 0 0 0 1 1 1 1 0 1 0 1 0 

 0 1 1 0 0 0 1 1 0 0 1 1 
0 0 0 0 0 1 1 1 1 1 0 1

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :

Le message m = [101000] est codé avec la matrice génératrice G :

c = mG  
1 0 0 0 0 0 0 1 1 0 1 0

 0 1 0 0 0 0 0 1 1 1 1 1 

  0 0 1 0 0 0 1 1 0 0 1 0 
c = 1 0 1 0 0 0  

 0 0 0 1 0 0 0 1 0 1 1 0 

 0 0 0 0 1 0 1 1 1 0 1 1 
0 0 0 0 0 1 1 0 0 1 0 1
 
c = 1 0 1 0 0 0 1 0 1 0 0 0

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :
On suppose que les bits codés sont équiprobables :
1
p (ci = 1) = p (ci = 0) =
2
et que la séquence codée binaire c est codée en une séquence
bipolaire y :
p
ci = 1 ⇒ yi = +a = + Ec , 1 ≤ i ≤ N
p
ci = 0 ⇒ yi = −a = − Ec

où Ec est l’énergie par bit codé. La conversion binaire à bipolaire


peut s’exprimer aussi par yi = (2 · ci ) · a.
Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :
La probabilité a posteriori au récepteur, que le symbole codé ci = 1
ait été transmis dans le canal étant donné l’observation du symbole
reçu ri est :
p ( ri | ci = 1)
p ( ci = 1| ri ) =
p ( ri | ci = 1) + p ( ri | ci = 0)
p ( ri | yi = +a)
p ( ci = 1| ri ) =
p ( ri | yi = +a) + p ( ri | yi = −a)
Pour un canal à bruit gaussien de moyenne nulle et de variance σ 2 :
1 2 2
p ( ri | yi = +a) = √ e −1/2σ (ri −a)
2πσ
Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :
Donc, probabilité a posteriori au récepteur p ( ci = 1| ri ) peut
s’écrire :
1
p ( ci = 1| ri ) = −2ar 2
1+e i /σ

Pour simplifier la notation les probabilités a posteriori sont :


pi0 = p ( ci = 0| ri ) et
pi1 = p ( ci = 1| ri ) .

Si a = + Ec = 2 alors :
c =[ 1 0 1 0 0 0 1 0 1 0 0 0 ]
y =[ +2 −2 +2 −2 −2 −2 +2 −2 +2 −2 −2 −2 ]

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :
Supposons que la séquence reçue r du canal de transmission bruité
AWGN, de moyenne nulle et de variance σ 2 = 2, soit
 
r = −0.42 1.10 0.20 1.09 1.10 −0.21 −1.09 0.69 −0.70 1.09 1.08 1.10

Les valeurs de probabilités a posteriori seront alors :


p1 =
 
0.7 0.1 0.4 0.1 0.1 0.6 0.9 0.2 0.8 0.1 0.1 0.1
p0 =
 
0.3 0.9 0.6 0.9 0.9 0.4 0.1 0.8 0.2 0.9 0.9 0.9

À la réception, si on prends une décision ferme sur la séquence reçue


(avec un seuil de 0.5) on obtient :
signe(p1 − 0.5) + 1  
c̃ = = 1 0 0 0 0 1 1 0 1 0 0 0
2

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :

Le calcul du syndrôme, s = c̃H| = 0 1 0 1 1 1 indique


 

que le mot-code reçu r est en erreur.


On peut tenter de corriger le mot-code LDPC avec l’algorithme
itératif somme-produit.
Le décodage se fait en premier lieu par rangée (décodage des
noeuds de parité aux noeuds de variables). À la première itération,
1 que le j e„ me bit transmis soit 1 étant donné les
la probabilité Pi,j
autres bits de parité, est égale à la probabilité a priori pi1 pour
chaque équation de parité, i.e. Pi,j 1 = p1 :
i

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :
1
La probabilité Pi,j que le j e„ me bit soit égal à 1 est :

0.70 0.10 0.00 0.10 0.00 0.00 0.00 0.00 0.80 0.10 0.00 0.10
 
 0.70 0.10 0.40 0.10 0.10 0.00 0.00 0.20 0.00 0.00 0.00 0.00 
0.70 0.00 0.40 0.00 0.10 0.60 0.00 0.00 0.00 0.10 0.10 0.00
 
 
0.00 0.00 0.00 0.10 0.10 0.60 0.90 0.00 0.80 0.00 0.10 0.00
 
 
 0.00 0.10 0.40 0.00 0.00 0.00 0.90 0.20 0.00 0.00 0.10 0.10 
0.00 0.00 0.00 0.00 0.00 0.60 0.90 0.20 0.80 0.10 0.00 0.10

0
La probabilité Pi,j que le j e„ me bit soit égal à 0 est :

0.30 0.90 0.00 0.90 0.00 0.00 0.00 0.00 0.20 0.90 0.00 0.90
 
 0.30 0.90 0.60 0.90 0.90 0.00 0.00 0.80 0.00 0.00 0.00 0.00 
0.30 0.00 0.60 0.00 0.90 0.40 0.00 0.00 0.00 0.90 0.90 0.00
 
 
0.00 0.00 0.00 0.90 0.90 0.40 0.10 0.00 0.20 0.00 0.90 0.00
 
 
 0.00 0.90 0.60 0.00 0.00 0.00 0.10 0.80 0.00 0.00 0.90 0.90 
0.00 0.00 0.00 0.00 0.00 0.40 0.10 0.80 0.20 0.90 0.00 0.90

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :
Décodage des noeuds de parité aux noeuds de variables : différence des
0 1
probabilités des deux hypothèses : ∆Pi,j = Pi,j − Pi,j :

−0.40 0.80 0.00 0.80 0.00 0.00 0.00 0.00 −0.60 0.80 0.00 0.80
 
 −0.40 0.80 0.20 0.80 0.80 0.00 0.00 0.60 0.00 0.00 0.00 0.00 
 −0.40 0.00 0.20 0.00 0.80 −0.20 0.00 0.00 0.00 0.80 0.80 0.00
 

0.00 0.00 0.00 0.80 0.80 −0.20 −0.80 0.00 −0.60 0.00 0.80 0.00
 
 
 0.00 0.80 0.20 0.00 0.00 0.00 −0.80 0.60 0.00 0.00 0.80 0.80 
0.00 0.00 0.00 0.00 0.00 −0.20 −0.80 0.60 −0.60 0.80 0.00 0.80

QN
Calcul de ∆Qi,j = l =1 ∆Pl,j , j = 1, . . . , L :
l 6=i

−0.25 0.12 0.00 0.12 0.00 0.00 0.00 0.00 −0.16 0.12 0.00 0.12

 0.06 −0.03 −0.12 −0.03 −0.03 0.00 0.00 −0.04 0.00 0.00 0.00 0.00
 −0.02 0.00 0.04 0.00 0.01 −0.04 0.00 0.00 0.00 0.01 0.01 0.00

0.00 0.00 0.00 −0.06 −0.06 0.25 0.06 0.00 0.08 0.00 −0.06 0.00


 0.00 −0.06 −0.25 0.00 0.00 0.00 0.06 −0.08 0.00 0.00 −0.06 −0.06
0.00 0.00 0.00 0.00 0.00 0.18 0.05 −0.06 0.06 −0.05 0.00 −0.05

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :
Après normalisation, on obtient le résultat du décodage par rangée,
0
Qi,j = 12 (1 + ∆Qi,j ) :

0.38 0.56 0.00 0.56 0.00 0.00 0.00 0.00 0.42 0.56 0.00 0.56
 
 0.53 0.48 0.44 0.48 0.48 0.00 0.00 0.48 0.00 0.00 0.00 0.00 
0.49 0.00 0.52 0.00 0.51 0.48 0.00 0.00 0.00 0.51 0.51 0.00
 
 
0.00 0.00 0.00 0.47 0.47 0.62 0.53 0.00 0.54 0.00 0.47 0.00
 
 
 0.00 0.47 0.38 0.00 0.00 0.00 0.53 0.46 0.00 0.00 0.47 0.47 
0.00 0.00 0.00 0.00 0.00 0.59 0.52 0.47 0.53 0.48 0.00 0.48

1
et Qi,j = 21 (1 − ∆Qi,j ) :

0.62 0.44 0.00 0.44 0.00 0.00 0.00 0.00 0.58 0.44 0.00 0.44
 
 0.47 0.52 0.56 0.52 0.52 0.00 0.00 0.52 0.00 0.00 0.00 0.00 
0.51 0.00 0.48 0.00 0.49 0.52 0.00 0.00 0.00 0.49 0.49 0.00
 
 
0.00 0.00 0.00 0.53 0.53 0.38 0.47 0.00 0.46 0.00 0.53 0.00
 
 
 0.00 0.53 0.62 0.00 0.00 0.00 0.47 0.54 0.00 0.00 0.53 0.53 
0.00 0.00 0.00 0.00 0.00 0.41 0.48 0.53 0.47 0.52 0.00 0.52

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :
L’étape suivante consiste à effectuer le décodage des noeuds de variables
aux noeuds de parité (décodage par colonne), c’est-à-dire mettre à jour
les valeurs de vraisemblance
QL des bits codés. Avant la normalisation, on
0
obtient Pi,j = pi0 × k=1 Qi,k
0
:
k6=j

0.08 0.20 0.00 0.20 0.00 0.00 0.00 0.00 0.06 0.22 0.00 0.20
 
 0.06 0.24 0.12 0.24 0.21 0.00 0.00 0.17 0.00 0.00 0.00 0.00 
0.06 0.00 0.10 0.00 0.20 0.15 0.00 0.00 0.00 0.24 0.20 0.00
 
 
0.00 0.00 0.00 0.24 0.22 0.11 0.03 0.00 0.04 0.00 0.21 0.00
 
 
 0.00 0.24 0.14 0.00 0.00 0.00 0.03 0.18 0.00 0.00 0.21 0.24 
0.00 0.00 0.00 0.00 0.00 0.12 0.03 0.18 0.05 0.26 0.00 0.24

1
QL
et Pi,j = pi1 × k=1
1
Qi,k :
k6=j

0.17 0.03 0.00 0.03 0.00 0.00 0.00 0.00 0.17 0.03 0.00 0.03
 
 0.22 0.02 0.12 0.02 0.03 0.00 0.00 0.06 0.00 0.00 0.00 0.00 
0.20 0.00 0.14 0.00 0.03 0.09 0.00 0.00 0.00 0.02 0.03 0.00
 
 
0.00 0.00 0.00 0.02 0.03 0.13 0.20 0.00 0.22 0.00 0.03 0.00
 
 
 0.00 0.02 0.11 0.00 0.00 0.00 0.20 0.06 0.00 0.00 0.03 0.02 
0.00 0.00 0.00 0.00 0.00 0.12 0.20 0.06 0.21 0.02 0.00 0.02

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :
0 1 0
Après normalisation, i.e., {Pi,j + Pi,j = 1}, on obtient Pi,j :

0.32 0.88 0.00 0.88 0.00 0.00 0.00 0.00 0.25 0.89 0.00 0.88
 
 0.20 0.91 0.50 0.91 0.89 0.00 0.00 0.75 0.00 0.00 0.00 0.00 
0.23 0.00 0.42 0.00 0.88 0.62 0.00 0.00 0.00 0.91 0.88 0.00
 
 
0.00 0.00 0.00 0.92 0.90 0.47 0.12 0.00 0.17 0.00 0.89 0.00
 
 
 0.00 0.92 0.56 0.00 0.00 0.00 0.12 0.77 0.00 0.00 0.89 0.91 
0.00 0.00 0.00 0.00 0.00 0.50 0.12 0.76 0.17 0.92 0.00 0.91

1
et Pi,j :

0.68 0.12 0.00 0.12 0.00 0.00 0.00 0.00 0.75 0.11 0.00 0.12
 
 0.80 0.09 0.50 0.09 0.11 0.00 0.00 0.25 0.00 0.00 0.00 0.00 
0.77 0.00 0.58 0.00 0.12 0.38 0.00 0.00 0.00 0.09 0.12 0.00
 
 
0.00 0.00 0.00 0.08 0.10 0.53 0.88 0.00 0.83 0.00 0.11 0.00
 
 
 0.00 0.08 0.44 0.00 0.00 0.00 0.88 0.23 0.00 0.00 0.11 0.09 
0.00 0.00 0.00 0.00 0.00 0.50 0.88 0.24 0.83 0.08 0.00 0.09

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

Exemple (décodage avec l’algorithme SPA d’un code


LDPC) :
Les valeurs de fiabilités pour les hypothèses 1 et 0, p1 et p0 sont (après
normalisation) :
1  
p = 0.78 0.09 0.56 0.09 0.12 0.40 0.87 0.27 0.81 0.09 0.12 0.10
0  
p = 0.22 0.91 0.44 0.91 0.88 0.60 0.13 0.73 0.19 0.91 0.88 0.90

Les valeurs
 1de rapport de vraisemblance logarithmique (LLR) sont
p
λ(c) = ln p0
:
 
1.27 −2.26 0.26 −2.26 −2.03 −0.39 1.86 −1.02 1.43 −2.37 −1.97 −2.23

Une décision ferme sur la séquence ainsi décodée conduit à c̃ :


 
c̃ = 1 0 1 0 0 0 1 0 1 0 0 0

et le syndrôme, s = c̃H| = 0 0 0 0 0 0 . Le mot-code c̃ est valide


 

et peut être décodé en un message m̃.


Jean-Yves Chouinard Codes à faible densité de parité LDPC
Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

R.E. Blahut.
Algebraic Codes for Data Transmission.
Cambridge University Press, Cambridge, UK, 2003.

R.G. Gallager.
Low Density Parity Check Codes.
MIT Press, Cambridge, Massachusetts, 1963.
(monographie).

S. Lin et D.J. Costello.


Error Control Coding : Fundamentals and Applications.
Prentice-Hall, Englewood Cliffs, New-Jersey, seconde édition, 2004.

T.K. Moon.
Error Correction Coding : Mathematical Methods and Algorithms.
Wiley-Interscience, Hoboken, New-Jersey, 2005.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

R.G. Gallager.
Low Density Parity Check Codes.
IEEE Transactions on Information Theory, IT-8 :21–28, janvier 1962.

Y. Kou, M. Fossorier et S. Lin.


Low Density Parity Check Codes Based on Finite Geometries.
IEEE Transactions on Information Theory, IT-47(6) :2711–2736,
novembre 2001.
D.J.C. Mackay.
Good Error-Correcting Codes Based on Very Sparse Matrices.
IEEE Transactions on Information Theory, IT-45(2) :399–432, mars 1999.

C.E. Shannon.
A Mathematical Theory of Communication.
Bell System Technical Journal, 27 :379–423 et 623–656, 1948.

Jean-Yves Chouinard Codes à faible densité de parité LDPC


Introduction
Codes à faible densité de parité
Construction des codes à faible densité de parité
Graphes de Tanner
Décodage des codes LDPC
Références

R.M. Tanner.
A Recursive Approach to Low Complexity Codes.
IEEE Transactions on Information Theory, IT-27 :533–547, septembre
1981.

Jean-Yves Chouinard Codes à faible densité de parité LDPC