TS345 - Codage pour la 5G
Transcript of TS345 - Codage pour la 5G
![Page 1: TS345 - Codage pour la 5G](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/1.jpg)
TS345-
Codage pour la 5G
Romain Tajan
14 octobre 2020
![Page 2: TS345 - Codage pour la 5G](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/10.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/11.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/12.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/16.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/17.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/18.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/20.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/21.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/23.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/24.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/25.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/26.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/27.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/28.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/29.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/30.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/31.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/32.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/33.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/34.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/35.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/36.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/37.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/38.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/39.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/40.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/41.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/42.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/43.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/44.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/45.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/46.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/47.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/48.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/49.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/50.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/51.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/52.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/53.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/54.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/55.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/56.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/57.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/58.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/59.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/60.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/61.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/62.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/63.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/64.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/65.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/66.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/67.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/68.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/69.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/70.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/71.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/72.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/73.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/74.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/75.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/76.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/77.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/78.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/79.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/80.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/81.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/82.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/83.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/84.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/85.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/86.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/87.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/88.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/89.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/90.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/91.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/92.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/93.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/94.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/95.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/96.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/97.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/98.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/99.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/100.jpg)
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](https://reader036.fdocuments.fr/reader036/viewer/2022062406/62abc4e66cbafd575b2f379f/html5/thumbnails/101.jpg)
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