Page 34 - CCM_numerique
P. 34

On peut utiliser un entrelacement convolutif performant
                                                             mais complexe à mettre en œuvre, ou un entrelacement
                                                             par bloc, tel celui que nous allons voir sur la figure 4 pour
                                                             un code de Hamming 12-8.








        Figure 3 : Organigramme logiciel de la correction
        de Hamming {12,8}

       Noter que « ptr » entre crochets signifie que le mot à
       traiter est à cet endroit dans la mémoire.
       CODES DE REED-SOLOMON
       Les codes de  Reed  (et)  Solomon  sont  des codes par
                             m
       bloc de la forme  n = 2  - 1 = k +2t. Ils  prennent en
       entrée un bloc de données de taille k, chaque donnée
       étant un symbole de 2  éléments. Généralement m = 8
                           m
       (un octet). On ajoute à ce bloc 2t symboles de contrôle
       formant ainsi un bloc de sortie de n symboles (n octets).
       On voit alors que si les codes de Hamming codent des    Figure 4 : Principe de l’entrelacement par bloc
       bits, ceux de Reed-Solomon codent des mots (octets).
       Grâce  à  l’ajout  des  symboles  de  contrôle,  ces  codes   N-B : Les codes correcteurs de la figure 4 sont fantaisistes.
       permettent de corriger deux types d’erreurs :         Nous voyons que  pour les deux groupes d’erreurs de
         Les  erreurs  induisant  une  modification  des  données,  deux et trois bits consécutifs, il n’y a plus qu’une seule
        où certains bits passent de la valeur 0 à la valeur 1,  erreur par mot après désentrelacement et elle peut être
        et vice-versa.                                       corrigée. Ici, nous avons un bloc brut de 18 octets pour
                                                             12 octets de données (rendement 66,7 %).
         Les erreurs provoquant des pertes d’informations aussi
        appelées « effacements »  .                          DOUBLE CODAGE (CONCATÉNATION), AVANT ET APRÈS
                                (2)
                                                             ENTRELACEMENT
       On note un codage de Reed-Solomon RS(n,k) ou RS(n,k,t).
       Il sait corriger t erreurs pour 2t symboles de contrôle.   Prenons la figure 4 et appliquons le code de Hamming aux
       Exemple de code employé pour le DVB : RS(204,188,8).  octets transmis. Dans ce cas-là, il n’y aura plus que 8 octets
                                                             utiles et le rendement sera de 50 %. Mais nous aurons alors
       Nous ne  nous  étendrons pas sur les algorithmes de   deux corrections des erreurs, l’une avant entrelacement
       codage et de décodage d’un code Reed-Solomon qui sont   et l’autre après. Si cette méthode n’est pas très efficace
       beaucoup plus complexes que ceux de Hamming.          avec un code de Hamming, elle l’est beaucoup plus avec
       Voyons les efficacités des deux systèmes en comparant le   deux codes différents de Reed-Solomon (code CIRC pour
       codage RS {204, 188} du DVB et un codage de Hamming 15-11 :  Cross Interleaved Reed-Solomon Code). Par exemple pour
                                                             l’encodage des CD, on code une première fois avec un
         Rendement  m/n pour Hamming, soit 11 / 15 = 0,733, à  code C1 = RS{28, 24}, ensuite on entrelace, puis on code
        comparer avec k/n pour Reed-Solomon, soit 188/204 = 0,922.  à nouveau les données entrelacées avec un code C2 =
                                                             RS{32, 28} (rendement global = 75 %).
         Efficacité  de  correction  :  1/15  =  0,667  pour  Hamming
        et 8/204 = 0,0392 pour Reed-Solomon, dans le cas où  CODES CONVOLUTIONNELS
        il n’y a qu’une seule erreur dans 8 octets et 64/204 =  Le principe des codes convolutionnels, inventés par Peter
        0,314 dans le cas où il y a 8 erreurs dans 8 octets.  Elias en 1954, est non plus de découper le message en
        En pratique, ce cas a très peu de chances de se rencontrer.  blocs finis, mais de le considérer comme une séquence
       Globalement, on peut dire que statistiquement, les codes   semi-infinie de symboles (bits) qui passe à travers une
       de Reed-Solomon sont plus performants, d’autant qu’ils   succession de registres à décalage, dont le nombre est
       permettent également de corriger 2t effacements.      appelé « mémoire du code » (v). En pratique on limite v
                                                             à 8 car la puissance de calcul demandée par le décodage
       ENTRELACEMENT DES DONNÉES                             croît comme 2 .
                                                                          V
       Quel que soit le codage employé, pour éviter que des rafales   Nous avons sur la figure 5 un exemple simple avec un
       d’erreurs aient  une taille supérieure à la possibilité du   registre à décalage à deux étages. Pour chaque bit en
       code, on effectue un entrelacement des bits après codage   entrée, le codeur fournit 2 bits en sortie. Le rendement
       et un désentrelacement avant le décodage, le but étant   est donc de 50 %.
       de mélanger les bits pour « casser » les paquets d’erreurs.

                                                          34
   29   30   31   32   33   34   35   36   37   38   39