Un autre exemple de code détecteur et correcteur d’erreurs. Il est encore plus simple que le code de double parité déjà utilisé comme exemple au chapitre 2 ! C’est pourquoi il aurait été dommage de ne pas l’évoquer, pour se rendre compte qu’ils reposent bien tous les deux exactement sur les mêmes principes, que nous avons présentés dans le chapitre précédent.
- Texte seul :

- Diapositives seules :

Avez-vous retenu ?
- Quel est le résultat obtenu en appliquant le code par répétition utilisé dans la vidéo sur les bits d’information : 0 1 1 0 0 ?
- Les messages 101 000 111 100 001 ont été reçus après avoir subi un codage par répétition, comme présenté dans la vidéo. Quel est le résultat de la détection et de la correction des erreurs ?
- Les messages 011 111 101 100 010 ont été reçus après avoir subi un codage par répétition, comme présenté dans la vidéo. Parmi les propositions suivantes, laquelle représente les messages émis les plus plausibles ?
- 011 111 101 100 010
- 111 111 000 000 000
- 111 111 111 000 000
- On ne peut pas savoir
Réponses
-
Chaque bit d’information est triplé, le résultat est donc : 000 111 111 000 000.
-
Le message est découpé en paquets de trois bits : 101 000 111 100 001. La détection consiste à repérer les paquets non homogènes : 101 000 111 100 001. La correction consiste à rendre ces paquets homogènes en modifiant le moins de bits possibles : 111 000 111 000 000.
-
111 111 000 000 000. Les messages émis sont composés de mots de code, donc de paquets de trois bits homogènes : dans ce cas, ils ne sont pas identiques aux messages reçus (la première proposition n’est pas la bonne). Les propositions 2 et 3 sont composées de mots de code, donc sont susceptibles d’être les messages émis. Les messages qui correspondent au plus petit nombre de bits corrigés sont ceux qui possèdent la plus grande probabilité d’être les messages émis : c’est la troisième proposition (3 bits corrigés) et non la deuxième (4 bits corrigés).
Notion importante :
Fonctionnement du code par répétition
Questions d’approfondissement
Que se passe-t-il pour la longueur de la transmission si on utilise le code par répétition ?
Réponse
Le message émis est trois fois plus long que les données initiales.
Considérons la variante du code par répétition dans laquelle 0 est codé par 00000 et 1 est codé par 11111. Comment se déroulent dans ce cas la détection et la correction des erreurs ?
Réponse
Tous les messages comportant de 1 à 4 erreurs sont détectés, ceux comportant 5 erreurs ne le sont pas. Tous les messages comportant 1 ou 2 erreurs sont correctement corrigés, ceux comportant 3 ou 4 erreurs ne le sont pas. La longueur de la transmission est multipliée par cinq.
Que se passe-t-il pour les messages comportant deux erreurs dans la variante du code par répétition dans laquelle 0 est codé par 0000 et 1 est codé par 1111 ?
Réponse
Les messages comportant deux erreurs sont bien détectés, mais il y a ambiguité pour la correction, puisqu’en corrigeant 2 bits dans un sens ou dans l’autre, on peut obtenir l’un ou l’autre mot de code. Par exemple, si le message émis est 1111, et le message reçu est 1001, une anomalie est bien détectée. Pour la correction, on peut obtenir 1111 en corrigeant les bits 2 et 3, ou bien obtenir 0000 en corrigeant les bits 1 et 4. Les deux possibilités sont aussi probables l’une que l’autre, et la règle de correction (choisir le mot de code nécessitant de modifier le moins de bits possible) est mise en échec dans ce cas. La convention généralement adoptée est de ne pas corriger le message reçu, pour ne pas risquer d’introduire plus d’erreurs. En général, le système se contente de notifier que le message reçu contient une anomalie.