Brevet FR2822608A1 — publié le 20020927

DOMAINE DE L'INVENTION La présente invention concerne le domaine des communications numériques et en particulier, la présente invention concerne un procédé permettant de mettre en #uvre une modulation par turbocodage par treillis d'une manière flexible, qui puisse être adapté à des conditions de transmission. ART ANTÉRIEUR Dans un canal de communication numérique, il est d'une pratique classique d'inclure une certaine forme de schéma de codage afin d'augmenter le débit de données. Récemment, les turbocodes ont gagné en popularité du fait de leurs gains de codage importants. Voir Berrou et A. Glavieux, "Near Optimum Error Correcting Coding and Decoding : Turbo-Codes" IEEE Trans. on Communications, vol. 44 n 10, octobre 1996. Un turbocodeur est une combinaison de deux codeurs simples. L'entrée est un bloc de K bits d'information. Les deux codeurs génèrent des symboles à partir de deux codes de convolution récursive simples dont chacun présente un petit nombre d'états. Les bits d'information sont également envoyés non codés. Une caractéristique clé des turbocodes est l'entrelaceur qui permute les K bits d'information originaux avant entrée sur le second codeur. La permutation assure que des séquences d'entrée pour lesquelles un codeur produit des mots de code de poids faible ont de façon générale pour effet que l'autre codeur produit des mots de code de poids fort. Par conséquent, même si les codes constitutifs sont faibles individuellement, la combinaison est puissante. Des turbocodes ont été appliqués dans des systèmes DMT (multi-tonalité discrète), par exemple, qui sont utilisés lors d'une transmission xDSL. Dans les systèmes xDSL, un turbocode peut être utilisé pour remplacer d'autres types de code en treillis afin d'obtenir une meilleure performance en termes de taux d'erreurs binaires (BER). Voir Hamid R. Sadjadpour, "Application of Turbo Codes for Discrete Multi-Tone Modulation Schemes", AT & T, Shannon Labs., 1999. Cependant, lorsque la dimension de la constellation augmente, l'avantage du gain de codage du turbocode commence à diminuer. Ceci est dû au fait que les bits redondants ont pour effet que la dimension de constellation devient encore plus grande. Une modulation turbocodée par treillis selon laquelle seulement le bit de poids le plus faible (LSB) de la constellation est codé a été introduite afin de réaliser une meilleure performance que dans le cas d'autres modulations codées par treillis. La modulation DMT est un type de modulation à multiples porteuses ou multiporteuse. L'idée de base derrière la modulation multiporteuse est que de multiples canaux peuvent être établis à l'aide de techniques de traitement de signal numérique en utilisant la transformation de Fourier rapide (FFT). Un modem DMT code des bits selon des symboles et les envoie par l'intermédiaire d'une FFT inverse puis convertit le signal numérique selon un signal analogique pour l'envoyer par l'intermédiaire de fils de téléphone en cuivre. Le modem de réception inverse le processus. De nombreux sous-canaux sont utilisés pour transmettre des données, chaque sous-canal présentant une porteuse différente et une constellation QAM différente (modulation d'amplitude en quadrature) contenant différents nombres de bits par constellation. Les multiples porteuses sont mises en #uvre par l'intermédiaire de la transformation de Fourier discrète. Le nombre de données qui sont transmises par symbole DMT varie de 16 bits par symbole pour une transmission de données amont ADSL jusqu'à un maximum de 15000 bits par symbole pour un système VDSL. Puisque le turbocode fonctionne bien avec une dimension d'entrelaceur importante (typiquement supérieure à 1000 bits), à des débits de données faibles, davantage de bits et éventuellement tous les bits doivent être transmis afin de satisfaire l'exigence en termes de latence du système. A des débits de donnés élevés, il trop coûteux de coder toutes les données. Par ailleurs, la performance souffrira dans le cas d'une grande constellation si toutes les données sont codées. Il existe un besoin pour un codeur efficace convenant pour des applications DMT. Conformément à l'invention, des bits selon un nombre arbitraire peuvent être codés sur la base d'une performance de gain de codage, d'une latence, d'un débit de données et d'une capacité en termes de composants matériels. RÉSUMÉ DE L'INVENTION Par conséquent, la présente invention propose une structure de codeur destinée à être utilisée dans un système de communication DMT, comprenant un turbocodeur pour coder une partie d'un train de données et pour générer une sortie codée ; un combineur de données qui comporte une première entrée qui reçoit une partie non codée restante dudit train de données et au moins une autre entrée qui reçoit ladite sortie codée, et une sortie pour produire un train de données combiné ; et un sélecteur pour sélectionner la partie dudit train de données qui est appliquée sur ledit turbocodeur. L'invention procure la capacité de modifier le nombre de bits qui sont envoyés sur le turbocodeur sur une base tonalité par tonalité. Certaines tonalités, en fonction des conditions de transmission, transporteront davantage de bits par symbole que d'autres et le nombre de bits qui sont passés au travers du turbocodeur peut être modifié. Selon un exemple typique, il peut y avoir 750 tonalités avec une moyenne de 6 bits par tonalité. Parmi ces tonalités, deux peuvent être passées au travers du turbocodeur. Mais ce nombre peut être modifié conformément à l'invention en fonction des exigences particulières. Le sélecteur est typiquement mis en #uvre en tant que multiplexeur de tonalité. Ce multiplexeur génère les tonalités DMT dans le domaine numérique, alloue des groupes de bits à chaque tonalité, puis, en fonction de l'entrée de sélection, dirige un sousgroupe de bits sur le turbocodeur et les bits restants directement sur le combineur de données au niveau duquel ils sont combinés avec la sortie du turbocodeur selon un train de données commun pour une entrée sur un modulateur QAM. Un autre aspect de l'invention propose une structure de décodeur pour un signal modulé DMT contenant des données qui sont au moins partiellement turbocodées, comprenant un décodeur dur pour recevoir une partie d'un train de données arrivant et pour générer un train de bits de sortie ;un décodeur doux pour recevoir une partie restante d'un train de données arrivant et pour générer une sortie décodée douce ; un turbodécodeur pour décoder la sortie dudit décodeur doux ; et un sélecteur pour sélectionner le nombre de bits dudit décodeur doux. L'invention propose également un procédé permettant de transmettre des données sur un canal de communication en utilisant une modulation DMT, comprenant la réception d'un train de bits d'entrée ; l'allocation de groupes de bits à des tonalités respectives faisant partie dudit schéma de modulation DMT ; pour chaque tonalité, la détermination, à partir de son groupe alloué, d'un nombre de bits destinés à être codés ; la sélection dudit nombre déterminé de bits à partir de chaque groupe et leur direction sur un turbocodeur ; et la combinaison d'une sortie dudit turbocodeur avec des bits restants de chaque groupe selon un train de bits commun pour une transmission sur ledit canal de communication. BRÈVE DESCRIPTION DES FIGURES L'invention sera maintenant décrite de manière davantage détaillée à titre d'exemple seulement par report aux dessins annexés parmi lesquels : la figure 1 est un schéma fonctionnel d'un turbocodeur ; la figure 2 est un schéma fonctionnel d'un turbodécodeur ; la figure 3 est un schéma fonctionnel d'une structure de codeur pour une modulation de turbocode par treillis conformément à un mode de réalisation de l'invention ; et la figure 4 est un schéma fonctionnel d'une structure de décodeur conformément à un mode de réalisation de l'invention. DESCRIPTION DÉTAILLÉE DE L'INVENTION Comme représenté sur la figure 1, un turbocodeur comprend un entrelaceur 10, lequel entrelaceur reçoit un train de données au niveau de son entrée, et deux codeurs de convolution systématique récursive (RSC) 12,14. L'un des codeurs RSC 12 reçoit le train de données en séquence au niveau de son entrée. L'autre codeur RSC 14 reçoit les données entrelacées au niveau de son entrée. Comme il est connu de l'homme de l'art, la sortie des deux codeurs RSC 12,14 est ponctionnée afin de créer des bits de contrôle d'erreur. Les sorties de codeur finales, soit les trains de bits ck1 et ck2, incluent les bits de contrôle d'erreur qui sont insérés dans le train de données sur la base du débit de codeur requis. Ces trains de sortie ck1 et ck2 sont ensuite combinés et envoyés en tant que train de sortie ck. Les données codées et non codées sont combinées et envoyées sur un codeur QAM (modulation d'amplitude en quadrature) pour une transmission sur un canal de communication. Un décodeur est représenté sur la figure 2. Des trains d'entrée reçus Pck1 et Pck2 sont appliqués sur des décodeurs respectifs 20,22. La sortie du décodeur 20 est appliquée sur une entrée du décodeur 22 par l'intermédiaire d'un entrelaceur 24 et la sortie du décodeur 22 est passée au travers d'un désentrelaceur 26 afin de produire un train de sortie décodé bd. Le codeur et le décodeur qui sont représentés sur les figures 1 et 2 sont classiques et leur fonctionnement est bien compris par l'homme de l'art. Selon la structure conformément à un mode de réalisation de l'invention comme représenté sur la figure 3, un train de données d'entrée est passé au travers d'un multiplexeur de tonalité 30, et est commandé par un sélecteur de bit 31 qui détermine combien de bits doivent être codés. Les bits non codés sont passés directement sur un combineur de données 34 tandis que les bits destinés à être codés sont passés sur l'entrée d'un turbocodeur 32, lequel produit deux sorties à partir des RSC respectives, lesquelles sont à leur tour connectées à des entrées respectives du combineur de données 34. Le combineur de données 34 combine les entrées selon un train combiné qui est appliqué sur l'entrée d'un modulateur d'amplitude en quadrature 36. Le QAM 36 émet en sortie un signal modulé sur le canal de transmission. Le multiplexeur de tonalité 30 qui fonctionne dans le domaine numérique crée une série de tonalités, typiquement environ 750, et alloue des bits sur un bloc de données arrivant aux tonalités individuelles. Typiquement, il peut y avoir 6 bits alloués par tonalité. Le multiplexeur de tonalité 30, comme son nom l'indique, dirige ensuite les bits en provenance de chaque tonalité soit sur le turbocodeur 32, soit sur le combineur de données en fonction d'une décision permettant de déterminer combien de bits pour cette tonalité seront codés. Par exemple, le sélecteur de bit 31 pourrait déterminer que les deux bits d'ordre le plus faible qui sont alloués à la tonalité vont sur le codeur 32 et que les bits restants vont directement sur le combineur de données 34 pour une combinaison avec les bits codés afin de réaliser ensuite un envoi en tant que train de bits combiné sur le QAM 36. Le turbocodeur travaille sur des blocs de données et accumule typiquement 1000 bits de données pour chaque opération de turbocodage. La sélection des bits est typiquement réalisée dans un processeur de signal numérique, lequel processeur détermine le nombre de bits destinés à être codés pour chaque tonalité sur la base des exigences particulières, à savoir l'exigence en termes de latence, la performance de gain de codage et la complexité du circuit. Conformément à l'invention, n'importe quel procédé approprié peut être utilisé pour commander le multiplexeur de tonalité 30 afin de diriger le nombre souhaité de bits respectivement sur le combineur de données 34 et sur le turbocodeur 32. En sélectionnant avec soin l'adresse de combinaison, il est possible de placer les données codées à n'importe quelle localisation de constellation QAM requise. Par ailleurs, au niveau du combineur de données 34, n'importe quelle logique de combinaison pour les données codées peut être appliquée afin d'améliorer encore la performance. Au niveau du côté de décodeur, le sélecteur de bit 41 déterminera quels bits des composantes 1 et Q de la constellation QAM reçue doivent aller sur le décodeur doux 40 et quels bits doivent aller sur le décodeur dur 42. Le décodeur dur 42 détermine si oui ou non les données non codées sont 0 ou 1 tandis que le décodeur doux 40 émet en sortie la probabilité que chaque bit de données codées soit 0 ou 1. Le turbodécodeur 44 réalise la décision douce à partir du décodeur doux et démarre l'algorithme de décodeur MAP (maximum a posteriori) d'itération d'une manière connue en soi. Le turbodécodeur 44 inclut dans la réalité deux décodeurs comme représenté sur la figure 2 dont chacun correspond à l'un des codeurs RSC dans le turbocodeur. Le décodeur 20 extrait le train de données doux et le bit de contrôle d'erreur correspondant pour le codeur 12 et réalise une opération de décodeur MAP. Le décodeur 22 applique un algorithme de décodeur MAP sur le train de données doux entrelacé et sur le bit de contrôle d'erreur correspondant pour le codeur 14. Après un certain nombre d'itérations, la décision dure concernant les données codées est prise pour obtenir un bit de sortie non codé. Un démultiplexeur de tonalité 46 avec commande de train de bits combine ensuite les données codées et non codées et les envoie en sortie en tant que train de données décodées. Le démultiplexeur de tonalité 46 est l'inverse du multiplexeur de tonalité 30. Pour chaque tonalité, il extrait les bits décodés durs et la sortie du turbodécodeur 22 et il produit un train de données de sortie qui correspond à l'entrée sur le multiplexeur de tonalité 30. Une unité de commande de train de bits 48 assure que les bits en provenance du turbodécodeur 44 selon le nombre correct sont combinés avec les bits décodés durs pour chaque tonalité. Ceci peut être mis en #uvre en tant que processeur de signal numérique par exemple. L'invention combine des modulations par turbocodeur et par codage par treillis, combinaison selon laquelle le codeur peut sélectionner n'importe quelle combinaison de données destinées à être codées ou à ne pas être codées. La structure est flexible de telle sorte que des bits selon n'importe quel nombre arbitraire dans un signal QAM peuvent être choisis pour être codés. La structure de décodeur flexible permet la sélection de n'importe quels bits dans les composantes # et Q pour un décodage dur ou pour un passage au travers de la procédure de décodeur MAP. Le nombre de bits qui sont codés est déterminé par le débit de données, par l'exigence en termes de latence, par la performance de gain de codage et par la complexité du circuit. N'importe quelle logique de combinaison peut être appliquée aux données codées. 1. Structure de codeur pour une utilisation dans un système de communication DMT, caractérisée en ce qu'elle comprend : un turbocodeur (32) pour coder une partie d'un train de données et pour générer une sortie codée ; un combineur de données (34) qui comporte une première entrée qui reçoit une partie non codée restante dudit train de données et au moins une autre entrée qui reçoit ladite sortie codée, et une sortie pour produire un train de données combiné ; et un sélecteur (31) pour sélectionner la partie dudit train de données qui est appliquée sur ledit turbocodeur (32). 2. Structure de codeur selon la revendication 1, caractérisée en ce que ledit sélecteur (31) détermine le nombre de bits dudit train de données qui est appliqué sur ledit codeur. 3. Structure de codeur selon la revendication 2, caractérisée en ce que ledit sélecteur (31) est mis en oeuvre selon un multiplexeur de tonalité (30) qui reçoit ledit train de données et qui dirige un certain nombre de bits déterminés par ledit sélecteur (31) sur ledit turbocodeur (32). 4. Structure de codeur selon l'une quelconque des revendications 1 à 3, caractérisée en ce que ledit combineur de données (34) comprend une paire desdites autres entrées qui reçoivent des sorties codées respectives dudit turbocodeur (32). 5. Structure de codeur selon la revendication 4, caractérisée en ce qu'elle comprend en outre un modulateur d'amplitude en quadrature (36) qui est connecté à la sortie dudit combineur de données (34) pour recevoir ledit train de données combiné. 6. Structure de décodeur pour un signal modulé DMT contenant des données qui sont au moins partiellement turbocodées, caractérisée en ce qu'elle comprend : un décodeur dur (42) pour recevoir une partie d'un train de données arrivant et pour générer un train de bits de sortie ; un décodeur doux (40) pour recevoir une partie restante d'un train de données arrivant et pour générer une sortie décodée douce ; un turbodécodeur (44) pour décoder la sortie dudit décodeur doux (40) ; et un démultiplexeur (46) pour combiner les sorties dudit turbodécodeur (44) et dudit décodeur dur (42) selon un train de données combiné. 7. Structure de décodeur selon la revendication 6, caractérisée en ce que ledit démultiplexeur (46) est un démultiplexeur de tonalité qui combine la sortie dudit turbodécodeur (44) et dudit décodeur dur (42) pour chaque tonalité. 8. Structure de décodeur selon la revendication 7, caractérisée en ce qu'elle comprend en outre une unité de commande de train de bits (48) pour commander ledit démultiplexeur (46) afin de combiner le nombre approprié de bits en provenance dudit turbodécodeur (44) avec le nombre approprié de bits dans ledit train de bits de sortie dudit décodeur dur (42). 9. Procédé de transmission de données sur un canal de communication en utilisant une modulation DMT, caractérisé en ce qu'il comprend : la réception d'un train de bits d'entrée ; l'allocation de groupes de bits à des tonalités respectives faisant partie dudit schéma de modulation DMT ; pour chaque tonalité, la détermination, à partir de son groupe alloué, d'un nombre de bits destinés à être codés ; la sélection dudit nombre déterminé de bits à partir de chaque groupe et leur direction sur un turbocodeur ; et la combinaison d'une sortie dudit turbocodeur avec des bits restants de chaque groupe selon un train de bits commun pour une transmission sur ledit canal de communication. 10. Procédé selon la revendication 9, caractérisé en ce que ledit train de bits commun est passé à un modulateur QAM. 11. Procédé selon la revendication 10, caractérisé en ce que des bits reçus depuis une constellation QAM après transmission sur ledit canal de communication sont passés à soit un décodeur doux, soit un décodeur dur, une sortie dudit décodeur dur est passée directement à un démultiplexeur, une sortie dudit décodeur doux est passée à un turbodécodeur et une sortie dudit turbodécodeur est passée audit démultiplexeur pour un mixage selon un train de sortie commun avec ladite sortie dudit décodeur dur, ledit démultiplexeur comportant une entrée de commande de train de bits pour déterminer le nombre de bits en provenance dudit turbodécodeur destinés à être mixés avec la sortie dudit décodeur dur dans chaque groupe. 12. Procédé selon la revendication 11, caractérisé en ce que ledit démultiplexeur est un démultiplexeur de tonalité qui combine lesdits bits sur une base tonalité par tonalité.