Brevet FR2713423A1 — publié le 19950609

Codeur et décodeur différentiels pour la modulation MDP-8 codée en treillis par l'approche pragmatique Le domaine de l'invention est celui des systèmes de transmission de signaux modulés par saut de phase et plus spécifiquement à 8 états de phase (MDP8 ou 8-PSK en anglais). La présente invention concerne plus précisément un codeur et un décodeur d'un signal modulé à 8 états de phase, situés respectivement dans un émetteur et un récepteur de données numériques. Une application préférentielle de l'invention est la transmission d'images par voie hertzienne à haut débit. L'avantage de la modulation MDP8 est qu'elle permet une transmission de données à haut débit sans distorsion d'amplitude. Comme le montre la constellation MDP8 de la figure 1, chaque symbole codé à transmettre est situé sur un cercle de rayon unité et codé sur 3 bits. Une table, couramment appelée table de "mapping" en anglais, réalise un déplacement de phase d'une porteuse transmise en fonction des trois bits codant chaque symbole. Le tableau suivant montre le déplacement de phase * en degrés de la porteuse en fonction de la valeur de ces bits: Bits 000 001 011 010 100 101 1 11iii 110 |(') 22,5 67,5 112,5 157,5 202,5 247,5 292,5 337,5 Un problème connu de tels systèmes de transmission est que la porteuse modulée transmise est affectée d'une rotation de phase indésirable, ce qui se traduit au niveau du récepteur par une rotation de la constellation et les symboles décodés ne correspondent plus à ceux qui ont été émis. Un problème ayant les mêmes répercussions, appelé saut de cycle, se produit lorsqu'une boucle de récupération de porteuse, au niveau du récepteur, n'est pas suffisamment rapide pour corriger la phase d'un oscillateur local pour que celle-ci corresponde à la phase de la porteuse reçue. Pour remédier à cet inconvénient, il est connu de réaliser un codage différentiel au niveau de l'émetteur de façon à pouvoir corriger au niveau du récepteur les symboles reçus, indépendamment de la rotation de la constellation.5 Le codage considéré dans la présente invention est celui du codage en treillis (TCM: Trellis Coded Modulation). Le codage en treillis consiste à introduire des bits de redondance dans le signal transmis. Il permet ainsi de corriger, au niveau du décodeur, toute erreur survenue10 sur un bit transmis, codé ou non. Son principe, en décodage pragmatique défini par la suite, diffère essentiellement de celui du codage convolutif par le fait que l'on partitionne au décodage les symboles reçus en couples de secteurs opposés, chaque couple étant appelé "subset". Les bits codés15 mal reçus sont corrigés par codage convolutif et les bits non codés sont corrigés par décodage à maximum de vraisemblance et partition en subset. Le codage en treillis consiste classiquement, en MDP8 et conformément à la figure 2, à appliquer à l'entrée d'un codeur convolutif G = (171,133) un des deux bits (représentatifs d'un symbole d'information) devant être transmis à un récepteur, G étant la représentation octale des polynômes de codage. Le codeur comporte six cellules retard d'un temps symbole Ts et deux sommateurs. Le bit du symbole d'information subissant un codage est noté B0, le bit B1 n'étant pas codé. Le codeur fournit en sortie 2 bits (rapport de codage égal à 1/2), notés b0 et b1, le bit B1 étant renommé b2. Les bits b0 et b, sont les deux bits de poids le plus faible du symbole à transmettre. Une unité de mapping recevant les bits b0 à b2 modifie leurs valeurs de telle sorte que deux phases voisines sur la constellation de la figure 1 diffèrent d'un seul bit parmi les bits b0 et b1. La table de mapping fournit ensuite deux bits sur des voies en quadrature à un modulateur MDP8. Le problème posé par un tel codage en treillis pour une modulation MDP8 est que le codeur convolutif avec G = (171,133) et son décodeur de Viterbi sont transparents aux rotations de phase de 90', 180' et 270'. Il existe un circuit intégré de la société QUALCOMM Incorporated, référencé Q1875, qui est un décodeur de signaux codés en treillis par approche pragmatique. La description de ce circuit figure dans "Q1875 Pragmatic Trellis Decoder, 0.8, 7.5, 30, 60 Mbps Data Rates, Technical Data Sheet, May 1992" de QUALCOMM. On appelle "pragmatique" un décodage qui ne cherche pas à reconstruire un schéma de10 modulation et de codage optimal, mais un décodage qui en est proche en performances tout en restant plus simple à mettre en oeuvre. Ce circuit permet également d'effectuer un codage en treillis MDP8 et peut donc être utilisé indifféremment en émission et en réception. Le circuit codeur utilisant le circuit intégré Q1875 comprend des moyens permettant de supprimer les ambiguïtés de phase de 90', 180' et 270', les ambiguïtés de phase de ', 135', 225' et 315' ne pouvant être supprimées. Ces moyens sont cependant complexes puisqu'ils comprennent deux voies de traitement, un démultiplexeur, un multiplexeur, trois codeurs différentiels et un codeur convolutif tel que celui représenté à la figure 2. La présente invention a pour fonction de fournir un codeur plus simple à réaliser que celui décrit dans l'article précité, ainsi qu'un décodeur correspondant. Cet objectif, ainsi que d'autres qui apparaîtront par la suite, est atteint grâce à un système de codage/décodage différentiel pour modulation MDP8 codée en treillis, le système de codage étant du type destiné à convertir à chaque temps symbole un symbole d'information de deux bits B1B0 en un symbole codé de trois bits b2b1b0, le système comportant un codeur différentiel à une entrée recevant, à chaque temps symbole, un premier des bits du symbole d'information et fournissant, à chaque temps symbole, un bit codé différentiellement à un codeur convolutif de type G = (171,133) de rapport 1/2 et de longueur de contrainte 7 fournissant deux bits codés du symbole codé; ce système étant caractérisé en ce qu'il comporte en outre un codeur différentiel à 2 entrées recevant sur une première de ses entrées un des bits issus du codeur convolutif et sur une5 seconde de ses entrées le second des bits du symbole d'information, le codeur différentiel à deux entrées fournissant, à chaque temps symbole, un bit de sortie constituant le troisième des bits du symbole codé, le troisième bit étant égal à: b2 = B1 @ Db2 @ (bU, * Db,) o b2 est le bit de sortie du codeur différentiel à deux entrées, B0 est le second des bits du symbole d'information, D est un retard d'un temps symbole, b1 est le bit appliqué & la première des entrées du codeur différentiel à deux entrées, le codeur différentiel à une entrée fournissant un bit codé différentiellement égal à: B0 = B0 @ DB0 o B1 est le second bit du symbole d'information, et en ce que le système de décodage comprend d'une part un décodeur différentiel à une entrée recevant le bit codé différentiellement et fournissant le premier bit du symbole d'information selon la relation: Bo0 = B0 @ DBO et d'autre part un décodeur différentiel à deux entrées recevant les bits b, et b2 du symbole codé et fournissant le second bit du symbole d'information selon la relation: B1 = b2 @ Db2 @ (b1 * Db,) Avantageusement, le système de décodage comporte un décodeur de subsets suivi par un décodeur de Viterbi et par une unité de demapping destinés à lever l'incertitude sur le subset dans lequel le symbole reçu se trouve, le décodeur de Viterbi fournissant le bit codé différentiellement au décodeur différentiel à une entrée, le décodeur de Viterbi étant raccordé à un codeur de type G = (171,133) de rapport 1/2 et de longueur de contrainte 7 fournissant deux bits codés reconstitués du symbole codé à l'unité de demapping. D'autres caractéristiques et avantages 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 représente une constellation d'un signal codé de type MDP8; - la figure 2 représente un codeur convolutif de type G = (171,133) de rapport 1/2 et de longueur de contrainte 7; - la figure 3 est un schéma synoptique d'un système de codage selon l'invention; - la figure 4 représente un mode de réalisation du codeur différentiel à une entrée de la figure 3; - la figure 5 représente un mode de réalisation du codeur différentiel à deux entrées de la figure 3; - la figure 6 est un schéma synoptique d'un système de décodage selon l'invention prévu pour décoder les signaux issus du codeur de la figure 3; - la figure 7 représente un mode de réalisation du décodeur différentiel à une entrée de la figure 6; - la figure 8 représente un mode de réalisation du décodeur différentiel à deux entrées de la figure 6. Les figures 1 et 2 ont été décrites précédemment en référence à l'état de la technique. On adoptera dans la suite de cette description les notations suivantes: - chaque symbole d'information à coder et à transmettre est constitué de deux bits B1B0; - chaque symbole codé est représenté sur trois bits b2b1b0 o b0, b1 et b2 r {0,1}. Les symboles codés sont transformés en deux trains numériques I et Q appliqués à un modulateur MDP-8 pour transmission. L'invention repose sur l'observation que les rotations de la constellation de la figure 1 d'un angle de 90*', 180' ou -90' peuvent être définies par les équations suivantes, avec @ correspondant à l'opération "ou-exclusif", à5 l'addition modulo 4 et - à la soustraction modulo 4: Rotation de 90 (b2)90 = b2 @ b1,(b1)90 = b1 @ 1 et (b0)90 = b0 @ 1 avec (b2)90 , (b1)90 et (b0)90 correspondant aux trois bits du symbole codé ayant subi une rotation de 90'. Ces trois équations peuvent se résumer en. deux équations: (b2,b1)90 = (b2,b1) + (0,1) et (b0)90 = b0 @ 1 Rotation de 180' (b2)180 = b2 @ 1, (bl)180 = b1 et (b0)180' = bo ou sous la forme à deux dimensions: (b2,b1)180 = (b2,b1) + (1,0) Rotation de -90' (b)-90' = b1 @ 1, (b0)-90 = b0 @ 1, (b2)-90 = b2@b1@1, Ces trois équations peuvent se résumer en deux équations: (b)-90 = b0 @ 1 et (b2,b1)-90' = (b2,b1) - (0,1) Dans toutes ces équations, un couple (a, b) est une représentation binaire d'un nombre entier décimal égal à 2a+b. Ainsi, (0,0) = o0, (0,1) = 1, (1,0) = 2 et (1,1) = 3. Ces équations caractérisent donc les rotations de la constellation pour des déphasages de 90' et 180'. On notera au passage que les bits b0 et b1 sont interchangeables pour les équations de rotation de constellation. On constate que les rotations de constellation se traduisent dans les équations par une addition ou une soustraction d'une constante. Ainsi, un codage/décodage différentiel à deux dimensions peut permettre de supprimer5 ces rotations de phase. La figure 3 est un schéma synoptique d'un système de codage selon l'invention appliquant ces différentes équations au codage d'un symbole d'information à transmettre à un récepteur par voie hertzienne. Chaque symbole d'information à coder est constitué de deux bits B1 et B0, B1 étant par exemple le bit de poids le plus fort (MSB). Les différents symboles d'information se présentent au rythme symbole Ts. Le bit B0 est appliqué à un codeur différentiel 30 à une entrée fournissant à chaque15 temps symbole un bit B0. Le codeur 30 est suivi d'un codeur convolutif 31 de type G = (171,133) de rapport 1/2 et de longueur de contrainte 7 fournissant deux bits codés b1 et b0 du mot de sortie. Ce codeur convolutif est identique à celui représenté à la figure 2. Le codeur convolutif 31 est éventuellement suivi d'un poinçonneur 32, l'invention s'appliquant indifféremment aux codes poinçonnés et non poinçonnés. Le poinçonneur 32 est représenté en trains discontinus du fait de son caractère facultatif. Sa fonction est de modifier le rendement de codage par poinçonnage des symboles codés. Le système de codage comporte également un codeur différentiel 33 à 2 entrées recevant sur une première de ses entrées le bit b1 issu du codeur convolutif 31 et sur une seconde de ses entrées le bit B1 du symbole d'information. Le codeur différentiel 33 fournit, à chaque temps symbole, un bit de sortie b2 constituant le bit de poids le plus fort du symbole codé. Les bits b0, b1 et b2 sont appliqués à une table de mapping 34, constituée par une mémoire morte, dont les sorties constituent deux voies en phase I et en quadrature Q. Ces deux voies sont par la suite appliquées à un modulateur MDP8 non représenté. La figure 4 représente un mode de réalisation du codeur différentiel 30 à une entrée de la figure 3. Le codeur 30 comporte une porte OU- EXCLUSIF 40 dont une entrée reçoit le bit B0 et dont l'autre entrée est rebouclée sur la5 sortie par l'intermédiaire d'une bascule 41 commandée au rythme symbole Ts. Ainsi: Bo = Bo @ DBo o D représente le retard d'un temps symbole. La figure 5 représente un mode de réalisation du codeur différentiel 33 de la figure 3. Le codeur différentiel 33 reçoit les bits B1 et b1. Le bit b1 est appliqué à l'entrée inverseuse d'une porte -ET 52 et à celle d'une bascule 51 commandée au rythme symbole Ts. La sortie de la bascule 51 est appliquée à l'autre entrée de la porte ET 52. La sortie de la porte ET 52 est reliée à une entrée d'une porte OU-EXCLUSIF 53. Le bit B1 est appliqué à une entrée d'une porte OUEXCLUSIF 54 dont la sortie est reliée à l'autre entrée de la porte OUEXCLUSIF 53. La sortie de la porte OU-EXCLUSIF 53 fournit à chaque temps symbole un bit b2 qui est rebouclé sur l'autre entrée de la porte OUEXCLUSIF 54 par l'intermédiaire d'une bascule 50, également commandée au rythme symbole Ts. Le bit b2 est égal à: b2 = B1 Db2 @ (b, * Db,) Le système de décodage représenté à la figure 6 est prévu pour être intégré dans un récepteur de symboles codés conformément à la figure 3. Il comporte un filtre adapté 60 recevant l'enveloppe complexe du signal démodulé et en bande de base et fournissant deux signaux filtrés à des convertisseurs numérique-analogiques 61, 62 commandés au temps symbole. Un décodeur de couples de secteurs 63, couramment "subset decoder" ou décodeur de subset, reçoit ces signaux numérisés. Le décodeur de subset 63 fonctionne en décision souple, c'est à dire en décision pondérée. Il fournit sur n bits, n étant par exemple égal à 6, une information à une unité de demapping 67 précisant dans quel subset le symbole codé reçu se trouve. Quatre subsets sont possibles: I - [0', 45 [ u [180', 245'[ II - [45 , 90 [ u [245', 270'[ III- [90 , 135-[ u [270', 315 [ IV - [135', 180'[ u [315', 0'[ En référence à la figure 1, les couples de secteurs sont donc les suivants: I correspond aux secteurs 1 et 5, II aux secteurs 2 et 6, III aux secteurs 3 et 7 et IV aux secteurs 4 et 0. On notera que cette constellation ne correspond pas à celle utilisée par le circuit Q1875 car aucun symbole codé ne se trouve sur les axes I et Q. À Chaque subset I à IV correspond ainsi à un ensemble de deux points possibles de la constellation, ces points étant décalés de 180'. On notera que la détermination des subsets I à IV est réalisée uniquement sur les deux bits de poids le plus faible b1 et b0. Ce décodeur 63 de subsets est également raccordé à un décodeur de Viterbi 64 réalisant un décodage par le critère de maximum de vraisemblance. Il fournit, à chaque temps symbole, un bit B0 identique à celui issu du codeur 30 de la figure 3. Le train numérique de sortie du décodeur 64 est une séquence de subsets les plus proches de l'échantillon reçu (distance minimale séparant l'échantillon reçu de deux points opposés). Le bit B0 est appliqué à un décodeur différentiel 66 à une entrée et à un codeur 65 identique au codeur 31 de la figure 3 (rapport 1/2 et longueur de contrainte 7). Le codeur 65 comporte éventuellement un dépoinçonneur si un poinçonneur 32 est présent au codage. Le codeur 65 fournit deux bits b0 et b1 à chaque temps symbole à l'unité de demapping 67, le bit bl étant appliqué à un décodeur différentiel 68 à deux entrées. L'unité de demapping 67 assure une fonction inverse de celle de l'unité de mapping 34 de la figure 3 et fournit le bit b2 au décodeur différentiel 68. Ce décodeur différentiel fournit le bit B1 reconstitué. La figure 7 représente un mode de réalisation du décodeur différentiel 66 à une entrée de la figure 6. Ce décodeur différentiel reçoit le bit Bo issu du décodeur de Viterbi et fournit le bit B0. Il comporte une porte OU-EXCLUSIF 70 recevant sur une de ses entrées le bit Bo et sur l'autre de ses entrées ce même bit retardé d'un temps symbole par une bascule 71. On a avec ce circuit: B0 = Bo @ DBO La figure 8 représente un mode de réalisation du décodeur différentiel 68 à deux entrées de la figure 6. Le bit b1 est appliqué sur une entrée inverse d'une porte ET 80, son autre entrée recevant le bit b1 retardé d'un temps symbole par une bascule 81. La sortie de la porte ET 80 est appliquée à une entrée d'une porte OU-EXCLUSIF 84. Le bit b2 est appliqué à une entrée d'une porte OU-EXCLUSIF 82, l'autre entrée de cette porte recevant le bit b2 retardé d'un temps symbole par une bascule 83. La sortie de la porte OU-EXCLUSIF 82 est reliée à l'autre entrée de la porte OU- EXCLUSIF 84. La sortie de la porte 84 constitue le bit B1. Le décodeur différentiel 68 fournit B1 à partir de b1 et b2 selon la relation: B1 = b2 @ Db2 @ (b1 * Db1) Le codeur 65 et l'unité de demapping 67 permettent de lever l'indétermination sur le secteur dans lequel le symbole reçu se trouve. Le recodage de b0 et b1 permet donc d'identifier le secteur à maximal de vraisemblance, c'est à dire celui parmi les 7 secteurs de la figure 1, dans lequel le symbole reçu se situe. L'unité de demapping 67 fournit b2 en fonction des subsets I à IV (valeurs de b0 et b1) selon la table suivante: il Secteurs bibo 0 i 2 3 4 5 6 7 O0 0 0 0 i i i i 0 01 0 O O O 1 1 1 1 i i 0 0 0 0 1 1 11 1 0 0 0 0 1 1 1 A titre d'exemple, si b1b0 vaut 01 et que le secteur décodé est le secteur référencé 3 sur la figure 1, b2 vaut 0. Des simulations réalisées en laboratoire ont montré que les systèmes de codage et de décodage présentés ci-des- sus permettent de supprimer les ambiguités de phase de 90' et 180e. Ils présentent également une structure plus simple10 que celle utilisant le circuit décodeur pragmatique Q1875, tout en n'étant pas limités en vitesse de traitement. L'invention s'applique notamment aux systèmes de transmission d'images à haut débit par voie hertzienne. REVENDICATIONS 1. Système de codage/décodage différentiel pour modulation MDP8 codée en treillis, ledit système de codage étant du type destiné à convertir à chaque temps symbole (Ts) un symbole d'information de deux bits B1B0 en un symbole codé de trois bits b2b1b0, ledit système comportant un codeur différentiel à une entrée (30) recevant, à chaque temps symbole (Ts), un premier (B0) des10 bits dudit symbole d'information (B1B0) et fournissant, à chaque temps symbole (Ts), un bit codé différentiellement (Bo) à un codeur convolutif (31) de type G = (171,13.3) de rapport 1/2 et de longueur de contrainte 7 fournissant deux bits codés (b1b0) dudit symbole codé (b2bbo), caractérisé en ce qu'il comporte en outre un codeur différentiel à 2 entrées (33) recevant sur une première de ses entrées un desdits bits (bl) issus dudit codeur convolutif (31) et sur une seconde de ses entrées le second (B1) des bits dudit symbole d'information (B1B0), ledit codeur différentiel à deux entrées (33) fournissant, à chaque temps symbole (Ts), un bit de sortie (b2) constituant le troisième des bits dudit symbole codé (b2bbo), ledit troisième bit (b2) étant égal à: b2 = B1 @ Db2 @ (b1 * Db1) o b2 est ledit bit de sortie dudit codeur différentiel à deux entrées (33), B0 est le second des bits dudit symbole d'information (B1B0), D est un retard d'un temps symbole, b1 est ledit bit appliqué à ladite première des entrées dudit codeur différentiel à deux entrées (33), ledit codeur différentiel à une entrée (30) fournissant un bit codé différentiellement B0 égal à: B0 = B0 @ DB0 o B1 est ledit second bit dudit symbole d'information (B1B0), et en ce que ledit système de décodage comprend d'une part un décodeur différentiel à une entrée (66) recevant ledit bit codé différentiellement (B0) et fournissant ledit premier bit (B0) dudit symbole d'information (B1B0) selon la relation: B0 = Bo DBO et d'autre part un décodeur différentiel à deux entrées recevant lesdits bits b1 et b2 dudit symbole codé et fournissant ledit second bit (B1) dudit symbole d'information (B1B0) selon la relation: B1 = b2 @ Db2 @ (b1 * Db1) 2. Système de codage/décodage selon la revendication 1, caractérisé en ce que ledit système de décodage comporte un décodeur de subsets (63) suivi par un décodeur de Viterbi (64) et par une unité de demapping (67) destinés à lever l'incertitude sur le subset (I à IV) dans lequel ledit symbole reçu se trouve, ledit décodeur de Viterbi (64) fournissant ledit bit codé différentiellement (B,) audit décodeur différentiel à une entrée (66), ledit décodeur de Viterbi (64) étant raccordé à un codeur (65) de type G = (171,133) de rapport 1/2 et de longueur de contrainte 7 fournissant deux bits codés (b1b0) reconstitués dudit symbole codé (b2b1b0) à ladite unité de demapping (67).