• Aucun résultat trouvé

Implémentation du code Luby Transform(LT) :

N/A
N/A
Protected

Academic year: 2022

Partager "Implémentation du code Luby Transform(LT) :"

Copied!
102
0
0

Texte intégral

(1)

ÉCOLE POLYTECHNIQUE D’ABOMEY-CALAVI

**∝∝**

DÉPARTEMENT DE GÉNIE INFORMATIQUE ET TÉLÉCOMMUNICATIONS Option : Réseaux et Télécommunications (RT)

MÉMOIRE DE FIN DE FORMATION

POUR L’OBTENTION DU

DIPLÔME D’INGÉNIEUR DE CONCEPTION Thème :

Implémentation du code Luby Transform (LT) : cas d’une chaîne de transmission optique

Présenté et soutenu par : Eric Géraud Sègnon SAVY

Soutenu le28 Décembre 2016devant le jury composé de : Président : Dr. Léopold DJOGBE Enseignant à l’EPAC

Membres : Dr. Max Fréjus O. SANYA Enseignant à l’EPAC, Maître de mémoire

Dr. Michel DOSSOU Enseignant à l’EPAC

M. Patrice DAKO Directeur technique à OTI Té- lécom

Année académique :2015 - 2016

(2)

SOMMAIRE

SOMMAIRE i

DÉDICACE ii

REMERCIEMENTS iii

LISTE DES SIGLES ET ABRÉVIATIONS iv

LISTE DES TABLEAUX vi

LISTE DES FIGURES vii

RÉSUMÉ x

ABSTRACT xi

INTRODUCTION GÉNÉRALE

1

PARTIE I : SYNTHÈSE BIBLIOGRAPHIQUE 5

1 LES CODES CORRECTEURS D’ERREURS 5

2 LES CODES FONTAINES : Code Luby Transform (LT) 17

PARTIE II : APPROCHE MÉTHODOLOGIQUE 26

3 CHAINE DE TRANSMISSION OPTIQUE : Modèles de canal 26

4 IMPLÉMENTATION DU CODE LT : Paramètres du code 36

5 ENVIRONNEMENT DE SIMULATION 45

PARTIE III : RÉSULTATS ET DISCUSSION 50

6 RÉSULTATS ET DISCUSSION 50

(3)

CONCLUSION GÉNÉRALE ET PERSPECTIVES

58

BIBLIOGRAPHIE

58

ANNEXES 62

A Algorithme de décodage à propagation de croyance [3] 62 B Nouvelle distribution en fonction de la redondance 67

C Codes Matlab - Émission et Réception 69

D Planning de réalisation du projet 72

ENGLISH VERSION 74

(4)

DÉDICACE

Je dédie ce travail àDIEUet à ma charmantefamille. Merci pour votre amour et votre soutien.

Que les bénédictions soient.

Eric Géraud Sègnon SAVY

ii

(5)

Je voudrais exprimer ma reconnaissance à toutes les personnes qui ont, d’une manière ou d’une autre, contribué à la réalisation de ce travail. Je pense particulièrement :

— AuPr Mohamed SOUMANOU, Directeur de l’Ecole Polytechnique d’Abomey-Calavi (EPAC) et à son adjoint, lePr Clément AHOUANNOU;

— AuDr Léopold DJOGBE, Chef du département de Génie Informatique et Télécommunica- tions (GIT) de l’EPAC ;

— AuDr Max Fréjus O. SANYA, mon maître de mémoire, pour avoir accepté encadrer ce travail ainsi que pour ses précieux apports, sa disponibilité et ses conseils judicieux ;

— AuDr Abraham KABORE, pour ses conseils ses indications, pour sa participation active à la réalisation de ce travail ;

— AuDr Michel DOSSOUet àMr Fabrice DAKO, pour leurs contributions et corrections afin d’améliorer ce travail ;

— À tous les enseignants du département de GIT, pour la richesse de leurs enseignements ;

— À tout le personnel de BENIN TELECOMS SA, précisémentM. Pascal SEDEGAN,M. Dine AMADOU,M. Joël FIOSSI,M. Bernard TOGBAN,M. Abdel DJIMAetM. Abdel CHABI, pour leurs apports au cours de notre stage ;

— ÀArielle NOBRE VIGOUROUX,Muriel DJOMAKONetNatacha GUEZO-MEVOpour leurs travaux de relecture et de correction ;

— À toute ma famille pour son soutien indéfectible ;

— À tous mes camarades de la 9ème promotion du Secteur Industriel de l’EPAC en particulier ceux du département de Génie Informatique et Télécommunications.

(6)

LISTE DES SIGLES ET ABRÉVIATIONS

A

APD : Avalanche Photo - Detector AWGN : Additive White Gaussian Noise

B

BCH : Bose Chaudhuri Hocquenghem BEC : Binary Erasure Channel

BER : Bit Error Rate BP : Belief Propagation

BPSK : Binary Phase Shift Keying

C

CRC : Cyclic Redundancy Check

D

DML : Direct Modulated Laser

E

ECC : Error-Correcting Code

iv

(7)

F

FEC : Forward Error Correction

L

LASER : Light Amplification by Simulated Emission of Radiation LLR : Log-Likehood Ratio

LT : Luby Transform

LDPC : Low-Density Parity-Check

M

MDS : Maximum Distance Separable

N

NRZ : Non Return to Zero NCG : Net Coding Gain ND : Novel Distribution

O

OFDM : Orthogonal Frequency Division Multiplexing

P

PEC : Packet Erasure Channel PON : Passive Optical Network P2P : Point-to-Point

PRBS : Pseudo Random Binary Signal

(8)

LISTE DES SIGLES ET ABRÉVIATIONS

R

RS : Reed Solomon

RSD : Robust Soliton Distribution

S

SPA : Sum - Product Algorithm SNR : Signal to Noise Ratio

T

TCP : Transfer Control Protocol TDM : Time Division Multiplexing TEB : Taux d’Erreurs Binaires

V

VRC : Vertical Redundancy Check

W

WDM : Wave Division Multiplexing

Réalisé par Eric Géraud Sègnon SAVY vi

(9)

4.1 Tableau récapitulatif des résultats pour un canal à effacement . . . 41 6.1 Tableau des paramètres utilisés dans Optisystem 7 . . . 55 1 Table of density probabilities . . . 83

(10)

LISTE DES FIGURES

1.1 Évolution des gains de codage de différents codes [3] . . . 10

1.2 Injection des mots d’information dans l’ensemble des mots code [3] . . . 12

1.3 Graphe factoriel d’un code LDPC . . . 13

1.4 Chaîne de transmission avec codage/décodage [3] . . . 14

1.5 Illustration de la mise à jour des messages se propageant d’un nœud de données vers un nœud de contrôlemvc. . . 15

1.6 Illustration de la mise à jour des messages se propageant d’un nœud de contrôle vers un nœud de donnéesmc v. . . 16

2.1 Canal à effacement . . . 18

2.2 Génération des symboles encodés . . . 20

3.1 Synoptique chaîne de transmission . . . 26

3.2 Caractéristique Puissance - Courant d’un laser . . . 27

3.3 Modéle AWGN . . . 31

3.4 Densité de probabilité AWGN -σ2=0.1,m=0.5 . . . 31

3.5 Densité de probabilitéχ2 . . . 34

3.6 Synoptiqueχ2 . . . 34

4.1 Limites du paramètrecen fonction du nombre de bits à encoderK et deδ . . . 38

4.2 Évolution du nombre de symboles recouvrés en fonction du nombre de symboles encodés pour K =1000 . . . 39

4.3 Évolution du nombre de symboles recouvrés en fonction du nombre de symboles encodés pour K =1500 . . . 40

4.4 Évolution nombre de symboles recouvrés en fonction du nombre de symboles enco- dés pour K=2000 . . . 40

5.1 Chaine de transmission simulée avec Matlab . . . 47

5.2 Chaine de transmission simulée sous Optisystem 7 . . . 47

6.1 Taux d’erreurs binaires en fonction de la probabilité d’effacement en présence d’un canal BEC . . . 51

viii

(11)

6.2 Taux d’erreurs binaires en fonction du SNR en présence d’un canal AWGN . . . 52

6.3 TEB fonction du SNR dans un canal AWGN : comparaisonSans codageversus codage ND et RSD. . . 53

6.4 TEB fonction du SNR dans un canalχ2: comparaison "Sans codage" versus décodage AWGN et décodageχ2. . . 54

6.5 Schématique de la liaison optique simulée dans Optisystem 7 . . . 55

6.6 TEB fonction de la distance de transmission pour différents cas d’étude :Sans codage versusAvec codage . . . 56

B.1 Taux d’erreurs binaires en fonction du SNR pour différentes valeurs de N - source [7] 67 B.2 Taux d’erreurs binaires en fonction du SNR pour différentes valeurs de N . . . 68

D.1 Planning de réalisation du projet . . . 72

2 Evolution of Net Coding Gains [3] . . . 77

3 Encoded symbols generation . . . 79

4 Optical power - current . . . 82

5 BER = f(SNR) - comparaison coding case and without coding . . . 84

6 BER = f(Q) - comparaison coding case and without coding . . . 84

7 BER = f(covered distance) . . . 85

(12)

RÉSUMÉ

L’utilisation de la fibre optique dans les réseaux de télécommunications a permis d’atteindre des débits très importants. Toujours dans le but de fournir un débit meilleur, différents codes cor- recteurs d’erreurs tels que : le code Reed-Solomon et le code LDPC ont été implémentés pour le canal optique afin d’améliorer ses performances en terme de taux d’erreurs binaires. Dans le pré- sent travail, nous avons intégré le code Luby Transform de la famille des codes fontaines proposé par Michael Luby dans une chaîne de transmission optique pour améliorer la fiabilité de la liai- son. Ainsi nous avons proposé une implémentation du code LT dans une liaison optique point à point avec deux formats de modulations : la modulation NRZ et la modulation BPSK. Nous avons évalué les performances de notre implémentation en nous basant sur le taux d’erreurs binaires et le gain en distance qu’apporte l’utilisation dudit code. Les résultats obtenus sont prometteurs, notamment un gain de 50 Km de fibre en comparant un cas sans codage et un cas avec codage LT à TEB égal. Ces résultats pourraient être améliorés en utilisant des formats de modulation avancés.

Mots-clés :Code correcteur d’erreurs, code fontaine, code LT, chaîne de transmission optique

x

(13)

The integration of opical fiber in telecommunications improves considerably the transmission data rate and speed. In addition to this speed, some errors correcting codes like LDPC and Reed Solomon have been integrated to ameliorate performances in term of binary errors rate. In this work, we implement Luby Transform code proposed by Micheal Luby from fountain codes to im- prove reliability of an optical link. Then, we propose an LT code implementation in a point-to- point optical communication with two types of modulation : a Non-Return To Zero (NRZ) and the Bit Phase Shift Keying (BPSK). We evaluate the implementation using two criteria : the binary error rate (BER) and the gain in fiber distance. The results obtained are quite good, a gain of 50 Km of fiber by comparing a case with LT coding and a case without coding for equal BER. This results could be better with advanceds modulations formats.

Keywords :errors correcting code, fountain code, LT code, optical channel

(14)

INTRODUCTION GÉNÉRALE

Le domaine des télécommunications est en perpétuelle évolution. Ceci se traduit par le déploie- ment d’une multitude de nouveaux services innovants. Notamment l’avènement de services comme le stockage en ligne, la télévision haute définition, les jeux en ligne, le Peer To Peer, le téléenseigne- ment, la télémédecine, etc [1]. Ces nouveaux services font exploser les flux de données dans les réseaux d’accès. La transmission des informations sur un canal optique permet de bénéficier de nombreux avantages tels une large bande passante et une grande immunité aux interférences. En cela, il est à remarquer que beaucoup de réseaux d’accès optent pour une interconnexion en fibre optique. La transmission optique représente alors un domaine en plein essor et attire beaucoup de chercheurs aussi bien sur le matériel qu’est la fibre optique que les aspects liés au traitement du signal (modulation, encodage,etc).

Par ailleurs, tout en répondant à ce besoin en débit de transmission, il faut garder ou améliorer la qualité de ces transmissions dans un souci de fiabilité. Car tous les efforts d’amélioration se- raient vains puisqu’ils impliqueraient forcément que certaines données soient retransmises [2].

C’est dans ce sens qu’intervient le codage de canal qui assure pour un débit fixe donné, une amé- lioration de la qualité de la liaison.

D’une manière générale, la détection et la correction des erreurs ne sont possibles que par l’ajout de données redondantes en plus des données utiles à transmettre. Le débit utile des informations est de ce fait réduit par rapport à une transmission sans codage. Ainsi, dans le cadre de transmis- sions optiques à très hauts débits, des codes efficaces mais peu redondants sont recherchés [3].

Les codes correcteurs se classent par famille dont l’une des plus récentes est la famille des codes fontaines [4]. La première implémentation pratique de ce type de code est le code LT (Luby Trans- form) [5]. Il est question dans cette étude d’implémenter ce code dans une chaîne de transmission optique.

1

(15)

Contexte, justification et problématique

L’utilisation de la fibre optique comme support de transmission permet d’atteindre des débits as- sez importants1. La fiabilisation des transmissions se fait classiquement par l’utilisation de mé- canismes d’acquittements et de retransmissions. Mais ces mécanismes coûtent cher en énergie lorsque la taille du réseau est importante [6]. Ainsi, la recherche de solutions pour une transmis- sion fiable des données a fait l’objet de plusieurs recherches ces dernières années. La fontaine digi- tale est un protocole idéal qui garantit aussi bien la fiabilité que l’efficience dans la distribution des données de masse [7]. Le code LT est la première réalisation pratique de ce type de code et a connu plusieurs améliorations, la plupart basées sur la distribution des degrés [7, 8]. Les performances aussi bien pour un canal à effacement, que pour un canal à bruit ont été étudiées [9] pour ce type de codes. Aussi ont été réalisés des travaux en matière d’implémentation de code correcteur d’er- reurs à fortes performances sur un canal optique. On peut citer par exemple, le code Low Density Parity-Check (LDPC) avec une chaîne de communication optique suivant un modèle AWGN et le modèle chi-2 [9], comme dans un contexte WDM-OFDM-PON[10]. C’est aussi dans cette logique que nous nous proposons d’implémenter le code LT dans un contexte optique afin d’en évaluer les performances. Le critère de performance retenu est le taux d’erreurs binaires (TEB).

Pour ce faire, le document est structuré en trois parties.

— La première partie est consacrée à la présentation des codes correcteurs d’erreurs, des codes fontaines ;

— La deuxième partie est consacrée à la description d’une chaîne de transmission optique et sa représentation par différents modèles ;

— Enfin, la troisième partie présente les simulations effectuées pour étudier le fonctionnement du code implémenté et les différents résultats obtenus.

Objectifs

A travers ce travail, nous visons une meilleure compréhension du fonctionnement des réseaux op- tiques pour y intégrer un code correcteur d’erreurs : le code LT. Notre objectif sera donc d’évaluer l’apport de ce type de code en terme de fiabilité des transmissions optiques.

De façon plus spécifique, il s’agira :

— d’étudier l’architecture générale d’une chaîne de transmission optique en vue de sa modéli- sation ;

1. Le record actuel, en laboratoire, de débit de transmission a été établi par NEC et Corning en septembre 2012. Il est de 1 pétabit par seconde (1 000 térabits par seconde, soit un million de gigabits par seconde ou, plus communé- ment : 125 000 gigaoctet/s) sur une distance de 52,4 km :NEC and Corning achieve petabit optical transmission, sur le site optics.org du 22 janvier 2013

(16)

INTRODUCTION GÉNÉRALE

— d’étudier plus particulièrement le code LT avec ses spécificités ;

— de réaliser des simulations systèmes en utilisant une cosimulation des logiciels Optisystem 7 et Matlab ;

— d’évaluer les performances obtenues pour une liaison optique point à point.

Contribution du projet

Dans cette rubrique, nous présentons les points d’amélioration ou nouveautés de notre sujet d’étude et les différents éléments qui y sont traités. Le présent travail s’inscrit dans le cadre du codage de canal et à pour objectif principal une meilleure fiabilisation d’une transmission optique. Les prin- cipaux éléments traités dans ce mémoire sont :

— une étude détaillée des codes fontaines en particulier du code Luby Transform ;

— une adaptation du code LT à un canal optique avec un décodage par propagation de croyance basée sur le LLR ;

— une prise en main et description du processus de cosimulation OptiSystem/Matlab.

Réalisé par Eric Géraud Sègnon SAVY 3

(17)

SYNTHÈSE BIBLIOGRAPHIQUE

(18)

Chapitre 1

LES CODES CORRECTEURS D’ERREURS

Introduction

Le principe du codage correcteur d’erreurs (ou codage de canal) est d’ajouter aux données utiles, des données redondantes de manière à rendre plus fiable la transmission des données utiles. Ce principe peut être couplé avec du codage de source qui consiste à rendre l’information transmise la plus concise possible sans dégrader les performances du système. Généralement, le codage de source sert à compenser la redondance introduite par le codage de canal [3].

Dans notre travail nous nous limitons au codage de canal. Ces codes sont regroupés en plusieurs familles en fonction de différents paramètres comme la taille, la redondance et la méthode de construction du code. Ainsi nous distinguons plusieurs familles de codes à savoir : les codes en blocs, les codes convolutifs, les codes fontaines, etc. Nous présenterons dans ce chapitre les diffé- rentes familles de codes, leurs évolutions dans le temps et nous insisterons particulièrement sur ceux utilisés dans une liaison optique. Nous parlerons également de la famille des codes fontaines dont fait partie le code LT sur lequel porte notre travail.

1.1 Vocabulaire

Le rendement R d’un codeC(N,K) qui transforme un mot deK bits en un mot deN bits en ajou- tantNK bits de redondance est défini parR=K/N. La redondance du code, généralement notée rest donnée par :

r=NK

KNK

N =1−R (1.1)

Tout mot de N bits obtenu en sortie du codeur à partir d’un mot de K bits s’appelle un mot de code. Si un mot reçu n’est pas un mot de code, c’est qu’il y a eu une erreur de transmission qui

5

(19)

nécessite d’être corrigée. Cependant, si le mot reçu est un mot de code, il peut toutefois ne pas correspondre au mot émis, et donc comporter des erreurs, qui ne sont pas détectées.

La distance de HammingdH entre deux mots de code est définie comme le nombre de symboles différents entre ces deux mots. Par exemple, les mots de symboles binaires suivants : 10011001 et 10100001 diffèrent de 3 bits. La distance de Hamming est doncdH =3. La distance de Hamming minimaledH mi n est définie comme la plus petite des distances de Hamming entre deux mots de code distincts. Le pouvoir de détection du code correspond au nombre maximal d’erreurs détec- tables dans un mot. Il dépend directement de la distance de Hamming minimale et est déterminé part=dH mi n−1. Le pouvoir de correction, défini comme le nombre maximal d’erreurs corrigibles dans un mot est donné par [11, 3] :

bt

2c = bdH mi n−1

2 c (1.2)

oùbxcreprésente la partie entière par valeur inférieure de la quantitéx.

1.2 Représentations polynomiales et matricielles

Pour illustrer le principe de codage de l’information, deux représentations sont généralement uti- lisées : la représentation polynomiale et la représentation matricielle.

La représentation polynomiale consiste à écrire chaque mot non codé de tailleKcomme un poly- nôme U(X) de degréK−1 en X :

U(X)=

K−1

X

i=0

uiXi (1.3)

où lesuicorrespondent aux valeurs des différents symboles composant le motU=[u0,u1, ...,uK−1].

Dans cette représentation, on définit de la même manière un polynôme générateur G(X) de degré N - K tel que chaque mot de code C(X) puisse s’écrire comme le produit de G(X) avec n’importe quel mot non codé U(X). La multiplication de ce polynôme par G(X) fournit le mot de code corres- pondant :

C(X)=U(X)·G(X)= ÃK1

X

j=0

ujXj

!

· ÃNK

X

i=0

giXi

!

(1.4) Dans cette notation, lesgi sont les coefficients associés au polynôme générateur G(X). Le mot en sortie du codeurC, de tailleNest équivalent à un polynôme de degréN−1 qui s’écrit générale- ment de la manière suivante :

C(X)=

N−1

X

i=0

ciXi (1.5)

Les coefficientscide ce polynôme sont obtenus en développant le produit des sommes dans (1.4).

(20)

Chapitre 1. LES CODES CORRECTEURS D’ERREURS

Ils s’écrivent alors comme une combinaison linéaire des symboles d’information du mot en en- trée du codeur. De plus, suivant la nature du code utilisé, les coefficients du polynôme générateur peuvent être eux-mêmes des combinaisons linéaires des mots d’information précédant le mot à coder. Ainsi, le mot codé s’écrit comme une combinaison linéaire des symboles d’informations du mot à coder et/ou des mots précédemment codés.

Dans certains cas, on préfèrera la notation matricielle où les mots à coder sont représentés sous forme de vecteurs de tailleK et les mots codés sous forme de vecteurs de tailleN. L’opération de codage s’effectue en multipliant le vecteur à coder par la matrice d’encodage G de tailleKN. Si on note par exemple un mot à coderU =[u0,u1, ...,uK−1],le mot codé est obtenu par la multipli- cation matricielle suivante :

C=[c0,c1...cN−1]N =[u0u1...uK−1]K·GK×N (1.6) Soientgi jpouri,j∈[0;K−1], [0;N−1] les éléments de la matrice G, chaquecj s’écrit alors comme combinaison linéaire desui :

cj=

K−1

X

j=0

ui·gi j (1.7)

Cette représentation est identique à la représentation polynomiale, mais reste plus appropriée dans certains schémas de codage.

1.3 Évolution dans le temps des codes correcteurs d’erreurs

D’après les travaux de Shannon [12], il a été montré qu’il est possible de transmettre un débit R de manière fiable sur un canal non-fiable de capacité C tant queR<C. Dans le même article, Shan- non introduit la notion de "codes" comme un ensemble fini de vecteurs dans l’alphabet d’entrée.

Si on fait l’hypothèse que tous les vecteurs possèdent une longueur identique N et que leur nombre est égal à 2K (qui peut être codé surK bits), il faut alorsN utilisations du canal pour transmettre K bits. Le débit (rendement) du code est donc deK/Nbit par utilisation du canal.

En réception, le décodeur a pour but, à partir du vecteur reçuy dans l’alphabet de sortie, de dé- duire le mot de codecenvoyé par l’encodeur. Si le canal peut introduire des erreurs, alors on ne peut pas identifier le mot de code transmis de manière certaine. On peut cependant trouver le mot de code le plus vraisemblable en maximisant la probabilitép(y|c). Le décodage est alors effectué à maximum de vraisemblance, (Maximum Likelihood : ML), et suit la règle :

x=argmaxcCp(y|c) (1.8)

Réalisé par Eric Géraud Sègnon SAVY 7

(21)

où C est l’ensemble des mots de code. En faisant l’hypothèse d’un canal sans mémoire :

p(y|c)=

N

Y

i=1

p(yi|ci). (1.9)

Depuis 1948, les scientifiques ont cherché à découvrir des codes approchant la capacité et munis d’algorithmes d’encodage et de décodage efficaces. Ci-dessous un historique des codes correc- teurs d’erreurs depuis 1948 jusqu’à nos jours.

1 : Bases de la théorie de l’information 1948 2 : Codes de Golay, code corrigeant 3 erreurs 1949 3 : Codes de Hamming, Code parfait corrigeant 1 erreur 1950 4 : Codes de Muller découvert par Muller et Reed 1954 5 : Codes Convolutifs inventés par Elias 1955 6 : Codes Cycliques découvert par Prange 1957 7 : Codes BCH par Hocquenghem, Bose et Chaudhuri 1959

8 : Codes de Reed Solomon 1960

9 : 1ère découverte des codes LDPC par Gallager 1962 10 : Codes concaténés introduit par Forney 1966

11 : Algorithme de Viberti 1967

12 : Algorithme de Berlekamp Massey 1969

13 : Modulation codée par Underboeck 1982

14 : Turbo-codes par Berrou, Glavieux et Thitimajshima 1993 15 : Redécouverte des codes LDPC par Mackay et Neal 1996

16 : Codes LT découvert par Luby 2002

17 : Codes Raptor par Shokrolahi 2006

18 : Codes polaires par Arikan 2009

19 : Spinal codes par Perry et Balakrishan 2011

20 : Code LT systématique 2012

21 : Design d’un nouvel algorithme de décodage [13] 2012 22 : Implémentation du code LT modifié [14] 2013

Elias et Golay ont résolu indépendamment le problème de l’encodage en introduisant le concept de code linéaire2. En définissant des codes comme un sous-espace vectoriel d’un espace vectoriel de dimension finie, ils ont permis de ramener le problème de l’encodage à une simple multipli- cation matricielle (l’encodeur d’un code aléatoire doit stocker une liste de 2K mots de code). Le décodage reste l’opération la plus délicate.

Pendant près de 30 ans, les scientifiques se sont concentrés sur la recherche de codes possédant

2. Un codage est ditlinéairesi et seulement siaC,bCa+b=cC. Avec C l’ensemble des mots de code.

(22)

Chapitre 1. LES CODES CORRECTEURS D’ERREURS

une grande distance pourN etK donnés sans pour autant porter une grande attention à l’algo- rithme de décodage. Il aura par exemple fallu attendre 9 ans avant que les codes RS puissent être décodés avec un algorithme efficace (Berlekamp Massey). Cependant, la complexité de ces algo- rithmes limite la longueur des codes à quelques centaines de symboles entraînant un écart entre les performances des codes et la limite donnée par Shannon. C’est seulement en 1993, année de la découverte des turbo codes, que cette limite fut approchée. Les turbo codes, contrairement aux codes classiques, impliquent très peu d’algèbre, emploient un décodage itératif et distribué, et se concentrent sur les performances moyennes. Par suite en 1996, MacKay et Neal, en voulant gé- néraliser les résultats obtenus par Berrou, redécouvrent les codes LDPC (découverts 35 ans plus tôt par Gallager). Ensuite une nouvelle classe de code, appelée code fontaine, a été lancée par la Digital Fountain. Ceci à fortement influencé la conception de codes pour les canaux à effacement (Binary Erasure Channels : BECs), un modèle bien établi pour l’Internet3[4]. La première réalisa- tion de cette famille de code fut le code LT proposé par Michael Luby [5] en 2002, ensuite le code Raptor proposé par Shokrolahi en 2006.

Enfin, ces deux derniers ont connu des améliorations. Entre autres nous avons le code LT systé- matique, Systematic Luby Transform (STL) [15] et aussi une amélioration basée sur la distribution des degrés en 2012 [7], laquelle distribution sera utilisée dans notre implémentation du code LT pour une chaîne de transmission optique. Cette chronologie est une compilation de [16, 17, 18].

1.4 Les codes correcteurs appliqués aux transmissions optiques

Les premiers codes correcteurs développés dans le domaine des communications optiques étaient basés sur les codes en blocs, plus faciles à implémenter dans les systèmes optiques. En effet, les contraintes imposées en terme de délai par les codes convolutifs sont trop importantes pour leur mise en œuvre en optique. Parmi les codes en blocs, les codes Bose-Chaudhuri-Hocquenghem (BCH) [19] et les codes de Reed Solomon (RS) [20] ont été plus particulièrement envisagés pour l’optique. Bien que la théorie ait été établie dans les années 1960, les premières solutions déployées dans le cadre des communications transocéaniques datent des années 1990.

L’utilisation de codes correcteurs d’erreurs en communications optiques est soumise à différentes contraintes. La performance d’un code est évaluée à partir de son gain de codage (appeléNet Co- ding Gainou NCG) défini comme la différence (en dB) entre le rapport signal sur bruit (S/B) né- cessaire pour obtenir une performance donnée dans les cas avec et sans codage correcteur. Pour les transmissions optiques, l’ordre de grandeur du gain de codage requis est d’environ 6 dB à des taux d’erreurs très faibles (typiquement 10−12)[3].

Les débits en lignes escomptés sont très élevés (10 à 40Gb/s). Ainsi, la redondance du code doit être suffisamment faible de manière à ne pas trop diminuer le débit utile. Typiquement, la redon- dance est toujours inférieure à 25%. La figure ci-dessous tirée de [3] présente l’évolution du NCG

3. Internet est représenté par un modèle de canal à effacement de paquets.

Réalisé par Eric Géraud Sègnon SAVY 9

(23)

en fonction des générations de codes.

Figure 1.1 – Évolution des gains de codage de différents codes [3]

Cependant, pour les communications optiques de débits supérieurs à 10 Gbit/s, les signaux sont plus sensibles aux non linéarités et des schémas de codage correcteur d’erreurs plus puissants sont nécessaires pour augmenter le gain de codage. Pour obtenir des gains de codage plus élevés, une solution classique est d’ajouter plus de redondance, ce qui diminue le débit utile. Ceci peut être effectué en concaténant plusieurs codes correcteurs, donc augmente la complexité. Cette so- lution, basée sur l’utilisation de la concaténation fait partie de la seconde génération de système correcteur d’erreurs pour les communications optiques.

Deux codes sont généralement utilisés en cascade et séparés par un entrelaceur dont le rôle est de disperser les erreurs susceptibles d’être non corrigées par le premier décodeur. La figure 1.1 réper- torie ces différentes familles de codes en fonction de leur gain de codage à 1012et de l’année où ces solutions ont été exploitées.

Pour améliorer d’avantage les performances, il faut s’intéresser à des solutions plus puissantes dites de troisième génération. L’avènement des turbo-codes a révolutionné le domaine du codage de canal pour les communications radio-mobiles. L’utilisation de turbo-codes en blocs a donc été proposée et appliquée aux communications optiques. Cependant, le décodage turbo est dif- ficilement compatible avec la technologie optique et possède un degré de complexité important pour ce type de transmission. Bien que longtemps mis de côté, les codes LDPC (Low Density Pa- rity Check) utilisant la théorie des graphes ont fait l’objet de récentes études pour les nouveaux

(24)

Chapitre 1. LES CODES CORRECTEURS D’ERREURS

schémas de communication. Celles-ci ont révélé des performances très efficaces, notamment sur canal à bruit additif gaussien.

L’avantage de ces codes est d’avoir, de par leur structure très peu dense, une complexité de déco- dage nettement simplifiée. L’utilisation des codes LDPC dans le cas des communications optiques a donc été développée et a fait l’objet de récents travaux [10]. Le code LT étant de la famille des codes sans mémoire représente un code de choix pour les transmissions de données de masse. Il a été implémenté au niveau applicatif et présente de bonnes performances. De par son analogie au code LDPC en matière de décodage (utilisation de l’algorithme de propagation de croyance), il représente un candidat intéressant pour les communications optiques. De plus, ses performances sur un canal AWGN ont été étudiées [9] et les résultats sont prometteurs. Tout ceci motive donc, notre objectif d’évaluer les performances des codes LT sur un canal optique.

Les deux sections suivantes détaillent plus particulièrement les caractéristiques des Codes Reed Solomon et LDPC déjà intégrés dans un contexte optique. Dans le prochain chapitre les codes LT y sont traités.

1.5 Code MDS

Les codes Maximum Distance Separable (MDS) ont comme principale caractéristique de vérifier la borne de Singleton avec égalité. Ceci peut se traduire de la façon suivante : Si on reçoit au moins K paquets parmi lesNgénérés par la source, alors on sait retrouver le message d’origine. On parle de code parfait. Les codes MDS les plus connus sont les codes Reed-Solomon (RS) utilisés dans de nombreuses applications comme l’ADSL, la technologie RAID ou les CDs/DVDs. Pour le canal BSC, l’algorithme de Berlekamp-Massey permet de créer un code RS avec une complexité de dé- codage deO(n(log2(n))) . Pour le canal à effacement, des méthodes optimales ayant des bonnes complexités existent. On peur rencontrer aussi des algorithmes de décodage permettant de déco- der au-delà de la capacité du code : c’est le " list decoding " de Sudan. Pour un code MDSC(N,K), toutes les K colonnes de la matrice génératrice G ainsi que toutes les NK colonnes de la ma- trice de parité H doivent être linéairement indépendants. Ces codes permettent d’avoir une bonne complexité de codage [6].

1.6 Code LDPC

1.6.1 Code en blocs

Une source binaire envoie un message m de taille k, ce message contientk éléments binaires, mAk. A chaque message correspond une séquence binairec appelée mot de code qui elle est de taille n>k. Il y a au total 2K messages possibles. L’espace des mots de codes est de dimensionn, mais il n’existe que 2K mots de codes valides (Cf. Figure 1.2).

Réalisé par Eric Géraud Sègnon SAVY 11

(25)

Figure 1.2 – Injection des mots d’information dans l’ensemble des mots code [3]

Les (n-k) bits ajoutés sont appelés bits de redondance, ils ne contiennent aucune information supplémentaire, mais ils sont exploitables en réception pour détecter les erreurs introduites par le canal bruité et éventuellement les corriger. Certes, l’ajout de redondance entraîne une perte d’efficacité dans les systèmes, mais celle-ci améliore la qualité et la fiabilité de communication.

1.6.2 Généralités sur le code LDPC

Les codes LDPC sont des codes correcteurs en blocs linéaires. Proposés en 1962 par Gallager, ces codes n’ont pas immédiatement suscité un grand intérêt auprès de la communauté de la théorie de l’information. Ce n’est que durant les années 1990 que les codes de Gallager furent redécouverts, notamment par MacKay qui a remis en lumière l’intérêt des codes LDPC à l’aide des représenta- tions et de l’approche récursive de Tanner.

Le principe des codes LDPC est basé sur le contrôle de parité, un des systèmes de contrôle les plus simples appelé bit de parité (ouVRC: Vertical Redundancy Check). Dans ce schéma simple de co- dage, un bit supplémentaire (le bit de parité) est ajouté aux K bits de données pour former le mot de code de tailleN=K+1 . Généralement K = 7 bits, ce qui forme un octet avec le bit de parité [3].

Ce bit de parité prend une valeur (’0’ ou ’1’) de manière à ce que le nombre total de bits à ’1’ dans le mot de code soit pair. Ainsi, un ’1’ sera ajouté si le nombre de bits du mot à coder est impair, un

’0’ dans le cas contraire. Ce principe de base est étendu dans le cas des codes LDPC où plusieurs équations de parité permettent de définir la séquence redondante à ajouter. Ces équations sont regroupées pour former la matrice de parité. Chaque code LDPC est défini par une matrice de parité unique H, de dimensionm×N . Il y a alorsm équations de parité. Le nombre de ’1’ par ligne, appelé poids du code, correspond au nombre de bits mis en jeu dans l’équation de parité. La particularité des codes LDPC est que la matrice de parité est creuse, c’est-à-dire qu’elle ne contient qu’un très faible nombre d’éléments non nuls donc comporte beaucoup de ’0’. Ceci permet d’avoir un schéma de décodage simplifié et donc un décodage rapide comparé aux autres types de codes en blocs usuels. Une représentation classique de la matrice H se fait par un graphe de Tanner, aussi

(26)

Chapitre 1. LES CODES CORRECTEURS D’ERREURS

appelé graphe bipartite, comme celui présenté à la figure 1.3.

Figure 1.3 – Graphe factoriel d’un code LDPC

H=

1 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 1 1

Dans cette représentation, les carrés symbolisent les nœuds de parité, et leur nombre correspond au nombre de bits participant à l’équation de parité. Il y en a donc autant que de lignes dans la ma- trice H, c’est-à-direm. Les ronds symbolisent les nœuds de variable, leur nombre correspond au nombre de bits incidents au décodeur qui sont testés par les équations de parité, il y en a donc N (c’est-à-dire le nombre de colonnes de H). Chaque bit à ’1’ dans la matrice de parité est représenté sur le graphe de Tanner par une liaison entre le nœud de variable et le nœud de parité, corres- pondant à sa position dans la matrice. Ainsi, siwc est le poids des colonnes de la matrice, chaque nœud de variable est lié àwcnœuds de parité.De même, si on notewlle poids d’une ligne, chaque nœud de parité (ou nœud de contrôle) est lié àwl nœuds de variable.

Lors du décodage, les opérations de contrôle de parité sont représentés par des échanges via ces liaisons entre les nœuds de variables et de parité. Le schéma de codage et décodage utilisant un algorithme itératif peut être représenté d’une manière générale comme sur la figure 1.4.

Réalisé par Eric Géraud Sègnon SAVY 13

(27)

Figure 1.4 – Chaîne de transmission avec codage/décodage [3]

Le graphe factoriel est une représentation graphique très simple du code. Ce graphe permet no- tamment d’illustrer les algorithmes de décodage associés aux codes LDPC qui seront présentés par la suite [18]. Au niveau de la réception, un algorithme itératif dont le rôle est de déterminer la séquence la plus probable, est mis en place. Une décision est prise sur les bits composant le mot reçu et un test est effectué à chaque itération pour vérifier si le mot décidé est un mot de code ou non. Cette opération est réalisée par la multiplication du mot décidé avec la matrice H transposée de sorte à vérifier l’équation de parité. Tant que le mot décidé n’est pas un mot de code et tant que le nombre maximal d’itérations n’est pas atteint, les itérations se poursuivent. La pertinence de l’utilisation de codes LDPC repose sur les caractéristiques des éléments du décodage qui sont principalement la structure de la matrice de parité ainsi que l’algorithme de décodage utilisé.

Les paragraphes suivants présentent les algorithmes pour le décodage des codes LDPC, en se li- mitant aux codes LDPC binaires. L’algorithme qui sera particulièrement développé est celui basé sur la propagation de croyance car cet algorithme sera celui utilisé pour le décodage des codes LT.

1.6.3 Décodage des codes LDPC

Dans cette partie nous nous intéressons au décodage itératif souple des codes LDPC. L’algorithme de décodage itératif présenté initialement par Gallager, revu ensuite par MacKay dans le cadre de la théorie des graphes, est connu sous le nom : algorithme de propagation de croyance(Belief Pro- pagation : BP). Cet algorithme peut être vu comme un algorithme d’échange d’informations entre les nœuds du graphe à travers les branches. Ces messages transitant de nœuds en nœuds portent une information probabiliste sur l’état des nœuds. Ainsi, comme variante de cette méthode de dé- codage nous avons : sum-product algorithm (SPA).

(28)

Chapitre 1. LES CODES CORRECTEURS D’ERREURS

Algorithme de propagation de croyance [21]

L’algorithme de propagation de croyance peut se décomposer en plusieurs étapes. Une première phase consiste à calculer les messages se propageant d’un nœud de données à un nœud de contrôle (cf figure 1.5). Une seconde étape calcule les messages générés au niveau des nœuds de contrôle.

Une fois l’ensemble des messages mis à jour, ceux-ci sont propagés des nœuds de contrôle vers les nœuds de données (cf figure 1.6). Enfin, après un certain nombre d’itérations, l’information a pos- teriori associée à chaque nœud de données est mise à jour avant la prise de décision. Par la suite, les messages probabilistes seront exprimés en log-rapport de vraisemblance. Nous noteronsmvc4

les messages se propageant d’un nœud de donnée à un nœud de contrôle. De la même façon, la notationmc v5est utilisée pour désigner les messages issus d’un nœud de contrôle et transmis à un nœud de donnée. La mise à jour des messagesmvcissus du nœud de donnéesv à l’itérationi est calculée de la façon suivante (cf figure 1.6) [21] :

mivc=v0+ X

c²Cv/c

mic0v1 (1.10)

v0représente le log-rapport de vraisemblance issu de l’observationyv en sortie du canal :

v0=lnP r(yv|v=0)

P r(yv|v=1) (1.11)

Cv représente l’ensemble des nœuds de contrôle connectés au nœud de donnéesv. A la première itération, les messages provenant des nœuds de contrôle sont nuls.

Figure 1.5 – Illustration de la mise à jour des messages se propageant d’un nœud de données vers un nœud de contrôlemvc.

La deuxième étape de l’algorithme de propagation de croyance consiste à mettre à jour les mes- sages en sortie d’un nœud de contrôle. Les messagesmc v sont calculés à l’itérationi de la façon suivante (cf figure 1.6) :

si g n(mc vi )= Y

v0²V c

si g n(miv0c)

4. message from variable to check node 5. message from check to variable node

Réalisé par Eric Géraud Sègnon SAVY 15

(29)

|mc vi | =f Ã

X

v0²Vc/v

f(|miv0c|)

!

Vc représente l’ensemble des nœuds de données connectés au nœud de contrôlec. Une ité- ration de l’algorithme de propagation de croyance est réalisée lorsque tous les messages se pro- pageant le long des branches ont été calculés par les deux relations précédentes. Après chaque itération, une décision peut être prise sur l’information a posterioriAi vassociée au nœud de don- néesv :

Aiv =v0+ X

c0²Cv

mic0v (1.12)

La décision sur la valeur binaire de chaque nœud de données est donc calculée en fonction du signe de l’information a posteriori. Le processus itératif est arrêté au bout d’un nombre maximum d’itérations. On peut également arrêter le processus itératif avant le nombre maximum d’itérations en calculant à chaque itération le syndrome. Si celui-ci est nul alors le décodage itératif a convergé vers un mot de code et le processus peut être arrêté.

Figure 1.6 – Illustration de la mise à jour des messages se propageant d’un nœud de contrôle vers un nœud de donnéesmc v.

Conclusion

Dans ce chapitre, il a été présenté un bref historique des codes correcteurs d’erreurs. Cet histo- rique parcoure l’évolution du codage de canal depuis les bases de la théorie de l’information en 1948 pour aboutir aux dernières trouvailles, notamment les codes fontaines et leurs diverses amé- liorations. Aussi nous avons fait un état de l’art en matière de l’implémentation du codage de canal au niveau physique, cas d’un support optique. Dans ce cadre, nous avons présenté les codes Reed Solomon et LDPC. Dans le chapitre suivant, nous parlerons des codes fontaines, et tout particu- lièrement des codes LT, objet de cette étude.

(30)

Chapitre 2

LES CODES FONTAINES : Code Luby Transform (LT)

Introduction

Les codes fontaines représentent une classe de codes proposée par la startup Digital fountain dans [5]. Ce type de code a fortement influencé la conception de codes correcteurs d’erreurs pour les canaux à effacement, modèle de canal approprié pour internet. Ils sont utilisés dans plusieurs domaines, notamment pour le codage réseau et le stockage de données de masse. Cette famille de codes a connu plusieurs implémentations dont la première réalisée fut le code LT. Le code fontaine le plus récent est le code Raptor, basé sur le code LT mais précédé d’un précodage.

Il s’agira dans ce chapitre de présenter la genèse des codes fontaines, de présenter le code LT, son principe d’encodage et de décodage pour des canaux à effacement.

2.1 Codes Fontaines

La Digital Fountain a imaginé un protocole pour la transmission d’un même fichier à de nombreux utilisateurs qui désirent y accéder à différents moments en utilisant parfois des canaux identiques.

Le nom est tiré d’une analogie à une fontaine où beaucoup de personnes peuvent remplir leurs tasses d’eau, à tout moment, ceci indépendamment des autres. Les paquets de la fontaine numé- rique doivent être universels, exactement comme des gouttes d’eau et par conséquent être utiles indépendamment du temps ou de l’état du canal d’un utilisateur.

Considérons un fichier qui doit être découpé enK paquets ou symboles d’information encodés pour un canal à effacement de paquets (PEC : Packet erasure channel), une fontaine digitale qui transmet cette information doit avoir ces différentes propriétés :

— Pouvoir générer une suite infinie de paquets encodés avec un coût d’encodage identique par paquet en termes de temps ou d’opérations arithmétiques.

17

(31)

— Tout utilisateur peut reconstruire le fichier à l’aide de n’importe quelK+²paquets avec un coût constant par paquet décodé. Dans ce cas,on dit que le décodage est linéaire enK.

— L’espace nécessaire pour les données durant l’encodage et le décodage est une fonction li- néaire deK.

Ces propriétés montrent que la fontaine numérique est fiable et efficace pour remplacer les sys- tèmes TCP (Transport Control Protocol). Elles montrent aussi que la fontaine numérique est uni- verselle et tolérante : propriétés intéressantes en concept de réseau. Pour présenter les différents aspects de cette famille de codes, nous commencerons d’abord par introduire quelques concepts liés aux codes fontaines.

2.1.1 Canal binaire à effacement

Introduit en 1995, le concept de canal binaire à effacement ou Binary Erasure Channel(BEC) re- présenté à la Figure 2.1, prend en entrée un symbole binaire et le transforme en un symbole qui appartient à 0, 1,e oùe représente l’effacement qui se produit avec la probabilitépe. Chaque bit transmis sur le canal est soumis à la probabilité 1−ped’être transmis avec succès ou avec la pro- babilitéped’être effacé. La capacité du canal binaire à effacement est égale à 1−pe.

Figure 2.1 – Canal à effacement

2.1.2 Canal à effacement de paquet

Dans la majorité des applications, au lieu de considérer la transmission individuelle de chaque bit d’information, on considère la transmission d’un ensemble de bits formant un paquet. Nous faisons appel ainsi au canal à effacement de paquets pour modéliser la probabilité de réception de chaque paquet sur le lien. En plus du codage correcteur d’erreurs, un code détecteur d’erreurs est appliqué sur les paquets. Le paquet est considéré comme transmis avec succès si aucune er- reur n’est détectée. On utilise, par exemple, pour la détection d’erreurs le code de parité, le bit de contrôle et/ou la redondance cyclique, Cyclic Redundancy Check (CRC). Le paquet est considéré soit transmis avec succès ou sinon totalement effacé avec la probabilité d’effacement de paquet peégale à la probabilité d’erreur par paquet, Packet Error Rate (PER). La capacité de canal à effa- cement par paquet est égale à 1−pe.

(32)

Chapitre 2. LES CODES FONTAINES : Code Luby Transform (LT)

2.1.3 Loi de distribution des degrés

Les codes fontaines sont fortement inspirés des codes basés sur les graphes et le décodage itéra- tif. En fait, un aspect crucial des implémentations pratiques est la conception de graphe biparti, semblable à celui utilisé pour les codes LDPC. L’un des processus les plus importants dans la réa- lisation d’un code fontaine est l’attribution des degrés aux nœuds de variable. Il est implémenté par un outil stochastique pour ces modèles.

Considérons une fonction densité de probabilité sur 0, ...,D, avec valeurs ω0, ...,ωD telles quePD

i=0ωi =1 et une variable aléatoire y satisfaisantP(y=i)=Ωi . Sans perte d’informations, nous pouvons définir un polynôme générateur de cette distribution :ω(x)=PD

i=0ωixi. Ceci veut dire que la valeur de l’espérance mathématique de toute variable aléatoire générée à par- tir de cette distribution estω0(x) : la dérivée du polynôme générateur par rapport àx.

Cette notation peut être utilisée pour décrire les nœuds et les arêtes sur un graphe biparti aléatoire.

On appelle degrédd’un nœud, le nombre d’arêtes qui lui sont connectées. A l’inverse, une arête est de degréds’il est connecté à un nœud de degréd. En ce qui concerne le degré d’une arête, il est fonction du sens de parcours.

En considérant Λ(x) et p(x) respectivement, les distributions de degré des nœuds de droite et gauche6, cela signifie que la probabilité qu’un nœud soit de degréd estΛd ouPd. Nous pouvons décrire le même graphique à l’aide de distributions de degré sur les arêtes gauches et droites, notés λ(x) etρ(x) respectivement. S’il existeL nœuds de gauche, Rnœuds de droits etE arêtes, alors λd=Ld·Λd/Eetρd=Rd·Pd/E. Dans la réalisation des codes fontaines, le code Reed Solomon a été le premier né de la famille suivi du Tornado code [4]. La première implémentation sans rendement (ou à rendement pseudo infini) est le code LT, puis le code Raptor.

Dans la suite de ce chapitre nous allons présenter le code LT, code que nous voulons implémenter dans une liaison optique.

2.2 Code LT

Le code LT (Luby Transform) a été proposé par Micheal Luby en 2002 [5]. Il fut la première réa- lisation pratique des codes fontaines. Il présente un rendement potentiellement infini. À partir d’un message de tailleK, une infinité de symboles encodés peuvent être générés. Ce type de code est particulièrement attrayant de par sa simplicité d’encodage et de décodage. En effet, il est très intéressant de par sa faible complexité de codage. L’encodage du code LT a une complexité en O(ln(K)) opérations par paquet envoyé. La reconstruction générale de K fragments peut être ef- fectuée à partir de n’importe quelle combinaison deK+O(p

K·ln2(K)) paquets en utilisant un décodeur itératif qui a un coût de l’ordre deO(K·ln(K)) [4] . Le nombre de symboles nécessaires

6. En considérant un graphe biparti,les deux sous-ensembles de sommets.

Réalisé par Eric Géraud Sègnon SAVY 19

(33)

au décodage tend versK lorsque la dimensionK du code tend vers l’infini. Autrement dit le code LT est asymptotiquement parfait. Le code LT peut être représenté par un graphe biparti similaire à celui du code LDPC. Néanmoins ; à la différence du code LDPC où les redondances sont présen- tées sur la droite du graphe biparti, ces éléments pour la représentation du code LT résultent des combinaisons linéaires XOR entre les fragments initiaux sous une forme non systématique.

Figure 2.2 – Génération des symboles encodés

2.2.1 Construction du code

2.2.1.1 Encodage

Un nombre de symboles encodés indépendants est généré à partir deksymboles sources suivant le processus ci-après :

— Déterminer le degrédd’un symbole à encoder. Le degré est choisi de façon aléatoire d’une loi de distribution P(x).

— Choisir d différents symboles d’information ou symboles sources aléatoirement de façon uniforme. Ils seront les voisins du symbole à encoder.

— Attribuer la valeur du XOR desdsymboles d’information choisis au symbole à encoder.

Ce processus est semblable à la génération des bits de parité dans le LDPC à l’exception que les symboles d’information ne sont pas transférés.

La Loi de distribution de degré P(x) provient du fait que nous pouvons dessiner un graphe biparti (Cf figure 1.2). En clair, ceci revient qui consiste à avoir les symboles d’information comme nœuds

(34)

Chapitre 2. LES CODES FONTAINES : Code Luby Transform (LT)

de variable et les symboles encodés comme nœud de contrôle. La distribution de degrés détermine les performances des codes LT, de même que le nombre de symboles encodés et la probabilité de succès de décodage. L’encodage des codes LT est réalisé selonl’Algorithme 1qui a comme para- mètre important la distribution RSD. Cette distribution est définie par rapport aux probabilités de choisir exactementdfragments à combiner dans un paquet donné. La combinaison des fragments se fait par l’addition modulo 2. Cet algorithme s’arrête lorsque le décodeur reçoit suffisamment de paquets pour décoder ou bien lorsqu’un temps d’attente maximal (timeout) est atteint pour un fonctionnement au niveau applicatif.

Algorithm 1Encodage du code LT

while ( on n’a pas reçu l’indication d’arrêter ) do choisirdà l’aide de la distribution RSD

choisir aléatoirement et uniformémentdfragments parmiK tel que l’ensemble de fragments choisis F égal à©

f1,f2, ...,fdª faire en-tête

envoyerpj=f1f2⊕....⊕fd incrémenterNt x

end while

2.2.1.2 Décodage

Les symboles encodés sont transférés à travers un canal à effacement avec probabilité d’efface- mentp. La spécificité des canaux à effacement est que le receveur reçoit les données correctes ou ne reçoit rien. Donc chaque donnée reçue est une donnée fiable, il n’y a aucune confusion sur son information.

Ainsi pour décoder les codes LT, un décodeur a besoin de connaître les voisins de chaque symbole encodé. Cette information concernant les voisins peut être transférée de différentes manières. Par exemple, chaque symbole sera envoyé avec la liste de ses voisins. Avec les symboles encodés et la liste de leurs voisins le décodeur peut recouvrer les symboles d’information en suivant les étapes suivantes :

1. Libération

Tous les symboles encodés de degré 1, ceux qui ne sont connectés qu’à un symbole d’infor- mation, sont libérés pour retrouver leur unique voisin.

2. Couverture

Les symboles encodés libérés couvrent leur unique symbole d’information. A ce stade, les symboles d’entrée sont recouvrés mais pas encore traités, ils sont envoyés dans une file, qui contient les symboles d’information couverts mais non traités qui ont été assemblés à l’itération précédente.

3. Procédure

Un symbole d’information dans la file est choisi pour être traité : les arêtes reliant le sym-

Réalisé par Eric Géraud Sègnon SAVY 21

(35)

bole d’information à ses voisins sont supprimées et la valeur de chaque symbole de codage change selon le symbole de l’information. Le symbole d’information traité est supprimé de la file.

Cette technique découpée en 3 étapes repose sur le fait que les paquets de degré 1 peuvent être considérés comme décodés. Ainsi, à l’aide des paquets déjà décodés, le décodeur réduit à chaque itération le degré de paquets codés jusqu’à ce que tous les fragments soient décodés. La quantité de paquets nécessaires pour pouvoir décoder sans erreur est de l’ordre deK+εεest le taux de redondance du code. Cette méthode de décodage peut être décrite par l’Algorithme 2:

Algorithm 2Décodage du code LT

while ( Le décodage n’est pas fini et qu’il existe encore dans la mémoireβau moins un paquet de degré 1) do

fj←paquet de degré 1 de la mémoire for ∀p²β do

if pcontientfj thenppfj end if

end for end while

2.2.2 Distribution de degré

Le rendement des codes LT est pseudo infini. Ils peuvent produire une infinité de symboles à partir d’un nombreK fixe de symboles d’information. Ainsi leur particularité est qu’avec ce nombre fixe de symboles d’information, on peut avoir une probabilité de succès aussi élevée que possible. En d’autres termes :

— Le taux de libération des symboles est assez faible pour assurer une petite taille de la file et prévenir un gaspillage de symboles encodés ; Un petit nombre de symboles encodés est nécessaire pour assurer le succès du processus LT. Il faut garantir aussi que ce nombre de symboles encodés assurant le succès du processus corresponde au nombre de symboles qui garantit le recouvrement des données ;

— Le taux de libération est maintenu à une valeur limite pour éviter que le processus ne s’arrête brusquement avant recouvrement de tous les symboles d’information. Le degré moyen des symboles encodés doit être aussi petit que possible. Cette moyenne représente le nombre moyen d’opérations nécessaires pour générer un symbole encodé. Le degré moyen multi- plié par le nombre de symboles encodés est le nombre moyen d’opérations pour recouvrer entièrement la donnée.

La distribution de degré des codes LT doit être élaborée de manière spécifique pour respecter ce compromis. Dans la partie qui suit nous nous proposons de présenter différentes distributions de degré notamment la plus utilisée celle proposéess par Luby M. [5], la distribution Robuste Soliton.

(36)

Chapitre 2. LES CODES FONTAINES : Code Luby Transform (LT)

2.2.2.1 All-at-one distribution

En ce qui concerne les codes LT, cette distribution correspond à générer chaque symbole encodé en utilisant un seul symbole d’information choisi de façon aléatoire. La valeur de ce symbole en- codé sera celle du symbole d’information choisi. L’analyse classique du processus balls into bins7 implique qu’il faut K·ln(K/δ) symboles encodés pour retrouver K symboles d’entrée avec une probabilité d’au moins 1−δ,δ(probabilité d’effacement). Cela induit que pour n’importe quelle distribution il faut au moins Kln(K/δ) symboles encodés pour retrouver K symboles d’entrée.

Suite à cette distribution, la distribution idéale de soliton a été envisagée.

2.2.2.2 Ideal soliton distribution

Une propriété basique pour toute distribution de degré est que les symboles d’information ajoutés à la file doivent être traités au même rythme. Cette propriété a inspiré le nomSoliton distribution à cette distribution. Dans l’idéal, pour éviter la redondance, il faut que l’algorithme de décodage libère un symbole codé de degré 1 à chaque itération. En moyenne ce comportement idéal est obtenu en utilisant la distributionideal soliton:





ρ(1)=1/K ρ(d)= 1

d(d−1) pourd=2, 3, ...,K

Cependant, cette distribution des degrés ne possède pas de bonnes performances pour des lon- gueurs deK pratiques car elle conduit souvent à une absence de symbole codé de degré 1.

2.2.2.3 Robust soliton distribution

La distribution de Soliton robuste (RSD) a été proposée pour que le décodage se poursuive de ma- nière efficace. Il est nécessaire que le degré du paquet soit assez grand pour assurer que chaque fragment d’information soit contenue dans au moins un paquet encodé. De plus, le degré des pa- quets doit rester faible de manière à permettre le déroulement du processus de décodage à chaque itération. Théoriquement, la distribution de soliton idéale proposée par Luby permet de vérifier ces propriétés. Néanmoins elle n’est pas très efficace en pratique. Le décodage s’interrompt occa- sionnellement du fait d’un manque de paquets de faible degré. De plus, certains fragments n’ap- paraissent pas souvent dans les paquets.

Pour contrer ces problèmes, Luby a proposé l’amélioration de cette distribution avec la distribu- tion RSD. On assure que l’espérance du nombre de paquets de degré un est approximativement égale à :

7. Le processus balls into bins est un problème classique dans la théorie des probabilités qui a de nombreuses applications en informatique. Une boule est insérée dans un casier choisi de façon aléatoire à chaque itération jusqu’à ce qu’il n’y est plus de boules.

Réalisé par Eric Géraud Sègnon SAVY 23

(37)

Rc·l n(K δ)p

K

avecc etδdes nombres réels donnés. De cette manière, la distribution Soliton robuste peut être exprimée comme :

τ(d)=









R/(i·K) pourd=1, ...,K/R−1 Rln(R/δ)

K pourd=K/R

0 pourd=K/R+1, ...,K

(2.1)

Ensuite on additionne la distribution idéale de solitonρ(d) etτ(d) et on normalise pour avoirµ(d) β=

k

X

d=1

ρ(d)+τ(d)

µ(d)=

¡ρ(d)+τ(d)¢

β pourd=1, ...,K. (2.2)

La distribution RSD est asymptotiquement optimale c’est-à-dire que le rendement du code tend vers 1 lorsque la dimension du codeK tend vers l’infini.Cependant, pour des longueurs de code petites, la redondance introduite par le code n’est pas négligeable par rapport à la dimension K.

Plusieurs techniques pour optimiser la distribution de degré sont proposées pour K petit dans [22].

Conclusion

Les codes LT proposés par Luby [5] appartiennent à la famille des codes fontaines , codes sans ren- dement ou à rendement infini. Il a été présenté le code LT, son principe de codage et de décodage, ainsi que différents mécanismes lors de la construction de ce code, notamment la loi de distribu- tion. A cet effet, plusieurs distributions ont été présentées, entre autres lesdistributions idéaleet robuste soliton. Ces différents paramètres des codes LT seront les principaux facteurs sur lesquels nous nous baserons pour l’adaptation dans le cas d’un canal optique.

(38)

PARTIE II :

APPROCHE MÉTHODOLOGIQUE

25

(39)

CHAINE DE TRANSMISSION OPTIQUE : Modèles de canal

Introduction

Nous nous proposons de présenter dans ce chapitre les différents composants intervenant dans une liaison optique simple. Ensuite, nous aborderons les différents modèles adoptés pour simu- lerde telles liaisons en prenant en compte les effets non désirés opérant au cours de la transmis- sion. Toutes ces considérations sont traitées, dans le but d’une meilleure adaptation du code LT dans une chaîne de transmission au niveau physique.

3.1 Synoptique générale d’une chaîne de transmission optique

De façon classique, une chaîne de transmission peut se regrouper en 3 grands modules : l’émet- teur, le canal et le récepteur. Au delà de ces différents modules, nous pouvons avoir des modules intégrant le codage, différents formats de modulation etc. La figure suivante présente une descrip- tion générale de cette chaîne :

Figure 3.1 – Synoptique chaîne de transmission

Références

Documents relatifs

L'addition d'accélérateurs rend le mécanisme de durcissement beaucoup plus rapide.. Quel est la différence entre le gel coat du moule et le gelcoat du stratifié ?. Il faut utiliser

À partir des quatre premiers bits du message reçu, on recalcule les 3 bits de contrôle, et on les compare avec les bits de contrôle reçus.. Sans justification, recopier et

،ةماعلا ةباينلا ةدعاسمب دةمكحملا دتذختا ،ناونعلا دلوهجم بائاغلا ناك اذإ.. نييعت كلذ يف امب ،هيلإ ةجوزلا ىوعد غيلبت ىلع دعاست دتاءارجإ نم هارت ام هيلع اهتقلط رضحي مل

- Roi de tous les Marocains, Nous ne légiférons pas en faveur de telle ou telle catégorie, telle ou telle partie. Nous incarnons la volonté collective de la Oumma, que

- de présenter le moins de listes incomplètes possibles par collège, - de présenter, dans le cas d’une liste comportant au moins deux sièges à pourvoir dans un collège où il y

[r]

[r]

b) les conditions de la prestation de services d'équilibrage. Nonobstant le paragraphe 2, les États membres peuvent prévoir que les autorités de régulation soumettent à