En 1993, grâce à leurs nouveaux codes correcteurs d'erreurs, les turbo-codes, Berrou et al. obtiennent des performances proches de la limite théorique de Shannon. Cette découverte est à l'origine de nouvelles approches, ne se limitant pas au domaine du codage canal, et connues sous le nom de techniques turbo'', alliant d'excellentes performances à une complexité algorithmique raisonnable. L'idée initiale était de voir comment appliquer les idées graphiques de décodage approché aux codes courts, d'où la nécessité d'orienter le travail vers l'étude du comportement de la propagation dans les graphes cycliques, et vers une approche plus locale du problème. Des éléments de réponse et, dans certains cas, des améliorations ont été apportés à ces problèmes. Un travail sur le codage conjoint source-canal a été mené en parallèle : c'est une nouvelle application, probante, de la méthode turbo''. Elle montre à la fois la puissance de cette idée et la commodité du formalisme des réseaux bayésiens.
En 1993, grâce à leurs nouveaux codes correcteurs d'erreurs, les turbo-codes, Berrou et al. obtiennent des performances proches de la limite théorique de Shannon. Cette découverte est à l'origine de nouvelles approches, ne se limitant pas au domaine du codage canal, et connues sous le nom de techniques turbo'', alliant d'excellentes performances à une complexité algorithmique raisonnable. L'idée initiale était de voir comment appliquer les idées graphiques de décodage approché aux codes courts, d'où la nécessité d'orienter le travail vers l'étude du comportement de la propagation dans les graphes cycliques, et vers une approche plus locale du problème. Des éléments de réponse et, dans certains cas, des améliorations ont été apportés à ces problèmes. Un travail sur le codage conjoint source-canal a été mené en parallèle : c'est une nouvelle application, probante, de la méthode turbo''. Elle montre à la fois la puissance de cette idée et la commodité du formalisme des réseaux bayésiens.
Dans ce travail nous nous intéressons aux problèmes liés à l'amélioration des performances d'erreur des codes LDPC. Cette amélioration peut être faite pendant la construction des codes LDPC ou pendant leur processus de décodage. Nous concentrons notre attention vers l'amélioration du décodage. Nous proposons un algorithme de décodage itératif log-SPA modifié, qui minimise l'erreur du décodage pour les mots-codes qui ne peuvent pas être décodés par l'algorithme SPA connu. L'algorithme proposé est basé sur une dépendance entre le poids d'un syndrome et le poids de la séquence d'erreurs généré au cours des itérations du décodage. Nous analysons plus en détail cette dépendance et l'effet du décodage log-SPA moyenne sur les poids des vecteurs d'erreur et les poids du syndrome, et ce, sur les ensembles de piégeage. Concernant la construction des codes LDPC, on s'intéresse aux différents paramètres qui posent des problèmes dans la performance d'erreur : au plancher d'erreur, au périmètre du graphe de Tanner, à la distance minimale du code, aux ensembles de piégeage et aux ensembles d'arrêt. On présente différentes méthodes appliquées dans la construction des différents types de codes, pour éviter l'apparition des structures non-souhaitables dans le code. Nous faisons une comparaison entre la performance des codes pseudo-aléatoires et les codes structurés, basés sur les geometries finies euclidienne et géométrique. On présente aussi différentes méthodes de construction des codes LDPC quasi-cycliques, qui peuvent éviter la formation de certains types d'ensembles de piégeage. d'ensembles d'arrêt ainsi que les cycles courts dans le graphe de Tanner. Les méthodes proposées donnent de très bas planchers d'erreur et une faible complexité du codage.
Au cours des 15 dernières années, des progrès spectaculaires dans l'analyse et la conception des codes définis par des graphes bipartites et dé-codables par des algorithmes itératifs ont permis le développement de systèmes de correction d'erreurs, avec des performances de plus en plus proches la limite théorique de Shannon. Dans ce contexte, un rôle déterminant a été joué par la famille des codes à matrice de parité creuse, appelés codes LDPC (pour « Low-Density Parity-Check », en anglais), introduit par Gallager au début des années 60 et décrits plus tard en termes de graphes bipartites. Négligés pendant de longues années, ces codes ont été redécouverts à la fin des années 90, après que la puissance du décodage itératif a été mise en évidence grâce à l'invention des Turbo-codes. Ce n'est qu'au début des années 2000 que les techniques nécessaires à l'analyse et l'optimisation des codes LDPC ont été développées, techniques qui ont permis ensuite la construction des codes avec des performances asymptotiques proches de la limite de Shannon. Cette remarquable avancée a motivé l'intérêt croissant de la communauté scientifique et soutenu le transfert rapide de cette technologie vers le secteur industriel. Plus récemment, un intérêt tout particulier a été porté aux codes LDPC définis sur des alphabets non-binaires, grâce notamment à leur meilleure capacité de correction en « longueur finie ». Bien que Gallager ait déjà proposé l'utilisation des alphabets non-binaires, en utilisant l'arithmétique modulaire, les codes LDPC non-binaires définis sur les corps finis n'ont étés étudiés qu'à partir de la fin des années 90. Il a été montré que ces codes offrent de meilleures performances que leurs équivalents binaires lorsque le bloc codé est de longueur faible à modérée, ou lorsque les symboles transmis sur le canal sont eux-mêmes des symboles non-binaires, comme par exemple dans le cas des modulations d'ordre supérieur ou des canaux à antennes multiples.Cependant, ce gain en performance implique un coût non négligeable en termes de complexité de décodage, quipeut entraver l'utilisation des codes LDPC non binaires dans des systèmes réels, surtout lorsque le prix à payer encomplexité est plus important que le gain en performance.Cette thèse traite de l'analyse et de la conception des codes LDPC non binaires pour des canaux à évanouissements. L'objectif principal de la thèse est de démontrer que, outre le gain en performance en termes de capacité de correction, l'emploi des codes LDPC non binaires peut apporter des bénéfices supplémentaires,qui peuvent compenser l'augmentation de la complexité du décodeur. La « flexibilité » et la « diversité »représentent les deux bénéfices qui seront démontrées dans cette thèse. La « flexibilité » est la capacité d'unsystème de codage de pouvoir s'adapter à des débits (rendements) variables tout en utilisant le même encodeuret le même décodeur. La « diversité » se rapporte à sa capacité d'exploiter pleinement l'hétérogénéité du canal de communication.La première contribution de cette thèse consiste à développer une méthode d'approximation de l'évolution de densité des codes LDPC non-binaires, basée sur la simulation Monte-Carlo d'un code « infini ». Nous montrons que la méthode proposée fournit des estimations très fines des performances asymptotiques des codes LDPCnon-binaires et rend possible l'optimisation de ces codes pour une large gamme d'applications et de modèles de canaux.La deuxième contribution de la thèse porte sur l'analyse et la conception de système de codage flexible,utilisant des techniques de poinçonnage. Nous montrons que les codes LDPC non binaires sont plus robustes au poinçonnage que les codes binaires, grâce au fait que les symboles non-binaires peuvent être partialement poinçonnés. Pour les codes réguliers, nous montrons que le poinçonnage des codes non-binaires obéit à des règles différentes, selon que l'on poinçonne des symboles de
Au cours des 15 dernières années, des progrès spectaculaires dans l'analyse et la conception des codes définis par des graphes bipartites et décodables par des algorithmes itératifs ont permis le développement de systèmes de correction d'erreurs, avec des performances de plus en plus proches la limite théorique de Shannon. Dans ce contexte, un rôle déterminant a été joué par la famille des codes à matrice de parité creuse, appelés codes LDPC (pour " Low-Density Parity-Check ", en anglais), introduit par Gallager au début des années 60 et décrits plus tard en termes de graphes bipartites. Négligés pendant de longues années, ces codes ont été redécouverts à la fin des années 90, après que la puissance du décodage itératif a été mise en évidence grâce à l'invention des Turbo-codes. Ce n'est qu'au début des années 2000 que les techniques nécessaires à l'analyse et l'optimisation des codes LDPC ont été développées, techniques qui ont permis ensuite la construction des codes avec des performances asymptotiques proches de la limite de Shannon. Cette remarquable avancée a motivé l'intérêt croissant de la communauté scientifique et soutenu le transfert rapide de cette technologie vers le secteur industriel. Plus récemment, un intérêt tout particulier a été porté aux codes LDPC définis sur des alphabets non-binaires, grâce notamment à leur meilleure capacité de correction en " longueur finie ". Bien que Gallager ait déjà proposé l'utilisation des alphabets non-binaires, en utilisant l'arithmétique modulaire, les codes LDPC non-binaires définis sur les corps finis n'ont étés étudiés qu'à partir de la fin des années 90. Il a été montré que ces codes offrent de meilleures performances que leurs équivalents binaires lorsque le bloc codé est de longueur faible à modérée, ou lorsque les symboles transmis sur le canal sont eux-mêmes des symboles non- binaires, comme par exemple dans le cas des modulations d'ordre supérieur ou des canaux à antennes multiples. Cependant, ce gain en performance implique un coût non négligeable en termes de complexité de décodage, qui peut entraver l'utilisation des codes LDPC non binaires dans des systèmes réels, surtout lorsque le prix à payer en complexité est plus important que le gain en performance. Cette thèse traite de l'analyse et de la conception des codes LDPC non binaires pour des canaux à évanouissements. L'objectif principal de la thèse est de démontrer que, outre le gain en performance en termes de capacité de correction, l'emploi des codes LDPC non binaires peut apporter des bénéfices supplémentaires, qui peuvent compenser l'augmentation de la complexité du décodeur. La " flexibilité " et la " diversité " représentent les deux bénéfices qui seront démontrées dans cette thèse. La " flexibilité " est la capacité d'un système de codage de pouvoir s'adapter à des débits (rendements) variables tout en utilisant le même encodeur et le même décodeur. La " diversité " se rapporte à sa capacité d'exploiter pleinement l'hétérogénéité du canal de communication. La première contribution de cette thèse consiste à développer une méthode d'approximation de l'évolution de densité des codes LDPC non-binaires, basée sur la simulation Monte-Carlo d'un code " infini ". Nous montrons que la méthode proposée fournit des estimations très fines des performances asymptotiques des codes LDPC non-binaires et rend possible l'optimisation de ces codes pour une large gamme d'applications et de modèles de canaux. La deuxième contribution de la thèse porte sur l'analyse et la conception de système de codage flexible, utilisant des techniques de poinçonnage. Nous montrons que les codes LDPC non binaires sont plus robustes au poinçonnage que les codes binaires, grâce au fait que les symboles non-binaires peuvent être partialement poinçonnés. Pour les codes réguliers, nous montrons que le poinçonnage des codes non-binaires obéit à des règles différentes, selon que l'on poinçonne des symboles de degré 2 ou des symboles de degré plus élevé. Pour les codes irréguliers, nous proposons une procédure d'optimisation de la " distribution de poinçonnage ", qui spécifie la fraction de bits poinçonnés par symbole non-binaire, en fonction du degré du symbole. Nous présentons ensuite des distributions de poinçonnage optimisées pour les codes LDPC non binaires, avec des performances à seulement 0,2 - 0,5 dB de la capacité, pour des rendements poinçonnés variant de 0,5 à 0,9. La troisième contribution de la thèse concerne les codes LDPC non binaires transmis sur un canal de Rayleigh à évanouissements rapides, pour lequel chaque symbole modulé est affecté par un coefficient d'évanouissement différent. Dans le cas d'une correspondance biunivoque entre les symboles codés et les symboles modulés (c.-à-d. lorsque le code est définit sur un corps fini de même cardinalité que la constellation utilisée), certains symboles codés peuvent être complètement noyés dans le bruit, dû aux évanouissements profonds du canal. Afin d'éviter ce phénomène, nous utilisons un module d'entrelacement au niveau bit, placé entre l'encodeur et le modulateur. Au récepteur, le module de désentrelacement apporte de la diversité binaire en entrée du décodeur, en atténuant les effets des différents coefficients de fading. Nous proposons un algorithme d'entrelacement optimisé, inspirée de l'algorithme " Progressive Edge-Growth " (PEG). Ainsi, le graphe bipartite du code est élargi par un nouvel ensemble de nœuds représentant les symboles modulés, et l'algorithme proposé établit des connections entre les nœuds représentant les symboles modulés et ceux représentant les symboles codés, de manière à obtenir un graphe élargi de maille maximale. Nous montrons que l'entrelaceur optimisé permet d'obtenir un gain de performance par rapport à un entrelaceur aléatoire, aussi bien en termes de capacité de correction que de détection d'erreurs. Enfin, la quatrième contribution de la thèse consiste en un schéma de codage flexible, permettant d'atteindre la diversité maximale d'un canal à évanouissements par blocs. La particularité de notre approche est d'utiliser des codes Root-LDPC non binaires couplés avec des codes multiplicatifs non binaires, de manière à ce que le rendement de codage puisse facilement s'adapter au nombre de blocs d'évanouissement. Au niveau du récepteur, une simple technique de combinaison de diversité est utilisée en entrée du décodeur. Comme conséquence, la complexité du décodage reste inchangée quel que soit le nombre de blocs d'évanouissement et le rendement du code utilisé, tandis que la technique proposée apporte un réel bénéfice en termes de capacité de correction.
La découverte dans les années 90 des Turbo-codes et, plus généralement du principe itératif appliqué au traitement du signal, a révolutionné la manière d'appréhender un système de communications numériques. Cette avancée notable a permis la re-découverte des codes correcteurs d'erreurs inventés par R. Gallager en 1963, appelés codes Low Density Parity Check (LDPC). L'intégration des techniques de codage dites avancées, telles que les Turbo-codes et les codes LDPC, se généralise dans les standards de communications. Dans ce contexte, l'objectif de cette thèse est d'étudier de nouvelles structures de codage de type LDPC associées à des architectures de décodeurs alliant performances et flexibilité. Dans un premier temps, une large présentation des codes LDPC est proposée incluant les notations et les outils algorithmiques indispensables à la compréhension. Cette introduction des codes LDPC souligne l'intérêt qu'il existe à concevoir conjointement le système de codage/décodage et les architectures matérielles. Dans cette optique, une famille de codes LDPC particulièrement intéressante est décrite. En particulier nous proposons des règles de construction de codes pour en contraindre le spectre des distances de Hamming. Ces contraintes sont intégrées dans la définition d'un nouvel algorithme de définition de codes travaillant sur une représentation compressée du code par un graphe. Les propriétés structurelles du code sont ensuite exploitées pour définir l'algorithme de décodage. Cet algorithme, caractérisé par le fait qu'il considère une partie du code comme un code convolutif, converge plus rapidement que les algorithmes habituellement rencontrés tout en permettant une grande flexibilité en termes de rendements de codage. Différentes architectures de décodeurs sont alors décrites et discutées. Des contraintes sur les codes sont ensuite exposées pour exploiter pleinement les propriétés des architectures. Dans un dernier temps, une des architectures proposées est évaluée par l'intégration d'un décodeur sur un composant programmable. Dans différents contextes, des mesures de performances et de complexité montrent l'intérêt de l'architecture proposée.
Pour des trames de longueurs n superieures ou egales a quelques milliers de bits (n > 1000), les turbocodes et les codes LDPC (Low-Density Parity Check) ou leurs variantes donnent d'excellentes performances avec une complexite raisonnable pour des implementations reel meme pour des debits tres eleves (GigaBit/s). Par contre pour les petites longueurs (n < 1000) de trames, les turbocodes et codes LDPC courts sont moins performants. En effet, pour avoir de grandes distances minimales dmin avec des codes de petites longueurs n et de grandes capacites de correction, il faut des codes dont les matrices de controle de parite soient de densite elevee et non creuse, c'est a dire avec beaucoup de 1 et tres peu de 0, comme celles des codes LDPC ou des turbocodes. La densite elevee de la matrice de controle du code conduit a des cycles courts dans le graphe de Tanner correspondant et donc rend les algorithmes type BP (Belief Propagation) inefficaces. L'objectif principal de cette these est donc de contribuer a ameliorer le decodage a decision douce des codes en bloc lineaires courts. Nos travaux se sont orientes, dans un premier temps, vers l'etude d'une classe particuliere de codes en bloc appeles codes Cortex. La construction Cortex repose sur l'utilisation de codes de base de petites longueurs assembles en etages relies par des permutations. Nous proposons une nouvelle methode pour estimer les variables cachees dans la structure afin de pouvoir effectuer un decodage iteratif entre les codes de base. Nous proposons une deuxieme methode de decodage qui ne necessite pas d'estimation des variables cachees en les dissimulant dans des equations booleennes. Dans un second temps nous avons elargi nos recherches a des algorithmes de decodage tres generaux valables pour tout code en bloc. Nous proposons dans ce cadre trois methodes de decodage basees sur des treillis-produits de complexite reduite construits a partir des lignes des matrices generatrice et de controle du code en bloc.
Cet article présente un nouvel algorithme d'estimation des probabilités a posteriori des bits d'un mot de code en bloc de longueur n de quelques centaines de bits au maximum, n < 1000. Le décodage quasi-optimal de ces codes courts est toujours un problème ouvert car les algorithmes de type Belief-Propagation(BP)se heurtent notamment au problème des cycles courts dans leurs graphes de Tanner d'où des performances insuffisantes pour des codes de courtes longueurs mais de grandes distances minimales relatives (d min /n). Nous proposons donc dans cet article un type d'algorithme hybride entre l'algorithme BP et l'algorithme de Viterbi. Les données initiales sont les probabilités a priori des symboles ou bits reçus et les deux matrices génératrice G et de contrôle H du code. Cet algorithme utilise les techniques de décodage classiques sur treillis comme les algorithmes BCJR ou SOVA. Mais afin d'éviter la complexité trop grande du décodage sur le treillis global du code, l'algorithme utilise des treillis produits et sectionnalisés de complexité réduite construits à partir des treillis élémentaires représentant des lignes des matrices G et H . A chaque itération les treillis échangent des informations extrinsèques sur les groupes de bits formant les étiquettes des branches de leurs sections. Les résultats de simulation ainsi que la complexité de cette méthode sont montrés à la fin de cet article pour les codes de Hamming(8,4,4) et de Golay(24,12,8) dans le cas d'un canal gaussien.