Corrigeons du code

Ou créons des codes correcteurs, c'est pas pareil

a marqué ce sujet comme résolu.
Auteur du sujet

Edit : tutoriel en cours de validation dans cette version. Merci à tous pour vos commentaires ! ;)


Bien le bonsoir (nuit, oui) amis zesteurs !

Je viens à vous pour vous présenter le fruit de ma soirée, rédigé sous le coup d'une impulsion informatique soudaine. Il s'agit d'un petit cours d'introduction aux codes correcteurs, directement issu de mes travaux de cette année scolaire (TIPE, en fait). Je l'ai écrit en guise de pause au milieu de celui-ci qui me demande un peu plus de boulot et de réflexions pédagogiques.

Ce cours, donc, se veut un long article de curiosité et aborde le sujet de manière d'abord très pédagogique, puis de plus en plus pointue avec en guise d'apothéose une démonstration mathématique dont la rédaction m'a réclamé de longues minutes d'angoisse latexiennes. De fait, il s'agit d'un cross-tuto entre algo, info théorique et maths, et c'est principalement sur la pertinence de ce contenu (ainsi que pour toutes les remarques que vous pourriez avoir à faire) que je voudrais vous interroger.

Le cours est virtuellement fini, il ne manque plus que le principal de petites choses, quelques illus, les coquilles éventulles à corriger, des formulations à revoir et l'humour à redoser (à ma décharge, il est tard et j'ai tout écrit d'une traite). En tout cas, il est globalement tel qu'il devrait être dans ma tête ; à vous la suite !

Bonne soirée (nuit, je sais). :)

Édité par Alkareth

ZdS : un palimpzeste pour le savoir. | Les codes correcteurs, c’est bien.

+0 -0

Je viens de le parcourir en diagonal car je n'ai pas trop de temps aujourd'hui mais j'aime assez le style d'écriture (bon je ne suis pas valido pour autant). Bref je trouve ça agréable à lire. Par contre il manque quelques trucs encore. En particulier tu as un paragraphe prévu sur l'histoire des codes de Hamming ou un des blocs infos dans la partie sur Shannon

+0 -0

J'ai commencé à lire le cours et il me semble aussi plutôt bien parti.

Sachant que j'ai un assez mauvais souvenir des codes correcteurs lorsque je m'y suis frotté en école ("ouais bon bah on va apprendre le cours par coeur parce que j'arrive pas bien à piger la logique par derrière"), j'étais assez impatient de lire ton cours.

La chose qui m'a frappée de prime abord c'est la façon dont tu poses le contexte. Pour un élève en radiocommunications, l'intro se laisse parfaitement lire, c'est bien. Pour quelqu'un qui débarquerait là de brut en blanc, je n'en suis pas sûr.

Illustration :

il est peu probable que ceux-ci arrivent intacts ; ils auront sans doute été endommagés durant leur voyage chaotique à travers l'électronique qui vous sépare de votre cible

votre message (…)est susceptible d'être corrompu : n'importe lequel de ces bits peut être aléatoirement modifié au cours de la transmission

Je pense que pour quelqu'un qui ne connaît pas très bien les radiocommunications, ou le traitement du signal ça donne envie d'en savoir plus.

Sans rentrer dans le détail de ce qu'est un signal, une modulation, ou autre, tu pourrais déjà donner un tout petit exemple de signal NRZ altéré sur lequel un détecteur de crête va se tromper, et donc "lire" un 0 à la place d'un 1. C'est un tout petit schéma simple qui pourrait aider à poser le contexte.

Je continue à rentrer plus dans la partie algo quand j'aurai du temps

Happiness is a warm puppy

+0 -0
Auteur du sujet

Merci pour les retours ! :)

@Kje : t'inquiète pas, les blancs seront comblés ; merci pour le compliment.

@Javier : tu n'as pas tort. Seulement, j'y connais strictement rien en radiocommunication et je serais bien en peine de faire même un petit schéma pour expliquer comment un signal peut être corrompu (j'ai vu tout ça d'un point de vue uniquement théorique). Je vais essayer de me documenter à ce sujet, mais si tu pouvais me donner des pistes pour aborder la chose ça m'aiderait grandement ! ^^

Néanmoins, je ne voudrais pas trop m'étendre sur la question, puisque ce n'est pas le sujet direct du cours. Faudra trouver un équilibre.

ZdS : un palimpzeste pour le savoir. | Les codes correcteurs, c’est bien.

+0 -0

Dégradation d'un signal NRZ

Un truc dans ce genre là en moins moche. Je l'ai bâclé en quelques minutes sur OpenOffice Draw.

EDIT : Voilà, c'est très exactement ce que décrit Kje

EDIT² : il manque une valeur en rouge vers la fin on lit un "1" à la place du zéro, la flemme de refaire le truc, m'enfin tu saisis l'idée.

Édité par Javier

Happiness is a warm puppy

+0 -0

Euh… Tu devrais quand même essayer de le refaire au propre, parce que dans le genre construction par morceaux made in "kisvoi" mon graphe est quand même tout dégueu.

Tiens d'ailleurs en fouillant quelques secondes sur Google avec les mots-clefs NRZ, errors, threshold, noise (que tu n'avais pas hein, no offense ) j'ai trouvé ce genre de trucs assez explicatifs :

Dégradation d'un signal transmis à travers un canal AWGN (bruit blanc Gaussien) puis filtré en sortie

Source : Source sur la page Wikipedia (d'autres informations intéressantes pour ton cours à y lire d'ailleurs

Happiness is a warm puppy

+0 -0
Auteur du sujet

J'sais pas utiliser matplotlib et j'avais la flemme d'apprendre à manier un nouvel outil, donc j'ai fait ça à la main sous GIMP comme un gros dégueulasse. Mais vu que je suis plutôt maniaque, je pense que ça ne rend pas trop mal !

Voilà une mise à jour de la bêta pour que vous puissiez juger de ça et du reste : pour moi, il ne manque plus que

  • la correction des coquilles et fautes d'orthographe ;
  • une mise à plat de certains aspects typographiques ;
  • une petite infographie pour l'intro et une icône, je ferai ça dans la soirée je pense.

Pour le reste, le cours est fini de mon point de vue (en termes de contenu et de texte). Des avis avant de passer à la valido ? :)

ZdS : un palimpzeste pour le savoir. | Les codes correcteurs, c’est bien.

+0 -0

Tiens, ça me fait penser que j'ai déjà écrit un tutoriel sur le bit de parité. Pour plus d'informations, je viens de le mettre en bêta ici : Bit de parité : Correction et détection d'erreur.. Cela fera redondance avec ce que j'ai écrit, ce qui est un peu dommage.

J'ai une idée à te proposer : faire un mini-tutoriel séparé sur les codes linéaires, et virer ce que tu as écris su le bit de parité. En faisant des mini-tutoriels séparés sur chaque code correcteur (à répétition, puis checksum, puis CRC, ou codes linéaires), on n'aurait pas de redondance entre tutoriels. De plus, et c'est surtout là où je veux en venir : on pourrait ensuite rassembler ces mini-tutoriels en un seul big-tutoriel une fois qu'ils seront assez nombreux.

Qu'en pense-tu ?

Édité par anonyme

+0 -0
Auteur du sujet

Mmmh ça m'embêterait un peu de tout revoir dans la mesure où j'ai quasiment fini le boulot, mais au-delà de ça, j'ai des objections de principe. Tu as lu ce que je propose ? Le bit de parité n'est abordé que très rapidement à titre de première approche, dans la première partie ; je ne pense pas que ça fasse doublon. (Peux pas trop juger, ta mise en bêta n'a pas fonctionné visiblement. ^^ )

Puis l'approche que je propose est plus guidée vers les codes de Hamming dans un premier temps, et surtout vers le théorème de Shannon à la fin. C'est la progression de la réflexion que je trouve justement intéressante pour donner un aperçu de surface de la théorie des codes. Avec des mini-tutos, on perdrait cette progression.

Donc globalement, je suis contre, mais je pense que ça pourrait être complémentaire : si des mini-tutos apparaissent sur les différents types de codes correcteurs, je suis tout à fait d'accord pour être mentionné quand aux codes de Hamming. Je reste ouvert à la discussion ! :)

ZdS : un palimpzeste pour le savoir. | Les codes correcteurs, c’est bien.

+0 -0

Personnellement je préfère que cette partie ne soit pas retirée.

Et puis ça me choque pas dans la mesure où ce genre d'article est agréable à lire de manière indépendante du reste, c'est pas bien grave que ça se répète d'un texte à l'autre … Ça évite même de devoir ouvrir plusieurs articles pour une seule lecture !

+0 -0

Cette dernière version me plaît bien :)

Cependant voilà ce que je trouve facilement améliorable :

  • le passage sur le groupe de position est peu explicité (le terme même n'est pas défini), ça demande plus de temps à la compréhension alors que c'est pas grand chose;
  • le $m$ dans la démonstration (dans $M_C =m + M$) n'est pas défini (même si on comprend le sens facilement), c'est toujours plus plaisant d'avoir des notations connues avant de les utiliser :).
+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte