Cours CDC

Dans la vie quotidienne, les numéros qu'on utilise utilisent des mécanismes de détection d'erreur (code de carte bleue). Le code consiste à multiplier par 2 les chiffres d'indice impairs, sommer tous les chiffres, et le résultat doit être divisible par 10. Si on change deux chiffres par erreur, on n'a aucune garanti de détecter l'erreur. Le fait de multiplier par deux un chiffre sur deux permet de détecter les erreurs de permutation de 2 chiffres consécutifs.

Correction d'erreur

Canal binaire symétrique sans mémoire (CBSSM)

  • Binaire : 0 et 1
  • Symétrique : la probabilité d'erreur est identique sur un 0 ou un 1
  • Sans mémoire : la probabilité d'erreur ne dépend pas des erreurs précédentes

    Nous considérerons uniquement les erreurs de substitution, pas d'ajout/suppression

Distance de Hamming

Distance de Hamming

Pour deux mots binaires \( v \) et \( v ^{\prime} \) de même longueur. La distancs de Hamming de ces deux mots correspond au nombre d'indices auxquels \( v_{i} \neq v ^{\prime}_{i} \)

Poids de Hamming

Pour un mot binaire \( v \), le poids de Hamming est le nombre de bits à 1 de \( v \)

En particulier, on a :

\[ d_{H} \left(v, v ^{\prime}\right) = W_{H} \left(v \oplus v ^{\prime}\right) \]

Si la probabilité d'avoir une erreur sur 1 bit est \( p \), alors la probabilité d'avoir au moins \( x \) erreurs sur \( y \) bits est :

\[ \sum_{i=x}^{y}{\binom{8}{2}(1-p)^{y-i}p^{i} } \]

Codage par parité

ASCII : 128 caractères -> un bit non utilisé sur un octet

\(Parite(v)\)

Le codage par parité d'un mot \( v \) consiste à ajouter un bit au mot à transmettre de manière à ce que \(W_{H}(Parite(v))\) soit pair. Le bit ajouté est appelé bit de parité

Pour pouvoir corriger 1 erreur, il faut que le mot reçu soit le plus proche d'un seul mot de code. Si le code peut corriger une erreur, alors quand on reçoit un mot avec une seule erreur, ce mot reçu, il se retrouve dans une seule boule de rayon 1 centrée sur un mot de code

Distance minimale d'un code

La distance minimale d'un code c'est le minimum de la distance entre deux mots du code

\[ d_{\text{ min } } = \min \{ d_{H}(v, w) | v, w \in C, v \neq w\} \]

Pour que mon codage détecte une erreur, quelle doit être sa distance minimale ?

\[ d_{min } \geq 2 \]

car si on transmet un mot du code et qu'il est reçu avec une erreur, le mot reçu ne fera pas parti du code -> détection du code

t-détection d'erreurs ? \( t + 1 \)

Quelle distance pour un t-correcteur ?

\( d_{min} \geq 2t + 1 \)

Codage par répétition

\( \operatorname{Repet}_{k}(u) = \underbrace{u .u .u.u \dots .u}_{k \text{ fois } } \)

\( d_{min}(\operatorname{Repet}_{k}) = k \)

Pour la correction d'erreur, on privilégie le bit majoritaire parmi les 3 mots

Autres codages

Codage systématique : de la forme \( c(u) = u . r \)

Le rendement

Le rendement est le rapport entre la taille du mot à envoyer (n) et la taille du mot envoyé (k)

\[ \operatorname{Rendement} = \frac{n}{k} \]

Codages linéaires

Coder un mot \( u = u_1 \oplus u_2 \) peut se faire avec le codage de \( u_1 \) et de \( u_2 \). On peut coder un mit binaire de longueur \( n \) (il y en a \( 2^{n} \) ) en ne connaissant que le codage de chacur des vecteurs unités de longueur \( n \)

\( [n, k, d] \)-codage linéaire

un \( [n, k, d] \)-codage linéaire \( c \) est un codage linéaire dont la distance minimale est \( d \) qui encode \( k \) bits en \( n \) bits

Pour un mot de taille 5, il y a 5 vecteurs unités. La matrice génératrice d'un codage linéaire est donc :

\begin{pmatrix} c(u_1) \\ c(u_2) \\ \dots \\ c(u_{n}) \end{pmatrix}

où les vecteurs \( (u_1, \dots u_{n}) \) sont la base canonique de l'espace des mots de taille \( n \)

Codage par matrice génératrice

Coder un mot \( u \) avec un codage linéaire, c'est effectuer le produit :

\[ c(u) = u \times G \]

Où \( G \) est la matrice génératrice du codage

Created: 2026-03-03 mar. 10:00

Validate