Vous êtes sur la page 1sur 4

Code de Reed-Solomon - Wikipdia

file:///F:/doc tojo/Code de Reed-Solomon - Wikipdia.htm

Code de Reed-Solomon
Le code de Reed-Solomon est un code correcteur bas sur les corps de Galois dont le principe est de construire un polynme formel partir des symboles transmettre et de le surchantillonner. Le rsultat est alors envoy, au lieu des symboles originaux. La redondance de ce surchantillonnage permet au rcepteur du message encod de reconstruire le polynme mme sil y a eu des erreurs pendant la transmission.

Sommaire
1 Vue densemble 2 Histoire 3 Description intuitive 4 Proprits 5 Applications 5.1 Stockage de donnes 5.2 Transmission par satellite 5.3 Transmission de donnes 6 Exemple 7 Faiblesse 8 Utilisation dans un modem avec codeur convolutif 9 Liens externes

Vue d'ensemble
Les codes Reed-Solomon sont des codes par bloc. En effet ils prennent en entre un bloc de donnes de taille fixe, qui est transform en un bloc de sortie de taille fixe. Ces codes travaillent sur un corps fini qui possde le plus souvent lments. Le plus souvent on prend m = 8 ou m = 16. Grce un ajout de redondance, ces codes permettent de corriger deux types derreurs: les erreurs induisant une modification des donnes, ou certains bits passent de la valeur 0 la valeur 1 et vice versa comme sur le canal binaire symtrique, les erreurs provoquant des pertes dinformations aussi appeles effacements, lorsque des paquets dinformations sont perdus ou effacs comme sur le canal binaire effacement. On note un codage de Reed-Solomon ou .

Image de La Joconde, transmis au Lunar Reconnaissance Orbiter. Limage gauche, capte par la NASA. droite, le Code de ReedSolomon remet de lordre dans limage.

Histoire
Ce code est d Irving S. Reed et Gustave Solomon.

Description intuitive
Imaginons un bloc de 3 nombres que lon souhaite transmettre : 02 09 12 Ajoutons deux nombres de redondance dinformation. Le premier est la somme des 3 nombres : 02 + 09 + 12 = 23 Le second est la somme pondre des 3 nombres, chacun est multipli par son rang : 021 + 092 + 123 = 56 la sortie du codeur, le bloc transmettre est : 02 09 12 23 56

1 of 4

02/08/2013 08:51

Code de Reed-Solomon - Wikipdia

file:///F:/doc tojo/Code de Reed-Solomon - Wikipdia.htm

Suite une perturbation, le rcepteur reoit : 02 13 12 23 56 partir des donnes reues, le dcodeur calcule : Sa somme simple : 02 + 13 + 12 = 27 Sa somme pondre : 021 + 132 + 123 = 64 La diffrence entre la somme simple calcule (27) et celle reue (23) indique la valeur de lerreur : 4 (27-23 = 4) La diffrence entre la somme pondre calcule (64) et celle reue (56), elle-mme divise par la valeur de lerreur indique la position o lerreur se trouve : 2 ((64-56) / 4 = 2). Il faut donc retirer 4 au nombre du rang 2. Le bloc original est donc 02 (13-4=09) 12 23 56 Lors dune transmission sans perturbation, les diffrences des sommes simples et des sommes pondres sont nulles.

Proprits
La longueur maximale dun code de ReedSolomon est dfinie comme :

Avec : : nombre de bits par symbole ; : nombre de symboles dinformation, appel charge utile ; : nombre de symboles transmis (charge utile et correction derreur) ; : nombre de symboles de contrle. Si la localisation des erreurs nest pas connue lavance ce qui est le cas en pratique le codage Reed-Solomon sait corriger erreurs. En gnral, un symbole sera un octet et donc m=8 (un octet fait huit bits). Souvent, on a . , (un octet) et

tant souvent trop important en pratique, une partie des informations peut tre remplace par des zros avant encodage et ne sera pas transmise, mais devra tre ajoute avant dcodage. On parle dans ce cas de code Reed-Solomon raccourci ( shortened Reed-Solomon codes ).

Applications
Stockage de donnes
Pour le CD, on utilise 2 codages de Reed-Solomon, on code une premire fois avec un code C1 = RS (28, 24) puis on entrelace (ceci permet de rpartir linformation afin de mieux rsister aux trains derreurs conscutives que peut provoquer une rayure qui dtruit beaucoup doctets localement) ensuite on code nouveau les donnes entrelaces avec un code C2 = RS (32, 28). Lide est que le premier code permet dliminer le bruit ambiant mais sil ne peut corriger (par exemple, sil y a une salve derreurs) il efface le bloc (car on peut corriger deux fois plus deffacements que de caractres faux) et ensuite le code est dsentrelac ainsi la perte dinformation est dilue sur une grande plage de donnes ce qui permet au code de corriger ces effacements. Pour le DVD le principe est le mme que pour les CD, on a un code PI= RS (182, 172) et un code PO = RS (208, 192)

Transmission par satellite


Pour le DVB, le codage est RS (204, 188, t=8)

2 of 4

02/08/2013 08:51

Code de Reed-Solomon - Wikipdia

file:///F:/doc tojo/Code de Reed-Solomon - Wikipdia.htm

Transmission de donnes
En ADSL/ADSL2/ADSL2plus, le codage est souvent RS (240,224,t=8) ou encore RS (255,239,t=8).

Exemple
pour le DVB, le codage sera renseign RS (204, 188) ou encore RS (204, 188, 8) Pour 188 (=k) octets en entre, on ajoute 16(=2 t) octets de correction derreur, ce qui donne 204 en sortie du codeur. 8 octets (=t) sur 204 peuvent tre corrigs. Si plus de 8 octets sont dtects comme errons, le bloc de donnes utiles est marqu comme dfectueux. Aucune erreur nest alors corrige

Faiblesse
Suite au faible nombre de symboles que le codage Reed-Solomon peut corriger, ce codage est trs mauvais en cas de bruit impulsif de longue dure, ou de bruit alatoire rgulier. Pour la transmission de donnes (ADSL, DVB-T), le bruit impulsif peut tre d des moteurs, relais, lampes dcharge ou tubes dclairage, clture lectrique... Pour le stockage de donnes (CD, DVD), le bruit impulsif peut tre d une rayure sur le support.

Utilisation dans un modem avec codeur convolutif

En gnral, en mission, dans un modem (ADSL, modem satellite IDR/SMS, DVB-S, etc ), le codage Reed-Solomon, renforc par un entrelaceur est accompagn dun codeur convolutif. En rception, les erreurs rsiduelles non corriges par le dcodeur de Viterbi seront alors dsentrelaces dans les blocs dorigines et corriges par le dcodeur Reed-Solomon dans la mesure de son pouvoir correcteur. Le but du dsentrelaceur est de remplacer en rception, une salve derreurs regroupes et souvent non corrigeables (bruit impulsif) par une multitude derreurs rparties et souvent corrigeables pour le dcodeur de Reed-Solomon.

Liens externes
Code Reed-Solomon (http://icwww.epfl.ch/%7Ebarras//projects/Reed-Solomon/rs.html) Principes et programmation du code Reed-Solomon en java [1] (http://perso.ens-lyon.fr/antoine.taveneaux/tipereedsolomon.html) Implmentation dun code de Reed-Solomon et dun code CIRC (avec construction des corps finis) en OCaml.

Ce document provient de http://fr.wikipedia.org/w/index.php?title=Code_de_Reed-Solomon&oldid=93170136 .

3 of 4

02/08/2013 08:51

Code de Reed-Solomon - Wikipdia

file:///F:/doc tojo/Code de Reed-Solomon - Wikipdia.htm

Dernire modification de cette page le 17 mai 2013 11:27. Droit dauteur : les textes sont disponibles sous licence Creative Commons paternit partage lidentique ; dautres conditions peuvent sappliquer. Voyez les conditions dutilisation pour plus de dtails, ainsi que les crdits graphiques. En cas de rutilisation des textes de cette page, voyez comment citer les auteurs et mentionner la licence. Wikipedia est une marque dpose de la Wikimedia Foundation, Inc., organisation de bienfaisance rgie par le paragraphe 501(c)(3) du code fiscal des tats-Unis.

4 of 4

02/08/2013 08:51