• Aucun résultat trouvé

Les métriques de performances peuvent s’obtenir de deux façons : de manière analy-tique, ou bien à partir de simulations.

3.4.1 Méthodes analytiques

Les méthodes analytiques consistent à utiliser la connaissance du code afin de modéliser son décodage, et à en déduire certaines métriques. Ce types de méthodes dépend fortement du code étudié. Pour certains codes (par exemple les codes Reed-Solomon) , des arguments théoriques d’algèbre linéaire sont souvent suffisants pour déterminer les caractéristiques d’un code donné. Alors que pour les codes à matrice creuse décodés par un algorithme itératif, des outils statistiques sont nécessaires. L’analyse des stopping sets et l’analyse par évolution de densité des codes LDPC (voir section 2.5.5) sont deux exemples de méthodes analytiques.

L’étape de modélisation nécessite parfois des hypothèses qui vont donner au résultat un caractère général. Par exemple pour l’analyse par évolution de densité des codes LDPC, il faut faire l’hypothèse que le code est de longueur infinie. Pour l’énumération des stopping sets des codes LDPC on considère des codes de longueur finie, mais on considère des ensembles de codes plutôt qu’un code en particulier.

Les méthodes analytiques constituent un ensemble d’outils pour évaluer les codes sous un ensemble d’hypothèses plus ou moins réalistes. Elles ont l’avantage d’être calculables rapidement permettant une optimisation des performances du code en fonction de ses différents paramètres. Cependant elles demeurent la plupart du temps insuffisantes pour déterminer les performances dans un environnement réel.

3.4.2 Simulations

Afin d’évaluer les performances effectives d’un système dans des conditions précises, il faut faire appel aux techniques de simulations. Ces méthodes reposent sur la mesure du comportement d’un système dans des conditions particulières. En particulier la dimension, la longueur du code et la taille des symboles doivent être fixées. Ces résultats peuvent être exploités directement, ou alors être produits en plus grand nombre afin d’en déduire le comportement moyen du système.

3.4. MÉTHODES D’ÉVALUATION DE PERFORMANCES 59

Simulations de type Monte-Carlo

Une méthode de Monte Carlo est une technique calculant une grandeur à partir de processus aléatoires. Ces méthodes reposent sur l’exécution d’un grand nombre d’expéri-ences et nécessitent donc une grande quantité de calculs. Les méthodes de Monte Carlo ont été introduites [73] pour résoudre des problèmes dont la résolution analytique était trop complexe. Ces méthodes reposent sur le principe suivant lequel l’observation d’un grand nombre de réalisations d’expériences permet de capturer le comportement moyen du système.

Afin d’estimergela valeur moyenne d’une fonction g de variable aléatoire X , on effectue un échantillonnage en N points différents tirés au hasard. La technique la plus simple et la plus couramment utilisée est la technique basée sur la loi des grands nombres. SoitegN la moyenne empirique obtenue à partir de N tirages aléatoires indépendants, elle s’écrit :

e gN= N

i=1 g(Xi) N

La loi des grands nombres nous dit que : ∀ε > 0 , lim

N→+∞P (|fgN−g|e ≥ ε) = 0

Dit autrement, en augmentant le nombre de mesures de la fonction g on diminue la probabilité que la moyenne empirique s’éloigne au plus de ε de la valeur moyenne,eg.

A partir de cette technique il est possible de construire une méthode d’évaluation des performances d’un code. Soit f la métrique observée sur le code et soit X la variable aléatoire permettant de générer une transmission. Une transmission va comprendre un ensemble d’effacements, mais aussi un possible ordonnancement des symboles. On notera que la répartition des effacements entre les symboles sources et les symboles de redondance peut avoir un impact sur les performances [79]. En effectuant N expériences indépendantes, on obtient un ensemble de valeurs F = { f (Xi)}0≤i≤N. A partir de cet ensemble, on peut calculer la moyenne empirique, mais aussi des intervalles de confiance et plus généralement toute mesure de la statistique descriptive (médiane, variance, etc...).

Il est généralement admis que pour obtenir une précision à 10−bprès, il est nécessaire d’effectuer au moins 10b+2 expériences. Lorsque l’on s’intéresse à la probabilité d’erreur, il est souvent nécessaire d’obtenir une précision de 10−5, ceci implique d’effectuer 107 expériences différentes (cela peut parfois représenter plusieurs jours de simulations sur une station de travail).

Modèle de canal et ordonnancement des symboles : Comme indiqué précédemment, l’identité des symboles effacés a un impact sur l’issue du décodage. En effet tout les symboles ne sont pas nécessairement équivalents, en particulier pour les codes non MDS. Pour un nombre d’effacements donné, des répartitions différentes pourront induire des issues du décodage totalement différentes. La répartition des effacements va dépendre de deux éléments : le modèle de perte du canal et l’ordonnancement des symboles lors de la transmission. Deux types de modèles de perte peuvent être considérés :

– les modèles sans mémoire, représentant des pertes indépendantes. La perte d’un symbole est indépendante des autres symboles et est uniquement déterminée par un tirage aléatoire suivant une certaine loi de probabilité.

– les modèles ”Markoviens“ représentant la dépendance entre les pertes. Dans ce type de modèle, la qualité du canal varie entre plusieurs états au cours de la transmission. La perte d’un symbole dépend alors de l’état courant du canal. Ces modèles sont habituellement représentés avec une chaîne de Markov. Le modèle le plus simple étant une chaîne à deux états : ”mauvais“ et ”bon“, auxquels on adjoint des proba-bilités de transitions. A partir de ce modèle et d’un générateur aléatoire, une suite d’états du canal est calculée et un schéma de pertes en est déduit. Ce genre de modèle est particulièrement utile pour modéliser les pertes en rafale. Une étude de ce types de canaux est présentée dans .

L’ordre de transmission des symboles peut être choisi par l’émetteur afin d’augmenter la robustesse du système. Trois modes de transmission pourront être considérés :

– La transmission dans un ordre séquentiel. Les symboles sont transmis dans leur ordre naturel à la sortie de l’encodeur. Lorsque l’encodeur est systématique, les symboles sources sont généralement envoyés avant les symboles de parité, mais l’inverse peut être considéré.

– La transmission dans un ordre aléatoire. Les symboles subissent une permutation aléatoire à la sortie de l’encodeur. L’avantage de ce type de transmission est que quel que soit le modèle de perte du canal, d’un point de vue du code, la répartition sera équivalente à un schéma de pertes indépendantes. Ceci est particulièrement utile pour réduire l’impact des pertes en rafale sur les codes qui y sont sensibles. En faisant l’hypothèse que ce type d’ordonnancement est utilisé on peut s’abstenir de considérer le modèle de perte, puisqu’ils seront tous équivalents.

– Une permutation déterministe des symboles, aussi appelé entrelacement. Un exemple d’entrelacement est d’envoyer dans un premier temps les symboles d’indice i tel que imod B = 0 puis les symboles d’indice i tel que i mod B = 1, et ainsi de suite. Ainsi, si B est plus grand que la longueur des rafales de pertes, celles-ci seront dispersées sur l’ensemble des symboles.

Les simulations de type Monte-Carlo possèdent l’avantage d’être capables d’estimer les performances d’un code en particulier, avec une précision arbitraire. Cependant cette précision a un coût en temps de calcul, et la précision des estimations est souvent limitée par la puissance de calcul disponible. Il faut également noter que ces simulations reposent sur des modèles de transmission pouvant être trop grossiers pour capturer le comportement des transmissions réelles.

Exemple de méthode pratique de simulation de Monte Carlo

Nous détaillerons dans ce paragraphe une méthode efficace réduisant le nombre de simulation à effectuer. Supposons que nous souhaitons obtenir les capacités de correction du décodage ML avec une précision à 10−5près, pour un code LDPC de dimension k = 1000 et un rendement R = 2/3. Il faut alors considérer le nombre minimal de symboles, nML, pour lequel le décodage ML termine avec succès. Cette quantité peut être encadrée par la dimension du code k et le nombre de symboles , nIT, nécessaires au succès du décodage IT : k ≤ nML≤ nIT.

Pour s’abstenir de considérer le modèle de pertes, on utilise un ordre de transmission aléatoire. Un autre avantage de l’ordre de transmission aléatoire est que pour tester le succès du décodage avec nr symboles reçus aléatoirement, il suffit de considérer les nr

premiers symboles de la transmission. Ainsi en incrémentant nr on ajoutera, à l’ensemble des symboles reçus, un symbole choisi aléatoirement parmi les n − nr symboles restants.