This commit is contained in:
2026-05-13 09:20:12 +02:00
parent 86a437d12b
commit 8fd3f47a20
3 changed files with 9328 additions and 8920 deletions

132
main.typ
View File

@ -35,22 +35,6 @@
#v(1fr)
]
#myslide("Plan")[
#grid(
columns: (auto, 1fr),
align: horizon,
place(center + horizon, dx: 11.8cm, dy: 0.7cm)[#decor_matrice_etoilee()],
design_plan((
[Introduction],
[Codes linéaires],
[LDPC],
[Codage],
[Décodage],
[Analyse],
)),
)
]
#myslide("Introduction : Communication Numérique")[
#place(center + horizon, dy: 8cm)[
#canal_shannon_intro()
@ -112,6 +96,23 @@
]
]
#myslide("Plan")[
#grid(
columns: (auto, 1fr),
align: horizon,
place(center + horizon, dx: 11.8cm, dy: 0.7cm)[#decor_matrice_etoilee()],
design_plan((
[Introduction],
[Codes linéaires],
[LDPC],
[Codage],
[Décodage],
[Analyse],
)),
)
]
#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$
@ -411,42 +412,72 @@
#text(size: 1.1em)[- Si $f_j = 1$, un nombre impair de bits a été inversé par le canal.]
]
// #myslide("L'Entrelacement des Contraintes")[
// #set text(size: 17pt)
//
// #align(center)[
// #move(dx: -1.2cm)[
// #scale(115%)[#hldpc_dual(row1: 0, row2: 14)]
// ]
// ]
//
// #v(1cm)
//
// #set text(size: 1.1em)
// - Chaque bit $r_i$ participe à $w_c = 3$ équations distinctes
//
// #v(1cm)
//
// // --- Étage 2 : Système et Décision ---
// #set align(center + horizon)
// #scale(115%)[
// #block(fill: gray.lighten(95%), inset: 10pt, stroke: 0.5pt + gray, radius: 4pt)[
// $
// cases(
// #text(fill: orange)[$r_7 plus.o r_10 plus.o r_15 plus.o r_22 plus.o bold(r_24) plus.o r_29 &= 0$],
// #h(4.5cm) #text(size: 20pt)[$bold(dots.v)$],
// #text(fill: blue)[$r_1 plus.o r_3 plus.o r_12 plus.o bold(r_24) plus.o r_25 plus.o r_28 &= 0$]
// )
// $
// ]
// ]
//
// #v(1cm)
//
// #set align(left)
// #set text(size: 1.1em)
// - *$r_24$* : Surveillé par #text(fill: orange)[$f_0$] et #text(fill: blue)[$f_14$].
// - Si #text(fill: orange)[$f_0 = 1$] et #text(fill: blue)[$f_14 = 1$], $r_24$ est suspect
// ]
#myslide("L'Entrelacement des Contraintes")[
#set text(size: 17pt)
#align(center)[
#move(dx: -1.2cm)[
#scale(115%)[#hldpc_dual(row1: 0, row2: 14)]
#scale(110%)[#hldpc_triple(row1: 0, row2: 7, row3: 14)]
]
]
#v(1cm)
#v(0.5cm)
- Chaque bit $r_i$ participe à $w_c = 3$ équations distinctes :
#set text(size: 1.1em)
- Chaque bit $r_i$ participe à $w_c = 3$ équations distinctes
#v(1cm)
// --- Étage 2 : Système et Décision ---
#set align(center + horizon)
#scale(115%)[
#v(0.3cm)
#align(center)[
#block(fill: gray.lighten(95%), inset: 10pt, stroke: 0.5pt + gray, radius: 4pt)[
$
cases(
#text(fill: orange)[$r_7 plus.o r_10 plus.o r_15 plus.o r_22 plus.o bold(r_24) plus.o r_29 &= 0$],
#h(4.5cm) #text(size: 20pt)[$bold(dots.v)$],
#text(fill: blue)[$r_1 plus.o r_3 plus.o r_12 plus.o bold(r_24) plus.o r_25 plus.o r_28 &= 0$]
#text(fill: orange)[$r_7 plus.o r_10 plus.o r_15 plus.o r_22 plus.o bold(r_24) plus.o r_29 &= 0 quad (f_0)$],
#text(fill: green.darken(20%))[$r_2 plus.o r_8 plus.o r_13 plus.o bold(r_24) plus.o r_26 plus.o r_30 &= 0 quad (f_7)$],
#text(fill: blue)[$r_1 plus.o r_3 plus.o r_12 plus.o bold(r_24) plus.o r_25 plus.o r_28 &= 0 quad (f_14)$]
)
$
]
]
#v(1cm)
#set align(left)
#set text(size: 1.1em)
- *$r_24$* : Surveillé par #text(fill: orange)[$f_0$] et #text(fill: blue)[$f_14$].
- Si #text(fill: orange)[$f_0 = 1$] et #text(fill: blue)[$f_14 = 1$], $r_24$ est suspect
#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 {0, 7, 24}, space f_j = 1$, alors le bit est comme suspect.
]
@ -704,7 +735,7 @@
// ]
]
#myslide("?")[
#myslide("La Contrainte de Somme Nulle")[
#set text(size: 18pt)
#definition(titre: "Détection d'Erreur", accent: red)[
@ -791,8 +822,11 @@
#myslide("Méthode de génération de H")[
- Gallager
- Mackay
- Mackay-Neal
- Progressive Edge-growth
#align(center + horizon)[
#image("src/construction.jpg", width: 50%)
]
]
#myslide("Encodage LDPC : Calcul de G")[
@ -1060,7 +1094,7 @@
#myslide("Sum-Product : Belief Propagation")[
#set text(size: 17pt)
#v(-0.4em)
#v(-0.7em)
#definition(titre: "Décodage Optimal")[
Échange itératif de croyances (LLR) entre les nœuds du graphe
@ -1079,7 +1113,8 @@
#set text(size: 1.2em)
*Mise à jour CN* \
#set text(size: 1.1em)
$ tanh(m_(c arrow v) / 2) = product_(u != v) tanh(m_(u arrow c) / 2) $
// $ tanh(m_(c arrow v) / 2) = product_(u != v) tanh(m_(u arrow c) / 2) $
$ m_(c arrow v) = 2 tanh^(-1) ( product_(u in cal(N)(c) \\ {v}) tanh(m_(u arrow c) / 2) ) $
]
#block(
@ -1092,7 +1127,9 @@
#set text(size: 1.2em)
*Mise à jour VN* \
#set text(size: 1.1em)
$ m_(v arrow c) = L_"canal" + sum_(c' != c) m_(c' arrow v) $
// $ m_(v arrow c) = L_"canal" + sum_(c' != c) m_(c' arrow v) $
// $ m_(v arrow c) = L_v^((0)) + sum_(c' in cal(N)(v) \\ {c}) m_(c' arrow v) $
$ m_(v arrow c) = L_(v"canal") + sum_(c' in cal(N)(v) \\ {c}) m_(c' arrow v) $
]
]
@ -1256,12 +1293,23 @@
]
#myslide("QC-LDPC")[
#align(center + horizon)[
#image("src/construction.jpg", width: 80%)
]
]
#myslide("Test réel")[
Transmission hackrf, test de diff de debit avec paquets
Test de transmission d'image avec différent ldpc non opti et opti (H diff etc)
#align(center + horizon)[
#image("src/construction.jpg", width: 80%)
]
]
#myslide("FPGA")[
#align(center + horizon)[
#image("src/construction.jpg", width: 80%)
]
]
#[]<fin>
@ -1291,7 +1339,7 @@
]
#myslide("Maths deriere Belief Propagation")[
#myslide("Maths derière Belief Propagation")[
]