shrink
This commit is contained in:
233
main.typ
233
main.typ
@ -114,28 +114,21 @@
|
||||
]
|
||||
|
||||
#myslide("Définition : Codes Linéaires en Bloc")[
|
||||
#definition(titre: [Code $display((n,k) in NN^2)$])[
|
||||
$cal(C)$ sous-espace vectoriel de dimension $k$ de $FF_2^n$
|
||||
]
|
||||
|
||||
#[
|
||||
#set text(size: 1.1em)
|
||||
- $k$ : longueur du message original
|
||||
- $n$ : longueur du mot de code
|
||||
- $m = n - k$ : nombre de bits de parités
|
||||
]
|
||||
|
||||
#definition(titre: "Encodage")[
|
||||
$Phi : FF_2^k & -> FF_2^n in cal(L)(FF_2^k, FF_2^n)$
|
||||
]
|
||||
|
||||
#v(-1.3em)
|
||||
|
||||
#uncover(2)[
|
||||
#align(center + horizon)[
|
||||
#plongement_schema()
|
||||
#place(dy: 2.5cm)[
|
||||
#definition(titre: [Code $display((n,k) in NN^2)$])[
|
||||
$cal(C)$ sous-espace vectoriel de dimension $k$ de $FF_2^n$
|
||||
]
|
||||
]
|
||||
|
||||
#[
|
||||
#set text(size: 1.1em)
|
||||
- $k$ : longueur du message original
|
||||
- $n$ : longueur du mot de code
|
||||
- $m = n - k$ : nombre de bits de parités
|
||||
]
|
||||
|
||||
#definition(titre: "Encodage")[
|
||||
$Phi : FF_2^k & -> FF_2^n in cal(L)(FF_2^k, FF_2^n)$
|
||||
]]
|
||||
]
|
||||
|
||||
#myslide("Définition : Matrice Génératrice")[
|
||||
@ -166,10 +159,10 @@
|
||||
#set text(size: 1.2em)
|
||||
// - Pour $u in FF_2^k, space display(u dot.o G = mat(u, u dot.o P; augment: #1, delim: "[",))$
|
||||
|
||||
- Pour $u in FF_2^k, space #dessiner_matrice($u dot.o G =$, (
|
||||
(texte: $u$, largeur: 1.1, fond: gray.lighten(75%)),
|
||||
(texte: $u dot.o P$, largeur: 3.0, fond: gray.lighten(75%)),
|
||||
))$
|
||||
// - Pour $u in FF_2^k, space #dessiner_matrice($u dot.o G =$, (
|
||||
// (texte: $u$, largeur: 1.1, fond: gray.lighten(75%)),
|
||||
// (texte: $u dot.o P$, largeur: 3.0, fond: gray.lighten(75%)),
|
||||
// ))$
|
||||
|
||||
- $P in cal(M)_(k ,n-k)(FF_2)$ matrice de parité\
|
||||
]
|
||||
@ -192,9 +185,12 @@
|
||||
]
|
||||
#[
|
||||
#set text(size: 1.2em)
|
||||
- $cal(C) = ker(H) = {v in FF_2^n | H dot.o v^top = 0}$
|
||||
// - $cal(C) = ker(H) = {v in FF_2^n | H dot.o v^top = 0}$
|
||||
|
||||
- $display(G dot.o H^top = 0)$
|
||||
- $cal(C) = ker(H)$ -- $H c^top = 0$ $=>$ $c$ mot de code valide
|
||||
|
||||
|
||||
// - $display(G dot.o H^top = 0)$
|
||||
]
|
||||
|
||||
#definition(titre: "Syndrome")[
|
||||
@ -205,8 +201,8 @@
|
||||
]
|
||||
#[
|
||||
#set text(size: 1.2em)
|
||||
- Si $s = 0, space r$ est un mot de code valide
|
||||
- Sinon $s$ donne la signature de l'erreur $e$
|
||||
- $s = 0 => r space$ mot de code valide
|
||||
- $s != 0$ donne la signature de l'erreur $e$
|
||||
]
|
||||
// Possible décodage par syndrome
|
||||
]
|
||||
@ -331,26 +327,30 @@
|
||||
// ]
|
||||
|
||||
#myslide("Le Mur de la Complexité")[
|
||||
#set text(size: 19pt)
|
||||
#definition(titre: [Décodage par Maximum de Vraisemblance (MDL)], accent: black)[
|
||||
Chercher le mot de code $bold(c) in cal(C)$ le plus probable sachant $bold(r)$ reçu :
|
||||
$ hat(bold(c)) = arg min_(bold(c) in cal(C)) d_H (bold(r), bold(c)) $
|
||||
#place(dy: 2.5cm)[
|
||||
#set text(size: 19pt)
|
||||
#definition(titre: [Décodage par Maximum de Vraisemblance], accent: black)[
|
||||
Chercher le mot de code $bold(c) in cal(C)$ le plus probable sachant $bold(r)$ reçu :
|
||||
$ hat(bold(c)) = arg min_(bold(c) in cal(C)) d_H (bold(r), bold(c)) $
|
||||
]
|
||||
|
||||
- Équivalent à chercher l'erreur $bold(e)$ de poids minimal tel que $bold(H) bold(e)^top = bold(s)$.
|
||||
|
||||
#v(0.5em)
|
||||
|
||||
#definition(titre: "Le Problème du décodage par Syndrome")[
|
||||
NP-Difficile et pour $H$ quelconque : $cal(O)(2^k)$
|
||||
]
|
||||
|
||||
// - Pour $k=100$ bits, $2^100 approx 10^30$ opérations nécessaires.
|
||||
]
|
||||
|
||||
- Équivalent à chercher l'erreur $bold(e)$ de poids minimal tel que $bold(H) bold(e)^top = bold(s)$.
|
||||
|
||||
#v(0.5em)
|
||||
|
||||
#definition(titre: "Le Problème du décodage par Syndrome")[
|
||||
NP-Difficile et pour $H$ quelconque : $cal(O)(2^k)$
|
||||
]
|
||||
|
||||
- Pour $k=100$ bits, $2^100 approx 10^30$ opérations nécessaires.
|
||||
]
|
||||
|
||||
#myslide("Définition des Codes LDPC")[
|
||||
#definition(titre: [Codes LDPC Réguliers])[
|
||||
Code linéaire en bloc avec une matrice de contrôle $bold(H)$ *clairsemée*.
|
||||
#text(size: 22.97pt)[
|
||||
Code linéaire en bloc avec une matrice de contrôle $bold(H)$ *clairsemée*.
|
||||
]
|
||||
]
|
||||
|
||||
- Poids de Colonne *$w_c$*
|
||||
@ -365,13 +365,19 @@
|
||||
]
|
||||
|
||||
#definition(titre: "Rendement")[
|
||||
$ display(R = (n - op("rg")(H)) / n >= 1 - m / n) $
|
||||
// $ display(R = (n - op("rg")(H)) / n >= 1 - m / n) $
|
||||
$ display(R = 1 - m / n) $
|
||||
]
|
||||
]
|
||||
|
||||
#myslide([Matrice de contrôle])[
|
||||
// #definition(titre: [Code LDPC $(6, 3)$])[
|
||||
// $m w_r = n w_c$ donc $H in cal(M)_(15, 30)(FF_2)$ et $display(R = 1 - m / n = 1/2)$
|
||||
// ]
|
||||
#definition(titre: [Code LDPC $(6, 3)$])[
|
||||
$m w_r = n w_c$ donc $H in cal(M)_(15, 30)(FF_2)$ et $display(R = 1 - m / n = 1/2)$
|
||||
#v(8pt)
|
||||
$H in cal(M)_(15, 30)(FF_2)$ et $display(R = 1/2)$
|
||||
#v(5pt)
|
||||
]
|
||||
|
||||
#v(2cm)
|
||||
@ -410,11 +416,11 @@
|
||||
|
||||
#v(0.5cm)
|
||||
|
||||
#set text(size: 1.1em)
|
||||
|
||||
- Chaque ligne $j$ de $H$ définit une équation de parité $f_j$.
|
||||
- Pour $r$, on vérifie le syndrome : $H r^top = 0$.
|
||||
#set text(size: 1.2em)
|
||||
|
||||
// - Chaque ligne $j$ de $H$ définit une équation de parité $f_j$.
|
||||
- $L_j$ définit une équation de parité $f_j$
|
||||
- Pour $r$, on vérifie le syndrome : $H r^top = 0$
|
||||
#v(0.2cm)
|
||||
|
||||
#definition(titre: [Équations de Parité], accent: orange)[
|
||||
@ -465,7 +471,7 @@
|
||||
// ]
|
||||
|
||||
#myslide("L'Entrelacement des Contraintes")[
|
||||
#set text(size: 17pt)
|
||||
#set text(size: 20pt)
|
||||
|
||||
#align(center)[
|
||||
#move(dx: -1.2cm)[
|
||||
@ -492,7 +498,7 @@
|
||||
#v(0.5cm)
|
||||
- *$r_24$* : Surveillé simultanément par #text(fill: orange)[$f_0$], #text(fill: green.darken(20%))[$f_7$] et #text(fill: blue)[$f_14$].
|
||||
|
||||
- Si $forall j in {#text(fill: orange)[$0$], #text(fill: green.darken(20%))[$7$], #text(fill: blue)[$24$]}, space f_j = 1$, alors le bit est comme suspect.
|
||||
- Si $forall #tricolor-j in {#text(fill: orange)[$0$], #text(fill: green.darken(20%))[$7$], #text(fill: blue)[$24$]}, space f_(#scale(80%)[#tricolor-j]) = 1$, alors le bit est comme suspect.
|
||||
]
|
||||
|
||||
|
||||
@ -794,7 +800,7 @@
|
||||
]
|
||||
|
||||
#myslide("La Topologie de H : Le Girth")[
|
||||
#set text(size: 18pt)
|
||||
#set text(size: 20pt)
|
||||
|
||||
#definition(titre: "Définition : Le Girth (La Maille)", accent: blue)[
|
||||
Longueur du plus court cycle dans le graphe de Tanner
|
||||
@ -836,6 +842,7 @@
|
||||
]
|
||||
|
||||
#myslide("Méthode de génération de H")[
|
||||
#place(center + horizon, dy: 8.1cm)[#graphe_tanner_fond(0.9cm, 1.75)]
|
||||
#place(center + horizon, dy: 7cm)[
|
||||
#block(width: 100%)[
|
||||
#text(size: 1.5em, weight: "bold", fill: black)[
|
||||
@ -843,7 +850,7 @@
|
||||
|
||||
Mackay-Neal \
|
||||
|
||||
Progressive Edge-growth
|
||||
Progressive Edge-Growth
|
||||
]
|
||||
]
|
||||
]
|
||||
@ -868,7 +875,8 @@
|
||||
#v(2em)
|
||||
|
||||
#set text(size: 1em)
|
||||
- Forme Systématique : Par élimination de Gauss sur $bold(H)$, on obtient
|
||||
// - Forme Systématique : Par élimination de Gauss sur $bold(H)$, on obtient
|
||||
- Forme Systématique
|
||||
|
||||
#v(1em)
|
||||
#align(center)[
|
||||
@ -1340,11 +1348,11 @@
|
||||
#place(center + horizon, dy: 7.7cm)[
|
||||
#block(width: 100%)[
|
||||
#text(size: 1.5em, weight: "bold", fill: black)[
|
||||
QC-LDPC \
|
||||
|
||||
FPGA \
|
||||
|
||||
Test réel
|
||||
QC-LDPC \
|
||||
|
||||
Test réels
|
||||
]
|
||||
]
|
||||
]
|
||||
@ -1361,7 +1369,103 @@
|
||||
]
|
||||
]
|
||||
|
||||
#myslide("Théorie deriere la définition des codes linaires")[
|
||||
#myslide("Définition : Codes Linéaires en Bloc")[
|
||||
#definition(titre: [Code $display((n,k) in NN^2)$])[
|
||||
$cal(C)$ sous-espace vectoriel de dimension $k$ de $FF_2^n$
|
||||
]
|
||||
|
||||
#[
|
||||
#set text(size: 1.1em)
|
||||
- $k$ : longueur du message original
|
||||
- $n$ : longueur du mot de code
|
||||
- $m = n - k$ : nombre de bits de parités
|
||||
]
|
||||
|
||||
#definition(titre: "Encodage")[
|
||||
$Phi : FF_2^k & -> FF_2^n in cal(L)(FF_2^k, FF_2^n)$
|
||||
]
|
||||
|
||||
#v(-1.3em)
|
||||
|
||||
#align(center + horizon)[
|
||||
#plongement_schema()
|
||||
]
|
||||
]
|
||||
|
||||
#myslide("Définition : Matrice Génératrice")[
|
||||
#definition(titre: "Matrice Génératrice")[
|
||||
$G in cal(M)_(k,n)(FF_2)$ dont les lignes sont une base de $cal(C)$
|
||||
]
|
||||
|
||||
#definition(titre: "Encodage")[
|
||||
Pour un message $u in FF_2^k$ le mot de code $c in cal(C)$ est :
|
||||
$
|
||||
c = Phi(u) = u dot.o G
|
||||
$
|
||||
]
|
||||
|
||||
#definition(titre: "Forme systématique")[
|
||||
// TODO : changer [I_k | P] en un graphique jolie avec I et P dans un carré coloré
|
||||
$
|
||||
#dessiner_matrice($G =$, ((texte: $I_k$, largeur: 2.2, fond: gray.lighten(75%)), (texte: $P$, largeur: 2.2, fond: gray.lighten(75%))))
|
||||
// G = mat(
|
||||
// I_k, P;
|
||||
// augment: #1,
|
||||
// delim: "[",
|
||||
// )
|
||||
$
|
||||
]
|
||||
|
||||
#[
|
||||
#set text(size: 1.2em)
|
||||
// - Pour $u in FF_2^k, space display(u dot.o G = mat(u, u dot.o P; augment: #1, delim: "[",))$
|
||||
|
||||
- Pour $u in FF_2^k, space #dessiner_matrice($u dot.o G =$, (
|
||||
(texte: $u$, largeur: 1.1, fond: gray.lighten(75%)),
|
||||
(texte: $u dot.o P$, largeur: 3.0, fond: gray.lighten(75%)),
|
||||
))$
|
||||
|
||||
- $P in cal(M)_(k ,n-k)(FF_2)$ matrice de parité\
|
||||
]
|
||||
]
|
||||
|
||||
#myslide("Définition : Matrice de Contrôle")[
|
||||
#definition(titre: "Matrice de Contrôle")[
|
||||
// $H = mat(
|
||||
// P^top, I_(n-k);
|
||||
// augment: #1,
|
||||
// delim: "[",
|
||||
// )
|
||||
$
|
||||
#dessiner_matrice($H =$, (
|
||||
(texte: $P^top$, largeur: 2.2, fond: gray.lighten(75%)),
|
||||
(texte: $I_(n-k)$, largeur: 2.2, fond: gray.lighten(75%)),
|
||||
))
|
||||
$
|
||||
|
||||
]
|
||||
#[
|
||||
#set text(size: 1.2em)
|
||||
- $cal(C) = ker(H) = {v in FF_2^n | H dot.o v^top = 0}$
|
||||
|
||||
- $display(G dot.o H^top = 0)$
|
||||
]
|
||||
|
||||
#definition(titre: "Syndrome")[
|
||||
Pour un vecteur reçu $r = c + e, space s in FF_2^(n - k)$
|
||||
$
|
||||
s = H r^top = H c^top + H e^top = 0 + H e^top
|
||||
$
|
||||
]
|
||||
#[
|
||||
#set text(size: 1.2em)
|
||||
- Si $s = 0, space r$ est un mot de code valide
|
||||
- Sinon $s$ donne la signature de l'erreur $e$
|
||||
]
|
||||
// Possible décodage par syndrome
|
||||
]
|
||||
|
||||
#myslide("Théorie derrière la définition des codes linaires")[
|
||||
Poser les notations algebriques etc...
|
||||
]
|
||||
|
||||
@ -1532,7 +1636,16 @@
|
||||
|
||||
]
|
||||
|
||||
#myslide("PEG")[
|
||||
#myslide("Gallager")[
|
||||
|
||||
]
|
||||
|
||||
#myslide("Mackay-Neal")[
|
||||
|
||||
]
|
||||
|
||||
|
||||
#myslide("Progressive Edge-growth")[
|
||||
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user