Identification aveugle des paramètres des codes convolutifs non-binaires
Résumé
Depuis de nombreuses années, tout système de communication fiable se voit dans l'obligation d'intégrer dans sa chaîne de traitement un bloc de codage canal comprenant au moins un code correcteur d'erreurs. En effet, les codes correcteurs d'erreurs permettent de protéger les bits ou symboles informatifs par ajout de bits ou symboles redondants, ceci afin de pallier la présence d'erreurs de transmission, du côté récepteur, engendrées par le canal de transmission. La majorité des travaux de recherche et des implémentations pratiques dans des systèmes embarqués réels, se sont souvent restreints à des codes manipulant des données binaires, c'est-à-dire travaillant dans le corps de Galois GF(2). Pour les codes correcteurs non binaires, les implémentations et recherches associées se sont très longtemps limitées aux codes de Reed-Solomon pour des raisons de complexité, que ce soit au niveau du codage à l'émission, mais surtout au niveau du décodage à la réception. Cependant, depuis quelques années, des algorithmes de décodage à faible complexité pour les codes LDPC non binaires ont vu le jour. Il en va de même pour les turbocodes non binaires, qui ont de bonnes propriétés comme codeurs externes pour le codage de symboles non binaires correspondant à des modulations numériques à grand nombre d'états, suscitant ainsi un grand intérêt. Dans le cadre de cette étude, nous nous sommes intéressés au cas des codes convolutifs construits sur des corps de Galois non binaires de cardinal q (GF(q)) et tout particulièrement sur ceux correspondants aux extensions de corps GF(2), c'est-à-dire les corps GF(2m). Le problème à résoudre est de savoir s'il serait possible d'identifier en aveugle les paramètres de ces codeurs comme cela est possible dans le cas des codes travaillant dans GF(2). Les codes convolutifs classiques les plus utilisés à l'heure actuelle travaillent dans GF(2) et traitent des informations binaires (i.e. un flux ou train binaire). Ils sont définis par trois paramètres C(k, n, K) où k est la taille d'un mot d'information en entrée du codeur, n est la taille d'un mot de code en sortie du codeur et K la longueur de contrainte du codeur. Par contre, pour construire et surtout implémenter des codes convolutifs dans GF(q), il est nécessaire de prendre en compte les paramètres intrinsèques du corps dans lequel ils vont travailler. Dans le cas des extensions de corps GF(pm ) où p est premier et correspond à la caractéristique du corps, le cardinal du corps est pm c'est-à-dire qu'il possède pm éléments ai et que tout élément non nul du corps peut-être construit à partir des puissances d'une racine α d'un polynôme irréductible primitif de degré m à coefficients dans GF(p), ai = αi , ∀i ∈ {1, ..., pm − 1}. Un tel polynôme irréductible dont les racines permettent d'engendrer tous les éléments du corps est dit primitif. D'un point de vue purement mathématique, les éléments du corps ainsi que les calculs effectués dans celui-ci ne dépendent que du cardinal du corps, puisque quel que soit le polynôme primitif choisi pour engendrer les éléments du corps, les calculs et donc les résultats sont équivalents à un isomorphisme de corps près. Par contre, au niveau implémentation sur une machine de traitement informatisé, les calculs et résultats sont directement liés à la représentation des éléments du corps et au choix du polynôme primitif permettant de les générer. Afin d'être en mesure d'identifier les paramètres du codeur utilisé, il est donc nécessaire au préalable ou en parallèle d'identifier le corps dans lequel un éventuel codeur travaille et également le polynôme primitif utilisé à l'émission lors de l'implémentation, et tout cela à partir d'un train binaire ou de symboles récupérés en réception. Une fois le corps utilisé à l'émission et son polynôme primitif identifiés, il est alors possible de mettre en œuvre un algorithme d'identification aveugle des paramètres du code utilisé. Dans un contexte militaire, l'identification aveugle des paramètres de codage fait généralement partie intégrante d'une chaîne d'interception. Par contre dans un contexte civil, elle peut être considérée comme une brique logicielle ou matérielle d'un récepteur dans un contexte de Radio-Cognitive où ce récepteur devra estimer ces paramètres avec la seule connaissance des données reçues. Nous avons développé un algorithme de reconnaissance aveugle de codes convolutifs binaires ( GF(2) ) s'appuyant sur un critère de calcul dans GF(2) de rang d'une matrice particulière constituée à partir de données reçues. Cette étude prenait en compte des propriétés des codes convolutifs dans GF(2), tout particulièrement celles des codes dits optimaux et leur construction. Pour le passage aux codes convolutifs dans GF(2m), nous avons en premier lieu généralisé les travaux proposés par Ryan et Wilson sur la recherche de codes optimaux de rendement 1/n dans GF(2m) au cas des codes de rendement k/n. Puis, nous avons adapté la méthode d'identification des paramètres au cas GF(2) sous différentes hypothèses de bonne ou mauvaise identification des paramètres du corps, c'est-à-dire 2m (ou tout simplement m) et du polynôme primitif réellement utilisé à l'émission. Tout cela dans le cas théorique d'une transmission non entachée d'erreurs afin d'évaluer la faisabilité d'une telle identification avant d'envisager dans un futur proche le cas où il y a des erreurs. Les tests effectués pour m ∈ {1, 2, 3, 4} ont montré que dans le cas d'une hypothèse de mauvaise identification du cardinal du corps (2m = 2m ) ou celle d'une mauvaise identification du polynôme primitif p(x) = p(x), alors la détection dans GF(2m) échoue (ce qui est normal) sauf évidemment pour le cas m = 1 (GF(2)) puisque tous ces corps sont des extensions de GF(2) (caractéristique 2). Dans ce cas, tous les paramètres sont identifiés à un facteur multiplicatif près qui est m (i.e. k = m.k, n = m.n et K = m.K. En réalité ce sont les paramètres du codeur équivalent dans GF(2). Par contre, dans l'hypothèse où les paramètres du corps sont supposés être identifiés correctement (2m et p(x)), alors le codeur est détecté et ses paramètres k, n et K dans GF(2m ) sont retrouvés. Cette étude a donc démontré la pertinence de la généralisation de notre algorithme de détection et identification de paramètres de codeurs convolutifs au cas des codes non binaires dans des corps de caractéristique 2, sous l'hypothèse que ces mêmes corps soient connus ou correctement identifiés, ainsi que le polynôme primitif utilisé à l'émission. Cette méthode peut être généralisée pour des codes dans GF(pm ) de caractéristique p. Les travaux en cours ont pour but la reconnaissance complète du codeur en allant jusqu'à l'identification de sa matrice génératrice et également de s'attaquer au problème plus ardu d'un flux en réception de données codées entachées d'erreurs.