previous parent next

2. Les codes de protection contre les erreurs

2.1. Classification des codes

Deux grandes familles de codes :

Les codes en bloc (linéaires, cycliques ou non) : le codage/décodage d'un bloc dépend uniquement des informations de ce bloc.

Les codes en treillis (convolutifs, récurcifs ou non) : le codage/décodage d'un bloc dépend des informations d'autres blocs (généralement de blocs précédemment transmis).

On préfère généralement le codage par bloc dans les applications téléinformatiques classiques :

Par la suite, on ne va présenter que les codes par bloc :

2.2. Définitions générales

Un code (k, n) transforme (code) tout bloc initial de k bits d'information en un bloc codé de n bits. Le code introduit une redondance puisque n >= k. Le code est systématique si les k premiers bits du bloc codé sont égaux aux bits du bloc initial. Alors les r (r=n-k) derniers bits forment un champ de contrôle d'erreur. Le rendement d'un code (k, n) est : R = k/n

On appelle mot du code, la suite de n bits obtenue après un codage (k, n). Le nombre n de bits qui composent un mot du code est appelé la longueur du code. La dimension k étant la longueur initiale des mots.

Le poids de Hamming d'un mot est le nombre de bits à 1 qu'il contient. La distance de Hamming entre deux mots de même longueur est définie par le nombre de positions binaires qui diffèrent entre ces deux mots. On l'obtient par le poids de Hamming de la somme binaire des 2 mots. La distance de Hamming d'un code est la distance minimum entre tous les mots du code.

La capacité de détection (de correction) d'un code est définie par les configurations erronées qu'il est capable de détecter (corriger). Une erreur simple (resp. double, ou d'ordre p) affecte une seule (resp. 2, ou p) position(s) binaire(s) d'un mot. Pour qu'un code ait une capacité de détection (resp. correction) des erreurs d'ordre e, il faut que sa distance de Hamming soit supérieure à 1+e (resp. 1 + 2e).

previous parent next