From 78e1e2a25822bebb71dc082a8b7cdfb7e34bfa88 Mon Sep 17 00:00:00 2001 From: zeefaad Date: Tue, 10 Feb 2026 17:05:53 +0100 Subject: [PATCH] notes --- Code/todo.md | 2 + Notes/notes.pdf | Bin 23361 -> 139759 bytes Notes/notes.typ | 244 ++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 246 insertions(+) create mode 100644 Code/todo.md diff --git a/Code/todo.md b/Code/todo.md new file mode 100644 index 0000000..7f32133 --- /dev/null +++ b/Code/todo.md @@ -0,0 +1,2 @@ +- Implémenter correction d'erreur classique par répétition avec taux d'erreur varible. +- Implémenter le code de Hamming diff --git a/Notes/notes.pdf b/Notes/notes.pdf index 84ee2c2aeb71893c8506debb0be649ef7593ef3d..49d6b168ddb4866e1a449fc5d98b6c3632e12e32 100644 GIT binary patch literal 139759 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 diff --git a/Notes/notes.typ b/Notes/notes.typ index 4e54de3..c25649c 100644 --- a/Notes/notes.typ +++ b/Notes/notes.typ @@ -10,6 +10,250 @@ ] += Introduction à la théorie de l'information +#v(5pt) + +Problème principal : il y a du bruit dans les transmissions mais on veut pas d'erreurs.\ +Au lieu de trouver des modifications physiques on va creer des solutions pour corriger les erreurs.\ +Il faut un *encodeur* qui ajoute de la redondance et un *décodeur*.\ + +#v(5pt) + +#import "@preview/cetz:0.4.2" +#align(center)[ + #cetz.canvas(length: 1cm, { + import cetz.draw: * + + content((0, 0), name: "src")[*Source*] + + rect((2, -0.75), (5, 0.75), name: "enc") + content("enc")[Encodeur] + + rect((7, -0.75), (10, 0.75), name: "chan") + content("chan")[Canal _(Bruité)_] + + rect((12, -0.75), (15, 0.75), name: "dec") + content("dec")[Décodeur] + + content((17, 0), name: "dest")[*Dest*] + + line("src", "enc", mark: (end: ">")) + line("enc", "chan", mark: (end: ">")) + line("chan", "dec", mark: (end: ">")) + line("dec", "dest", mark: (end: ">")) + + content((1, 0), anchor: "south", padding: 5pt)[$ s $] + content((6, 0), anchor: "south", padding: 5pt)[$ t $] + content((11, 0), anchor: "south", padding: 5pt)[$ r $] + content((16, 0), anchor: "south", padding: 5pt)[$ hat(s) $] + }) + Code correcteur d'erreurs pour un cannal binaire symetrice @mackay +] + +#v(5pt) + +Le but est de transformer un cannal bruité en cannal fiable avec un coups de calculs en plus (encodeur / décodeur).\ +On vas chercher la meilleur performance de correction d'erreurs. Ce sont les limites théoriques que cherchent à trouver la _Théorie de l'information_. +Pas de retransmissions. + +#v(5pt) + += Codes de répétition +#pad(left: 1cm)[ + + == Définitions + + Il s'agit ici de répter tous les bits. Un message source *$s$*, un message transmit *$t$*, un vecteur de bruit *$n$* et un message recu *$r$*. $space$ *$r = t + n$*. + #pad(left: 1cm)[ + $s = space space 0 space space space space space 1$\ + $t = overbrace(000) space overbrace(111)$ \ + $n = 001 space space space 010$ \ + $r = 001 space space space 101$\ + ] + On décode en choisissant le bit le plus présent dans un bloc. \ + C'est ce que représente le _Likelihood ratios_ : $P(r | s = 1) / P(r | s = 0)$ \ + Ici $001 -> 0$ et $101 -> 1$ donc $hat(s) = 0 space 1$.\ + Preuve de l'optimalité (dans le sens la plus faible probabilité d'erreurs) @mackay p6. \ + *Problème* : trois fois plus de bande passante... +] + +#v(5pt) + += _Single parity check code_ et définitions algébriques +#pad(left: 1cm)[ + Ajout d'uniquement 1 bit d'information à la fin sur la parité du nombre de 1. \ + Un message *$s$* est de la forme + $ + s = [s_1 space s_2 space s_3 space s_4 space s_5 space s_6] + $ + où $c_i in {0,1}$ et le _codeword_ vérifie la contraine si + + #math.equation( + numbering: _ => "E", + block: true, + )[$s_1 plus.o s_2 plus.o s_3 plus.o s_4 plus.o s_5 plus.o s_6 = 0$] + + _parity-check equation_.\ + Inversion d'un nombre bit paire $=>$ E = 0 donc aucune erreur détécté.\ + C'est donc pas assez puissant pour savoir quel bit à changé.\ + + On écrit sous forme matricielle. + + $ H s^T = mat(1, 1, 0, 1, 0, 0; 0, 1, 1, 0, 1, 0; 1, 1, 1, 0, 0, 1;) mat(s_1; s_2; s_3; s_4; s_5; s_6) = mat(0; 0; 0) $ avec $H$ la matrice _parity-check_ où chaque ligne de $H$ correspond à l'équation de parité et chaque colonne de $H$ correspond à un bit du _codeword_.\ + + Les contraines sont alors les suivantes + $ + s_4 & = s_1 plus.o s_2 + s_5 & = s_2 plus.o s_3 + s_6 & = s_1 plus.o s_2 plus.o s_3 + $ + + De plus $s_4, s_5, s_6$ sont les bits de parités et : + $ s = [s_1 s_2 s_3 s_4 s_5 s_6] = [s_1, s_2, s_3] + underbrace( + mat( + 1, 0, 0, 1, 0, 1; + 0, 1, 0, 1, 1, 1; + 0, 0, 1, 0, 1, 1 + ), G + ) $ où *$G$* est la matrice génératrice du code.\ + + On note $u = [u_1, ..., u_k]$ où $u$ contient les $k$ bits du message, ici $u = [u_1, u_2, u_2]$ + $ s = u G $ Pour un message de longueur $k$ et $n$ _codewords_, $G in M_(k times n) (ZZ \/ 2ZZ)$. \ + + De plus $k / n$ est le _rate_ du code.\ + + Un code de taille $k$ contient $2^k$ _codewords_. Ces _codewords_ sont des sous-ensembles avec $2^n$ vecteurs de taille $n$ possibles. \ + + On peut obtenir $H$ sout la forme + + $ H = [A, I_(n-k)] $ avec $A in M_((n-k) times k) (ZZ \/ 2 ZZ)$ et donc + $ G = [I_k, A^T] $ De plus si $G$ est la matrice génératrice pour un code avec matrice de parité $H$ alors + + $ G H^T = 0 $ $G$ est orthogonal à $H$.\ + + Un code peut avoir autant de contraites _parity-check_ qu'il veut mais seulement $n - k$ d'entre elle seront linéairement independantes. C'est à dire : + + $ + n - k = op("rg")(H) + $ + + Voir @johnson + + == Comment détécter et corriger les erreurs + + Supposon qu'on envoie $s = [1 space 0 space 1 space 1 space 1 space 0]$ et qu'on recois $r = [1 space 0 space 1 space 0 space 1 space 0]$ alors + + $ + H r^T = mat(1, 1, 0, 1, 0, 0; 0, 1, 1, 0, 1, 0; 1, 1, 1, 0, 0, 1;) mat(1; 0; 1; 0; 1; 0) = mat(1; 0; 0) + $ + + Le vecteur $s = H r^T$ est le *syndrome* de $r$, il indique quel contraine de _parity-check_ ne sont pas satisfaites par $r$.\ + + Ici $s = mat(1; 0; 0)$ et l'équation de parité associé est $s_4 = s_1 plus.o s_2$.\ + + Un _block code_ ne peut détecter des erreurs que si ces dernières ne transforment pas un _codeword_ valide en un autre _codeword_ valide. (voir #link()[Code de _Hamming_]) + \ + + - Distance de Hamming : Nombre de positions où les bits diffèrent entre deux _codewords_.\ + Exemple : $[1 space 0 space 1 space 0 space 0 space 1 space 1 space 0]$ et $[1 space 0 space 0 space 0 space 0 space 1 space 1 space 1]$ diffèrent aux positions 3 et 8 \ + $=>$ Distance de Hamming = $2$. + + - Distance minimale ($d_min$) : La plus petite distance de Hamming mesurée entre n'importe quelle paire de _codewords_ appartenant au code. + + Un code avec une distance minimale $d_min$ peut garantir la détection de $t$ erreurs si et seulement si : + $ + t < d_min + $ + + Exemple :\ + Pour _Hamming_ (7,4) vu #link()[après], on a $d_min = 3$. \ + $=>$ Il garantit la détection de 1 ou 2 erreurs ($t < 3$).\ + $=>$ Si 3 bits (ou plus) s'inversent, le message peut correspondre à un autre _codeword_ valide. (Exemple 1.8 @mackay). + + Pour corriger l'erreur, le décodeur cherche le _codeword_ le plus probable.\ + + Principe (_maximum-likelihood_ (ML) Decoder) : Il choisit le _codeword_ $s$ valide qui a la plus petite distance de Hamming avec le message reçu $r$. (Si égalité alors le choix est aléatoire). + + $ + hat(s) = min_(c in C) d_H (r, s) + $ + Avec $C$ l'ensemble des _codewords_ valides. +] + +#v(5pt) + += Code de _Hamming_ +#pad(left: 1cm)[ + But : Ajouter de la redondance à des bloques de données.\ + _Block code_ : règle de conversion d'un sequence de bits *$s$* de longueur $K$ dans une séquencce *$t$* de $N$ bits. (Redondance $=>$ $N > K$). \ + Dans un code linéaire les $N - K$ bits réstant sont linéaire en fonction des $K$ bits originaux, ce sont les _parity-check bits_.\ + - _Hamming_ (7,4) + #pad(left: 1cm)[ + L'encodage se visualise via 3 cercles sécants (Diagramme de Venn). + Les 7 bits sont placés de sorte que la parité de chaque cercle soit paire (somme = 0). + + - Bits de Source ($s_1, s_2, s_3, s_4$) : Copiés directement dans le message transmis ($t_1..t_4$). + - Bits de Parité ($t_5, t_6, t_7$) : Calculés pour valider les cercles. + + $ + t_5 & = s_1 plus.o s_2 plus.o s_3 & "(Cercle 1)" \ + t_6 & = s_2 plus.o s_3 plus.o s_4 & "(Cercle 2)" \ + t_7 & = s_1 plus.o s_3 plus.o s_4 & "(Cercle 3)" + $ + + Le *Syndrome* *$z$* : + On vérifie la parité des cercles à l'arrivée. + - 1 cercle faux $->$ Erreur sur le bit de parité. + - 2 ou 3 cercles faux $->$ Erreur à l'intersection unique des cercles fautifs. + ] + On peut le voir sous forme de matrice.\ + Message transmit *$t$* (_codeword_) : + $ + t = G^T s + $ + + avec *$G$* la matrice génératrice du code. + + // $ + // G^T = mat( + // 1, 0, 0, 0; + // 0, 1, 0, 0; + // 0, 0, 1, 0; + // 0, 0, 0, 1; + // 1, 1, 1, 0; + // 0, 1, 1, 1; + // 1, 0, 1, 1; + // column-gap: #1.5em, + // ) + // $ + Visualisation de la solution avec diagramme de Venn.\ + Trouver $P$ tel que + $ G^T = mat( + I_n; + P; + row-gap: #0.75em + ) $ avec $z = H r$ et $H$ la mtrice _parity-check_ $H = mat(-P, I_(n-1)) = mat(P, I_(n-1))$ \ + Et donc tous les _codewords_ satisfont $t = G^T s$, + $ + H t = mat( + 0; + 0; + 0; + ) + $ + Mais $r = G^T s + n$ on doit trouver *$n$* tel que $H n = z$. C'est le probleme _maximum-likelihood decoder_. + + Voir exemple @mackay p9. | #link("https://www.youtube.com/watch?v=X8jsijhllIA")[3Blue1Brown Hamming codes] +] + + += Low-density parity-check codes (LDPC) @johnson + +#pad(left: 1cm)[ + +] + #pagebreak() #bibliography("sources.yml", style: "ieee")