Brevet FR2808394A1 — publié le 20011102

Domaine de l'invention La présente invention concerne le domaine de la transmission de données et de façon davantage particulière, elle concerne un schéma de modulation pour transmettre des données sur un canal de communication, par exemple dans un système de modulation multifréquence discret. Arrière-plan de l'invention Afin d'augmenter l'efficacité d'un transfert de données sur un canal de communication, les données sont transférées en tant que symboles dont chacun représente un nombre de bits. Par exemple, dans un système QAM (à modulation d'amplitude en quadrature) , les symboles sont représentés par l'amplitude et la phase des signaux. Seize symboles uniques, c'est-à-dire des combinaisons d'amplitude et de phase, par exemple, représenteront quatre bits à la fois. Les symboles forment une constellation de points sur un diagramme de phase/amplitude. Lorsque le nombre de symboles augmente, la possibilité de transmission d'erreurs fait de même. Des schémas de codage d'erreurs vers l'avant sont utilisés pour permettre au récepteur de détecter des erreurs et de restaurer le symbole transmis correct. Une forme préférée de codage au niveau de communications de données est un codage par convolution qui est un schéma de codage du niveau des bits qui dépend de la séquence binaire précédente. Selon une modulation codée par treillis, le nombre de symboles est augmenté afin d'assurer une redondance. Seulement certaines transitions sont autorisées. Dans le cas d'une erreur, le récepteur peut détecter la transition la plus probablement correcte en ayant connaissance de toutes les transitions autorisées possibles. A la différence des codes par blocs qui envoient des données selon des blocs prédéterminés, les codes de convolution ne permettent pas de traiter d'une façon satisfaisante des erreurs de salve. En partie en tant que réponse à ce problème, des turbocodes ont été développés. Par essence, un turbocode est constitué par deux codes de convolution ou plus qui sont séparés par un entrelaceur qui opère sur la séquence d'entrée du premier codeur. Voir par exemple "Application of Turbo Codes for Discrete Multi-tone Modulation", de Hamid R. Sadjapour, AT & T Shannon Labs, 1996. Le turbocode est en train d'attirer de plus en plus l'intérêt du fait de son gain de codage plus important. Dans un système de ligne d'abonné numérique ou DSL, un turbocode a été utilisé pour remplacer un code par treillis afin d'obtenir une performance meilleure en termes de taux d'erreurs binaires (BER). Cependant, lorsque la dimension de la constellation augmente, I'avantage constitué par le gain de codage du turbocode commence à s'effondrer. Ceci est dû au fait que les bits de redondance ou redondants rendent la dimension de la constellation encore plus importante. Un objet de la présente invention consiste à augmenter le débit de transmission de données, par exemple dans un système DMT. Résumé de l'invention Conformément à la présente invention, on propose un procédé permettant de transmettre des données sur un canal de communication, comprenant la réception d'un train de bits arrivant, le passage d'au moins certains desdits bits au travers d'un turbocodeur afin de générer des bits de sortie turbocodés et la génération de mots correspondant à des points de symbole sur une constellation dans un schéma de modulation de code par treillis en utilisant au moins lesdits bits qui sont passés au travers dudit turbocodeur. Selon la présente invention, le turbocodeur est de préférence utilisé pour coder seulement le bit de poids le plus faible (LSB) dans la constellation puisque le LSB est le plus sensible à des erreurs. Le débit de données susceptible d'être obtenu à l'aide de ce moyen est éloigné de la capacité de Shannon de seulement 2 dB. L'invention combine un turbocode puissant avec un schéma de modulation codée par treillis afin d'augmenter le débit de données, de préférence dans un système DMT (multifréquence discret). Dans un système DMT, de multiples sous-canaux sont utilisés pour transmettre des données, chacun d'entre eux présentant différentes porteuses et différentes constellations QAM contenant différents nombres de bits par point de constellation. Normalement, le nombre de bits au niveau de chaque point de constellation est un entier et un sous-canal est inutilisable s'il ne peut pas supporter un bit de données entier. Conformément à l'invention, un algorithme de spectre étendu peut être combiné avec une modulation turbocodée par treillis de telle sorte que des canaux qui transportent moins d'un bit entier d'information puissent également être utilisés. En tant que résultat, la capacité globale en termes de canaux peut être augmentée fortement. Brève description des dessins 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 représente un codeur conformément aux principes de l'invention pour x et y > 1, o x et y sont le nombre de bits dans chaque point de constellation (symbole); la figure 2 représente la structure de codeur pour x = 1 et y > 1, o le débit de turbocodage est de 2/3; la figure 3 représente une structure de codeur pour le cas y = 1 et x > 1; la figure 4 représente le codeur pour x = y = 1, o le débit de codage est de 1/2; la figure 5 est un schéma fonctionnel du décodeur; la figure 6 représente une constellation qui représente comment les trois bits finals sont déterminés; et la figure 7 est une constellation qui représente la détermination des bits de poids le plus fort. Description détaillée des modes de réalisation préférés L'invention sera décrite dans le contexte d'un système DMT ou multifréquence discret qui pourrait typiquement contenir 1000 sous-canaux dont chacun peut transporter un nombre différent de symboles représentant un nombre distinct de bits, c'est-à-dire que le nombre de points de constellation pour chaque sous-canal peut varier, et par conséquent, le nombre de bits par point de constellation peut varier. Codeur Comme représenté sur la figure 1, une partie d'un train de bits arrivant est appliquée sur un bloc de données de codeur 10 qui est une mémoire adressable. Si l'on suppose 10 bits par symbole y compris un bit de contrôle pour deux sous-canaux, les 1000 canaux peuvent transporter 9500 bits à la fois. Par conséquent, typiquement 9500 bits d'un train de bits ou binaire arrivant sont appliqués dans le codeur. Une fraction de ces bits, typiquement 1500, sont appliqués sur le bloc de données de codeur 10. Le codeur peut de préférence être mis en oeuvre en tant que codeur parallèle comme décrit dans notre demande de brevet du Royaume Uni de Grande Bretagne connexe de numéro 0010330.9 déposée le 18 avril 2000 dont le contenu est incorporé ici à titre de référence. Dans l'exemple représenté, trois bits ul, u2, u3 sont émis en sortie séquentiellement depuis le bloc de données de codeur 10 et trois bits U'1, u'2, u'3 sont émis en sortie en tant que données entrelacées. Les bits de données u2 et u3 forment des composantes vo0, va du premier mot de sortie v et le bit u1 forme le bit w1 du second mot de sortie w. Le bit wo est formé en turbocodant les groupes de bits u1, u2, u3 et u'l, u'2, u'3 à l'aide de codeurs convolutionnels systématiques récursifs 12, 14 après passage au travers de registres à décalage respectifs 16, 18. La structure du codeur de constellation utilisé est similaire à celle utilisée dans un système ADSL. Le mot binaire u = (uz,, uz,.,..., ul) détermine deux mots binaires v = (v,.y,..., vo) et w = (wy.1,..., w0) (o z' = x + y -1) qui sont utilisés pour consulter deux points de constellation (chacun contient respectivement x et y bits) dans la table de consultation de codeur. La figure I représente la structure de codeur pour x > 1 et y > 1, o le turbocodeur utilisé est un codeur systématique avec une vitesse ou un débit de codage 3/4 ramené au débit 1/2. Le turbocodeur 20 est constitué par les deux codeurs convolutionnels systématiques récursifs 12, 14 (RSC1 et RSC2). Le codeur RSC1 extrait des données séquentielles à partir du bloc de données de codeur 10 et le codeur RSC2 extrait des données entrelacées à partir du même bloc de données 10. La longueur du bloc de données dépend du nombre de données qui sont transmises dans chaque trame de signal, soit 9500 bits dans l'exemple présenté ci-avant. Normalement, un nombre entier de blocs de données seront transmis dans chaque trame de signal. Les figures 2 à 4 représentent la structure de codeur pour d'autres valeurs de x et y. La figure 2 représente la structure de codeur pour x = 1 et y > 1, o la vitesse ou le débit de turbocodage est de 2/3. Pour le cas de y = 1 et x > 1, la structure de codeur qui est représentée sur la figure 3 est similaire à celle qui est représentée sur la figure 2. La figure 3 représente la structure de codeur pour le cas x = y = 1, o le débit de codage ou vitesse de codage est de 1/2. Pour y utilisant K sous-canaux o y = 1/K en utilisant un code étalé. Si le code étalé qui est utilisé est [b1, b2,..., bK], 0 peut être transmis en tant que [b1, b2,..., bK] o (k = 1, 2,..., K) et 1 est transmis en tant que [bl,b2,...,bK]. La constellation pour chaque souscanal dans le groupe de K sous-canaux utilise un bit par constellation de canal et le k-ième canal transmet le bit bk. De façon globale, K souscanaux sont requis pour transmettre un bit de données. L'avantage d'un tel agencement réside dans le fait qu'une autodiaphonie peut être réduite fortement si différents codes étalés sont utilisés pour différents modems dans le même faisceau de paires. Des codes étalés appropriés sont décrits dans IEEE Communications Letters, vol. 4, n 3, pp. 80 à 82, mars 2000, R. V. Sonalkar et R. R. Shively. Décodeur La procédure de décodage pour une modulation turbocodée par treillis est constituée par les étapes qui suivent: 1. Décodage souple du bit de poids le plus faible (LSB); 2. Décodage dur des bits de poids le plus fort (MSB); 3. Décodage du LSB en utilisant un algorithme de turbodécodeur; et 4. Détermination de tous les bits de données. Si une constellation de N bits est utilisée pour une transmission de données dans un sous-canal donné, l'emplacement de la constellation peut être représenté par deux vecteurs dimensionnels Xb = [bxM, bx(M-1),... bxl, 1] et Yb = [byM, by(M-1),..., by1, 1] o M = N/2 pour un nombre pair N et M = (N + 1)/2 pour un nombre impair N. Le décodeur sera le même pour à la fois Xb et Yb. On suppose que des données reçues sont (X, Y). Si (2M + 1 + 2k) 1, le bit souple (une probabilité logarithmique sans une constante) pour le LSB dans X est déterminé comme suit [_ (X+1 si N=2 P1 =1og(sonde(bx1=1)) = X_2-l(X+4k_2M+3)2 autrement L k=0 l k-O 2o2 'aurmn F_ (X+1)2 si N=2 P0 =log(sonde(bx1=0)) = 2 (X+4k2M+1)2 _2M-1(X+ 4k_2M+3) Ik=0 2, autrement tk=O 2cy o u2 est la puissance de bruit. Le bit souple pour le LSB dans Y peut être obtenu d'une façon similaire en remplaçant X par Y dans l'équation mentionnée ci-avant. Si N = 1, le bit souple sera: P1l=log(sonde(bxl =1))= _(X+1)2 + (Y+1)2 2 2a2 2 a2) P0 =log(sonde(bx1=0))= (X-1)y2(Y-1)2 2 Si N niveau de sa dernière itération. La raison pour laquelle la sortie du bit de contrôle d'erreur est requise réside dans le fait que LSB est nécessaire pour déterminer X (ou Y) à partir de deux points de constellation possibles Xi et X2 (ou Y1 et Y2) bien que certains de ces LSB soient des bits de contrôle d'erreur. Un exemple détaillé d'un turbodécodeur peut être trouvé dans l'article de Sadjapour auquel il a été fait référence ci-avant et également dans le document de C. Berrou et suivants, "Near Optimum Error Correcting Coding and Decoding Turbo-codes", IEEE Trans. on Communications, vol. 44, N 10, octobre 1996. Les bits de contrôle d'erreur de sortie souple à l'instant k sont calculés comme suit: Pckl = sonde (bck = 1) = MAX(s, s,) [Yckl (Rk, S, S') OEk-1 (S') k(S)] Pçko = sonde (bck = 0) = MAX(s, s') [YckO (Rk, S, S') Ok-1(S') 13k(S)] o s est l'état du turbocodeur à l'instant k et s' est son état à l'instant k-1. Rk représente les données reçues. 3k(S) est la probabilité pour l'état s (à l'instant k) pour une itération vers l'arrière et Ok.l(s') représente la probabilité pour l'état s' (à l'instant k-1) pour une itération vers l'avant. YCko(Rk, s, s') et YCk1(Rk, s, s') sont la probabilité de transition depuis l'état s' jusqu'à l'état s avec des données reçues qui sont Rk et avec le bit de contrôle d'erreur qui vaut respectivement 0 et 1. Après passage au travers du turbodécodeur, les LSB sont déterminés et si N > 1, les MSB doivent encore être déterminé à partir de deux points de constellation possibles. On considère en tant qu'exemple X qui présente deux valeurs possibles Xi ou X2 (qui sont deux points voisins dans la constellation). Pour deux points de constellation voisins, les LSB pour Xi et pour X2 doivent être différents. Par conséquent, Xb = [bxM, bX(M-1),..., bx1, 1] peut être déterminé à partir de X1 et de X2 en examinant le LSB afférent. De façon similaire, Yb = [byM, by(M-1),..., by1, 1] peut être déterminé. Après que Xb et Yb sont déterminés, les bits de données reçus finals sont obtenus pour les trois cas qui suivent. Lorsque N est pair, les bits finals sont [bN, bN-1,..., b1] = [bxM, byM, bx(M- 1), by(M-1),..., bx1, by1]. Si N = 3, les trois bits finals sont déterminés au moyen d'une constellation qui est représentées sur la figure 6, laquelle est en outre présentée sous forme de tableau au niveau du tableau 1. bx2bxl by2byl b3b2b1 00 00 000 00 01 101 00 10 001 00 11 001 01 00 000 01 01 101 01 10 111 01 11 111 00 100 01 100 10 110 11 011 11 00 010 11 01 010 11 10 110 11 11 011 Si N est un nombre impair et que N > 3, le bit faible (N - 5) peut être déterminé de la même façon que pour le cas de N pair, c'est-à-dire [bN-5, bN-6, b1] = [bx(M-3), by(M-3), bx(M-4), by(M-4),..., bx1, b1].. Les 5 MSB sont déterminés conformément à une constellation telle que représentée sur la figure 7, laquelle constellation est en outre présentée sous forme de tableau au niveau du tableau 2. bxMbx(M-1)bx(M-2) byMby(M-1)by(M-2) bNbN-1 bN-2bN-3bN-4 000 000 00000 000 001 00001 000 010 10100 000 011 10100 000 100 10101 000 101 10101 000 110 00100 000 111 00101 001 000 00010 001 001 00011 001 010 10110 001 011 10110 001 100 10111 001 101 10111 001 110 00110 001 111 00111 000 10000 001 10001 010 10110 011 10110 100 10111 101 10111 110 11100 111 11101 011 000 10000 011 001 10001 011 010 10001 011 011 10001 011 100 11101 011 101 11100 011 110 11100 011 111 11100 000 10010 001 10011 010 10011 011 10011 100 11110 101 11110 110 11110 111 11111 101 000 10010 101 001 10011 101 010 11000 101 011 11000 101 100 11001 101 101 11001 101 110 11110 101 111 11111 000 01000 001 01001 010 11000 011 11000 100 11001 101 11001 110 01100 111 01101 111 000 01010 111 001 01011 111 010 11010 111 011 11010 111 100 11011 111 101 11011 111 110 01110 111 111 01111 Il sera apprécié que l'utilisation d'un turbocode comme décrit en combinaison avec un code par treillis permet l'obtention d'une meilleure performance qu'il n'est possible avec des codes par treillis présentement utilisés. Lorsqu'un algorithme par spectre étalé est combiné avec une modulation turbocodée par treillis, il est possible d'utiliser des canaux qui transportent moins d'un bit d'information, ce qui conduit à une augmentation importante de la capacité en termes de canaux. Les blocs décrits peuvent être mis en oeuvre dans un processeur de signal numérique ou DSP qui utilise des techniques DSP standards connues de l'homme de l'art. REVENDICATIONS 1. Procédé de transmission de données sur un canal de communication, caractérisé en ce qu'il comprend la réception d'un train de bits arrivant, le passage d'au moins certains desdits bits au travers d'un turbocodeur afin de générer des bits de sortie turbocodés et la génération de mots correspondant à des points de symbole sur une constellation dans un schéma de modulation de code par treillis en utilisant au moins lesdits bits qui sont passés au travers dudit turbocodeur. 2. Procédé selon la revendication 1, caractérisé en ce que lesdits bits qui sont passés au travers du turbocodeur sont les bits de poids le plus faible (LSB) des données arrivantes et en ce que les bits de poids le plus fort sont passés directement sur le mot de sortie. 3. Procédé selon la revendication 1, caractérisé en ce qu'une partie du train de bits arrivant est envoyée dans une mémoire et des groupes de bits entrelacés provenant de ladite mémoire sont envoyés sur des codeurs convolutionnels systématiques récursifs afin de créer lesdits bits de sortie turbocodés. 4. Procédé selon la revendication 1, caractérisé en ce que lesdits symboles sont transportés sur une pluralité de sous-canaux dans un système multifréquence discret (DMT). 5. Procédé selon la revendication 1, caractérisé en ce que, pour au moins certains desdits sous-canaux, les points de symbole de constellation contiennent moins d'un bit entier et pour de tels sous- canaux, un bit entier est transmis sur K sous-canaux en utilisant un code étalé. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que lesdits mots incluent des bits de contrôle d'erreur. 7. Procédé selon la revendication 1, caractérisé en ce que lesdits mots sont utilisés pour obtenir les points de constellation à partir d'une table de consultation de codeur. 8. Codeur pour coder un train de données arrivant pour une transmission sur un canal de communication, caractérisé en ce qu'il comprend un bloc de données de codeur (10) pour stocker une partie du train de données arrivant, un premier codeur convolutionnel systématique récursif (RSCI) qui reçoit des données séquentielles depuis le bloc de données de codeur et un second codeur convolutionnel systématique récursif (RSC2) qui reçoit des données entrelacées depuis le bloc de données de codeur, lesdits codeurs convolutionnels émettant en sortie au moins le bit de poids le plus faible d'un mot de données de sortie qui forme un point de symbole sur une constellation dans un schéma de modulation de code par treillis. 9. Codeur selon la revendication 8, caractérisé en ce qu'il comprend en outre un registre à décalage (16, 18) connecté à l'entrée de chaque codeur convolutionnel systématique récursif (RSC1, RSC2), chaque cellule dudit registre à décalage recevant un bit respectif depuis ledit bloc de données de codeur (10). 10. Codeur selon la revendication 8, caractérisé en ce que, pour x = y = 1, o x et y sont les nombres de bits dans chacune de deux constellations, les entrées dudit codeur convolutionnel systématique récursif sont connectées directement sur ledit bloc de données de codeur (10). 11il. Procédé de décodage d'un signal de modulation de turbocode par treillis, caractérisé en ce qu'il comprend: (i) décodage souple du signal reçu pour les bits de poids le plus faible; (ii) décodage dur du signal d'entrée pour les bits de poids le plus fort; (iii) décodage du bit de poids le plus faible en utilisant un algorithme de turbodécodeur; et (iv) détermination de tous les bits de données. 12. Procédé selon la revendication 11, caractérisé en ce que le signal reçu est traité afin de déterminer le bit souple (probabilité logarithmique sans constante) pour le LSB comme suit: _ (X+1)2 2_aX12 si N=2 Pl =lgsnebll 2o2 P1 1og(sonde(bx1=1))- 2M-1(X+4k-2M+3)2 autrement k=O 2c2 o s22 es'apisnc ebut (X+l)2 si N=2 2 o2 Pd=log(sonde(bc1=0)) d'erreur. L10k k0m), autrement o a2 est la puissance de bruit. 13. Procédé selon la revendication 12, caractérisé en ce que le bit souple est passée sur un turbocodeur afin de générer un bit de donnéees et un bit de contrôle d'erreur. 14. Procéde selon la revendication 13, caractérisé en ce que, après détermination des LSB, les MSB sont déeterminés à partir de points de constellation possibles en examinant les LSB. 15. Procédé selon la revendication 11, caractérisé en ce qu'un décodeur de LSB et de MSB est combiné pour des constellations différentes. 16. Appareil de décodeur pour décoder un signal modulé de turbocode par treillis, caractérisée en ce qu'il comprend une paire de décodeurs (30, 32) connectés pour recevoir des bits souples d'entrée, un entrelaceur et un désentrelaceur et en ce que lesdits décodeurs dérivent à partir desdits bits souples d'entrée un bit de données et au moins un bit de contrôle d'erreur. 17. Appareil de décodeur selon la revendication 16, caractérisé en ce que chaque décodeur effectue une itération vers l'avant et vers l'arrière et un calcul de la sortie de bit souple finale. 18. Appareil de décodeur selon la revendication 16, caractérisé en ce que lesdits décodeurs sont des décodeurs LOG-MAP.