ts345 - codage pour la 5g

101
TS345 - Codage pour la 5G Romain Tajan 14 octobre 2020

Upload: others

Post on 17-Jun-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TS345 - Codage pour la 5G

TS345-

Codage pour la 5G

Romain Tajan

14 octobre 2020

Page 2: TS345 - Codage pour la 5G

TS345 en bref. . .

Organisation du module

• 6 créneaux (1h20) de cours

• 3 créneaux de TP (2h40)

Découpage des cours

• 1 créneau de rappels sur les codes correcteurs | sur la capacité de Shnanon

• 3 créneaux sur les Codes LDPC

• 2 créneaux sur les Codes Polaires

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 2 / 51

Page 3: TS345 - Codage pour la 5G

Plan1 Introduction généraleB Histoire de code correcteur2 Rappels sur de codage / définitionsB Sur la modélisation du canalB Code correcteur d’erreurB Probabilité d’erreurB Retour sur les enjeux3 Théorie de l’information / Capacité d’un canalB Rappels de théorie de l’informationB Théorème de Shannon4 Codes Linéaires (binaires) en blocsB Matrice de paritéB Encodeur SystématiqueB Décodage MAP-bit des codes linéaires (binaires)5 LDPCB Présentation généraleB DéfinitionB Graphe de Tanner associé à un code LDPCB Décodage Somme-ProduitB Étude des performances du décodage itératif

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 3 / 51

Page 4: TS345 - Codage pour la 5G

Intro.

Plan

1 Introduction généraleB Histoire de code correcteur

2 Rappels sur de codage / définitions

3 Théorie de l’information / Capacité d’un canal

4 Codes Linéaires (binaires) en blocs

5 LDPC

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 4 / 51

Page 5: TS345 - Codage pour la 5G

Intro. Historique

Un peu d’histoire...

1948 Shannon - capacité d’un canal (non constructive)

1955 Elias - Code convolutifs (GSM)

1960 Reed et Solomon - Codes RS (CD→ BluRay, QR, DVB-S, RAID6)Gallager - Codes LDPC

1966 Forney - Codes concatennés (Pioneer (1968-1972), Voyager (1977))

1967 Viterbi - Décodage optimal des codes convolutifs

1993 Berrou, Glavieux et Thitimajshima - Turbocodes (3G/4G, deep-space)

1996 MacKay - Ré-invente les LDPC (DVB-S2, WiFi, 5G)

2008 Arikan - Codes Polaires (5G)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 5 / 51

Page 6: TS345 - Codage pour la 5G

Intro./Déf.

Plan

1 Introduction générale

2 Rappels sur de codage / définitionsB Sur la modélisation du canalB Code correcteur d’erreurB Probabilité d’erreurB Retour sur les enjeux

3 Théorie de l’information / Capacité d’un canal

4 Codes Linéaires (binaires) en blocs

5 LDPC

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 6 / 51

Page 7: TS345 - Codage pour la 5G

Intro./Déf. Def. canal

Le canal. . .

Un canal est défini par un triplet : (X ,Y, p(y |x)) où

X est l’alphabet d’entrée

Y est l’alphabet de sortie

p(y |x) est la probabilité de transition

Soit n ∈ N et soit le canal (X n,Yn, p(y|x)), ce canal est dit "sans mémoire" si saprobabilité de transition vérifie

p(y|x) =n∏

i=1

p(yi |xi)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 7 / 51

Page 8: TS345 - Codage pour la 5G

Intro./Déf. Def. canal

Le canal à effacement binaire

0

1 1

ε

01− p

p

p

1− p

• X = {0, 1} (canal à entrées binaires)

• Y = {0, ε, 1}

• p(ε|0) = p(ε|1) = p et p(0|0) = p(1|1) = 1− p

• Canal utile pour les couches hautes, pour le stockage

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 8 / 51

Page 9: TS345 - Codage pour la 5G

Intro./Déf. Def. canal

Le canal binaire symétrique

0

1 1

01− p

p

p

1− p

• X = {0, 1} (canal à entrées binaires)

• Y = {0, 1}

• p(1|0) = p(0|1) = p et p(0|0) = p(1|1) = 1− p

• Canal utile après décision

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 9 / 51

Page 10: TS345 - Codage pour la 5G

Intro./Déf. Def. canal

Le canal additif gaussien

X Y

Z

• X = R

• Y = R

• p(y |x) = 1√2πσ2

e−1

2σ2 (y−x)2

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 10 / 51

Page 11: TS345 - Codage pour la 5G

Intro./Déf. Def. canal

Le canal additif gaussien à entrées binaires

X 1− 2X Y

Z

• X = {0, 1}

• Y = R

• p(y |x) = 1√2πσ2

e−1

2σ2 (y−1+2x)2

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 11 / 51

Page 12: TS345 - Codage pour la 5G

Intro./Déf. Def. code

Code (M,n)

Un code (M, n) pour le canal (X n,Yn, p(y|x)) est composé de 3 éléments

Un ensemble de M messages. On notera cet ensembleM = {0, 1, . . . ,M − 1}

Une fonction d’encodage (ou encodeur) notée φ :

φ :M → X n

W 7→ X = φ(W )

φ(·) doit être injective

Une fonction de décodage (ou décodeur) notée ψ :

ψ : Yn → MY 7→ W = ψ(Y)

ψ(·) doit être surjective

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 12 / 51

Page 13: TS345 - Codage pour la 5G

Intro./Déf. Def. code

xa xb xc

xd xe xf

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 13 / 51

Page 14: TS345 - Codage pour la 5G

Intro./Déf. Def. code

xa

φ(3)

xb

φ(0)

xc

φ(5)

xd

φ(4)

xe

φ(2)

xf

φ(1)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 13 / 51

Page 15: TS345 - Codage pour la 5G

Intro./Déf. Def. code

xa

ψ−1(3)

xb

ψ−1(0)

xc

ψ−1(5)

xd

ψ−1(4)

xe

ψ−1(2)

xf

ψ−1(1)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 13 / 51

Page 16: TS345 - Codage pour la 5G

Intro./Déf. Def. probabilité d’erreur

Probabilité d’erreur

Si le mot de code W = w est envoyé, une erreur se produit ssi W 6= w .

La probabilité associée à cet événement est notée

λw = P(

W 6= w |W = w)

= P (ψ(Y) 6= w |W = w)

Définitions

Probabilité d’erreur maximale : P(n)m = maxw λw

Probabilité d’erreur moyenne : P(n)e = P

(W 6= W

)= 1

M

∑M−1w=0 λw

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 14 / 51

Page 17: TS345 - Codage pour la 5G

Intro./Déf. Def. probabilité d’erreur

Décodage du Maximum a Posteriori (MAP)

Définition

• Soit C un code (M, n) donné.

• Le décodeur du Maximum A Posteriori (MAP) est la fonction de y définie par :

ΨMAP(y) = argmaxw∈M

P(W = w |Y = y)

Le décodeur MAP minimise Pe

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 15 / 51

Page 18: TS345 - Codage pour la 5G

Intro./Déf. Def. probabilité d’erreur

Décodage MAP sur canaux classiques

Soit le décodeur MAP défini par : ΨMAP(y) = argmaxw∈M

P(W = w |Y = y)

1 Sur canal BSC : ΨMAP(y) = argminx∈C

dH (x, y)

2 Sur canal AWGN : ΨMAP(y) = argminx∈C

dE (x, y)

Sans structure sur C, ces deux décodeurs sont trop complexes !

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 16 / 51

Page 19: TS345 - Codage pour la 5G

Intro./Déf. Def. probabilité d’erreur

Décodage du Maximum a Posteriori (MAP-bit)

Définition

• Soit C un code binaire (k , n) donné.

• Le décodeur du Maximum A Posteriori bit (MAP-bit) est la fonction de y définie par :

Ψ(j)MAP−bit (y) = argmax

u∈{0,1}P(Uj = u|Y = y)

• En pratique on calcule les Logarithmes de rapports de vraisemblances (LLR) :

L(Ui ) = logP(Ui = 0|y)

P(Ui = 1|y)

• Le décodeur MAP minimise Pb (la probabilité d’erreur binaire)

• Le signe des LLRs : décisions MAP-bit

• Le module des LLRs : fiabilité des décisions

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 17 / 51

Page 20: TS345 - Codage pour la 5G

Intro./Déf. Bilan

Enjeux du codage

Compromis entre

La taille du code (n)

Le rendement de code (le débit)

La probabilité d’erreur (maximale ou moyenne)

La complexité de l’encodage

La complexité du décodage

Efficacité spectrale⇐⇒ Codage⇐⇒ Efficacité énergétique

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 18 / 51

Page 21: TS345 - Codage pour la 5G

Théorie de l’information / Capacité d’un canal

Plan

1 Introduction générale

2 Rappels sur de codage / définitions

3 Théorie de l’information / Capacité d’un canalB Rappels de théorie de l’informationB Théorème de Shannon

4 Codes Linéaires (binaires) en blocs

5 LDPC

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 19 / 51

Page 22: TS345 - Codage pour la 5G

Théorie de l’information / Capacité d’un canal Rappels de théorie de l’information

Information mutuelle

I(X ,Y ) = H(X)− H(X |Y )

= H(Y )− H(Y |X)

Elle représente la quantité moyenne d’incertitude soustraite de X une fois Y connue

Capacité

La capacité d’un canal discret sans mémoire de sortie Y ∈ Y et d’entrée X ∈ X et deprobabilité de transition p(y |x) est définie par

C = supp(x)

I(X ,Y )

Remarque

1 Le canal (p(y |x)) étant fixé, I(X ,Y ) ne "dépend" que de p(x).

2 Si X est compact capacité est atteinte pour au moins une distribution (I(X ,Y ) est unefonction continue concave de p(x))

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 20 / 51

Page 23: TS345 - Codage pour la 5G

Théorie de l’information / Capacité d’un canal Rappels de théorie de l’information

Capacité du canal BEC

0

1 1

ε

01− p

p

p

1− p

1 Montrer que la capacité du canal BEC vaut C(p) = 1− p

2 Trouver la distribution p(x) d’atteindre cette capacité

3 Pour quelle(s) valeur(s) de p cette capacité est-elle nulle?

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 21 / 51

Page 24: TS345 - Codage pour la 5G

Théorie de l’information / Capacité d’un canal Rappels de théorie de l’information

Capacité du canal BSC

La capacité en bits par symbole d’entrée du canal BSC vaut

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

est atteinte ssi X ∼ B(0.5)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

Probabilité d’erreur (p)

Cap

acité

duca

nalC

(p)

Remarques

1 Si p = 0.5, C(0.5) = 0

i.e. la connaissance de Y ne permet pasde diminuer l’incertitude sur X.

2 Si p = 0 ou p = 1 capacité maximale

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 22 / 51

Page 25: TS345 - Codage pour la 5G

Théorie de l’information / Capacité d’un canal Théorème de Shannon

Théorème du codage canal de Shannon

Soit (X ,Y, p(y |x)) un canal discret sans mémoire de capacité C ≥ 0 et soit R < C

1 il existe une suite de codes (Cn)n≥1 où Cn est de longueur n, de rendement Rn et deprobabilité d’erreur maximale λ(n) telle que

λ(n) → 0, et Rn → R

2 Réciproquent, s’il existe une suite de codes (Cn)n≥1 telle que λ(n) → 0 alors

lim supn

Rn ≤ C

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 23 / 51

Page 26: TS345 - Codage pour la 5G

Code linéaires

Plan

1 Introduction générale

2 Rappels sur de codage / définitions

3 Théorie de l’information / Capacité d’un canal

4 Codes Linéaires (binaires) en blocsB Matrice de paritéB Encodeur SystématiqueB Décodage MAP-bit des codes linéaires (binaires)

5 LDPC

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 24 / 51

Page 27: TS345 - Codage pour la 5G

Code linéaires

Avant de commencer...

Remarques

1 Dans cette section X = Y = {0, 1} et le canal considéré est le canal binaire symétrique

2 Dans cette section on notera F2 le corps ({0, 1} ,⊕, ·) où :

Pour x , y ∈ F2, x ⊕ y = (x + y) mod 2 (≡ OU exclusif)

Pour x , y ∈ F2, x · y est le produit "classique" entre x et y (≡ ET)

3 F2 est un corps fini à deux éléments (Z/2Z)

4 Par la suite on notera ⊕ +

5 (Fn2,+, ·) est un espace vectoriel où

Pour x, y ∈ Fn2, x + y = [x0 + y0, x1 + y1 . . . , xn−1 + yn−1]

Pour x ∈ F2 et y ∈ Fn2, x · y = [x · y0, x · y1, . . . , x · yn−1]

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 25 / 51

Page 28: TS345 - Codage pour la 5G

Code linéaires

Code linéaire en bloc

Code linéaire

Soit C un code (M = 2k , n), C est un code bianire linéaire si et seulement si les mots de codesc ∈ Fn

2 sont obtenus à partir des messages u ∈ Fk2 par la relation

c = uG

où G est une matrice de taille k × n appelée matrice génératrice de C

G =

g0g1...

gk−1

=

g0,0 g0,1 . . . g0,n−1g1,0 g1,1 . . . g1,n−1

......

...gk−1,0 gk−1,1 . . . gk−1,n−1

Remarques

1 C est un sous-espace vectoriel de Fn2 de dimension rang(G) = k

2 Il existe plusieurs matrices génératrices pour un même code.

3 le rendement du code est R = rang(G)n = k

n

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 26 / 51

Page 29: TS345 - Codage pour la 5G

Code linéaires Matrice de parité

Code dual | Matrice de parité

Matrice de paritéLe code C peut aussi être défini par sa matrice de parité H de taille n − k × n :

H =

h0h1...

hn−k−1

=

h0,0 h0,1 . . . h0,n−1h1,0 h1,1 . . . h1,n−1

......

...hn−k−1,0 hn−k−1,1 . . . hn−k−1,n−1

Soit v ∈ Fn

2, v ∈ C (v est un mot de code) si et seulement si

vHT = 0

1 H est appelée matrice de parité du code C et vérifie GHT = 0k×n−k

2 H n’est pas unique

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 27 / 51

Page 30: TS345 - Codage pour la 5G

Code linéaires Matrice de parité

Codes linéaires en blocs

Définitions

1 À partir de sa matrice génératrice G de taille k × n : C ={

uG | u ∈ Fk2

}2 À partir de sa matrice de parité H de taille n − k × n : C =

{c ∈ Fn

2 | cHT = 0}

1 G et H ne sont pas uniques

2 G et H vérifient GHT = 0k×n−k . Vrai pour tout couple de matrices (G,H) définissant unmême code

3 Pour un code binaire : k ≤ n⇒ le codage "ajoute de la redondance"

4 Rendement de code :

R =rang(G)

n=

n − rang(H)

n

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 28 / 51

Page 31: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Encodeur systématique

Soit C un code (M = 2k , n) pour un canal à entrées binaires. Un encodeur ϕ(·) est ditsystématique ssi

∀u ∈ Fk2 , ϕ(u) = [p u] avec p ∈ Fn−k

2

Si C est linéaire alors il existe une matrice génératrice sous la forme

G =

p0,0 . . . p0,n−k−1 1 0 . . . 0p1,0 . . . p1,n−k−1 0 1 . . . 0

......

......

.... . .

...pk,0 . . . pk,n−k−1 0 0 . . . 1

= [P Ik ]

La matrice de parité associée à la matrice G précédente

H =

1 0 . . . 0 p0,0 . . . pk,00 1 . . . 0 p0,1 . . . pk,1...

......

......

. . ....

0 0 . . . 1 p0,n−k−1 . . . pk,n−k−1

= [In−k PT ]

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 29 / 51

Page 32: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Remarques sur les encodeurs systématiques

G =

p0,0 . . . p0,n−k−1 1 0 . . . 0p1,0 . . . p1,n−k−1 0 1 . . . 0

......

......

.... . .

...pk,0 . . . pk,n−k−1 0 0 . . . 1

= [P Ik ]

1 Un encodeur systématique comporte le message en clair

2 Les encodeurs systématiques sont souvent moins complexes que leurs équivalentsnon-systématiques

3 Une matrice d’encodage systématique peut être trouvée pour tout code linéaire en bloc dematrice génératrice pleine (à des permutations de colonnes près) Pivot de Gauss

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 30 / 51

Page 33: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Remarques sur les encodeurs systématiques

G =

p0,0 . . . p0,n−k−1 1 0 . . . 0p1,0 . . . p1,n−k−1 0 1 . . . 0

......

......

.... . .

...pk,0 . . . pk,n−k−1 0 0 . . . 1

= [P Ik ]

1 Un encodeur systématique comporte le message en clair

2 Les encodeurs systématiques sont souvent moins complexes que leurs équivalentsnon-systématiques

3 Une matrice d’encodage systématique peut être trouvée pour tout code linéaire en bloc dematrice génératrice pleine (à des permutations de colonnes près) Pivot de Gauss

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 30 / 51

Page 34: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Remarques sur les encodeurs systématiques

G =

p0,0 . . . p0,n−k−1 1 0 . . . 0p1,0 . . . p1,n−k−1 0 1 . . . 0

......

......

.... . .

...pk,0 . . . pk,n−k−1 0 0 . . . 1

= [P Ik ]

1 Un encodeur systématique comporte le message en clair

2 Les encodeurs systématiques sont souvent moins complexes que leurs équivalentsnon-systématiques

3 Une matrice d’encodage systématique peut être trouvée pour tout code linéaire en bloc dematrice génératrice pleine (à des permutations de colonnes près) Pivot de Gauss

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 30 / 51

Page 35: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Exemple de Pivot de Gauss

G =

1 1 1 0 1 0 0 01 0 0 1 1 1 0 01 1 0 0 0 1 1 00 1 1 0 0 0 1 1

← Pivot← PivotL2 ← L2 + L1← Pivot← PivotL3 ← L3 + L2← Pivot← PivotL4 ← L4 + L3

1 But : permuter | sommer des lignes pour faire apparaître la matrice I à droite

2 Cette procédure ne donne pas tout le temps une matrice de la forme G = [P, I]

3 Si G est de rang plein on peut toujours se ramener à [P, I] à une permutation de colonneprès

4 Soit G′ = [P, Ik ] = GΠ où Π est une matrice de permutation des colonnes, soitH′ = [In−k PT ] alors

G′(H′)T = 0k×n−k = GHT avec H = H′Π

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 31 / 51

Page 36: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Exemple de Pivot de Gauss

G =

1 1 1 0 1 0 0 01 0 0 1 1 1 0 01 1 0 0 0 1 1 00 1 1 0 0 0 1 1

← Pivot

← PivotL2 ← L2 + L1← Pivot← PivotL3 ← L3 + L2← Pivot← PivotL4 ← L4 + L3

1 But : permuter | sommer des lignes pour faire apparaître la matrice I à droite

2 Cette procédure ne donne pas tout le temps une matrice de la forme G = [P, I]

3 Si G est de rang plein on peut toujours se ramener à [P, I] à une permutation de colonneprès

4 Soit G′ = [P, Ik ] = GΠ où Π est une matrice de permutation des colonnes, soitH′ = [In−k PT ] alors

G′(H′)T = 0k×n−k = GHT avec H = H′Π

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 31 / 51

Page 37: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Exemple de Pivot de Gauss

G =

1 1 1 0 1 0 0 01 1 1 1 0 1 0 01 1 0 0 0 1 1 00 1 1 0 0 0 1 1

← Pivot

← PivotL2 ← L2 + L1

← Pivot← PivotL3 ← L3 + L2← Pivot← PivotL4 ← L4 + L3

1 But : permuter | sommer des lignes pour faire apparaître la matrice I à droite

2 Cette procédure ne donne pas tout le temps une matrice de la forme G = [P, I]

3 Si G est de rang plein on peut toujours se ramener à [P, I] à une permutation de colonneprès

4 Soit G′ = [P, Ik ] = GΠ où Π est une matrice de permutation des colonnes, soitH′ = [In−k PT ] alors

G′(H′)T = 0k×n−k = GHT avec H = H′Π

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 31 / 51

Page 38: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Exemple de Pivot de Gauss

G =

1 1 1 0 1 0 0 01 1 1 1 0 1 0 01 1 0 0 0 1 1 00 1 1 0 0 0 1 1

← Pivot← PivotL2 ← L2 + L1

← Pivot

← PivotL3 ← L3 + L2← Pivot← PivotL4 ← L4 + L3

1 But : permuter | sommer des lignes pour faire apparaître la matrice I à droite

2 Cette procédure ne donne pas tout le temps une matrice de la forme G = [P, I]

3 Si G est de rang plein on peut toujours se ramener à [P, I] à une permutation de colonneprès

4 Soit G′ = [P, Ik ] = GΠ où Π est une matrice de permutation des colonnes, soitH′ = [In−k PT ] alors

G′(H′)T = 0k×n−k = GHT avec H = H′Π

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 31 / 51

Page 39: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Exemple de Pivot de Gauss

G =

1 1 1 0 1 0 0 01 1 1 1 0 1 0 00 0 1 1 0 0 1 00 1 1 0 0 0 1 1

← Pivot← PivotL2 ← L2 + L1← Pivot

← PivotL3 ← L3 + L2

← Pivot← PivotL4 ← L4 + L3

1 But : permuter | sommer des lignes pour faire apparaître la matrice I à droite

2 Cette procédure ne donne pas tout le temps une matrice de la forme G = [P, I]

3 Si G est de rang plein on peut toujours se ramener à [P, I] à une permutation de colonneprès

4 Soit G′ = [P, Ik ] = GΠ où Π est une matrice de permutation des colonnes, soitH′ = [In−k PT ] alors

G′(H′)T = 0k×n−k = GHT avec H = H′Π

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 31 / 51

Page 40: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Exemple de Pivot de Gauss

G =

1 1 1 0 1 0 0 01 1 1 1 0 1 0 00 0 1 1 0 0 1 00 1 1 0 0 0 1 1

← Pivot← PivotL2 ← L2 + L1← Pivot← PivotL3 ← L3 + L2

← Pivot

← PivotL4 ← L4 + L3

1 But : permuter | sommer des lignes pour faire apparaître la matrice I à droite

2 Cette procédure ne donne pas tout le temps une matrice de la forme G = [P, I]

3 Si G est de rang plein on peut toujours se ramener à [P, I] à une permutation de colonneprès

4 Soit G′ = [P, Ik ] = GΠ où Π est une matrice de permutation des colonnes, soitH′ = [In−k PT ] alors

G′(H′)T = 0k×n−k = GHT avec H = H′Π

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 31 / 51

Page 41: TS345 - Codage pour la 5G

Code linéaires Encodeur Systématique

Exemple de Pivot de Gauss

G =

1 1 1 0 1 0 0 01 1 1 1 0 1 0 00 0 1 1 0 0 1 00 1 0 1 0 0 0 1

← Pivot← PivotL2 ← L2 + L1← Pivot← PivotL3 ← L3 + L2← Pivot

← PivotL4 ← L4 + L3

1 But : permuter | sommer des lignes pour faire apparaître la matrice I à droite

2 Cette procédure ne donne pas tout le temps une matrice de la forme G = [P, I]

3 Si G est de rang plein on peut toujours se ramener à [P, I] à une permutation de colonneprès

4 Soit G′ = [P, Ik ] = GΠ où Π est une matrice de permutation des colonnes, soitH′ = [In−k PT ] alors

G′(H′)T = 0k×n−k = GHT avec H = H′Π

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 31 / 51

Page 42: TS345 - Codage pour la 5G

Code linéaires Décodage MAP-bit des codes linéaires (binaires)

Décodage MAP-bit

Décodage MAP-bit

• Le décodeur MAP-bit encodage systématique :

Ψ(j)MAP−bit (y) = argmax

xj∈{0,1}P(Xj = xj |Y = y)

• Le décodeur MAP-bit encodage systématique (2) :

Ψ(j)MAP−bit (y) = argmax

xj∈{0,1}

∑x∼j∈F

n−12

P(Y = y|X = x)1(xHT = 0)

= argmaxxj∈{0,1}

∑x∼j∈F

n−12

n−1∏i=0

P(Yi = yi |Xi = xi )1(xHT = 0)

Sans structure sur C, ce décodeur est aussi trop complexe !

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 32 / 51

Page 43: TS345 - Codage pour la 5G

Code linéaires Décodage MAP-bit des codes linéaires (binaires)

Décodage MAP-bit

Décodage MAP-bit

• Le décodeur MAP-bit encodage systématique :

Ψ(j)MAP−bit (y) = argmax

xj∈{0,1}P(Xj = xj |Y = y)

• Le décodeur MAP-bit encodage systématique (2) :

Ψ(j)MAP−bit (y) = argmax

xj∈{0,1}

∑x∼j∈F

n−12

P(Y = y|X = x)1(xHT = 0)

= argmaxxj∈{0,1}

∑x∼j∈F

n−12

n−1∏i=0

P(Yi = yi |Xi = xi )1(xHT = 0)

Sans structure sur C, ce décodeur est aussi trop complexe !

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 32 / 51

Page 44: TS345 - Codage pour la 5G

Code linéaires Décodage MAP-bit des codes linéaires (binaires)

Décodage MAP-bit

Décodage MAP-bit

• Le décodeur MAP-bit encodage systématique :

Ψ(j)MAP−bit (y) = argmax

xj∈{0,1}P(Xj = xj |Y = y)

• Le décodeur MAP-bit encodage systématique (2) :

Ψ(j)MAP−bit (y) = argmax

xj∈{0,1}

∑x∼j∈F

n−12

P(Y = y|X = x)1(xHT = 0)

= argmaxxj∈{0,1}

∑x∼j∈F

n−12

n−1∏i=0

P(Yi = yi |Xi = xi )1(xHT = 0)

Sans structure sur C, ce décodeur est aussi trop complexe !

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 32 / 51

Page 45: TS345 - Codage pour la 5G

Code linéaires Décodage MAP-bit des codes linéaires (binaires)

Décodage MAP-bit

Décodage MAP-bit

• Le décodeur MAP-bit encodage systématique :

Ψ(j)MAP−bit (y) = argmax

xj∈{0,1}P(Xj = xj |Y = y)

• Le décodeur MAP-bit encodage systématique (2) :

Ψ(j)MAP−bit (y) = argmax

xj∈{0,1}

∑x∼j∈F

n−12

P(Y = y|X = x)1(xHT = 0)

= argmaxxj∈{0,1}

∑x∼j∈F

n−12

n−1∏i=0

P(Yi = yi |Xi = xi )1(xHT = 0)

Sans structure sur C, ce décodeur est aussi trop complexe !

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 32 / 51

Page 46: TS345 - Codage pour la 5G

LDPC

Plan

1 Introduction générale

2 Rappels sur de codage / définitions

3 Théorie de l’information / Capacité d’un canal

4 Codes Linéaires (binaires) en blocs

5 LDPCB Présentation généraleB DéfinitionB Graphe de Tanner associé à un code LDPCB Décodage Somme-ProduitB Étude des performances du décodage itératif

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 33 / 51

Page 47: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963

→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 48: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense

→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 49: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)

→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 50: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 51: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)

→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 52: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)

→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 53: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe

→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 54: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 55: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)

→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 56: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 57: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)

→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 58: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 59: TS345 - Codage pour la 5G

LDPC Présentation générale

Codes Low Density Parity Check (LDPC)

• Introduits par Gallager pendant sa thèse de doctorat en 1963→ Codes possédant une matrice de parité peu dense→ Codes pouvant être analysés (exposant d’erreur)→ Décodage simplifié

• Peu de travaux pendant ∼ 30 ans (Tanner en 1981)→ Codes représentable à l’aide d’un graphe bipartite (graphe de Tanner)→ Décodage possible à l’aide du graphe→ Performances dépendant des propriétés du graphe

• Algorithme de propagation de croyance (IA) (Pearl en 1988)→ Alogrithme de propagation de croyance (BP - Belief Propagation)

• Redécouverte des codes LDPC (MacKay, Luby fin 1990)→ (Re)Montrent que les codes LDPC sont de bons codes

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 34 / 51

Page 60: TS345 - Codage pour la 5G

LDPC Définition

Définition des codes LDPC

Définitions

1 Soit une matrice H

H =

h0,0 h0,1 . . . h0,n−1h1,0 h1,1 . . . h1,n−1

......

...hm−1,0 hm−1,1 . . . hm−1,n−1

Densité de H :

∣∣{i, j : hi,j = 1}∣∣

m n2 Codes LDPC : Codes possédant une matrice de parité H peu dense (creuse). Ordre de

grandeur pour n grand ≤ 0.01.

3 Codes réguliers : poids des lignes constant r , poids des colonnes constant g

4 Rendement d’un code LDPC régulier : R ≥ 1− mn

= 1− gr

5 Rd = 1− gr

est appelé rendement de construction d’un code LDPC

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 35 / 51

Page 61: TS345 - Codage pour la 5G

LDPC Définition

Définition des codes LDPC

Petit TD dans le cours...Soit une matrice H

H =

1 1 1 1 0 0 0 0 0 01 0 0 0 1 1 1 0 0 00 1 0 0 1 0 0 1 1 00 0 1 0 0 1 0 1 0 10 0 0 1 0 0 1 0 1 1

1 Donner la densité de H

2 H définie-t-elle un code LDPC régulier?

3 Si oui, que valent g et r ?

4 Combien vaut le rendement de construction de ce code?

5 Combien vaut le rendement de ce code?

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 36 / 51

Page 62: TS345 - Codage pour la 5G

LDPC Graphe de Tanner associé à un code LDPC

Graphe de Tanner

Le graphe de Tanner est un graphe bipartite avec :

1 n nœuds de variables représentant les variables vj j ∈ {0, . . . n − 1}2 m nœuds de parité pi i ∈ {0, . . .m − 1}3 Une arrête est dessinée entre nœud de variable xj et le nœud de parité ci ssi hi,j = 1

H =

1 1 1 1 0 0 0 0 0 01 0 0 0 1 1 1 0 0 00 1 0 0 1 0 0 1 1 00 0 1 0 0 1 0 1 0 10 0 0 1 0 0 1 0 1 1

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9

c0 c1 c2 c3 c4

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 37 / 51

Page 63: TS345 - Codage pour la 5G

LDPC Graphe de Tanner associé à un code LDPC

Graphe de Tanner

Le graphe de Tanner est un graphe bipartite avec :

1 n nœuds de variables représentant les variables vj j ∈ {0, . . . n − 1}2 m nœuds de parité pi i ∈ {0, . . .m − 1}3 Une arrête est dessinée entre nœud de variable xj et le nœud de parité ci ssi hi,j = 1

H =

1 1 1 1 0 0 0 0 0 01 0 0 0 1 1 1 0 0 00 1 0 0 1 0 0 1 1 00 0 1 0 0 1 0 1 0 10 0 0 1 0 0 1 0 1 1

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9

c0 c1 c2 c3 c4

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 37 / 51

Page 64: TS345 - Codage pour la 5G

LDPC Graphe de Tanner associé à un code LDPC

Graphe de Tanner

Le graphe de Tanner est un graphe bipartite avec :

1 n nœuds de variables représentant les variables vj j ∈ {0, . . . n − 1}2 m nœuds de parité pi i ∈ {0, . . .m − 1}3 Une arrête est dessinée entre nœud de variable xj et le nœud de parité ci ssi hi,j = 1

H =

1 1 1 1 0 0 0 0 0 01 0 0 0 1 1 1 0 0 00 1 0 0 1 0 0 1 1 00 0 1 0 0 1 0 1 0 10 0 0 1 0 0 1 0 1 1

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9

c0 c1 c2 c3 c4

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 37 / 51

Page 65: TS345 - Codage pour la 5G

LDPC Graphe de Tanner associé à un code LDPC

Graphe de Tanner

Le graphe de Tanner est un graphe bipartite avec :

1 n nœuds de variables représentant les variables vj j ∈ {0, . . . n − 1}2 m nœuds de parité pi i ∈ {0, . . .m − 1}3 Une arrête est dessinée entre nœud de variable xj et le nœud de parité ci ssi hi,j = 1

H =

1 1 1 1 0 0 0 0 0 01 0 0 0 1 1 1 0 0 00 1 0 0 1 0 0 1 1 00 0 1 0 0 1 0 1 0 10 0 0 1 0 0 1 0 1 1

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9

c0 c1 c2 c3 c4

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 37 / 51

Page 66: TS345 - Codage pour la 5G

LDPC Graphe de Tanner associé à un code LDPC

Graphe de Tanner

Le graphe de Tanner est un graphe bipartite avec :

1 n nœuds de variables représentant les variables vj j ∈ {0, . . . n − 1}2 m nœuds de parité pi i ∈ {0, . . .m − 1}3 Une arrête est dessinée entre nœud de variable xj et le nœud de parité ci ssi hi,j = 1

H =

1 1 1 1 0 0 0 0 0 01 0 0 0 1 1 1 0 0 00 1 0 0 1 0 0 1 1 00 0 1 0 0 1 0 1 0 10 0 0 1 0 0 1 0 1 1

x0 x1 x2 x3 x4 x5 x6 x7 x8 x9

c0 c1 c2 c3 c4

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 37 / 51

Page 67: TS345 - Codage pour la 5G

LDPC Graphe de Tanner associé à un code LDPC

Degrés des nœuds de variable

x0

c0

x0

c0 c1

x0

c0 c1 c2

x0

c0 c1 c2 c3

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 38 / 51

Page 68: TS345 - Codage pour la 5G

LDPC Graphe de Tanner associé à un code LDPC

Degrés des nœuds de parité

x0

c0

x0 x1

c0

x0 x1 x2

c0

x0 x1 x2 x3

c0

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 39 / 51

Page 69: TS345 - Codage pour la 5G

LDPC Graphe de Tanner associé à un code LDPC

Codes LDPC irréguliers

H =

1 1 0 1 0 0 00 0 1 1 0 1 00 0 0 1 1 0 1

x0 x1 x2 x3 x4 x5 x6

c0 c1 c2

Polynôme de distribution des degrés des nœuds de variables : λ(X) =

dv∑d=1

λd X d−1

Polynôme de distribution des degrés des nœuds de parités : ρ(X) =

dc∑d=1

ρd X d−1

Borne sur le rendement du code : R ≥ 1−∫ 1

0 ρ(x)dx∫ 10 λ(x)dx

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 40 / 51

Page 70: TS345 - Codage pour la 5G

LDPC Décodage SP

Retour sur le décodage du MAP-bit

H =

1 1 0 1 0 0 00 0 1 1 0 1 00 0 0 1 1 0 1

x0 x1 x2 x3 x4 x5 x6

c0 c1 c2

p(x0|y) ∝∑x∼0

6∏i=0

p(yi |xi )1(xHT = 0)

= p(y0|x0)∑x1,x3

p(y1|x1)p(y3|x3)1(x0 + x1 + x3 = 0)

×∑x5,x2

p(y2|x2)p(y5|x5)1(x2 + x3 + x5 = 0)

×∑x4,x6

p(y4|x4)p(y6|x6)1(x3 + x4 + x6 = 0)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 41 / 51

Page 71: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

p(x0|y) ∝p(y0|x0)×∑

x1,x3p(y1|x1)1(x0 + x1 + x3 = 0)

×p(y3|x3)×∑

x5,x2p(y2|x2)p(y5|x5)1(x2 + x3 + x5 = 0)

×∑x4,x6

p(y4|x4)p(y6|x6)1(x3 + x4 + x6 = 0)c0

c1 c2

p(y0|x0)

p(y1|x1)

p(y2|x2)

p(y3|x3)

p(y4|x4)p(y5|x5) p(y6|x6)

x0

x1

x2

x3

x4x5 x6

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 42 / 51

Page 72: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

p(x0|y) ∝p(y0|x0)×∑

x1,x3p(y1|x1)1(x0 + x1 + x3 = 0)

×p(y3|x3)×∑

x5,x2p(y2|x2)p(y5|x5)1(x2 + x3 + x5 = 0)

×∑x4,x6

p(y4|x4)p(y6|x6)1(x3 + x4 + x6 = 0)c0

c1 c2

p(y0|x0)

p(y1|x1)

p(y2|x2)

p(y3|x3)

p(y4|x4)p(y5|x5) p(y6|x6)

x0

x1

x2

x3

x4x5 x6

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 42 / 51

Page 73: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

p(x0|y) ∝p(y0|x0)×∑

x1,x3p(y1|x1)1(x0 + x1 + x3 = 0)

×p(y3|x3)×∑

x5,x2p(y2|x2)p(y5|x5)1(x2 + x3 + x5 = 0)

×∑x4,x6

p(y4|x4)p(y6|x6)1(x3 + x4 + x6 = 0)c0

c1 c2

p(y0|x0)

p(y1|x1)

p(y2|x2)

p(y3|x3)

p(y4|x4)p(y5|x5) p(y6|x6)

x0

x1

x2

x3

x4x5 x6

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 42 / 51

Page 74: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

p(x0|y) ∝p(y0|x0)×∑

x1,x3p(y1|x1)1(x0 + x1 + x3 = 0)

×p(y3|x3)×∑

x5,x2p(y2|x2)p(y5|x5)1(x2 + x3 + x5 = 0)

×∑x4,x6

p(y4|x4)p(y6|x6)1(x3 + x4 + x6 = 0)c0

c1 c2

p(y0|x0)

p(y1|x1)

p(y2|x2)

p(y3|x3)

p(y4|x4)p(y5|x5) p(y6|x6)

x0

x1

x2

x3

x4x5 x6

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 42 / 51

Page 75: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

p(x0|y) ∝p(y0|x0)×∑

x1,x3p(y1|x1)1(x0 + x1 + x3 = 0)

×p(y3|x3)×∑

x5,x2p(y2|x2)p(y5|x5)1(x2 + x3 + x5 = 0)

×∑x4,x6

p(y4|x4)p(y6|x6)1(x3 + x4 + x6 = 0)c0

c1 c2

p(y0|x0)

p(y1|x1)

p(y2|x2)

p(y3|x3)

p(y4|x4)p(y5|x5) p(y6|x6)

x0

x1

x2

x3

x4x5 x6

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 42 / 51

Page 76: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

p(x0|y) ∝p(y0|x0)×∑

x1,x3p(y1|x1)1(x0 + x1 + x3 = 0)

×p(y3|x3)×∑

x5,x2p(y2|x2)p(y5|x5)1(x2 + x3 + x5 = 0)

×∑x4,x6

p(y4|x4)p(y6|x6)1(x3 + x4 + x6 = 0)c0

c1 c2

p(y0|x0)

p(y1|x1)

p(y2|x2)

p(y3|x3)

p(y4|x4)p(y5|x5) p(y6|x6)

x0

x1

x2

x3

x4x5 x6

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 42 / 51

Page 77: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

p(x0|y) ∝p(y0|x0)×∑

x1,x3p(y1|x1)1(x0 + x1 + x3 = 0)

×p(y3|x3)×∑

x5,x2p(y2|x2)p(y5|x5)1(x2 + x3 + x5 = 0)

×∑x4,x6

p(y4|x4)p(y6|x6)1(x3 + x4 + x6 = 0)c0

c1 c2

p(y0|x0)

p(y1|x1)

p(y2|x2)

p(y3|x3)

p(y4|x4)p(y5|x5) p(y6|x6)

x0

x1

x2

x3

x4x5 x6

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 42 / 51

Page 78: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 79: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 80: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 81: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 82: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 83: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 84: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 85: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 86: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 87: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 88: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 89: TS345 - Codage pour la 5G

LDPC Décodage SP

Algorithme somme-produit

x0

p(y0|x0)c0

x1 x3

p(y1|x1) p(y3|x3)

c1 c2

x2 x5

p(y2|x2)p(y5|x5)

x4 x6

p(y4|x4)p(y6|x6)

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 43 / 51

Page 90: TS345 - Codage pour la 5G

LDPC Décodage SP

Ordonnancement : flooding

H =

1 1 0 1 0 0 00 0 1 1 0 1 00 0 0 1 1 0 1

x0 x1 x2 x3 x4 x5 x6

c0 c1 c2

p(y0|x0

)

p(y1|x1

)

p(y2|x2

)

p(y3|x3

)

p(y4|x4

)

p(y5|x5

)

p(y6|x6

)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 44 / 51

Page 91: TS345 - Codage pour la 5G

LDPC Décodage SP

Ordonnancement : flooding

H =

1 1 0 1 0 0 00 0 1 1 0 1 00 0 0 1 1 0 1

x0 x1 x2 x3 x4 x5 x6

c0 c1 c2

p(y0|x0

)

p(y1|x1

)

p(y2|x2

)

p(y3|x3

)

p(y4|x4

)

p(y5|x5

)

p(y6|x6

)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 44 / 51

Page 92: TS345 - Codage pour la 5G

LDPC Décodage SP

Ordonnancement : flooding

H =

1 1 0 1 0 0 00 0 1 1 0 1 00 0 0 1 1 0 1

x0 x1 x2 x3 x4 x5 x6

c0 c1 c2

p(y0|x0

)

p(y1|x1

)

p(y2|x2

)

p(y3|x3

)

p(y4|x4

)

p(y5|x5

)

p(y6|x6

)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 44 / 51

Page 93: TS345 - Codage pour la 5G

LDPC Décodage SP

Ordonnancement : flooding

H =

1 1 0 1 0 0 00 0 1 1 0 1 00 0 0 1 1 0 1

x0 x1 x2 x3 x4 x5 x6

c0 c1 c2

p(y0|x0

)

p(y1|x1

)

p(y2|x2

)

p(y3|x3

)

p(y4|x4

)

p(y5|x5

)

p(y6|x6

)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 44 / 51

Page 94: TS345 - Codage pour la 5G

LDPC Décodage SP

Conclusion sur l’algorithme somme-produit

L’algorithme SP :

permet de calculer les probabilités a posteriori p(xi |y)

ce calcul est exact si le graphe de Tanner est un arbre

si le graphe possède des cycles⇒ itérer

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 45 / 51

Page 95: TS345 - Codage pour la 5G

LDPC Décodage SP

Conclusion sur l’algorithme somme-produit

L’algorithme SP :

permet de calculer les probabilités a posteriori p(xi |y)

ce calcul est exact si le graphe de Tanner est un arbresi le graphe possède des cycles⇒ itérer

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 45 / 51

Page 96: TS345 - Codage pour la 5G

LDPC Décodage SP

Calculer avec des LLR - Nœuds de variables

c

x

p(y|x) c0 cd−2

p(y|·) µ0 µd−2

µ(x) = p(y|x)∏d−2f=0 µf (x)

c

x

c0 . . . cd−2

Lc0→x Lcd−2→x

Lx→c

Lx→c =∑d−2

k=0 Lck→x

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 46 / 51

Page 97: TS345 - Codage pour la 5G

LDPC Décodage SP

Calculer avec des LLR - Nœuds de variables

x

c

x0 . . . xd−2

µ0 µd−2

∑∼x1(x+ x0 + . . .+ xd−2 = 0)

∏d−20 µk(x)

x

c

x0 . . . xd−2

Lx0→c Lxd−2→c

Lc→x

Lc→x = 2atanh(∏d−2

k=0 tanhLxk→c

2

)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 47 / 51

Page 98: TS345 - Codage pour la 5G

LDPC Étude des performances du décodage itératif

Propriétés

Théorème de concentration : Les performances des codes longs d’un même ensemble(avec les mêmes λ(X) et ρ(X)) se comportent globalement de la même manière⇒ onpeut réaliser une étude en moyenne.

Pour des codes longs, étude moyenne⇔ étude des codes acycliques ayant les mêmesλ(X) et ρ(X)

Pour des codes longs, effet de seuil sur le paramètre du canal (probabilité d’erreur,probabilité d’effacement ou SNR)

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 48 / 51

Page 99: TS345 - Codage pour la 5G

LDPC Étude des performances du décodage itératif

Évolution de densité - Nœuds de parités

x

c

x0 . . . xd−2

Lx0→c Lxd−2→c

Lc→x

Lc→x = 2atanh(∏d−2

k=0 tanhLxk→c

2

)

Canal BEC avec probabilité d’effacement p : P(yi = ε|xi ) = p.

Remarque Sur canal BEC les messages sont dans l’ensemble {±∞, 0}.

On note px→c la probabilité d’effacement moyenne sur les messages allant des nœuds devariables aux nœuds de parités

On suppose que P(Lxi→cj = 0) = px→c , ∀i et j dans {0, n − 1} et {0,m − 1}

Que vaut pc→x ?

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 49 / 51

Page 100: TS345 - Codage pour la 5G

LDPC Étude des performances du décodage itératif

Évolution de densité - Nœuds de variables

c

x

c0 . . . cd−2

Lc0→x Lcd−2→x

Lx→c

Lx→c =∑d−2

k=0 Lck→x

Canal BEC avec probabilité d’effacement p : P(yi = ε|xi ) = p.

Remarque Sur canal BEC les messages sont dans l’ensemble {±∞, 0}.

On note pc→x la probabilité d’effacement moyenne sur les messages allant des nœuds deparités aux nœuds de variables

On suppose que P(Lcj→xi = 0) = pc→x , ∀i et j dans {0, n − 1} et {0,m − 1}

Que vaut px→c ?

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 50 / 51

Page 101: TS345 - Codage pour la 5G

LDPC Étude des performances du décodage itératif

Évolution de densité - Points fixes

x0 x1 x2 x3 x4 x5 x6

c0 c1 c2

p(y0|x0

)

p(y1|x1

)

p(y2|x2

)

p(y3|x3

)

p(y4|x4

)

p(y5|x5

)

p(y6|x6

)

Canal BEC avec probabilité d’effacement p : P(yi = ε|xi ) = p.

La probabilité d’effacement après décodage pour `→∞ dépend des points fixes de

p(`)x→c = pλ

(1− ρ

(1− p(`−1)

x→c

))

TS229 Codage 5G | Romain Tajan | 14 octobre 2020 51 / 51