Brevet FR2804806A1 — publié le 20010810

La présente invention se rapporte à un procédé et à un dispositif d'entrelacement, à des procédés et des dispositifs de codage et de décodage et à des systèmes les mettant en oeuvre. Classiquement, un turbocodeur est constitué de trois parties essentielles : deux codeurs convolutifs récursifs systématiques élémentaires et un entrelaceur. Le décodeur associé est constitué des deux décodeurs élémentaires à entrées et sorties dites douces correspondant aux codeurs convolutifs, d'un entrelaceur et de son entrelaceur inverse (appelé aussi "désentrelaceur"). On trouvera une description des turbocodes dans l'article "Near Shannon limit error-correcting coding and decoding: turbo codes" correspondant à la présentation faite par C. BERROU, A. GLAVIEUX et P. THITIMAJSHIMA lors de la conférence ICC à Genève en mai 1993. Les codeurs étant récursifs systématiques, un problème qu'on retrouve souvent est celui de la mise à zéro des codeurs élémentaires. On trouve dans l'art antérieur diverses façons de traiter ce problème, notamment 1. Absence de retour à zéro : on initialise les codeurs à l'état nul et on les laisse évoluer vers un état quelconque sans intervenir. 2. Remise à zéro du premier codeur: on initialise les codeurs à l'état nul et on ajoute des bits de padding pour imposer un état final nul uniquement au premier codeur. 3. "Turbo codes convolutifs orientés trame" (FOCTC, en anglais "Frame Oriented Convolutional Turbo Codes") : on initialise le premier codeur et on prend comme état initial du second codeur l'état final du premier codeur. Lorsqu'on utilise une classe d'entrelaceurs ayant certaines propriétés, l'état final du second codeur est nul. On se reportera utilement à ce sujet à l'article de C. BERROU et M. JEZEQUEL intitulé "Frame oriented convolutional turbo-codes", in Electronics Letters, Vol. 32, n 15, 18 juillet 1996, pages 1362 à 1364, Stevenage, Herts, Grande Bretagne. 4. Remises à zéro indépendantes des deux codeurs : on initialise les codeurs à l'état nul et on ajoute de façon indépendante des bits de padding à chacune des séquences entrant dans les codeurs. Une description générale de remises à zéro indépendantes des codeurs est donnée dans le rapport de D. DIVSALAR et F. POLLARA intitulé "TDA progress report 42-123 On the design of turbo codes", publié en novembre 1995 par JPL (Jet Propulsion Laboratory). 5. Remises à zéro intrinsèques des deux codeurs : on initialise les codeurs à l'état nul et on ajoute des bits de padding à la séquence qui entre dans le premier codeur. Lorsqu'on utilise un entrelaceur garantissant le retour à zéro tel qu'exposé dans le document de brevet FR-A-2 773 287 et qu'on entrelace la séquence comprenant les bits de padding, le second codeur a automatiquement un état final nul. Pour chacune des solutions de l'art antérieur mentionnées ci-dessus, il existe une terminaison de treillis adaptée pour chaque décodeur correspondant. Ces décodeurs prennent en compte la terminaison ou non des treillis, ainsi que, le cas échéant, le fait que chacun des deux codeurs utilise les mêmes bits de padding. Les solutions 1 et 2 offrent généralement de moins bonnes performances que les solutions 3 à 5. Cependant, les solutions 3 et 4 présentent également des inconvénients. La solution 3 limite le choix des entrelaceurs, ce qui risque de réduire les performances ou de compliquer inutilement la réalisation de l'entrelaceur. Lorsque la taille de l'entrelaceur est petite, la solution 4 a de moins bonnes performances que la solution 5. La solution 5 semble donc la plus appropriée. Néanmoins, dans le document de brevet FR-A-2 773 287, on mentionne une contrainte sur la taille des entrelaceurs. Ceci induit aussi des contraintes sur la taille des séquences d'entrée à coder. On définit ici la granularité comme étant la différence minimale entre deux tailles distinctes et possibles. En résumé, la taille des séquences d'entrées et la taille des entrelaceurs ont une granularité égale à la période du polynôme de rétroaction utilisé dans les codeurs élémentaires. Le document "Algebraic interleavers for turbo codes: Precisions on complexity and interleaver generafion", Canon CRF, Ref. Tdoc SMG2 UMTS-L1 721I98, publié à l'occasion du comité de normalisation ETSI UMTS SMG2 en décembre 1998, propose une solution qui permet d'utiliser des entrelaceurs préservant la divisibilité et qui s'adaptent à une taille quelconque de la séquence d'entrée. Néanmoins, cette solution présente l'inconvénient de nécessiter l'utilisation de moyens d'adaptation de taille de séquences dans le turbocodeur et le turbodécodeur, ce qui accroît leur complexité. Par ailleurs, le rendement du code n'est pas optimisé, puisqu'on doit transmettre des bits de parité dont la seule raison d'être est liée à l'adaptation des tailles des séquences d'entrée et de l'entrelaceur. En résumé, dans le document "Algebraic interleavers for turbo codes: Precisions on complexity and interleaver generation" cité ci-dessus, la taille des séquences d'entrées a une granularité égale à 1 et la taille des entrelaceurs a une granularité égale à la période du polynôme de rétroaction utilisé dans les codeurs élémentaires. La présente invention a pour but de remédier aux inconvénients précités. Dans ce but, la présente invention propose un procédé d'entrelacement d'une séquence de symboles en une séquence entrelacée, dans lequel on considère un premier polynôme diviseur de la séquence de symboles et ayant une période N0, et un deuxième polynôme compatible avec le premier polynôme diviseur, remarquable en ce qu'il comporte des étapes suivant lesquelles - on considère deux nombres entiers positifs non tous nuls jet k strictement inférieurs à la période NO ; - au cours d'une première étape, on écrit les symboles de la séquence de symboles ligne par ligne à partir de la (j+1)iéme position de la première ligne jusqu'à la (NO-k)'éme position de la dernière ligne d'un tableau à NO colonnes et M lignes, M étant un entier; - au cours d'une deuxième étape, # on permute les symboles à l'intérieur de chaque colonne d'une façon quelconque à l'aide de permutations intra-colonnes et # on permute les colonnes entre elles à l'aide d'une permutation inter-colonnes selon des conditions préservant la divisibilité de ladite séquence entrelacée par le deuxième polynôme ; et - au cours d'une troisième étape, on lit ligne par ligne les données permutées, pour obtenir la séquence entrelacée. Un tel procédé d'entrelacement est particulièrement bien adapté à des turbocodes offrant de bonnes performances et ayant une granularité égale à1. De plus, il est particulièrement simple à mettre en oeuvre. Par ailleurs, grâce à un tel procédé, la présence de bits de bourrage (en anglais "stuffing bits") est superflue. De façon générale, les permutations inter-colonnes qui préservent la divisibilité lorsque jet k sont nuls sont les permutations qui transforment le code cyclique de longueur NO dont le polynôme générateur est le premier polynôme diviseur en un code cyclique dont le polynôme générateur est le deuxième polynôme diviseur, la permutation inter-colonnes permutant entre elles les NO colonnes du tableau représentant la séquence de symboles d'origine. Lorsque jet k ne sont pas tous les deux nuls, les permutations inter- colonnes préservant la divisibilité sont les permutations qui préservent la divisibilité lorsque jet k sont nuls et qui en outre permutent entre elles des colonnes contenant le même nombre de données. Selon une caractéristique particulière, les premier et deuxième polynômes sont identiques. Cela permet de simplifier tant le décodage que le codage. Selon une caractéristique particulière, les permutations intra- colonnes sont de type verrou. En variante, les permutations intra-colonnes sont de type algébrique. Selon une caractéristique particulière, la permutation inter-colonnes est l'identité. Les trois caractéristiques précédentes permettent une mise en oeuvre particulièrement simple. Notamment, si on a besoin de stocker des paramètres nécessaires à la génération de l'entrelaceur, la taille mémoire exigée est modique. Dans le même but que celui indiqué plus haut, la présente invention propose également un dispositif d'entrelacement d'une séquence de symboles en une séquence entrelacée, dans lequel on considère un premier polynôme diviseur de la séquence de symboles et ayant une période N0, et un deuxième polynôme compatible avec le premier polynôme diviseur, remarquable en ce que - on considère deux nombres entiers positifs non tous nuls jet k strictement inférieurs à la période NO ; et en ce que le dispositif comporte - un module d'écriture, pour écrire les symboles de la séquence de symboles ligne par ligne à partir de la (j+1)ième position de la première ligne jusqu'à la (NO-k)'ème position de la dernière ligne d'un tableau à NO colonnes et M lignes, M étant un entier; - un module de permutation, pour # permuter les symboles à l'intérieur de chaque colonne d'une façon quelconque à l'aide de permutations intra-colonnes et # permuter les colonnes entre elles à l'aide d'une permutation inter-colonnes selon des conditions préservant la divisibilité de la séquence entrelacée par le deuxième polynôme ; et - un module de lecture, pour lire ligne par ligne les données permutées, fournissant la séquence entrelacée. Toujours dans le même but, la présente invention propose en outre un procédé de codage d'une séquence de symboles, remarquable en ce qu'il met en ceuvre au moins un procédé d'entrelacement tel que ci-dessus. Selon une caractéristique particulière, le procédé de codage utilise un turbocodage, met en oeuvre au moins deux opérations de codage convolutif récursif et est remarquable en ce que - une première opération de codage comporte une opération de division de la séquence de symboles par le premier polynôme diviseur, et en ce que - une deuxième opération de codage comporte une opération de division de la séquence entrelacée par le deuxième polynôme. Selon une caractéristique particulière, le turbocodage utilise des turbocodes de type convolutif parallèle. En variante, le turbocodage utilise des turbocodes de type série ou hybride parallèle/série. Les avantages de ces caractéristiques sont ceux du type de turbocode considéré : avec les turbocodes convolutifs parallèles, on optimise le taux d'erreur à très faible rapport signal sur bruit ; avec les turbocodes convolutifs série ou hybrides, on optimise le taux d'erreur à plus fort rapport signal sur bruit. Selon une caractéristique particulière, le procédé de codage comporte une opération de génération d'un procédé d'entrelacement en fonction de la taille de la séquence de symboles. Toujours dans le même but, la présente invention propose de plus un dispositif de codage d'une séquence de symboles, remarquable en ce qu'il comporte au moins un dispositif d'entrelacement tel que ci-dessus. Toujours dans le même but, la présente invention propose en outre un procédé de décodage d'une séquence de symboles reçus, remarquable en ce qu'il met en ceuvre au moins un procédé d'entrelacement tel que ci-dessus, la séquence de symboles reçus correspondant, après passage dans un canal éventuellement bruité, à une séquence représentative de la séquence de symboles précitée. Selon une caractéristique particulière, le procédé de décodage utilise un turbodécodage, comporte des opérations de décodage itératif mettant en oeuvre au moins deux opérations de décodage élémentaire et est remarquable en ce que - une première opération de décodage élémentaire est adaptée à décoder une séquence codée par une opération de codage convolutif récursif de la séquence de symboles comportant au moins une division de la séquence de symboles par le premier polynôme, et en ce que - une deuxième opération de décodage élémentaire est adaptée à décoder une séquence codée par une opération de codage convolutif récursif de la séquence de symboles comportant au moins une division de la séquence entrelacée par le deuxième polynôme. Selon une caractéristique particulière, le procédé de décodage comporte une opération de génération d'un procédé d'entrelacement en fonction de la taille de la séquence de symboles. Selon une caractéristique particulière, le procédé de décodage est adapté à décoder une séquence reçue codée à l'aide d'un procédé de codage tel que ci-dessus. Toujours dans le même but, la présente invention propose en outre un dispositif de décodage d'une séquence de symboles reçus, remarquable en ce qu'il comporte au moins un dispositif d'entrelacement tel que ci-dessus, la séquence de symboles reçus correspondant, après passage dans un canal éventuellement bruité, à une séquence représentative de la séquence de symboles précitée. La présente invention vise aussi un appareil de traitement de signaux numériques, comportant des moyens adaptés à mettre en oeuvre un procédé d'entrelacement et/ou un procédé de codage et/ou un procédé de décodage tels que ci-dessus. La présente invention vise aussi un appareil de traitement de signaux numériques, comportant un dispositif d'entrelacement et/ou un dispositif de codage et/ou un dispositif de décodage tels que ci-dessus. La présente invention vise aussi un réseau de télécommunications, comportant des moyens adaptés à mettre en ceuvre un procédé d'entrelacement et/ou un procédé de codage et/ou un procédé de décodage tels que ci-dessus. La présente invention vise aussi un réseau de télécommunications, comportant un dispositif d'entrelacement et/ou un dispositif de codage et/ou un dispositif de décodage tels que ci-dessus. La présente invention vise aussi une station mobile dans un réseau de télécommunications, comportant des moyens adaptés à mettre en oeuvre un procédé d'entrelacement et/ou un procédé de codage et/ou un procédé de décodage tels que ci-dessus. La présente invention vise aussi une station mobile dans un réseau de télécommunications, comportant un dispositif d'entrelacement et/ou un dispositif de codage et/ou un dispositif de décodage tels que ci-dessus. La présente invention vise aussi un dispositif de traitement de signaux représentatifs de parole, comportant un dispositif d'entrelacement et/ou un dispositif de codage et/ou un dispositif de décodage tels que ci-dessus. La présente invention vise aussi un dispositif de transmission de données comportant un émetteur adapté à mettre en oeuvre un protocole de transmission par paquets, comportant un dispositif d'entrelacement et/ou un dispositif de codage et/ou un dispositif de décodage et/ou un dispositif de traitement de signaux représentatifs de parole tels que ci-dessus. Selon une caractéristique particulière du dispositif de transmission de données, le protocole de transmission par paquets est de type ATM (mode de transfert asynchrone, en anglais "Asynchronous Transfer Mode"). En variante, le protocole de transmission par paquets est de type IP (protocole de transmission utilisé sur Internet, en anglais "Internet Protocof'). L'invention vise aussi - un moyen de stockage d'informations lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, permettant la mise en oeuvre d'un procédé d'entrelacement et/ou d'un procédé de codage et/ou d'un procédé de décodage tels que ci-dessus, et - un moyen de stockage d'informations amovible, partiellement ou totalement, lisible par un ordinateur ou un microprocesseur conservant des instructions d'un programme informatique, permettant la mise en oeuvre d'un procédé d'entrelacement et/ou d'un procédé de codage et/ou d'un procédé de décodage tels que ci-dessus. L'invention vise aussi un programme d'ordinateur comportant des séquences d'instructions pour mettre en oeuvre un procédé d'entrelacement et/ou un procédé de codage et/ou un procédé de décodage tels que ci-dessus. Les caractéristiques particulières et les avantages du dispositif d'entrelacement, des procédés et dispositifs de codage et de décodage, des différents appareils de traitement de signaux numériques, des différents réseaux de télécommunications, des différentes stations mobiles, du dispositif de traitement de signaux représentatifs de parole, du dispositif de transmission de données, des moyens de stockage d'informations et du programme d'ordinateur qui ne sont pas mentionnés explicitement ci-dessus étant les mêmes que ceux du procédé d'entrelacement selon l'invention, ils ne sont pas rappelés ici. D'autres aspects et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit de modes particuliers de réalisation, donnés à titre d'exemples non limitatifs. La description se réfère aux dessins qui l'accompagnent, dans lesquels - la figure 1 représente schématiquement un dispositif électronique comportant un dispositif de codage conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 2 représente schématiquement, sous forme de schéma bloc, un dispositif de codage correspondant à un turbocode convolutif parallèle, conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 3 représente schématiquement un dispositif électronique comportant un dispositif de décodage conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 4 représente schématiquement, sous forme de schéma bloc, un dispositif de décodage correspondant à un turbocode convolutif parallèle, conforme à la présente invention, dans un mode particulier de réalisation ; - la figure 5 est un organigramme représentant schématiquement le fonctionnement d'un dispositif de codage tel que celui inclus dans le dispositif électronique de la figure 1, dans un mode particulier de réalisation ; - la figure 6 est un organigramme représentant schématiquement des opérations de décodage et de correction d'erreur mises en oeuvre par un dispositif de décodage tel que celui inclus dans le dispositif électronique de la figure 3, conformément à la présente invention, dans un mode particulier de réalisation ; - la figure 7 est un organigramme représentant schématiquement l'opération de turbodécodage proprement dite incluse dans le procédé de décodage conforme à la présente invention, dans une variante de réalisation ; et - la figure 8 est un graphique comparant les performances d'un entrelaceur conforme à la présente invention et celles d'un entrelaceur tel que spécifié par le comité de normalisation 3GPP ("3@d Generation Partnership ProjecY'). De façon générale, un turbocodeur du type de ceux apparaissant dans l'invention, ayant pour rendement 1l3, peut être considéré comme une paire de codeurs élémentaires récursifs convolutifs mettant en #uvre des polynômes diviseurs. Le premier codeur produit une séquence de contrôle à partir d'une séquence de symboles à coder u et le second codeur produit une séquence de contrôle à partir d'une séquence entrelacée u* obtenue par entrelacement de la séquence u. Soit gi(x) le polynôme diviseur du premier codeur. Soit m le degré du polynôme gi(x) et NO le plus petit entier tel que gi(x) soit un diviseur du polynôme x" +1. Ce nombre NO est appelé "période" de gi(x). Soit 92(x) le polynôme diviseur du deuxième codeur. gi(x) et 92(x) ont la propriété suivante : si gi(x) = FI(x-x;) est la factorisation complète de gi(x) dans un corps d'extension du corps à deux éléments, alors la factorisation complète de 92(x) est 11 (x - x; ') où cp est un automorphisme (noté exponentiellement) dudit corps d'extension. Dans la suite, un tel polynôme 92(x) sera dit compatible avec gi(x). En particulier, un polynôme est toujours compatible avec lui-même. On remarquera que deux polynômes compatibles ont le même degré et la même période. Considérons par exemple la factorisation gi(x)=(x-#)(x-# 2)(x-#4) de gi(x) = x3+x+1 où a est une racine primitive septième de l'unité et appartient au corps contenant huit éléments. Considérons les six automorphismes (Pi : arma' de ce corps à huit éléments. On vérifie que cp1, cp2 et 94 produisent 92(x) = 91(x) alors que cp3, cp6 et cp5 produisent 92(x)= x3 +x2 +1 qui se factorise comme 92(x)=(x-a3)(x-a6)(x-a5). Soit n égal à (M.NO j-k), M étant un entier quelconque et jet k étant des entiers strictement inférieurs à N0. Les séquences de symboles s mentionnées par la suite possèdent une représentation polynomiale s(x) avec des coefficients binaires. Le premier codeur produit, à partir d'une séquence de symboles d'informations binaires à coder u de longueur n-m - d'une part, une séquence de m bits d'ajout, dits bits de "padding", qui, concaténée à la séquence u, forme une séquence a divisible par gi(x), et - d'autre part, une séquence de contrôle vi(x) de longueur n (en supposant que le degré de hi est égal à m) telle que vl(x) = a(x).hi(x)Igi(x). Un entrelaceur entrelace la séquence a(x) en une séquence a*(x). Cet entrelaceur garantit que si a(x) est divisible par gi(x) alors a*(x) sera divisible par 92(x) ; on dira alors que cet entrelaceur préserve la divisibilité par les polynômes diviseurs du turbocode. Le deuxième codeur produit, à partir de la séquence entrelacée a*, une séquence de contrôle v2(x) de longueur n (en supposant que le degré de h2 est égal à m) telle que v2(x)=a*(x).h2(x)Ig2(x). Dans la suite, on supposera que g1(x) = 92(x). Par convention, g1(x) et 92(x) seront notés g(x). A titre d'illustration, on considère dans ce qui suit un polynôme diviseur g(x) égal à 1+x2+x3. Sa période, N0, vaut 7. On considère aussi des polynômes multiplicateurs h1 (x) et h2(x) tous deux égaux à 1+x+x3. On considère une séquence à entrelacer a(x) de n bits obtenue à partir d'une séquence à coder u(x) de n-m bits. Soient j et k, comme précédemment, deux entiers strictement inférieurs à N0. Dans ces conditions, un entrelaceur préservant la divisibilité par g(x) peut être défini comme suit : si on écrit les données de la séquence à entrelacer ligne par ligne à partir de la (j+1)ième position de la première ligne jusqu'à la (NO- k)ième position de la dernière ligne dans un tableau A à NO colonnes, - on peut permuter les données à l'intérieur de chaque colonne d'une façon quelconque à l'aide de permutations intra-colonnes et - permuter les colonnes entre elles à l'aide de permutations inter- colonnes selon certaines conditions préservant la divisibilité par g(x), avant de lire ligne par ligne les données permutées. On introduit ici la notion de portée d'un polynôme (en anglais "span"), ainsi que la notion de portée totale (en anglais "full span"). Etant donné un polynôme b(x) comportant un nombre pair de coefficients non nuls b(x) = x' , où I = {i1, i2, ... , i2s}, ir Ce polynôme b(x) étant alors entrelacé par un entrelaceur quelconque en un polynôme b*(x), la portée sp(b*) du polynôme b*(x) est calculée de façon identique. La portée totale fsp(b) est alors définie comme la somme de sp(b) et de sp(b*). Une séquence b(x) = x' est dite homogène si tous les i ont le même reste k dans leur division par le nombre N0. Un entrelaceur intra-colonne d'une taille donnée M; sera de préférence tel que pour tout polynôme b comportant un nombre pair de coefficients non nuls et de degré maximum M; -1, cet entrelaceur qui entrelace b en b* maximise la valeur minimum de la portée totale de b, fsp(b). On décrit maintenant les entrelaceurs inter-colonnes. En numérotant les colonnes dans un ordre croissant de 0 à 6, on note (bo, bl, ..., bk) la permutation qui fait passer la colonne de rang bo au rang bl, la colonne de rang b, au rang b2, ... et la colonne de rang bk au rang bo. On note (co, c,, ..., ck)(do, di, ..., & ) la composée de deux permutations (co, ci, ..., ck) et (do, dl, ... , dk@). La table 1 qui suit donne la liste des 168 permutations inter-colonnes qui préservent la divisibilité par g(x) lorsque jet k sont nuls. Identité (1 2 4) (3 6 5) (1 4 2) (3 5 6) (0123456) (026)(143) (046)(325) (0246 1 35) (045)(1 62) (01 5)(364) (0 3 6 2 5 1 4) (0 6 4) (2 3 5) (054)(1 26) (0 4 1 5 2 6 3) (01 3)(254) (023)(1 65) (0 5 3 1 6 4 2) (032)(1 56) (062)(1 34) (0654321) (051)(346) (031)(245) (1 5)(23) (1 3 6) (2 4 5) (1 4 3) (2 5 6) (056)(1 34) (0 3 5 1 4 2 6) (0 4 6) (2 1 5) (0312465) (0416325) (05)(2364) (02 1 4)(36) (0 6 4) (3 1 5) (01 32654) (0 4 5 3) (2 6) (0 5 4 3) (1 2) (03)(1 6) (0164352) (02)(56) (0634512) (0 6 1)(2 5 4) (0 1)(2 3 4 6) (0 2 4 1) (3 5) (2 3) (4 6) (1 3 4) (2 6 5) (1 6 2) (3 5 4) (01 36)(45) (03 1 6)(24) (0 6) (2 5) (035)(1 26) (0632 145) (01 5)(234) (0 2 5 1 6 3 4) (0 4) (5 3) (0561 324) (0624153) (0125643) (03)(1 465) (0 5 2) (1 4 3) (02)(1 546) (0 4 1 2) (3 6) (0421)(56) (051)(362) (0264531) (1 5)(46) (1 2 6) (3 4 5) (1 6 3) (2 5 4) (0541 236) (024351 6) (06) (1 532) (0 2 6 5) (1 3) (0 6 2 5) (1 4) (0 5) (3 4) (034)(1 62) (04)(1 523) (01 24)(56) (063)(245) (0564213) (023)(146) (0 1 4 2) (3 5) (0 3 2) (4 6 5) (0451 362) (0432561) (0 1) (36) (0352641) (2 4) (3 6) (1 4) (5 6) (1 2)(35) (0145326) (046)(123) (0256)(34) (0 4 3 5) (1 6) (02 1 3645) (01 5)(624) (064)(125) (0354)(26) (0523614) (023)(1 54) (01 63)(25) (042651 3) (0562)(13) (0615342) (032)(164) (0346521) (051)(324) (0631)(45) (1 5) (2 4 3 6) (1 4 5 6) (2 3) (1 3)(25) (0 5 2 6) (1 4) (046)(1 35) (0 3 4 2 1 5 6) (04231 65) (03641 25) (05) (2463) (064)(1 32) (0263 1 54) (01 4)(365) (0 3) (4 5) (053)(1 62) (043)(1 26) (01 2)(356) (0 6 5 2) (3 4) (02)(1 645) (0253461) (01)(24) (0623541) (2 6) (3 4) (1 6 5 4) (2 3) (1 3 5 2) (4 6) (01 6)(245) (06)(1 3) (0 3 6) (2 5 4) (0 6 1 4 2 3 5) (0 3 4 5) (1 2) (01 5)(263) (04)(1 325) (0 2 4) (3 5 6) (0 5 3 4)(1 6) (03)(1 564) (0146253) (0651243) (0546312) (0436152) (02)(14) (021)(365) (051)(264) (0456231) (1 5) (2 6 3 4) (1 6)(45) (1 2 5 3) (4 6) (053241 6) (06) (1 235) (021 5436 (0 6 5) (1 4 3) (025)(1 34) (0 5)(2 6) (04)(12) (031 5624) (0165234) (0 2 3) (4 5 6) (0 5 2 1 4 6 3) (061 3)(24) (0135462) (042)(365) (032)(145) (036 1)(25) (01)(2643) (041)(356) Table 1 Lorsque jet k ne sont pas tous les deux nuls, les permutations inter- colonnes admissibles sont les permutations décrites dans la table 1 qui en outre permutent entre elles des colonnes contenant le même nombre de données. On appellera longueur utile le nombre de données dans une colonne. On notera ainsi que si la somme j+k est strictement inférieure à N0, on a deux sous-ensembles de colonnes de même longueur utile - le premier sous-ensemble est formé des j premières et des k dernières colonnes. Ces colonnes ont une longueur utile égale à M-1 ; - le second sous-ensemble est formé des autres colonnes. Celles-ci ont une longueur utile égale à M. De même, on notera que si la somme j+k est strictement supérieure à N0, on a deux sous-ensembles de colonnes de même longueur utile - le premier sous-ensemble est formé des (NO-k) premières et des (NO-j) dernières colonnes. Ces colonnes ont une longueur utile égale à M-1 ; - le second sous-ensemble est formé des autres colonnes. Celles-ci ont une longueur utile égale à M-2. On décrit ci-après deux exemples d'entrelaceurs satisfaisant toutes les conditions décrites ci-dessus. A titre de premier exemple, on souhaite entrelacer une séquence a(x) de taille 52. Cet entrelaceur est défini comme suit : on écrit les données de la séquence à entrelacer ligne par ligne à partir de la cinquième position (j = 4) de la première ligne jusqu'à la septième position (k = 0) de la dernière ligne dans un tableau à 7 colonnes (NO = 7) et 8 lignes (M = 8). On obtient ainsi la table 2 décrite ci-après où sont représentés les indices, i, des éléments de la séquence à entrelacer écrite sous la forme a(x) = a;x' . Par la suite, on représente les places vides par des croix (X). X X X X 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 Table 2 De façon générale, on appellera permutation algébrique une permutation qui permute chaque bit d'une séquence contenant Ni bits en position i vers une position i* = Le, + si modulo NI où el et Ni sont relativement premiers entre eux (en anglais "relafively prime"). Dans l'exemple décrit ici, on permute les données à l'intérieur de la première colonne à l'aide d'une première permutation intra-colonne algébrique définie comme suit: on suppose les positions des NO (= 7) bits numérotées avec i allant de 0 à 6. Chacun des bits de la première colonne en position i avant permutation intra-colonne occupera une position i* égale à i.e(0) + s(0) modulo 7 avec e(0) valant 4 et s(0) valant 0. On numérote les colonnes du tableau avec c allant de 0 à 6 (6 = N0-1). Lorsque c est inférieur à j, chaque colonne du tableau numérotée c possède 7 données binaires. En appliquant chaque permutation intra-colonne, chacun des bits de la colonne numéro c, en position i relativement à cette colonne, occupera une position i* égale à i.e(c) + s(c) modulo 7. Dans notre exemple, toutes les valeurs de e(c) seront égales à une même valeur e = 4 et chaque valeur de s(c) sera calculée suivant la formule s(c) = 4.c modulo 7. Lorsque c est supérieur ou égal à j, chaque colonne du tableau numérotée c possède 8 données binaires. Avant permutation intra-colonne, chacun des bits de la colonne numéro c, en position i relativement à cette colonne, occupera une position i* égale à i.e'(c) + s'(c) modulo 8. Toutes les valeurs de e'(c) seront égales à une même valeur e' = 5 et chaque valeur de s'(c) sera calculée suivant la formule s'(c) = 3.c modulo 8. Les valeurs des paramètres e et e' sont données à titre d'exemple nullement limitatif : en particulier, ces valeurs n'ont pas été optimisées. Avant permutation, l'étiquetage des données suivant les colonnes est décrit dans la table 3 ci-dessous, où on a porté entre parenthèses le rang initial d'un bit tel que décrit dans la table 2. c=0 c=1 c=2 c=3 c=4 c=5 c=6 X X X X 0(0) 0(1) 0(2) 0(3) 0(4) 0(5) 0(6) 1(7) 1(8) 1(9) 1(10) 1(11) 1(12) 1(13) 2(14) 2(15) 2(16) 2(17) 2(18) 2(19) 2(20) 3(21) 3(22) 3(23) 3(24) 3(25) 3(26) 3(27) 4(28) 4(29) 4(30) 4(31) 4(32) 4(33) 4(34) 5(35) 5(36) 5(37) 5(38) 5(39) 5(40) 5(41) 6(42) 6(43) 6(44) 6(45) 6(46) 6(47) 6(48) 7(49) 7(50) 7(51) Table 3 Les permutations intra-colonnes décrites ci-dessus peuvent être résumées comme suit - pour c _ j=4, i* = i.e' + s'(c) = 5i + 3c modulo 8 (8 = n/NO). Après permutation intra-colonne, on obtient alors la table 4 de permutation. c=0 c=1 c=2 c=3 c=4 c=5 c=6 X X X X 0(0) 1(8) 2(16) 0(3) 5(39) 3(26) 1(13) 5(35) 6(43) 7(51) 4(31) 2(18) 0(5) 5(41) 2(14) 3(22) 4(30) 1(10) 6(46) 4(33) 2(20) 7(49) 0(1) 1(9) 5(38) 3(25) 1(12) 6(48) 4(28) 5(36) 6(44) 2(17) 0(4) 5(40) 3(27) 1(7) 2(15) 3(23) 6(45) 4(32) 2(19) 0(6) 6(42) 7(50) 0(2) 3(24) 1(11) 6(47) 4(34) 3(21) 4(29) 5(37) Table 4 Puis on effectue des permutations inter-colonnes. Les permutations inter-colonnes possibles sont prises parmi les permutations de la table 1. Elle doivent en outre agir sur des sous-ensembles disjoints de colonnes de même longueur utile, soit sur les colonnes 0, 1, 2 et 3 d'une part et 4, 5 et 6 d'autre part. La table 5 ci-dessous donne la liste des permutations inter-colonnes possibles Identité (0 2) (5 6) (2 3) (4 6) (0 3 2)(4 6 5) (0 3)(4 5) (0 2 3) (4 5 6) Table 5 En considérant la permutation inter-colonnes (0 2)(5 6), on obtient finalement la table 6 de permutation suivante c=2 c=1 c=0 c=3 c=4 c=6 c=5 X X X X 0 16 8 26 39 3 13 35 51 43 5 18 31 41 14 30 22 33 46 10 20 49 9 1 12 25 38 48 28 44 36 40 4 17 27 7 23 15 19 32 45 6 42 2 50 47 11 24 34 21 37 29 Table 6 Ensuite, on lit les données ligne par ligne à partir de la cinquième position (j = 4) de la première ligne du tableau jusqu'à la septième position (k = 0) de la dernière ligne. La séquence permutée ainsi obtenue est alors par exemple a*(x) = ao + a1x16 + a2xa + a3X26 +...+ a52X2s. On notera que la permutation inverse de celle qui vient d'être décrite transforme a(x) en a*(x) = ao + ai6x + a$x2 + a26X3 +...+ a29X52 et est conforme à l'invention. De façon générale, si un entrelaceur est conforme à l'invention, son entrelaceur inverse l'est aussi. Pour décrire le second exemple, on définit d'abord la notion d'entrelaceur verrou. Avec M = R.N, on associe à l'ensemble des séquences binaires z(x) = z;x' une matrice U à R lignes et N colonnes qui a pour élément en position (j,@) le nombre jN+2, pour j compris entre 0 et R-1 (valeurs comprises) et @ compris entre 0 et N-1 (valeurs comprises). Par exemple, pour R = 7 et N = 5, M = R.N = 35 et la matrice U est illustrée par 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 U = 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 A partir d'un M-uplét k = [ko, ..., km-,], on réalise alors sur les colonnes de la matrice U une permutation circulaire d'amplitude kj pour la j'ème colonne de U. La matrice obtenue est notée U*. De cette façon, si la matrice U est telle que définie plus haut, et si le M-uplet k vaut [0 2 5 1 3], alors la matrice U* est donnée par 0 26 12 33 24 5 31 17 3 29 10 1 22 8 34 U* = 15 6 27 13 4 20 11 32 18 9 25 16 2 23 14 30 21 7 28 19 Au couple (U, U*), ou de façon équivalente au M-uplet k, on associe alors l'entrelaceur qui produit à partir de toute séquence z(x) = zo + zix + ... + Z34X34 la séquence entrelacée z *(x) = Zo + Z,X26 + Z2X12 + ... + Z34X19, qu'on peut également écrire sous la forme z*(x) = Zo + Zl 1 X + Z27X2 + ... +Z14X34. De façon générale, un tel entrelaceur est appelé pour la suite de la description un entrelaceur verrou (par analogie avec les verrous à rotation de bagues numérotées parallèles). Un entrelaceur verrou de taille R.N, défini par le N-uplet k = [kp, ..., kN_1], produit, à partir de la séquence z(x), qui s'écrit de façon univoque z(x) = XKZ(K)(XN), où Z(K) (x) est un polynôme de degré au plus égal à R-1, une séquence entrelacée z*(x) = xK-kKNz(K)(x") modulo xR.N-1. Du fait de la nature d'une permutation circulaire, une telle matrice U* (et donc l'entrelaceur verrou associé à U et U*) est totalement définie par la connaissance de l'amplitude de la permutation réalisée dans chaque colonne. On note que le nombre de colonnes de U et de U* ne dépend pas du polynôme g(x), les permutations dans les colonnes de U pour obtenir U* doivent être des permutations circulaires, et de façon préférée, la transformation de U en U* ne comporte pas de permutation des colonnes entre elles. A titre de second exemple, on souhaite entrelacer une séquence a(x) de taille n = M.NO-j-k avec M tel que M et M-1 ont tous deux une factorisation significative. On dit qu'un nombre possède une factorisation significative s'il s'écrit comme le produit de deux nombres ayant une relativement grande valeur. Dans ces conditions, il existe des entrelaceurs de taille M et M-1 dits verrous intéressants. On choisit - M = 78 = 13x6 (M-1 = 77 = 11x7) et - j=5 - k=0 Ainsi, n = 541 = 546-5 = 7.78-5. Voici un mode de construction d'entrelaceurs de taille 541. On sélectionne un bon verrou pour chacune de ces tailles, en imposant des conditions de portée sur les séquences homogènes de poids 2 et 4. Un bon verrou de taille 11x7 est spécifié par le 7-uplet k, = [0 1 4 2 3 7 8] et un bon verrou de taille 13x6 est spécifié par le 6-uplet k2 = [0 1 4 2 3 7]. On sait, d'autre part, que les multiples r.k, calculés modulo 11 sont de la même qualité que ki lorsque r n'est pas un multiple de 11. De la même façon, les multiples r.k2 calculés modulo 13 sont de la même qualité que k2 lorsque r n'est pas un multiple de 13. Les 541 symboles de la séquence a(x) sont écrits dans un tableau à NO = 7 colonnes dont les 5 premières contiennent 77 éléments et les deux dernières contiennent 78 éléments. Ce tableau est représenté ci-dessous en table 7 I=0 X X X X X 0 1 11 2 3 4 5 6 7 8 1 = 2 9 10 11 12 13 14 15 16 I=75 I = 76 533 1 = 77 534 535 536 537 538 539 540 Table 7 La permutation intra-colonne s'appliquant à la première colonne est décrite comme suit : les éléments de la première colonne sont écrits ligne par ligne dans un tableau 11 x7 (table 8) 2 9 16 23 30 37 44 51 58 485 492 499 506 513 520 527 534 Table 8 Le verrou spécifié par ki = [0 1 4 2 3 7 8] est appliqué à ce tableau. On obtient alors le tableau suivant (table 9) 2 499 51 9 513 492 58 23 520 506 30 16 527 485 37 534 44 Table 9 Les symboles sont ensuite lus ligne par ligne. La permutation intra-colonne s'appliquant à la deuxième colonne est décrite comme suit: les éléments de la deuxième colonne sont écrits ligne par ligne dans un tableau 11x7. Le verrou 2.k, (= 2.[0 1 4 2 3 7 8] modulo 11 = [0 2 8 4 6 3 5]) est appliqué à ce tableau. Ensuite, les symboles sont lus ligne par ligne. Enfin, la séquence de longueur 77 résultant de cette permutation intra-colonne, que nous noterons (bo, bl, b2, ... , b75, b76)T, où T désigne la matrice transposée, subit une permutation circulaire d'amplitude 3 pour produire (b74, b75, b76, bo, ..., b73) qui remplacera les 77 éléments significatifs de la seconde colonne du tableau. De même, la permutation intra-colonne s'appliquant à la troisième colonne est la résultante d'une permutation verrou agissant sur un tableau 11x7 avec un verrou valant 3.kl et d'une permutation circulaire d'amplitude 6. De même, la permutation intra-colonne s'appliquant à la quatrième colonne est la résultante d'une permutation verrou agissant sur un tableau 11x7 avec un verrou valant 4.kl et d'une permutation circulaire d'amplitude 21. De même, la permutation intra-colonne s'appliquant à la cinquième colonne est la résultante d'une permutation verrou agissant sur un tableau 11x7 avec un verrou valant 6.kl et d'une permutation circulaire d'amplitude 31. Pour la sixième colonne, les éléments sont écrits ligne par ligne dans un tableau 13x6. La permutation intra-colonne s'appliquant à la sixième colonne est la résultante d'une permutation verrou agissant sur ce tableau avec un verrou valant 3.k2 et d'une permutation circulaire d'amplitude 35. De même, la permutation intra-colonne s'appliquant à la septième colonne est la résultante d'une permutation verrou agissant sur un tableau 13x6 avec un verrou valant 6.k2 et d'une permutation circulaire d'amplitude 22. On notera a = [a;] le NO-uplet définissant la valeur des coefficients à appliquer à ki et k2, le coefficient a; s'appliquant à la ieme colonne. Ainsi, a=[1234636]. On notera _ [[3;] le NO-uplet définissant la valeur des amplitudes des permutations circulaires à appliquer à chaque colonne, le coefficient p; s'appliquant à la ieme colonne. Ainsi, [3 = [0 3 6 21 31 35 22]. On suppose ici que la permutation inter-colonnes est l'identité. On décrit maintenant un mode particulier de réalisation de la présente invention, à l'aide des figures 1 à 8. La figure 1 illustre schématiquement la constitution d'une station de réseau ou station de codage informatique, sous forme de schéma synoptique. Cette station comporte un clavier 111, un écran 109, une source d'information externe 110, un émetteur hertzien 106, conjointement reliés à un port d'entréeslsorties 103 d'une carte de traitement 101. La carte de traitement 101 comporte, reliés entre eux par un bus d'adresses et de données 102 - une unité centrale de traitement 100 ; - une mémoire vive RAM 104; - une mémoire morte ROM 105 ; et - le port d'entrées/sorties 103. Chacun des éléments illustrés en figure 1 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments communs ne sont donc pas décrits ici. On observe, cependant, que - la source d'information 110 est, par exemple, un périphérique d'interface, un capteur, un démodulateur, une mémoire externe ou un autre système de traitement d'information (non représenté), et est de préférence adaptée à fournir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia, sous forme de séquences de données binaires, et que - l'émetteur hertzien 106 est adapté à mettre en ceuvre un protocole de transmission par paquets sur un canal non filaire, et à transmettre ces paquets sur un tel canal. On observe en outre que le mot "registre" utilisé dans la description désigne, dans chacune des mémoires 104 et 105, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier). La mémoire vive 104 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 104 comporte notamment - un registre "données source", dans lequel sont conservées, dans l'ordre de leur arrivée sur le bus 102, les données binaires en provenance de la source d'information 110, sous forme d'une séquence u, - un registre "données permutées", dans lequel sont conservées, dans l'ordre de leur arrivée sur le bus 102, les données binaires permutées, comme décrit plus loin à l'aide de la figure 5, sous forme d'une séquence u*, - un registre "données à -émettre", dans lequel sont conservées les séquences à transmettre, - un registre "nb données", qui conserve un nombre entier correspondant au nombre de données binaires dans le registre "données source", - le tableau définissant l'entrelaceur, dans un registre "entrelaceur", et - la valeur de n, dans un registre "n". La mémoire morte 105 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent - le programme de fonctionnement de l'unité centrale de traitement 100, dans un registre "program", - un registre "paramètres entrelaceurs", dans lequel sont conservés les paramètres nécessaires à la génération des entrelaceurs susceptibles d'être utilisés, - la séquence g, dans un registre "g", - le degré m de g(x), dans un registre "m", - la séquence hl, dans un registre "hl", - la séquence h2, dans un registre "h2", et - la valeur de N0, dans un registre "No". L'unité centrale de traitement 100 est adaptée à mettre en ceuvre l'organigramme illustré en figure 5. On observe, en figure 2, qu'un dispositif de codage correspondant à un turbocode convolutif parallèle conforme à la présente invention comporte notamment - une entrée de symboles à coder 201, où la source d'information 110 fournit une séquence de symboles binaires à transmettre, ou "à coder", u, - un premier codeur 202, qui fournit, à partir de la séquence u, deux séquences a et v, de symboles représentatives de la séquence u, - un entrelaceur 203, qui fournit, à partir de la séquence a, une séquence entrelacée a*, dont les symboles sont les symboles de la séquence u, mais dans un ordre différent, et - un second codeur 204, qui fournit, à partir de la séquence entrelacée a*, une séquence v2 de symboles représentative de la séquence a*. Les trois séquences a, v_i et v2 sont transmises pour être, ensuite, décodées. Dans la suite de la description, on s'intéresse de préférence aux entrelaceurs décrits précédemment en exemple, bien que la présente invention ne se limite pas à ce type d'entrelaceurs, mais concerne, bien plus généralement, tous les entrelaceurs préservant la divisibilité par g(x). La figure 3 illustre schématiquement la constitution d'une station de réseau ou station de décodage informatique, sous forme de schéma synoptique. Cette station comporte un clavier 311, un écran 309, un destinataire d'information externe 310, un récepteur hertzien 306, conjointement reliés à un port d'entrées/sorties 303 d'une carte de traitement 301. La carte de traitement 301 comporte, reliés entre eux par un bus d'adresses et de données 302 - une unité centrale de traitement 300 ; - une mémoire vive RAM 304 ; - une mémoire morte ROM 305 ; et - le port d'entrées/sorties 303. Chacun des éléments illustrés en figure 3 est bien connu de l'homme du métier des micro-ordinateurs et des systèmes de transmission et, plus généralement, des systèmes de traitement de l'information. Ces éléments communs ne sont donc pas décrits ici. On observe, cependant, que - le destinataire d'information 310 est, par exemple, un périphérique d'interface, un afficheur, un modulateur, une mémoire externe ou un autre système de traitement d'information (non représenté), et est avantageusement adapté à recevoir des séquences de signaux représentatifs de parole, de messages de service ou de données multimédia, sous forme de séquences de données binaires, et que - le récepteur hertzien 306 est adapté à mettre en oeuvre un protocole de transmission par paquets sur un canal non filaire, et à recevoir ces paquets sur un tel canal. On observe, en outre, que le mot "registre" utilisé dans la description désigne, dans chacune des mémoires 304 et 305, aussi bien une zone mémoire de faible capacité (quelques données binaires) qu'une zone mémoire de grande capacité (permettant de stocker un programme entier). La mémoire vive 304 conserve des données, des variables et des résultats intermédiaires de traitement, dans des registres de mémoire portant, dans la description, les mêmes noms que les données dont ils conservent les valeurs. La mémoire vive 304 comporte notamment - un registre "données reçues", dans lequel est conservée, dans l'ordre d'arrivée des données binaires sur le bus 302 en provenance du canal de transmission, une estimation douce de ces données binaires, équivalente à une mesure de fiabilité, sous forme d'une séquence, - un registre "inf extrinsèques", dans lequel sont conservées, à un instant donné, les informations extrinsèques et a priori correspondant aux séquences a, v_, et v_2, - un registre "données estimées", dans lequel est conservée, à un instant donné, une séquence estimée û fournie en sortie par le dispositif de décodage de l'invention, comme décrit plus loin à l'aide de la figure 4, - un registre "nb iteration", qui conserve un nombre entier correspondant à un compteur d'itérations effectuées par le dispositif de décodage concernant une séquence u reçue, comme décrit plus loin à l'aide de la figure 4, - un registre "nb données reçues", qui conserve un nombre entier correspondant au nombre de données binaires contenues dans le registre "données reçues", - le tableau définissant l'entrelaceur et son entrelaceur inverse, dans un registre "entrelaceurs", et - la valeur de n, dans un registre "n". La mémoire morte 305 est adaptée à conserver, dans des registres qui, par commodité, possèdent les mêmes noms que les données qu'ils conservent - le programme de fonctionnement de l'unité centrale de traitement 300, dans un registre "Program", - un registre "Paramètres Entrelaceurs", dans lequel sont conservés les paramètres nécessaires à la génération des entrelaceurs susceptibles d'être utilisés, - la séquence g, dans un registre "g", - le degré m de g(x), dans un registre "m", - la séquence hl, dans un registre "hl", - la séquence h2, dans un registre "h2", - la valeur de N0, dans un registre "NO", et - un registre "nb iteration max", dans lequel est conservé le nombre maximal d'itérations à effectuer lors de l'opération de turbodécodage 603 d'une séquence u reçue (voir figure 6 décrite plus loin). L'unité centrale de traitement 300 est adaptée à mettre en oeuvre l'organigramme illustré en figure 6. En figure 4, on observe qu'un dispositif de décodage adapté à décoder les séquences issues d'un dispositif de codage tel que celui inclus dans le dispositif électronique de la figure 1 comporte notamment - trois entrées 401, 402 et 403 de séquences représentatives de a, MI et v2 qui, par commodité, sont aussi notées a, v, et v2, la séquence reçue, constituée de ces trois séquences, étant notée r ; - un premier décodeur 404 à entrée et sortie douces (en anglais "soft input soft output') correspondant au codeur 202 (figure 2) Le premier décodeur 404 reçoit en entrée - les séquences a et v_i, et - une séquence d'information a priori w4 décrite plus loin. Le premier décodeur 404 fournit en sortie - une séquence d'information extrinsèque wl, et - une séquence estimée û sur une sortie 416. Le dispositif de décodage illustré en figure 4 comporte en outre - un entrelaceur 405 (noté "Entrelaceur Il' sur la figure 4), basé sur la même permutation que celle définie par l'entrelaceur 203 utilisé dans le dispositif de codage ; l'entrelaceur 405 reçoit en entrée les séquences a et w, et les entrelace respectivement en des séquences a* et w2 ; - un second décodeur 406 à entrée et sortie douces, correspondant au second codeur 204. Ce second décodeur 406 reçoit en entrée - les séquences w2, a* et v2. Le second décodeur 406 fournit en sortie - une séquence d'information extrinsèque w3 et - une séquence estimée à*. Le dispositif de décodage illustré en figure 4 comporte de plus - un désentrelaceur 408 (noté "Entrelaceur TI-"' sur la figure 4), inverse de l'entrelaceur 405, recevant en entrée la séquence à* et fournissant en sortie une séquence estimée û, sur une sortie 409 (cette estimation étant améliorée par rapport à celle fournie, une demi-itération auparavant, sur la sortie 416), cette séquence estimée û étant obtenue par désentrelacement de la séquence à* et suppression des bits de padding ; - un désentrelaceur 407 (noté aussi "Entrelaceur I7-"' sur la figure 4), inverse de l'entrelaceur 405, recevant en entrée la séquence d'information extrinsèque w3 et fournissant en sortie la séquence d'information a priori w4 ; - la sortie 409, sur laquelle le dispositif de décodage fournit la séquence estimée û, en sortie du désentrelaceur 408. On ne prend en compte une séquence estimée û qu'à la suite d'un nombre d'itérations prédéterminé (voir l'article "Near Shannon limit error- correcting coding and decoding., turbocodes" cité supra). Dans le mode de réalisation préféré décrit ici, les décodeurs 404 et 406 sont initialisés en prenant en compte le fait que les codeurs 202 et 204 possèdent chacun un état initial et un état final nuls. Sur la figure 5, qui représente le fonctionnement d'un dispositif de codage tel que celui inclus dans le dispositif électronique illustré en figure 1, on observe qu'après une opération d'initialisation 500, au cours de laquelle les registres de la mémoire vive 104 sont initialisés (nb données = "0"), au cours d'une opération 501, l'unité centrale 100 attend de recevoir, puis reçoit une séquence u de données binaires à transmettre, la positionne en mémoire vive 104 dans le registre "données source" et met à jour le compteur "nb données". Ensuite, au cours d'une opération 502, l'unité centrale 100 détermine la valeur de n en faisant la somme du nombre entier conservé dans le registre "nb_données" (valeur conservée en mémoire vive 104) et du nombre de bits de padding conservé dans le registre "m" (valeur conservée en mémoire morte 105). Puis l'unité centrale 100 génère un entrelaceur de taille n en fonction de n, de NO et des paramètres conservés dans le registre "paramètres entrelaceurs" (valeur conservée en mémoire morte 105) et mémorise cet entrelaceur dans le registre "entrelaceut" de la mémoire vive 104. On note que la génération de l'entrelaceur se fait selon une méthode décrite plus haut. Ainsi, si on considère une valeur de n égale à 52, les paramètres de génération de l'entrelaceur sont - d'une part, j = 4, k = 0, e = 4, e' = 5, s(c) = 4c modulo ((n/NO)-1) et s'(c) = 3c modulo (n/N0) pour les permutations intra-colonnes, et - d'autre part, la permutation inter-colonnes à appliquer lorsque j = 4 : (0 2)(5 6) (Cette permutation inter-colonnes peut aussi dépendre de façon plus générale de n). De même, si on considère une valeur de n égale à 541, les paramètres de génération de l'entrelaceur sont - d'une part, pour les entrelaceurs intra-colonnes - j=5, - M1 = 11, M2 = 7 (M-1 = M1xM2 = 77), M3 = 13, M4 = 6 (M = 78 = M3xM4), - ki=[01423781,k2=[014237], - a= [1234636] et - _ [0 3 6 21 31 35 22], et - d'autre part, pour l'entrelaceur inter-colonnes, la permutation identité. Ensuite, au cours d'une opération 508, le premier codeur 202 (voir figure 2) effectue simultanément - la détermination de la séquence de padding qui, concaténée à la séquence d'entrée u, forme une séquence a divisible par g(x), - la division par g(x) du polynôme a(x), et - le produit du résultat de cette division par hj(x). Les séquences a et le résultat de ces opérations de division et de multiplication, vi (= a.hjlg), . sont mis en mémoire dans le registre "données à émettre". Puis, au cours d'une opération 506, les données binaires de la séquence a sont successivement lues dans le registre "données à -émettre", dans l'ordre décrit par le tableau "enfrelaceur" conservé en mémoire vive 104. Les données qui résultent successivement de cette lecture forment une séquence a* et sont mises en mémoire dans le registre "données- permutées" de la mémoire vive 104. Ensuite, au cours d'une opération 507, le deuxième codeur 204 effectue simultanément la division par g(x) du polynôme a*(x) et le produit du résultat de cette division par h2(x). Le résultat de cette opération, v2 (= a*.h2lg), est mis en mémoire dans le registre "données-à- émettre". Au cours d'une opération 509, les séquences a, v, et v2 sont émises en utilisant, à cet effet, l'émetteur 106. Ensuite, les registres de la mémoire 104 sont à nouveau initialisés ; en particulier, le compteur nb données est remis à "0". Puis l'opération 501 est réitérée. En figure 6, qui représente le fonctionnement d'un dispositif de décodage tel que celui inclus dans le dispositif électronique illustré en figure 3, on observe qu'au cours d'une opération 600, l'unité centrale 300 attend de recevoir, puis reçoit une séquence de données codées. Chaque donnée est reçue sous forme douce et correspond à une mesure de fiabilité d'une donnée émise par l'émetteur 106 et reçue par le récepteur 306. L'unité centrale positionne la séquence reçue en mémoire vive 304, dans le registre "données reçues" et met à jour le compteur "nb données reçues". Ensuite, au cours d'une opération 601, l'unité centrale 300 détermine la valeur de n en effectuant une division de "nb données reçues" par 3 puis en retranchant la valeur de m conservée en mémoire morte 305: n = nb_données reçues/3-m. Cette valeur de n est alors mémorisée en mémoire vive 304. Puis l'unité centrale 300 génère un entrelaceur de base et son entrelaceur inverse de taille n en fonction de n, de NO et des paramètres conservés dans le registre "Paramètres Entrelaceurs" (valeur conservée en mémoire morte 305) et mémorise ces entrelaceurs dans le registre "entrelaceurs" de la mémoire vive 304. On note que la génération de l'entrelaceur de base se fait selon la méthode décrite plus haut. La génération de l'entrelaceur inverse peut se faire par inversion directe de l'entrelaceur de base ou de la même façon que l'entrelaceur de base avec des paramètres ad hoc conservés dans le registre "Paramètres Entrelaceurs" ou déduits des paramètres ayant servi à générer l'entrelaceur de base. Ensuite, au cours d'une opération de turbodécodage 603, le dispositif de décodage donne une estimation û de la séquence u transmise. Puis, au cours d'une opération 604, l'unité centrale 300 fournit cette estimation û au destinataire d'information 310. Ensuite, les registres de la mémoire 304 sont à nouveau initialisés. En particulier, le compteur nb données est remis à "0" et l'opération 601 est réitérée. En figure 7, qui détaille l'opération de turbodécodage 603, on observe qu'au cours d'une opération d'initialisation 700, les registres de la mémoire vive 304 sont initialisés : les informations a priori w2 et w4 sont remises à zéro (on suppose ici que l'entropie de la source est nulle). En outre, l'entrelaceur 405 entrelace la séquence d'entrée a et fournit une séquence a* qui est mémorisée dans le registre "données reçues". Ensuite, au cours d'une opération 702, le registre "nb iteration" est incrémenté d'une unité. Puis, au cours d'une opération 703, le premier décodeur 404 (correspondant au premier codeur élémentaire 202) met en oeuvre un algorithme de type à entrées douces et décisions douces (SISO, en anglais "Soft Input Soft Output'), bien connu de l'homme du métier, tel que le BCJR, mentionné plus haut, ou le SOVA ("Soit Output Viterbi Algorithm"), comme suit en prenant en compte un état initial et un état final du codeur nuls, le premier décodeur 404 considère comme entrées douces une estimation des séquences reçues a et y,, et w4 (information a priori sur a) et fournit, d'une part, w, (informations extrinsèques sur a) et, d'autre part, une estimation û de la séquence a. Pour de plus amples détails sur les algorithmes de décodage utilisés dans les turbocodes, on pourra se référer - à l'article de L.R. BAHL, J. COCKE, F. JELINEK et J. RAVIV intitulé "Optimal decoding of linear codes for minimizing symbol error rate", in IEEE Transactions on Information Theory, mars 1974 qui décrit un algorithme dit "BCJR" généralement utilisé en relation avec les turbocodes ; ou - à l'article de J. HAGENAUER et P. HOEHER intitulé "A Viterbi algorithm with soft decision outputs and its applications", publié avec les comptes-rendus de la conférence IEEE GLOBECOM, pages 1680-1686, en novembre 1989. Au cours d'une opération 705, l'entrelaceur 405 entrelace la séquence wi pour produire w2, information a priori sur a*. Ensuite, au cours d'une opération 706, le deuxième décodeur 406 (correspondant au deuxième codeur élémentaire 204) met en oeuvre un algorithme de type à entrées douces et décisions douces, comme suit : en prenant en compte un état initial et un état final du codeur nuls, le deuxième décodeur 406 considère comme entrées douces une estimation des séquences reçues a* et v2, et w2 (informations a priori sur u) et fournit, d'une part, w3 (informations extrinsèques sur u*) et, d'autre part, une estimation â* de la séquence a*. Au cours d'une opération 708, le désentrelaceur 407 (entrelaceur inverse de 405) désentrelace la séquence d'information w3 pour produire w4, information a priori sur a. Les informations extrinsèques et a priori produites au cours des étapes 703, 705, 706 et 708 sont stockées dans le registre "inf extrinsèques" de la RAM 304. Ensuite, au cours d'un test 709, l'unité centrale 300 détermine si le nombre entier conservé dans le registre "nb iteration" est égal ou non à un nombre prédéterminé maximal d'itérations à effectuer, conservé dans le registre "nb iteration max" de la ROM 305. Lorsque le résultat du test 709 est négatif, l'opération 702 est réitérée. Lorsque le résultat du test 709 est positif, au cours d'une opération 710, le désentrelaceur 408 (identique au désentrelaceur 407) désentrelace la séquence à*, pour fournir une séquence désentrelacée à l'unité centrale 300, qui transforme alors la décision douce en décision dure et ôte les bits de padding, de façon à obtenir une séquence û, estimée de u. Dans une variante, plus générale, l'invention ne se limite pas aux turbocodeurs (ou procédés ou dispositifs de codage ou décodage associés) composés de deux codeurs ou aux turbocodeurs à une entrée : elle peut s'appliquer à des turbocodeurs composés de plusieurs codeurs élémentaires ou à des turbocodeurs à plusieurs entrées, tels que ceux décrits dans le rapport de D. DIVSALAR et F. POLLARA cité en introduction. Dans une autre variante, l'invention ne se limite pas aux turbocodeurs parallèles (ou procédés ou dispositifs de codage ou décodage associés) mais peux s'appliquer à des turbocodes séries ou hybrides tels que décrits dans le rapport "TDA progress report 42-926 Serial concatenation of interleaved codes: "Performance analysis, design and iterative decoding" de S. BENEDETTO, G. MONTORSI, D. DIVSALAR et F. POLLARA, publié en août 1996 par JPL (Jet Propulsion Laboratory). On trouvera notamment une description complète de la façon dont on utilise les entrelaceurs garantissant la divisibilité avec des turbocodes séries ou hybrides dans la demande de brevet français non publiée de numéro de dépôt 98 14083. On veillera dans ces variantes à ce que les entrelaceurs utilisés préservent la divisibilité par le ou les polynôme(s) générateur(s) utilisé(s) et à ce que les codeurs élémentaires soient initialisés à l'état nul et retournent à zéro grâce à des bits de padding, ces derniers n'étant pas entrelacés. On pourra alors établir les relations qui lient ces bits de padding et les utiliser dans le dispositif de décodage d'une façon similaire à ce qui a été exposé précédemment. A titre d'illustration, la figure 8 montre deux courbes de performances donnant le taux d'erreurs binaires (BER, en anglais "Bit Error Rate") en fonction d'un rapport EbINo, où Eb désigne l'énergie par bit d'information et No la densité spectrale de bruit, pour une transmission dans un canal gaussien à bruit blanc additif (AWGN, en anglais "Additive White Gaussian Noise"). La première courbe, en traits pleins, a été obtenue avec un entrelaceur de taille 541 tel que décrit précédemment et compatible avec l'invention avec hi(x) = 1+x+x3, h2(x) = 1+x+x2+x3 et g(x) = 1+x2+x3. Il semble être un bon entrelaceur mais il n'a pas été optimisé. La deuxième courbe, en traits pointillés, a été obtenue avec un entrelaceur de même taille qui a été optimisé et choisi par le comité de normalisation 3GPP avec hi(x) = h2(x) = 1+x+x3 et g(x) = 1+x2+x3. On constate que les résultats d'un entrelaceur compatible avec l'invention mais non optimisé sont tout à fait bons malgré la taille relativement grande de cet entrelaceur (plus l'entrelaceur est petit, plus l'effet bénéfique de la propriété de retour à zéro intrinsèque du turbocodeur se fait sentir). REVENDICATIONS 1. Procédé d'entrelacement d'une séquence de symboles (a(x)) en une séquence entrelacée (a*(x)), dans lequel on considère un premier polynôme (gi(x)) diviseur de ladite séquence de symboles (a(x)) et ayant une période N0, et un deuxième polynôme (92(x)) compatible avec ledit premier polynôme diviseur (g1(x)), caractérisé en ce qu'il comporte des étapes suivant lesquelles - on considère deux nombres entiers positifs non tous nuls jet k strictement inférieurs à ladite période NO ; - au cours d'une première étape, on écrit les symboles de ladite séquence de symboles (a(x)) ligne par ligne à partir de la (j+1)'eme position de la première ligne jusqu'à la (NO-k)'ème position de la dernière ligne d'un tableau à NO colonnes et M lignes, M étant un entier ; - au cours d'une deuxième étape, # on permute les symboles à l'intérieur de chaque colonne d'une façon quelconque à l'aide de permutations intra-colonnes et # on permute les colonnes entre elles à l'aide d'une permutation inter-colonnes selon des conditions préservant la divisibilité de ladite séquence entrelacée (a*(x)) par ledit deuxième polynôme (92(X ; et - au cours d'une troisième étape, on lit ligne par ligne les données permutées, pour obtenir ladite séquence entrelacée (a*(x)). 2. Procédé d'entrelacement selon la revendication 1, caractérisé en ce que lesdits premier et deuxième polynômes (gi(x), 92(x)) sont identiques. 3. Procédé d'entrelacement selon la revendication 1 ou 2, caractérisé en ce que lesdites permutations intra-colonnes sont de type verrou. 4. Procédé d'entrelacement selon la revendication 1 ou 2, caractérisé en ce que lesdites permutations intra-colonnes sont de type algébrique. 5. Procédé d'entrelacement selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite permutation inter- colonnes est l'identité. 6. Dispositif d'entrelacement d'une séquence de symboles (a(x)) en une séquence entrelacée (a*(x)), dans lequel on considère un premier polynôme (gi(x)) diviseur de ladite séquence de symboles (a(x)) et ayant une période N0, et un deuxième polynôme (92(x)) compatible avec ledit premier polynôme diviseur (gi(x)), caractérisé en ce que - on considère deux nombres entiers positifs non tous nuls jet k strictement inférieurs à ladite période NO ; et en ce que ledit dispositif comporte - des moyens d'écriture, pour écrire les symboles de ladite séquence de symboles (a(x)) ligne par ligne à partir de la (j+1)'è" position de la première ligne jusqu'à la (NO-k)'èn,e position de la dernière ligne d'un tableau à NO colonnes et M lignes, M étant un entier ; - des moyens de permutation, pour # permuter les symboles à l'intérieur de chaque colonne d'une façon quelconque à l'aide de permutations intra-colonnes et # permuter les colonnes entre elles à l'aide d'une permutation inter-colonnes selon des conditions préservant la divisibilité de ladite séquence entrelacée (a*(x)) par ledit deuxième polynôme (92(X ; et - des moyens de lecture, pour lire ligne par ligne les données permutées, fournissant ladite séquence entrelacée (a*(x)). 7. Dispositif d'entrelacement selon la revendication 6, caractérisé en ce que lesdits premier et deuxième polynômes (gi(x), 92(x)) sont identiques. 8. Dispositif d'entrelacement selon la revendication 6 ou 7, caractérisé en ce que lesdites permutations intra-colonnes sont de type verrou. 9. Dispositif d'entrelacement selon la revendication 6 ou 7, caractérisé en ce que lesdites permutations intra-colonnes sont de type algébrique. 10. Dispositif d'entrelacement selon l'une quelconque des revendications 6 à 9, caractérisé en ce que ladite permutation inter-colonnes est l'identité. 11. Procédé de codage d'une séquence de symboles, caractérisé en ce qu'il met en oeuvre au moins un procédé d'entrelacement selon l'une quelconque des revendications 1 à 5. 12. Procédé de codage selon la revendication 11, utilisant un turbocodage, mettant en oeuvre au moins deux opérations de codage convolutif récursif, caractérisé en ce que - une première opération de codage comporte une opération de division de ladite séquence de symboles (a(x)) par ledit premier polynôme (gi(x)), et en ce que - une deuxième opération de codage comporte une opération de division de ladite séquence entrelacée (a*(x)) par ledit deuxième polynôme (92(x)). 13. Procédé de codage selon la revendication 12, caractérisé en ce que le turbocodage utilise des turbocodes de type convolutif parallèle. 14. Procédé de codage selon la revendication 12, caractérisé en ce que le turbocodage utilise des turbocodes de type série ou hybride parallèle/série. 15. Procédé de codage selon l'une quelconque des revendications 11 à 14, caractérisé en ce qu'il comporte une opération de génération d'un procédé d'entrelacement en fonction de la taille de ladite séquence de symboles (a(x)). 16. Dispositif de codage d'une séquence de symboles, caractérisé en ce qu'il comporte au moins un dispositif d'entrelacement selon l'une quelconque des revendications 6 à 10. 17. Dispositif de codage selon la revendication 16, utilisant un turbocodage, comportant au moins deux codeurs convolutifs récursifs, caractérisé en ce que - un premier codeur comporte des moyens de division de ladite séquence de symboles (a(x)) par ledit premier polynôme (gi(x)), et en ce que - un deuxième codeur comporte des moyens de division de ladite séquence entrelacée (a*(x)) par ledit deuxième polynôme (92(x)). 18. Dispositif de codage selon la revendication 17, caractérisé en ce que le turbocodage utilise des turbocodes de type convolutif parallèle. 19. Dispositif de codage selon la revendication 17, caractérisé en ce que le turbocodage utilise des turbocodes de type série ou hybride parallèle/série. 20. Dispositif de codage selon l'une quelconque des revendications 16 à 19, caractérisé en ce qu'il comporte des moyens de génération d'un dispositif d'entrelacement en fonction de la taille de ladite séquence de symboles (a(x)). 21. Procédé de décodage d'une séquence de symboles reçus, caractérisé en ce qu'il met en oeuvre au moins un procédé d'entrelacement selon l'une quelconque des revendications 1 à 5, ladite séquence de symboles reçus correspondant, après passage dans un canal éventuellement bruité, à une séquence représentative de ladite séquence de symboles (a(x)). 22. Procédé de décodage selon la revendication 21, utilisant un turbodécodage, comportant des opérations de décodage itératif mettant en oeuvre au moins deux opérations de décodage élémentaire, caractérisé en ce que - une première opération de décodage élémentaire est adaptée à décoder une séquence codée par une opération de codage convolutif récursif de ladite séquence de symboles (a(x)) comportant au moins une division de ladite séquence de symboles (a(x)) par ledit premier polynôme (gi(x)), et en ce que - une deuxième opération de décodage élémentaire est adaptée à décoder une séquence codée par une opération de codage convolutif récursif de ladite séquence de symboles (a(x)) comportant au moins une division de ladite séquence entrelacée (a*(x)) par ledit deuxième polynôme 92(x)). 23. Procédé de décodage selon la revendication 21 ou 22, caractérisé en ce qu'il comporte une opération de génération d'un procédé d'entrelacement en fonction de la taille de ladite séquence de symboles (a(x)). 24. Procédé de décodage selon la revendication 21, 22 ou 23, caractérisé en ce qu'il est adapté à décoder une séquence reçue codée à l'aide d'un procédé de codage selon l'une quelconque des revendications 11 à 15. 25. Dispositif de décodage d'une séquence de symboles reçus, caractérisé en ce qu'il comporte au moins un dispositif d'entrelacement selon l'une quelconque des revendications 6 à 10, ladite séquence de symboles reçus correspondant, après passage dans un canal éventuellement bruité, à une séquence représentative de ladite séquence de symboles (a(x)). 26. Dispositif de décodage selon la revendication 25, utilisant un turbodécodage, comportant des décodeurs itératifs ayant au moins deux décodeurs élémentaires, caractérisé en ce que - un premier décodeur élémentaire est adapté à décoder une séquence codée par des moyens de codage convolutif récursif de ladite séquence de symboles (a(x)) effectuant au moins une division de ladite séquence de symboles (a(x)) par ledit premier polynôme (gi(x)), et en ce que - un deuxième décodeur élémentaire est adapté à décoder une séquence codée par des moyens de codage convolutif récursif de ladite séquence de symboles (a(x)) effectuant au moins une division de ladite séquence entrelacée (a*(x)) par ledit deuxième polynôme 92(x)). 27. Dispositif de décodage selon la revendication 25 ou 26, caractérisé en ce qu'il comporte des moyens de génération d'un dispositif d'entrelacement en fonction de la taille de ladite séquence de symboles (a(x)). 28. Dispositif de décodage selon la revendication 25, 26 ou 27, caractérisé en ce qu'il est adapté à décoder une séquence reçue codée à l'aide d'un dispositif de codage selon l'une quelconque des revendications 16 à 20. 29. Appareil de traitement de signaux numériques, caractérisé en ce qu'il comporte des moyens adaptés à mettre en ceuvre un procédé d'entrelacement selon l'une quelconque des revendications 1 à 5 et/ou un procédé de codage selon l'une quelconque des revendications 11 à 15 et/ou un procédé de décodage selon l'une quelconque des revendications 21 à 24. 30. Appareil de traitement de signaux numériques, caractérisé en ce qu'il comporte un dispositif d'entrelacement selon l'une quelconque des revendications 6 à 10 et/ou un dispositif de codage selon l'une quelconque des revendications 16 à 20 et/ou un dispositif de décodage selon l'une quelconque des revendications 25 à 28. 31. Réseau de télécommunications, caractérisé en ce qu'il comporte des moyens adaptés à mettre en oeuvre un procédé d'entrelacement selon l'une quelconque des revendications 1 à 5 et/ou un procédé de codage selon l'une quelconque des revendications 11 à 15 et/ou un procédé de décodage selon l'une quelconque des revendications 21 à 24. 32. Réseau de télécommunications, caractérisé en ce qu'il comporte un dispositif d'entrelacement selon l'une quelconque des revendications 6 à 10 et/ou un dispositif de codage selon l'une quelconque des revendications 16 à 20 et/ou un dispositif de décodage selon l'une quelconque des revendications 25 à 28. 33. Station mobile dans un réseau de télécommunications, caractérisée en ce qu'elle comporte des moyens adaptés à mettre en oeuvre un procédé d'entrelacement selon l'une quelconque des revendications 1 à 5 et/ou un procédé de codage selon l'une quelconque des revendications 11 à 15 et/ou un procédé de décodage selon l'une quelconque des revendications 21 à 24. 34. Station mobile dans un réseau de télécommunications, caractérisée en ce qu'elle comporte un dispositif d'entrelacement selon l'une quelconque des revendications 6 à 10 et/ou un dispositif de codage selon l'une quelconque des revendications 16 à 20 et/ou un dispositif de décodage selon l'une quelconque des revendications 25 à 28. 35. Dispositif de traitement de signaux représentatifs de parole, caractérisé en ce qu'il comporte un dispositif d'entrelacement selon l'une quelconque des revendications 6 à 10 et/ou un dispositif de codage selon l'une quelconque des revendications 16 à 20 et/ou un dispositif de décodage selon l'une quelconque des revendications 25 à 28. 36. Dispositif de transmission de données comportant un émetteur adapté à mettre en oeuvre un protocole de transmission par paquets, caractérisé en ce qu'il comporte un dispositif d'entrelacement selon l'une quelconque des revendications 6 à 10 et/ou un dispositif de codage selon l'une quelconque des revendications 16 à 20 et/ou un dispositif de décodage selon l'une quelconque des revendications 25 à 28 et/ou un dispositif de traitement de signaux représentatifs de parole selon la revendication 35. 37. Dispositif de transmission de données selon la revendication 36, caractérisé en ce que ledit protocole est de type ATM. 38. Dispositif de transmission de données selon la revendication 36, caractérisé en ce que ledit protocole est de type IP.