Brevet FR2675971A1 — publié le 19921030

i Procédé de codage correcteur d'erreurs à au moins deux codages convolutifs systématiques en parallèle, procédé de décodage itératif, module de décodage et décodeur correspondants. Le domaine de l'invention est celui du codage de données numériques appartenant à une séquence de données source destinée à être transmise, ou diffusée, notamment en présence de bruit de transmission, et du décodage des données codées ainsi transmises. Plus précisément, l'invention concerne un procédé de codage correcteur d'erreurs, reposant notamment sur une approche totalement nouvelle de la concaténation de plusieurs codes, et un procédé de décodage, permettant la réalisation de décodeurs modulaires, à plusieurs niveaux de qualité en fonction du nombre de modules mis en oeuvre. L'invention trouve des applications dans tous les cas o il est nécessaire de transmettre des informations numériques avec un certain degré de fiabilité Un domaine d'application privilégié de l'invention est celui de la transmission numérique sur des canaux très bruités A titre d'exemple, l'invention peut être mise en oeuvre pour l'émission et la réception de signaux par l'intermédiaire de satellites Elle peut également avantageusement être utilisée pour les transmissions spatiales vers, ou entre, des vaisseaux spatiaux et/ou des sondes spatiales, et plus généralement dans tous les cas o la fiabilité du décodage est critique L'invention peut toutefois s'appliquer de la même façon à tout type de transmission, par voie hertzienne ou par câble. Tout signal numérique, quel qu'en soit l'origine, peut être codé et décodé selon l'invention Il peut par exemple s'agir d'un signal d'images, d'un signal sonore, d'un signal de données, ou d'un multiplex de plusieurs signaux distincts. De façon connue, le codage de tels signaux est en général réalisé à l'aide d'un ou plusieurs codeurs convolutifs Dans le décodeur, les données d'origine sont le plus souvent reconstruites à l'aide d'un algorithme à maximum de vraisemblance, et par exemple l'algorithme de Viterbi, dont les décisions peuvent éventuellement être pondérées. Les codes convolutifs sont des codes associant à chaque donnée source à coder au moins une donnée codée, obtenue par sommation modulo 2 de cette donnée source avec au moins une des données source précédentes Ainsi, chaque symbole codé est une combinaison linéaire de la donnée source à coder et des données source précédentes prises en compte L'algorithme de Viterbi, en prenant en compte une séquence de symboles codés reçus, fournit une estimation de chaque donnée codée à l'émission, en déterminant la séquence source correspondant le plus probablement à la séquence reçue. Il est également connu de mettre en série plusieurs codeurs, qu'ils soient convolutifs ou non Dans ce cas, les données codées par un premier codeur alimentent un second codeur, qui "surcode" ces données Le décodage se fait évidemment symétriquement, en commençant par le second code. Ce principe, appelé concaténation de codes, présente deux types d'inconvénients Tout d'abord, le rendement global des codeurs mettant en oeuvre des codes contaténés est faible Par exemple, dans le cas de deux codeurs en série ayant chacun un rendement 1/2, le rendement global sera de 1/4 Si l'on utilise plus de deux codeurs, ce rendement devient rapidement très faible. Par ailleurs, la réalisation technique de ces codeurs est relativement complexe, notamment en ce qui concerne les horloges associées à chaque code, qui doivent être indépendantes. En ce qui concerne les décodeurs, on a déjà indiqué que l'on mettait généralement en oeuvre des algorithmes à maximum de vraisemblance, tels que l'algorithme de Viterbi Ces algorithmes prennent des décisions en tenant compte d'un nombre important de symboles reçus Clairement, la décision est d'autant plus fiable que le nombre de symboles pris en compte est élevé En revanche, plus ce nombre est élevé, plus le décodeur est complexe La place mémoire nécessaire devient rapidement très importante, de même que les temps de calcul correspon- dants. Les circuits intégrés mettant en oeuvre de tels algorithmes reposent donc le plus souvent sur un compromis entre le coût et les performances Ces choix industriels ne permettent pas de construire des décodeurs correspondant de façon optimum à une application donnée Il n'est par exemple pas possible de réaliser des décodeurs à faible prix de revient, pour des applications o la qualité de réception n'est pas cruciale, les circuits intégrés ayant un coût trop élevé Inversement, ces circuits intégrés ne sont pas non plus adaptés à la réalisation de récepteurs à très haute qualité de décodage, pour lesquels le prix de revient n'a que peu d'importan- ce. L'invention a notamment pour objectif de pallier ces différents inconvé- nients et limites de l'état de la technique. Plus précisément, un objectif de l'invention est de fournir un procédé de codage et un procédé de décodage de données numériques à très bon pouvoir de correction, en comparaison avec les procédés connus utilisés actuellement dans les systèmes de communications numériques. L'invention a notamment pour objectif de fournir de tels procédés, particulièrement efficaces, toujours par rapport aux procédés connus, pour la transmission dans des canaux très bruités. Un objectif particulier de l'invention est de fournir de tels procédés autorisant un décodage très fiable des données reçues, et par exemple de données transmises par satellites, ou issues de sondes ou de vaisseaux spatiaux. L'invention a encore pour objectif de fournir de tels procédés, permettant de coder et de décoder des données à des débits très élevés. L'invention a également pour objectif de fournir de tels procédés, permettant une réalisation des codeurs et des décodeurs relativement aisée, en regard de leurs performances. Notamment, l'invention a pour objectif de fournir un procédé de codage mettant en oeuvre plusieurs codes convolutifs, mais ne nécessitant, tant au codeur qu'au décodeur, qu'une seule horloge. Un autre objectif de l'invention est de fournir un tel procédé de codage, ayant un très bon rendement global de codage. L'invention a encore pour objectif de fournir des procédés de codage et de décodage, permettant la réalisation de décodeurs très performants, mais malgré tout aisément réalisables industriellement à des coûts acceptables. Ainsi, un objectif particulier de l'invention est de fournir de tels procédés, permettant l'implantation du procédé de décodage sur une surface de silicum suffisamment restreinte pour que son industrialisation soit possible, et par exemple sur une surface inférieure à 50 mm 2. L'invention a également pour objectif de fournir de tels procédés de codage et de décodage permettant la réalisation de nombreux types de décodeurs, à performances et prix de revient variables en fonction des besoins auxquels ils répondent, et mettant en oeuvre un ou plusieurs circuits intégrés d'un type unique. En d'autres termes, un objectif essentiel de l'invention est de fournir de tels procédés permettant d'une part une industrialisation rentable, basée sur le développement d'un circuit intégré unique et relativement simple, et d'autre part la réalisation de décodeurs utilisables pour une très grande diversité d'applications. Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints selon l'invention à l'aide d'un procédé de codage correcteur d'erreurs de données numériques source, mettant en oeuvre en parallèle au moins deux étapes indépendantes de codage convolutif systématique, chacune desdites étapes de codage prenant en compte l'ensemble desdites données source, le procédé comprenant au moins une étape d'entrelacement temporel desdites données source, modifiant l'ordre de prise en compte desdites données source pour chacune desdites étapes de codage. Ce procédé, appelé par la suite codage à "concaténation parallèle", par opposition à la technique classique de "concaténation série" décrite en préambule, permet de disposer, lors du décodage de symboles issus de deux codeurs distincts. Les codages redondants utilisés sont de type systématique Chaque donnée source est donc aussi un symbole de codage convolutif, et ce symbole est partagé par les deux codes. Le partage de la redondance de codage en plusieurs redondances parallèles permet ainsi d'augmenter artificiellement le rendement global du code Par exemple, un code à "concaténation parallèle" de rendement 1/3 peut en réalité contenir deux codes de rendement 1/2 S'il s'était agi de concaténer, d'un manière classique, c'est-à-dire par une "concaténation série", deux codes de rendement 1/2, le rendement global aurait été de 1/4. Un autre avantage des codes à "concaténation parallèle", vis-à-vis des codes "à concaténation série', est la simplicité des circuits de codage et de décodage, relativement aux horloges. Dans un mode de réalisation préférentiel, le procédé de codage comprend une étape d'élimination systématique, à des instants de transmission prédéterminés, d'au moins une donnée codée produite par au moins une desdites étapes de codage. L'étape d'élimination peut par exemple consister en une commutation périodique entre lesdites étapes de codage, assurant, à chaque instant de transmission, la sélection d'un unique symbole codé parmi l'ensemble des symboles codés par chacune desdites étapes de codage. De cette façon, un seul symbole codé est transmis à chaque instant de transmission il n'y a pas d'augmentation du débit global de données En revanche, le procédé de codage de l'invention assure la transmission systématique de la donnée source à chaque instant de transmission. Dans ce mode de réalisation, on utilise des codes dits "pseudo-systémati- ques", tels que ceux décrits dans la demande de brevet conjointe intitulée "procédé de codage convolutif correcteur d'erreurs pseudo- systématique, procédé de décodage et dispositifs correspondants", et déposée aux noms des mêmes déposants. Ces codes permettent d'obtenir de très bonnes qualités de décodage, en particulier en présence d'un bruit de transmission élevé Ils s'avèrent par ailleurs très intéressants par leur caractéristique systématique pour la mise en oeuvre du procédé de décodage décrit plus loin. De façon avantageuse, chacune desdites étapes d'entrelacement temporel est suivie d'une étape de retard, ladite étape d'entrelacement temporel prenant en compte les données source dans l'ordre dans lequel lesdites données source alimentent une première étape de codage, et les restituant dans un ordre différent pour alimenter une seconde étape de codage, ladite étape de retard affectant chacune desdites données source issues de ladite étape d'entrelacement temporel d'un retard égal à la latence de décodage de données codées par ladite première étape de codage. Ces retards s'avèrent utiles pour la mise en oeuvre d'un mode de réalisation du procédé de décodage de l'invention, ainsi qu'on le verra par la suite. Avantageusement, ladite étape d'entrelacement temporel met en oeuvre au moins une matrice d'entrelacement dans laquelle lesdites données source sont inscrites par lignes (respectivement colonnes) successives et lues par colonnes (respectivement lignes) successives. Cette étape d'entrelacement permet que toutes les données source soient prises en compte et codées, mais suivant des séquences différentes pour les deux codes L'entrelacement peut donc être fait de façon classique, à l'aide d'une matrice d'entrelacement Toutefois, l'invention propose plusieurs adaptations possibles de cette technique, ayant pour but d'améliorer l'efficacité de l'entrelacement. Ainsi, de façon préférentielle, à l'écriture, l'incrément entre deux lignes (respectivement colonnes) et/ou, à la lecture, l'incrément entre deux colonnes (respectivement lignes) sont strictement supérieurs à 1. Par nécessité, ces incréments sont bien sûr également premiers avec le nombre de colonnes ou de lignes de cette matrice. Avantageusement, à l'écriture (respectivement lecture), ledit incrément entre deux lignes (respectivement colonnes) est fonction de l'emplacement de la colonne (respectivement ligne) en cours d'écriture (respectivement lecture). Cette technique a pour effet favorable, lors du décodage, de "casser" les paquets d'erreurs à disposition rectangulaire, vis à vis desquels le procédé de décodage est plus vulnérable Cette technique d'entrelacement sera dite par la suite "à dispersion". L'invention concerne en effet également un procédé de décodage de données numériques reçues sous forme codée et correspondant à des données source, comprenant une procédure de décodage itérative comprenant: une étape de décodage d'une donnée intermédiaire représentative d'une donnée reçue, produisant une donnée décodée, et une étape d'estimation de ladite donnée reçue, à l'aide de ladite donnée décodée, produisant une donnée estimée, ladite donnée intermédiaire étant obtenue, pour la première itération, par une combinaison de ladite donnée reçue avec une valeur prédéterminée, et pour les itérations suivantes, par une combinaison de ladite donnée reçue avec au moins une desdites données estimées lors des itérations précédentes. Ce procédé permet de réaliser des décodeurs constitués d'une cascade de modules identiques, chaque module correspondant à une itération B est clair que l'efficacité du décodage est directement fonction du nombre d'itérations pratiquées, et donc du nombre de modules mis en oeuvre Il est ainsi possible de définir plusieurs niveaux de qualités de récepteurs, simplement en faisant varier le nombre de modules. Chaque module a donc pour tâche de calculer, outre la donnée décodée, une nouvelle estimation de la donnée émise Cette grandeur est exploitée dès le module suivant. Avantageusement, ladite étape d'estimation affecte ladite donnée estimée d'un bruit additif décorrélé du bruit affecté à ladite donnée reçue. Ainsi, la donnée prise en compte lors de l'itération suivante, combinaison de la donnée reçue et de la donnée estimée, est affectée d'un bruit global moins perturbateur qu'à l'itération précédente. Dans un mode de réalisation préférentiel de l'invention, ladite valeur prédéterminée est neutre, ou nulle, et lesdites combinaisons sont, pour les itérations autre que la première, des sommations de ladite donnée reçue et de la dernière donnée estimée. Dans le cas d'un décodage de données codées selon un procédé assurant la transmission conjointe des données source et de données de redondance codées, par exemple à l'aide des codes "pseudo-systématiques" déjà cités, il est avantageux que ladite étape de décodage prenne en compte l'ensemble des données reçues, données source et données codées, mais que ladite étape d'estimation soit appliquée uniquement à l'estimation desdites données source. Selon un mode de réalisation particulier de l'invention, du type assurant le décodage de données codées selon un procédé de codage mettant un oeuvre en parallèle deux étapes de codage redondant, la première étape de codage effectuant un premier codage redondant sur l'ensemble des données source prises dans leur ordre naturel, et la seconde étape de codage effectuant un second codage redondant sur l'ensemble des données source prises dans un ordre modifié par une étape d'entrelacement temporel, le procédé de décodage comprend les étapes consécutives suivantes: premier décodage selon ledit premier codage redondant, en fonction d'au moins une desdites données intermédiaires et d'au moins une donnée codée produite par ladite première étape de codage, produisant une première donnée décodée, entrelacement temporel identique à ladite étape d'entrelacement du procédé de codage desdites premières données décodées, second décodage selon ledit second codage redondant, en fonction d'au moins une desdites premières données décodées et désentrelacées et d'au moins une donnée codée produite par ladite seconde étape de codage, produisant une seconde donnée décodée, estimation de la donnée source reçue, en fonction de l'une au moins desdites première et seconde données décodées, produisant une donnée estimée. Avantageusement, ladite étape d'estimation consiste à déterminer la grandeur (d 2 x(X 1)-(X 2))/(d 2 -1), o: d 2 est la distance libre dudit second codage redondant; X 1 et X 2 sont les données décodées par lesdites première et seconde étapes de décodage. Cette fonction ôte au résultat de la donnée décodée délivrée par la seconde étape de décodage la contribution liée à la donnée source Ainsi, les bruits additifs de la donnée source et de la donnée estimée sont pratiquement complète- ment décorrélés. De façon préférentielle, ladite étape d'estimation est suivie, avant ladite étape de désentrelacement, d'une étape de compression logarithmique. Cette compression logarithmique a pour but de mettre l'accent, en terme de précision d'échantillonnage, sur les valeurs critiques, c'est-à-dire sur les valeurs proches de zéro, lorsque les valeurs sont codées entre -n et +n. Dans un mode de réalisation avantageux de l'invention, ladite première étape de décodage est suivie d'une étape de multiplication de ladite première donnée décodée par un coefficient je strictement supérieur à 1. Ce coefficient p a pour rôle de privilégier, pour le deuxième décodage, les valeurs issues du premier décodeur, relativement aux valeurs codées reçues, affectées d'un bruit plus important car directement fournies par le canal de transmission. Préférentiellement, ledit coefficient je est variable en fonction du rapport signal à bruit du canal de transmission. De façon avantageuse, la ou lesdites étapes de décodage mettent en oeuvre des algorithmes de décodage à maximum de vraisemblance, du type de l'algorithme de Viterbi, à décisions pondérées. On peut notamment faire appel au procédé de décodage décrit dans la demande conjointe intitulée "procédé de décodage d'un code convolutif à maximum de vraisemblance et pondérations des décisions, et décodeur correspondant", déposée aux noms des mêmes déposants. Avantageusement, le procédé de décodage comprend également une étape de démultiplexage dirigeant les données codées reçues vers lesdites étapes de décodage adéquates et transmettant des valeurs nulles aux étapes de décodage pour lesquelles aucune donnée codée n'a été transmise. Cette étape est utile lorsque des données codées sont sélectivement non- émises, à certains instants de transmission. L'invention concerne également un module de décodage, réalisant une itération de la procédure de décodage décrite ci-dessus Un tel module comprend au moins deux entrées, correspondant à au moins une donnée reçue et à au moins une donnée estimée, et au moins deux sorties, correspondant à au moins une donnée décodée et au moins une donnée estimée Il est susceptible d'être cascadé avec au moins un autre module identique. Un module peut notamment être réalisé sous forme de circuit intégré Un tel circuit occupe suffisamment peu de surface silicum pour permettre une industrialisation aisée, fiable et peu coûteuse. La modularité permet de prévoir, à partir d'un unique circuit intégré, tout type d'application Dans les cas ne nécessitant qu'une faible protection, ou lorsque le canal est peu bruité, un seul module peut suffire En revanche, dans des cas particuliers o la fiabilité est essentielle et/ou le bruit de transmission est important, par exemple dans le cas de données transmises par une sonde inter- sidérale, dix modules ou plus pourront être cascadés. L'invention concerne également les décodeurs mettant en oeuvre un ou plusieurs de ces modules. D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention donné à titre illustratif et non limitatif, et des dessins annexés, dans lesquels: la figure 1 est un schéma synoptique illustrant le principe de base du procédé de codage de l'invention, dit "à concaténation parallèle"; la figure 2 présente un mode de réalisation particulier d'un codeur selon le procédé illustré en figure 1, assurant une redondance de 100 %; la figure 3 est un schéma synoptique du principe de base d'un décodeur modulaire selon l'invention, à quatre modules; la figure 4 est un schéma synoptique détaillé d'un mode de réalisation préférentiel d'un module de la figure 3, dans le cas o les données sont codées à l'aide du codeur de la figure 2; les figures 5 et 6 présentent les résultats obtenus à l'aide d'un décodeur il utilisant les modules de la figure 4, en fonction du nombre de modules cascadés, dans le cas d'un décodeur idéal (figure 5) et d'un décodeur implantable sur circuit intégré (figure 6). La présente invention repose sur deux concepts nouveaux, à savoir un procédé de codage mettant en oeuvre simultanément plusieurs codages, en parallèle, et un procédé de décodage itératif. Prises en combinaison, ces deux caractéristiques présentent une très forte synergie, permettant d'obtenir au décodage un taux d'erreur particulièrement faible, et notamment très inférieur à ceux obtenus avec les décodeurs connus de complexité équivalente, en particulier en présence d'un bruit de transmission élevé. Toutefois, il est clair que ces caractéristiques peuvent être mises en oeuvre indépendamment sans sortir du cadre l'invention On verra d'ailleurs plus loin qu'il est possible de réaliser, selon le mode de réalisation décrit, des décodeurs à un seul module, ce qui correspond à un décodage non-itératif. La figure 1 présente un schéma synoptique d'un codeur mettant en oeuvre le procédé de l'invention, dans le cas o deux codes distincts sont utilisés en parallèle. Chaque donnée source d à coder est dirigée d'une part vers un premier module 11 de codage, et d'autre part vers un module 12 d'entrelacement temporel, qui alimente lui-même un second module 13 de codage. Selon ce procédé, il apparaît donc qu'il est associé à chaque donnée source d au moins deux données codées Y 1 et Y 2 issues de codeurs 11 et 13 distincts fl est clair que le nombre de codeurs, ici limité à deux, peut aisément être étendu selon le même principe. Les modules 11 et 13 peuvent être de tout type systématique connu Il s'agit avantageusement de codeurs convolutifs prenant en compte au moins une des données source précédentes pour le codage de la donnée source d Les codes mis en oeuvre dans ces modules 11 et 13 peuvent être identiques ou, préférentiellement, différents. Une caractéristique essentielle de l'invention est que les données codées Y 1 et Y 2 tiennent en compte des mêmes données source d, mais considérées suivant des séquences différentes, grâce à la technique de l'entrelacement Cet entrelace- ment peut être obtenu, de façon classique, à l'aide d'une matrice d'entrelacement, dans laquelle les données source sont introduites lignes par lignes, et restituées colonnes par colonnes Ainsi qu'on le verra plus loin, l'invention propose toutefois des améliorations nouvelles de ce procédé d'entrelacement, destinées notamment à bien séparer les erreurs, au décodage. Par ailleurs, toute autre technique permettant de modifier l'ordre des données source peut être utilisée dans ce module 12 d'entrelacement temporel. Dans le mode de réalisation représenté en figure 1, une donnée X, égale à la donnée source d, est systématiquement transmise fl s'agit d'une caractéristique nécessaire pour la réalisation des modules de décodage tels que décrits plus loin. Dans ce cas, les modules 11 et 13 de codage utilisent préférentiellement des codes tels que ceux décrits dans la demande de brevet conjointe déjà citée Ces codes, dits "pseudo-systématiques", sont caractérisés par le fait que la donnée source est systématiquement transmise, conjointement à au moins une donnée codée, ou symbole de redondance. Ces symboles de redondance sont construits de façon que la distance libre du code soit maximale Ils ne tiennent pas compte, ainsi que cela est fait usuellement dans les codes convolutifs, d'une série des données source précédentes, mais d'une série de données auxiliaires, obtenues par combinaison mathématique de la donnée source considérée avec l'une au moins des données auxiliaires précédentes. Ces codes nouveaux permettent d'obtenir de très bonnes performances, en terme de taux d'erreurs. Le principe du codage à "concaténation parallèle" selon l'invention présente notamment deux avantages, par rapport au codage classique à concaténation série, ainsi qu'on l'a déjà mentionné: d'une part le rendement global du code est meilleur, et, d'autre part, les circuits de codage et de décodage sont plus simples, en ce qui concerne leurs horloges En effet, dans le cas de la "concaténation parallèle', tous les circuits fonctionnent à une seule et même horloge: celle du débit des données. La figure 2 illustre un mode de réalisation particulier d'un tel codeur, plus précisément destiné au codage de données décodables à l'aide des modules décrits plus loin, en relation avec la figure 4. On considère, à titre d'exemple, un codeur de rendement global R supérieur ou égal à 1/3 (une valeur typique de R est 1/2) mettant en oeuvre deux codes de rendements élémentaires respectifs R 1 et R 2 = (RR,)/(RR, + R 1 R), R 1 et R 2 étant tous deux supérieurs à 1/2. Ce codeur émet, à chaque instant de transmission, deux symboles numériques, par exemple binaires, X et Y Le symbole X est pris systématiquement égal à la donnée source d, et le symbole Y est un symbole de redondance. Ce symbole Y est égal soit à la valeur Y 1 issue du premier module 11 de codage, soit à la valeur Y 2 issue du second module 13 de codage Un module 15 de sélection effectue une commutation périodique entre les sorties Y 1 et Y 2 La périodicité de la commutation est fixée par les deux rendements R 1 et R 2, de telle sorte que les symboles X et Y contiennent effectivement deux codes de rendement R 1 et R 2. A titre d'exemple, pour des rendements de code R 1 = 3/5 et R 2 = 3/4, les séquences de données transmises peuvent être: Xt xt+ i Xt+ 2 Xt+ 3 Xt+ 4 Xt+S' Y 1,t Y 1 it+i Y 2,t+ 2 ylt+ 3 ylt+ 4 Y 2,t+ 5, Le fonctionnement de ce module 15 de sélection peut bien sûr être généra- lisé Ainsi, dans le cas o il y a plus de deux modules de codage, la sélection peut se faire de façon à assurer la transmission d'un nombre m de données codées, sélec- tionnées parmi les N données codées produites Par ailleurs, ce module 15 de sélection peut également assurer un poinçonnage des données codées, la (ou les) donnée Y n'étant pas transmise à des instants de transmission prédéterminés. Les données source d sont appliquées au premier module de codage 11 et au module 12 d'entrelacement Ce module 12 assure un entrelacement matriciel. Les données sont écrites, par lignes successives, dans une mémoire de taille n Exn E, et restituées par colonnes successives Cette technique est par exemple décrite dans l'article "Optimal interleaving scheme for convolutional coding" (Méthode d'entrelacement optimal pour le codage convolutif), de Dunscombe E et Piper F C, paru dans l"'Electronic Letters", Vol 25, nd 22, Octobre 1989. Ainsi que le montre cet article, l'efficacité de l'entrelacement, pour de petites valeurs de n E (quelques dizaines), est améliorée si la succession de lignes et de colonnes s'effectue selon un incrément supérieur à 1 et, par nécessité, premier avec n E. L'invention propose une nouvelle amélioration à cette technique d'entrelacement il apparaît en effet avantageux que l'incrément de saut de ligne, toujours premier avec n D, soit fonction de la place de la colonne considérée Cela permet de casser les paquets d'erreurs à disposition rectangulaire. D'autres techniques d'entrelacement peuvent bien sûr être utilisées, et notamment l'habituel procédé à incréments d'écriture et de lecture égaux à 1, sans sortir du cadre de l'invention Il est clair par ailleurs que les rôles des lignes et des colonnes peuvent être inversés. Les données issues du module 12 d'entrelacement sont ensuite retardées d'une durée fixée, de façon à compenser la latence L 1 du module de décodage correspondant au premier code 11 Pour cela, des moyens 14 de retard, tel qu'un registre à décalage de longueur L 1, tenant lieu de ligne à retard, sont disposés en sortie du module 12 d'entrelacement. On présente maintenant le procédé de décodage selon l'invention, en liaison avec la figure 3. Ce procédé de décodage a comme caractéristique essentielle d'être itératif. A chaque itération, le décodage d'au moins une donnée intermédiaire est effectuée. A l'aide notamment de la donnée décodée, on détermine ensuite une estimation de la donnée à décoder Lors de l'itération suivante, un décodage identique est effectué, sur une donnée intermédiaire obtenue par combinaison de la donnée reçue avec la donnée estimée Si le procédé de codage et le procédé d'estimation sont bien choisis, il apparaît, ainsi qu'on le verra par la suite, que la qualité du décodage est fonction du nombre d'itérations effectuées. L'avantage essentiel de ce procédé itératif est qu'il permet la réalisation de décodeurs modulaires On peut en effet définir des modules 311 à 314 de décodage, tel que cela est illustré en figure 3 Chaque module effectue une itération du procédé de décodage En cascadant N modules, on réalise donc N itérations du procédé. Le module 31 j a au moins deux entrées: la donnée X reçue, à décoder, et une donnée Z p représentative de cette donnée X reçue, estimée par le module précédent 31 p_, et deux sorties: la donnée Z estimée, et la valeur décodée S, p-1 ' p prise en compte uniquement en sortie du dernier module Pour le premier module 311, la donnée Z 1 est fixée à une valeur prédéterminée nulle Avantageusement, la donnée Zp est déterminée de façon à être représentative du symbole émis X, tout en étant affectée d'un bruit additif décorrélé de celui affecté à la donnée reçue X. Ainsi, au fur et à mesure des itérations, l'influence du bruit est de plus en plus faible, et le taux d'erreur est donc de plus en plus réduit. Dans d'autres modes de réalisation chaque module peut prendre en compte plusieurs données Zp estimées lors des étapes précédentes, voire l'ensemble de ces données La combinaison avec la donnée X recue peut être une simple sommation, ou une sommation pondérée Il est par exemple envisageable de donner un poids variable aux différentes valeurs Zp estimées Il est également possible que ces poids varient en fonction de certains critères, tels que le rapport signal à bruit. La structure modulaire de l'invention présente notamment deux avantages. Tout d'abord, cela permet de définir plusieurs qualités de décodeurs, à partir d'une même base, simplement en faisant varier le nombre de modules Cela rend également possible d'augmenter aisément l'efficacité d'un décodeur existant, en ajoutant un ou plusieurs modules, si le besoin s'en fait sentir. Les différents modules travaillent selon la technique dite "en pipeline". Chaque module fonctionne en permanence, sur des données différentes L'ajout d'un module ne perturbe pas le fonctionnement de ses précédécesseurs Il ne fait que rallonger légèrement le temps global de décodage, de la durée nécessaire à ses propres opérations. Par ailleurs, cette structure ne nécessite que la conception et l'industrialisa- tion d'un seul module de décodage, par exemple sous forme d'un circuit intégré relativement simple et ne nécessitant pas une surface de silicium trop importante. Son coût n'est donc pas prohibitif, d'autant plus qu'il est susceptible d'être utilisé pour une très large palette d'applications Selon les besoins, c'est le nombre des modules qui sera variable, et non plus la structure des modules. Il est à noter que la conception itérative du procédé de l'invention n'empêche aucunement la réalisation de décodeurs plus conventionnels, n'utilisant qu'un unique module En effet, chaque module possède une entrée donnée reçue et une sortie donnée S décodée. La figure 4 présente un mode de réalisation particulier d'un module selon l'invention, dont les performances sont très intéressantes, ainsi que le font apparaître les courbes des figures 5 et 6, commentées plus loin. Ce module est destiné au décodage de données codées et transmises à l'aide du codeur de la figure 2. Un tel module de rang p possède donc: 3 entrées: (X)p, (Y)p et (Z)p, 4 sorties: (X)p+ 1, (Y)p+i, (Z)p+l et (S)p- Les grandeurs (X), (Y) et (Z) sont idéalement des variables réelles, et en pratique des échantillons codés sur N bits (typiquement n= 4) La grandeur (S), qui représente la sortie du module, est binaire La décision du décodeur complet est donnée par la sortie (S) du dernier module Pour ce qui concerne le premier module, les grandeurs d'entrée (X)1 et (Y)1 sont fournies par les symboles correspondants du codeur, après transmission et démodulation Son entrée (Z)1 est mise à une valeur neutre (poids nul). Dans ce module, les données en entrée (X)p et (Z)p sont additionnées par un sommateur 41 pour fournir la donnée intermédiaire (X 1)p, qui va être utilisée pour le décodage en lieu et place de la donnée reçue (X)p Ainsi qu'on l'a déjà souligné, les données (X)p et (Z)p peuvent éventuellement être pondérées. La donnée (Y)1 est transmise à des moyens 42 de démultiplexage et d'insertion, dont le rôle est de séparer la redondance (Y 1) produite par le codeur 11 (figure 2) et la redondance (Y 2) produite par le codeur 13, et d'insérer à la place des valeurs (Y) non disponibles des valeurs neutres, de poids nul. Les données (Xl)p et (Y 1)p sont transmises à un premier décodeur 43, réalisant le décodage correspondant au codeur 11 Ce décodeur 43 est construit de telle manière que l'échelle sur son entrée (X 1) soit double de celle de son entrée (Y 1), de façon à tenir compte du fait que (X 1) représente la sommation des deux valeurs (X) et (Z) La sortie 45 du décodeur 43 est transmise à un multiplieur 44, qui multiplie cette sortie 45 par un facteur fl supérieur à 1 Cette multiplication permet de privilégier, en vue du second décodage, les données 45 issues du premier décodeur 43, relativement aux données (Y 2)p, affectées d'un bruit plus important, puisque directement issues du canal de transmission. Le facteur je peut être fixe Toutefois, il est avantageusement variable, et dépendant du rapport signal à bruit du canal de transmission Il est clair par ailleurs que ce multiplieur n'est pas obligatoire pour la mise en oeuvre de l'invention Il permet cependant d'améliorer sensiblement les performances. Les données 46 multipliées par je sont ensuite entrelacées, à l'aide d'une matrice 47 de taille n E x n E similaire à celle utilisée lors du codage Cette matrice 47 fournit en sortie la valeur (X 2) qui est dirigé vers un second décodeur 48, qui prend également en compte les données (Y 2)p fournit par les moyens 42 de démultiplexage et d'insertion Ce second décodeur 48 réalise le décodage correspondant au second codeur 13 de la figure 2 Il est construit de telle sorte que l'échelle sur son entrée (X 2) soit pe fois plus grande que celle de son entrée (Y 2). Il est à noter que si le codage a lieu en parallèle, le décodage a lieu en série Ainsi, le second décodeur 48 ne tient pas compte de la donnée reçue (X)p, mais de la donnée décodée, et bien sûr entrelacée, (X 2)p, qui est beaucoup plus fiable C'est d'ailleurs pour cette raison que cette donnée voit son importance renforcée, par le multiplieur 44. Avantageusement, les deux décodeurs 43 et 48 mettent en oeuvre un procédé de décodage à maximum de vraisemblance, du type de ceux utilisant l'algorithme de Viterbi, à décisions pondérées. Dans un mode de réalisation préférentiel, on utilise des décodeurs tels que décrits dans la demande de brevet conjointe, intitulée "procédé de décodage d'un code convolutif à maximum de vraisemblance et pondération des décisions, et décodeur correspondant", déposée aux noms des mêmes déposants. Ces décodeurs mettent notamment en oeuvre deux treillis distincts La décision est prise, de façon classique, par remontée du chemin optimal dans le premier treillis La pondération est déterminée ensuite, en continuant à remonter, dans le second treillis, le chemin optimal et son concurrent. Selon le procédé de cette demande, les valeurs de pondération sont avantageusement soumises à une compression logarithmique Toutefois, dans le cas du module décrit actuellement, il est apparu préférable que seul le premier décodeur 43 utilise cette loi de compression logarithmique Elle est en quelque sorte reportée, dans le cas du second décodeur 48, ainsi qu'on le verra plus loin. Les données (X 3)p produites par le second décodeur 48 alimentent une matrice 49 de désentrelacement de taille n Exn E réalisant la fonction duale de l'entrelacement 47, et fournissant les données (S)p décodées. Ces données (S)p décodées ne sont bien sûr prises en compte qu'en sortie du dernier module, qui présente le taux d'erreurs le plus faible, sauf dans le cas de tests, par exemple pour déterminer le nombre de modules nécessaires pour une application donnée. Les données (X 3)p sont par ailleurs dirigées vers le bloc 50 d'estimation de la valeur (X)p en entrée Ce bloc 50 tient également compte de la valeur correspondante (X'2)p, entrée du second décodeur 48, et mémorisé dans un registre à décalage 51, tenant lieu de ligne à retard Ce registre 51, de longueur L 2, L 2 étant la latence du second décodeur 48, a pour but de compenser le temps de décodage de ce décodeur 48, de façon que le module 50 considère les données d'entrée ( 3 C 2)p et de sortie (X 3)p du second décodeur à des instants homogènes. Le rôle de ce bloc 50 d'estimation est donc de déterminer une estimation (Z)p du symbole émis X Cette estimation est faite de façon que la grandeur (Z)p soit affectée d'un bruit additif décorrélé de celui affectant le symbole (X) (Z)p est prise en compte dans le module suivant (p+l) Ainsi, dans ce module (p+l), le premier décodeur traite un code virtuel, de rendement R 1/( 1 +R 1), R 1 étant le rendement du premier codeur 11. La décorrélation entre les bruits additifs de (X)p et (Z)p peut par exemple être assurée par une fonction g, qui ôte au résultat (X 3)p du second décodeur 48 la contribution liée à (X)p La fonction g est avantageusement la suivante: 9 g((X 2)p, (X 3)p) = (d 2 x(X 3)p- (X 2)p)/(d 2-1) o d 2 est la distance libre du second code. Le bloc 50 réalise ensuite avantageusement une compression logarithmique, précisément celle qui a été supprimée dans le second décodeur 48, des valeurs g((X 2)p, (X 3)p) Les valeurs ainsi obtenues sont transmises à une matrice 52 de désentrelacement, identique à la matrice 49, et fournissant la sortie (Z)p+l. Le module de rang p assure par ailleurs la transmission des données reçues (X) et (Y), avec des retards permettant de présenter des sorties à des instants homogènes, pour le module suivant le rang p+l Chaque module comprend donc deux registres à décalage 53 et 54, respectivement pour les données (X) et (Y) Ces registres à décalage tiennent lieu de lignes à retard, et ont une longueur de: L 1 + L 2 + 2 n E 2, de façon à compenser: la latence L 1 du premier décodeur 43; la latence n E 2 de la matrice 47 d'entrelacement; la latence L 2 du second décodeur 48; la latence n E 2 de Ia matrice 52 de désentrelacement. Les figures 5 et 6 présentent les résultats obtenus à l'aide d'un décodeur équipé de tels modules, pour un code de rendement 1/2 du type 3/5 ( u= 4)//3/4 ( u= 4), c'est-à-dire une concaténation parallèle de deux codes de rendements 3/5 et 3/4, à longueurs de contrainte u= 4 L'abscisse des courbes est le rapport signal à bruit Eb/NO sur le canal de transmission (Eb: énergie reçue par bit utile, No: densité spectrale monolatérale de bruit) L'ordonnée est le taux d'erreurs binaires observé: les courbes présentent les résultats de décodage obtenus par simulation d'un canal gaussien, la démodulation étant cohérente. La figure 5 correspond à un décodeur idéal, travaillant sur des variables réelles et avec un entrelacement de grande taille La figure 6 présente le cas d'un décodeur "intégrable' sur circuit intégré, dont les caractéristiques principales sont les suivantes échantillons codés sur 4 bits, longueur de treillis pour chaque décodeur: 58 dont 25 étages de révision pour la pondération, p= 1 5, entrelacement à dispersion 31 x 31. Les courbes 61 à 615 de la figure 5 et 71, à 715 de la figure 6 représentent respectivement les sorties (S)p d'une chaîne de cinq modules identiques A titre de comparaison, on a également fait figurer les courbes 62 correspondant à une transmission non codée, et les courbes 63 et 64 correspondant aux courbes de correction des codes standards simples à longueurs de contrainte u= 4 et u = 6 respectivement. Ces courbes permettent de tirer plusieurs conclusions On constate tout d'abord qu'en présence d'un fort bruit de transmission, les résultats obtenus sont exceptionnellement meilleurs que ceux obtenus selon les techniques connues Ainsi, par exemple, pour un taux d'erreur de 10-5, on constate que le gain est supérieur à 1,5 d B, pour un décodeur à deux modules, et supérieur à 2,5 d B, pour un décodeur à cinq modules, par rapport à un décodeur classique à longueur de contrainte v= 6 (alors que les codeurs utilisés pour la simulation des performances de l'invention * ont des longueurs de contrainte u= 4). Il apparaît également que les performances d'un décodeur de l'invention sont meilleures que celles des décodeurs connus, dès lors qu'on vise un taux d'erreurs de l'ordre de 104, même lorsque l'on utilise un seul module (courbes 61 l et 710). Enfin, on peut noter que chaque module rajouté permet d'améliorer la qualité du décodage, en s'approchant de la limite de Shannon, qui est O d B pour un code de rendement 1/2 A l'aide de cette série de courbes 611 à 615, il est possible de sélectionner, en fonction d'une application particulière, le nombre de modules nécessaires. Les pertes de performances, à fort bruit, dans le cas "intégrable" (courbes 711 à 715) relativement au cas idéal (courbes 61 à 615), sont presque entièrement liées à la taille très réduite de la matrice d'entrelacement On a en effet choisi des matrices de petite taille ( 31 x 31) de façon à limiter la surface de silicium utilisée. Avec de telles matrices, la surface de silicium occupée est de l'ordre de 30 mm 2. L'expérience montre toutefois que des matrices plus grandes, de l'ordre de 100 xl OO (ce qui correspond à des mémoires RAM de tailles tout à fait classiques), permettent d'améliorer fortement les performances, tout en restant dans des limites tout à fait acceptables du point de vue de l'industrialisation d'un circuit intégré. REVENDICATIONS 1 Procédé de codage correcteur d'erreurs de données numériques source (d), caractérisé en ce qu'il met en oeuvre en parallèle au moins deux étapes ( 11,13) indépendantes de codage convolutif systématique, chacune desdites étapes ( 11,13) de codage prenant en compte l'ensemble desdites données source (d), et en ce qu'il comprend au moins une étape ( 12) d'entrelacement temporel desdites données source (d), modifiant l'ordre de prise en compte desdites données source (d) pour chacune desdites étapes ( 11,13) de codage. 2 Procédé selon la revendication 1, caractérisé en ce qu'il comprend une étape ( 15) d'élimination systématique, à des instants de transmission prédéterminés, d'au moins une donnée codée (Y 1, Y 2) produite par au moins une desdites étapes ( 11,13) de codage. 3 Procédé selon la revendication 2, caractérisé en ce que ladite étape ( 15) d'élimination consiste en une commutation périodique entre lesdites étapes ( 11,13) de codage, assurant, à chaque instant de transmission, la sélection d'une unique donnée codée (Y) parmi l'ensemble des données (Y 1, Y 2) codées par chacune desdites étapes ( 11,13) de codage. 4 Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que chacune desdites étapes ( 12) d'entrelacement temporel est suivie d'une étape ( 14) de retard, ladite étape ( 12) d'entrelacement temporel prenant en compte les données source (d) dans l'ordre dans lequel lesdites données source (d) alimentent une première étape ( 11) de codage, et les restituant dans un ordre différent pour alimenter une seconde étape ( 13) de codage, ladite étape ( 14) de retard affectant chacune desdites données source (d) issues de ladite étape ( 12) d'entrelacement temporel d'un retard égal à la latence de décodage des données (Y 1) codées par ladite première étape ( 11) de codage. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que ladite étape ( 12) d'entrelacement temporel met en oeuvre au moins une matrice d'entrelacement dans laquelle lesdites données source (d) sont inscrites par lignes (respectivement colonnes) successives et lues par colonnes (respectivement lignes) successives. 6 Procédé selon la revendication 5, caractérisé en ce que, à l'écriture, l'incrément entre deux lignes (respectivement colonnes) et/ou, à la lecture, l'incrément entre deux colonnes (respectivement lignes) sont strictement supérieurs à 1. 7 Procédé selon la revendication 6, caractérisé en ce que ledit incrément entre deux lignes (respectivement colonnes) est fonction de l'emplacement de la colonne (respectivement ligne) en cours d'écriture (respectivement de lecture). 8 Procédé de décodage de données numériques ((X)p, (Y 1)p, (Y 2)p) codées selon le procédé de l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comprend une procédure de décodage itérative comprenant: une étape ( 43,48) de décodage d'une donnée intermédiaire ((X 1)p) représentative d'une donnée reçue ((X)p), produisant une donnée décodée ((X 3)p), et une étape d'estimation ( 50) de ladite donnée reçue ((X)p), à l'aide de ladite donnée décodée ((X 3)p), produisant une donnée estimée ((Z)p), et en ce que ladite donnée intermédiaire ((X 1)p) est obtenue, pour la première itération, par une combinaison ( 41) de ladite donnée reçue ((X)p) avec une valeur prédéterminée, et pour les itérations suivantes, par une combinaison de ladite donnée reçue ((X)p) avec au moins une desdites données estimées ((Z)p) lors des itérations précédentes. 9 Procédé selon la revendication 8, caractérisé en ce que ladite étape d'estimation affecte ladite donnée estimée ((Z)p) un bruit additif décorrélé du bruit affecté à ladite donnée reçue ((X)p). Procédé selon l'une quelconque des revendications 8 et 9, caractérisé en ce que ladite valeur prédéterminée est neutre, et en ce que lesdites combinai- sons ( 41) sont, pour les itérations autre que la première, des sommations de ladite donnée reçue ((X)p) et de la dernière donnée estimée ((Z)p). 11 Procédé selon l'une quelconque des revendications 8 à 10, du type appliqué au décodage de données codées selon un procédé assurant la transmission conjointe des données source ((X)p) et de données de redondance codées ((Y)p, (Y 2)p), caractérisé en ce que ladite étape de décodage prend en compte l'ensemble des données reçues, données source ((X)p) et données codées ((Y 1)p, (Y 2)p), et en ce que ladite étape d'estimation est appliquée uniquement à l'estimation desdites données source ((X)p). 12 Procédé selon l'une quelconque des revendications 9 à 10 et la revendication 11, du type assurant le décodage de données codées selon un procédé de codage mettant un oeuvre en parallèle deux étapes ( 11,13) de codage redondant, la premiere étape ( 11) de codage effectuant un premier codage redondant sur l'ensemble des données source (d) prises dans leur ordre naturel, et la seconde étape ( 13) de codage effectuant un second codage redondant sur l'ensemble des données source (d) prises dans un ordre modifié par une étape ( 12) d'entrelacement temporel, caractérisé en ce qu'il comprend les étapes consécutives suivantes: premier décodage ( 43) selon ledit premier codage redondant, en fonction d'au moins une desdites données intermédiaires ((X 1)p) et d'au moins une donnée codée ((Y 1)p) produite par ladite première étape ( 11) de codage, produisant une première donnée décodée ( 45), entrelacement temporel ( 47) identique à ladite étape ( 12) d'entrelace- ment du procédé de codage desdites premières données décodées ( 45), second décodage ( 48) selon ledit second codage redondant, en fonction d'au moins une desdites premières données ((X 2)p) décodées et désentrelacées et d'au moins une donnée ((Y 2)p) codée produite par ladite seconde étape ( 13) de codage, produisant une seconde donnée ((X 3)p) décodée, estimation ( 50) de la donnée source reçue ((X)p), en fonction de l'une au moins desdites première et seconde données décodées ((X 2)p, (X 3)p), produisant une donnée estimée ((Z)p), désentrelacement ( 52) symétrique à ladite étape ( 47) d'entrelacement desdites données estimées ((Z)p). 13 Procédé selon la revendication 12, caractérisé en ce que ladite étape d'estimation ( 50) consiste à déterminer la grandeur (d 2 x(X 1)- (X 2))/(d 2 -1), o: d 2 est la distance libre dudit second codage redondant; (X 1) et (X 2) sont les données décodées par lesdites première ( 43) et seconde ( 48) étapes de décodage. 14 Procédé selon l'une quelconque des revendications 12 à 13, caractérisé en ce que ladite étape ( 50) d'estimation est suivie, avant ladite étape ( 52) de désentrelacement, d'une étape de compression logarithmique. 15 Procédé selon l'une quelconque des revendications 12 à 14, caractérisé en ce que ladite première étape ( 43) de décodage est suivie d'une étape ( 44) de multiplication de ladite première donnée décodée ( 45) par un coefficient 6 strictement supérieur à 1. 16 Procédé selon la revendication 15, caractérisé en ce que ledit coefficient /p est variable en fonction du rapport signal à bruit du canal de transmission. 17 Procédé selon l'une quelconque des revendications 8 à 16, caractérisé en ce que la ou lesdites étapes ( 43,48) de décodage mettent en oeuvre des algorithmes de décodage à maximum de vraisemblance, du type de l'algorithme de Viterbi, à décisions pondérées. 18 Procédé selon l'une quelconque des revendications 8 à 17, caractérisé en ce qu'il comprend une étape ( 42) de démultiplexage dirigeant les données codées reçues ((Y 1)p, (Y 2)p)) vers lesdites étapes ( 43,48) de décodage adéquates et transmettant des valeurs nulles aux étapes ( 43, 48) de décodage pour lesquelles aucune donnée codée n'a été transmise. 19 Module de décodage, caractérisé en ce qu'il réalise une itération de la procédure de décodage du procédé de l'une quelconque des revendications 8 à 18, en ce qu'il comprend au moins deux entrées ((X)p, (Y)p, (Z)p), correspondant à au moins une donnée reçue ((X)p,(Y)p) et à au moins une donnée estimée ((Z)p), et au moins deux sorties ((Z)p+i, (S)p), correspondant à au moins une donnée décodée ((S)p) et au moins une donnée estimée ((Z)p+l), et en ce qu'il est susceptible d'être cascadé avec au moins un autre module ( 31 p+ 1) identique. Module selon la revendication 19, du type mettant en oeuvre le procédé de l'une quelconque des revendications 12 à 18, caractérisé en ce qu'il comprend: des moyens ( 41) de sommation des entrées correspondant à ladite donnée reçue ((X)p) et à ladite donnée estimée ((Z)p); des premiers moyens ( 43) de décodage de données codées ((X)p, (Y 1)p) selon un premier codage redondant, prenant en compte les données ((X 1)p) issues desdits moyens ( 41) de sommation; des premiers moyens ( 47) d'entrelacement des données issues desdits premiers moyens ( 43) de décodage; des seconds moyens ( 48) de décodage de données codées ((X 2)p, (Y 2)p) selon un second codage redondant; des moyens ( 50) d'estimation de ladite (ou desdites) donnée(s) reçue(s) X)) des moyens ( 52) de désentrelacement des données ((Z)p) issues desdits moyens ( 50) d'estimation; des moyens ( 49) de désentrelacement des données ((X 3)p) issues desdits seconds moyens ( 48) de décodage, délivrant les données ((S)p) décodées dans leur ordre d'origine; des moyens ( 51,53,54) de retards destinés à compenser les latences des moyens ( 43,48) de décodage, des moyens ( 47) d'entrelacement et des moyens ( 49,52) de désentrelacement de façon que l'ensemble des données ((X)p, (Z)p, (S)p, (Y)p) issues dudit module correspondent à un même instant de réception. 21 Décodeur de données numériques, caractérisé en ce qu'il comprend au moins un module ( 31 p) selon l'une quelconque des revendications 19 ou 20.