FR 2894750 A1 20070615 FR 0553765 A 20051208 LrXJl2-2,o92(X)] n n En = 2.1Yi[Yn+I/Yi]2 - lYi i=1 i=1 La présente invention concerne un procédé d'allocation d'une énergie totale disponible dans des sous-bandes d'un système de communication à modulation multiporteuse. L'invention trouve une application particulièrement avantageuse dans le domaine des liaisons multicanal à modulation multiporteuse, comme les liaisons xDSL, PLT ou Wireless. On rappelle que dans les systèmes de communication à modulation multiporteuse, en particulier la modulation multiporteuse discrète DMT ( Discrete MultiTone ), la bande passante utilisée est divisée en une io pluralité de sous-bande S13;, chaque sous-bande faisant l'objet d'une modulation par porteuse indépendante. Le nombre de bits et l'énergie d'émission attribués à une sous-bande dépendent des contraintes imposées sur la ligne de transmission en termes d'atténuation, de bruit stationnaire, etc, et varient donc d'une sous-bande à l'autre. 15 D'autre part, on sait qu'une liaison multicanal peut transporter un certain nombre de flux, chaque flux étant associé à un canal de la liaison. Par exemple, une liaison ADSL est prévue pour transmettre sept flux répartis dans sept canaux différents, à savoir quatre canaux unidirectionnels à haut débit, et trois canaux bidirectionnels à bas débit. Les canaux de transport de la liaison 20 doivent donc être choisis en fonction du service correspondant au flux à transporter considéré. On comprend donc que, dans les systèmes de transmission à liaison multicanal comme I'ADSL, plusieurs services peuvent être offerts simultanément avec la contrainte que la somme des énergies à transmettre 25 dans les sous-bandes S13; n'excède pas l'énergie totale E configurée pour la liaison. De manière classique, la répartition des énergies dans les sous-bandes S13; est effectuée en allouant à chaque sous-bande, au moyen d'algorithmes d'allocation binaire de type RA ( Rate Adaptive ), une énergie E; pouvant 30 être émise dans cette sous-bande, compte tenu du rapport signal à bruit de la 20 25 ligne de transmission pour la sous-bande considérée et compte tenu également d'une certaine marge de bruit. Plus la marge de bruit est grande, plus la transmission est robuste vis-à-vis des différentes perturbations pouvant survenir sur la ligne, perturbations impulsives notamment, et meilleure est la qualité de service QoS. Un algorithme d'allocation de type RA souvent utilisé est connu sous le de Hughes-Hartogs. Cet algorithme repose sur le principe d'une allocation de bits dans les sous-bandes ordonnée selon le moindre quota d'énergie supplémentaire io nécessaire. En d'autres termes, l'allocation des bits à transmettre se fait de manière itérative, bit par bit et à chaque allocation d'un bit, on recherche la sous-bande pour laquelle cette allocation nécessite le quota d'énergie supplémentaire le plus faible. On rappelle que pour une sous-bande SBi définie par un rapport signal 15 à bruit normalisé RSBNi et une marge de bruit ri, la relation entre le nombre bi de bits à transmettre dans la sous-bande et l'énergie Ei de transmission nécessaire est donnée par la formule de Shannon : bi = log2(1 + Ei.RSBNi/ri) La transmission du premier bit dans la sous-bande SBi nécessite une énergie yi vérifiant l'égalité résultant de la formule de Shannon ci-dessus : 1 = log2(1 + yi.RSBNi/ri) soit yi = ri/RSBNi D'une manière générale, la transmission du kième bit de l'ensemble des bi = k bits de la sous-bande SBi exige un quota d'énergie supplémentaire dans 30 cette sous-bande de AEibi donnée par : AEibi = 2bi-1yi Pour illustrer l'algorithme de Hughes-Hartogs, on prend l'exemple d'une 35 transmission à modulation DMT avec huit sous-bandes définies par les quota d'énergie yi suivants : y1= 1,0 y2= 1,1 y3= 1,1 y4= 1,3 y5= 5,5 y6= 6,5 y,= 10,2 y8= 40,0 Sur la figure 1 est donné un tableau montrant dans ce cas particulier la procédure d'allocation de bits dans les sous-bandes SBi. A chaque itération n est alloué un bit dans la sousbande pour laquelle le quota d'énergie supplémentaire AEibi est le plus petit. On voit sur cet exemple que le premier bit est alloué à la dernière sous-bande i = 8 à la n = 32ième itération. Bien entendu, cette procédure selon l'algorithme d'Hughes-Hartogs s'arrête quand l'énergie totale pour l'ensemble des sous-bandes a atteint l'énergie maximale disponible E. On constate que cet algorithme connu exige un nombre élevé d'itérations, ceci étant dû au fait qu'un seul bit est alloué à chaque itération. C'est pour remédier à cette situation que l'invention propose un procédé d'allocation d'une énergie totale disponible E dans des sous-bandes SBi d'un système de communication à modulation multiporteuse, chaque sous-bande SBi étant définie par une marge ri de bruit et un rapport signal à bruit normalisé RSBNi, remarquable en ce que ledit procédé comprend les étapes suivantes : - classer les sous-bandes SBi selon les valeurs croissantes du paramètre yi = ri/RSBNi, - effectuer une suite d'itérations, chaque itération comprenant les opérations consistant à : * allouer une énergie E'n = 2.yi[yn+1/yi]2 - yi à la sous-bande SBi avec i = 1,...n, n étant le rang de l'itération, et l'opérateur [x]2 étant défini par [x]2=2u g2N où [x] désigne la partie entière de x, n n * calculer une énergie totale En = 2.1yj[yn+1/yi]2 - yyi allouée à l'itération i=1 i=1 de rang n, * comparer l'énergie totale allouée En à l'énergie totale E, - arrêter la suite des itérations au rang n* tel que En* E et En*+1 > E, - allouer à chaque sous-bande SBi avec i = 1,...,n* l'énergie Ei : Ei=2.yi[yn*+1/yi]2 - yi 5 Ce procédé repose sur un mode d'allocation de bits consistant à chaque itération n à attribuer à chaque sous-bande S13; avec i = 1,...,n un nombre de bits b'n donné par : b'n = 1 + [log2(Yn+1/Yi)] Le tableau de la figure 2 montre que cette procédure d'allocation de bits est beaucoup plus rapide que la précédente puisque le même niveau de remplissage des sous-bandes est atteint en 7 itérations au lieu de 31. Ce 10 résultat est obtenu du fait que plusieurs bits peuvent être alloués simultanément lors d'une même itération. La relation ci-dessus couplée à la formule de Shannon conduit alors à l'énergie E'n = 2.y;[yn+,/y;]2 - y; allouée à chaque sous-bande S13; à chaque itération de rang n. On en déduit l'énergie totale nécessaire correspondante : 15 n n En= 2.1Yi[Yn+1/Yil2 -IYi (1) i=1 i=1 La comparaison de cette valeur à l'énergie totale disponible E permet de déterminer le rang n* de l'itération pour laquelle l'énergie En* est juste 20 inférieure à E, et d'en déduire l'allocation finale en énergie des sous-bandes par la formule E; = 2.y;[yn•+1/y;]2 - y; On remarquera cependant que ce procédé exige le calcul de l'expression (1) ci-dessus dont la première somme est particulièrement complexe à implanter puisque chacun de ses termes doit être recalculé à 25 chaque itération. Aussi, pour simplifier ces calculs, l'invention propose un procédé selon lequel, [x]2 étant approché par x1A/2, l'énergie allouée à chaque sous-bande S13; est donnée par : 30 E; = 112.y0n.+1 - y; n* 35 avec y n•+, = (E + ly;)/n*I2 i=1 En effet, on peut utiliser l'approximation suivante : pour tout réel x, en moyenne la partie entière [x] vaut x û 0,5. 15 Dans ce cas, la quantité [x]2 vaut en moyenne x1A/2, et la formule (1) donnant l'énergie totale allouée à l'itération de rang n s'écrit : n En = 1g2n.yn+1 - lyi i=1 On constate que cette formule est beaucoup facile à calculer que la précédente, d'où un gain de temps de calcul s'ajoutant au gain déjà réalisé sur le nombre d'itérations à effectuer. Comme précédemment, la comparaison de l'énergie En ainsi obtenue avec l'énergie disponible E conduit à la détermination du nombre n* d'itérations à effectuer pour lequel l'énergie En* est juste inférieure à E. Connaissant n*, on peut calculer le paramètre y n*+1 donnant exactement En* = E : n* Y n*+1 = (E + lYi)/n*112 i=1 On en déduit alors très simplement la distribution d'énergie par sous-bande i : E; = \12.y n*+1- Yi 20 comme annoncé plus haut. Le nombre de bits par sous-bande i est : b'n* = 1 + [log2(Y n*+1 /Yi)] Il est possible d'affiner ce modèle par une meilleure estimation de [x]2 25 grâce à un procédé qui, selon l'invention, est remarquable en ce que, [x]2 étant approché par x1A/2.a, - on estime une première valeur de a par : n* a = I2/(n*.Y n*+1) IYi[Y n*+1/Yi]2 30 i=1 où n* et y n*+1 sont calculés comme précédemment, n - on compare l'énergie totale En = I2n.a.yn+1 - 1y; allouée à l'itération de rang i=1 35 n à l'énergie totale E, et on en déduit une nouvelle valeur n*' telle que En* , E, et une nouvelle valeur y n-+1 telle que En* E, - on estime une nouvelle valeur a' par : n*' a' = IYi[Y n*'+1/Yi]2 40 i=1 20 25 - on arrête les estimations de a si la différence entre deux valeurs estimées successives de a est inférieure à une valeur donnée, ou à l'issue d'un nombre donné d'estimations. On écrit maintenant [x] = x ù 0, 5 +R, ce qui donne [x]2 = x1A/2.a avec a = 2a Dans ce contexte, l'énergie E'n allouée par sous-bande SB; à l'itération de rang n est donnée par : Ein = 112.a. Yn+1 - Yi et l'énergie totale En nécessaire à l'itération de rang n vaut : n En = -q2n.a.yn+1 - lyi i=1 Pour trouver le meilleur couple (n*, y n*+1) au sens du procédé précédent, il faut obtenir une estimation satisfaisante du paramètre a. Pour cela, on détermine dans un premier temps n* et y n*+1 dans l'hypothèse a = 1, comme décrit plus haut. On écrit ensuite l'égalité entre l'énergie totale approchée E n* n* E n* = -q2n*.a.y n*+1 - lYi i=1 et l'énergie exacte En* : n* n* En* = 2.1Yi[Y n*+1/Yi]2 - IYi i=1 i=1 On obtient ainsi une première valeur de a : n* a = I2/(n*.y n*+1) IYi[Y n*+1/Yi]2 i=1 30 A partir de cette valeur de a, on calcule l'énergie totale allouée En par la relation (2) et on la compare à l'énergie disponible E pour en déduire une nouvelle valeur n*' pour laquelle En- est juste inférieure à E. On en déduit également une nouvelle valeur y n-+1 qui donne l'égalité entre En- et E. On estime alors une nouvelle valeur de a, soit a' : 35 n*' a' = IYi[Y n*'+1/Yi]2 (3) i=1 L'itération sur les valeurs de a se poursuit ainsi jusqu'à ce que la différence entre deux valeurs successives soit inférieure à une valeur donnée. (2) La limite des itérations peut également être fixée par un nombre maximum d'estimations. Une variante au procédé qui vient d'être décrit consiste, après avoir calculé a par : n* a = ~2/(n* Yin*+1) IYi[Y n*+1/Yi]2, i=1 n* à calculer l'énergie totale allouée En* = I2n*.a.y0n*+1 - yyi et la comparer à E. i=1 Selon le résultat de la comparaison, la valeur de n* est décrémentée ou incrémentée pour obtenir une nouvelle valeur n*' telle que En*, est juste inférieure à E. Comme précédemment, on calcule une nouvelle valeur y n*,+1 donnant l'égalité exacte des énergies. Une nouvelle valeur a' de a est calculée par la relation (3), les itérations sur a s'arrêtant lorsque les valeurs obtenues sont suffisamment stables ou au bout d'un nombre d'estimations donné. L'invention concerne également un produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'invention lorsque ledit programme est exécuté sur un ordinateur. De même, l'invention a pour objet un support dudit produit programme. L'invention concerne en outre un module d'allocation dans les sous-bandes d'un émetteur d'une liaison multicanal, remarquable en ce qu'il comprend des moyens pour la mise en ceuvre du procédé selon l'invention. Enfin, l'invention se rapporte à un émetteur d'une liaison multicanal, remarquable en ce qu'il comprend le module d'allocation selon l'invention. La figure 3 est un schéma d'un émetteur d'une liaison multicanal, conforme à l'invention. L'émetteur de la figure 3 comprend un module d'allocation apte à mettre en ceuvre le procédé selon l'invention. A cet effet, un programme 10 d'allocation de sous-bandes reçoit d'une mémoire 11 de l'émetteur les paramètres nécessaires tels que les rapports signal à bruit normalisés et les marges de bruit. Le programme est ensuite exécuté par le microprocesseur 12 en coopération avec une mémoire vive 13. Le résultat de l'allocation ainsi obtenue est alors appliqué aux porteuses. 20 25 30 35 REVENDICATIONS 1. Procédé d'allocation d'une énergie totale disponible E dans des sous-bandes SB; d'un système de communication à modulation multiporteuse, chaque sous-bande SB; étant définie par une marge F; de bruit et un rapport signal à bruit normalisé RSBN;, caractérisé en ce que ledit procédé comprend les étapes suivantes : - classer les sous-bandes SB; selon les valeurs croissantes du paramètre y; = r;/RSBN;, - effectuer une suite d'itérations, chaque itération comprenant les opérations consistant à : * allouer une énergie E'n = 2.Yi[Yn+1/y;]2 - y; à la sous-bande SB; avec i = 1,...,n, n étant le rang de l'itération, et l'opérateur [x]2 étant défini par [x]2=2u g2N où [x] désigne la partie entière de x, n n * calculer une énergie totale En = 2.1y;[yn+1/y;]2 - yy; allouée à l'itération i=1 i=1 de rang n, * comparer l'énergie totale allouée En à l'énergie totale E, - arrêter la suite des itérations au rang n* tel que En* E et En*+1 > E, - allouer à chaque sous-bande SB; avec i = 1,...,n* l'énergie E; : E;=2.yi[Yn*+1/Yi]2 - Yi et le nombre de bits : b'n* = 1 + [log2(Yn*+1 /Yi)] 2. Procédé selon la revendication 1, caractérisé en ce que, [x]2 étant approché par x1A/2, l'énergie allouée à chaque sous-bande SB; est : E;=2.yi[Y n*+1/Yi]2 - Yi et le nombre de bits par sous-bande SB; est :b'n* = 1 + [Iog2(Y n*+1 /Yi)] n* Y n*+1 = (E + lYi)/n*-\12 i=1 avec 35 3. Procédé selon la revendication 1, caractérisé en ce que, [x]2 étant approché 10 par x1A/2.a, - on estime une première valeur de a par : n* a = -q2/(n*.Y n*+1) IYi[Y n*+1/Yi]2 i=1 15 où n* et y n*+1 sont calculés selon la revendication 2, n - on compare l'énergie totale En = I2n.a.yn+1 - 1y; allouée à l'itération de rang i=1 n à l'énergie totale E, et on en déduit une nouvelle valeur n*' telle que En* , E, et une nouvelle valeur y n-+1 telle que En* E, - on estime une nouvelle valeur a' par : n*' a' = IYi[Y n*'+1/Yi]2 i=1 25 - on arrête les estimations de a si la différence entre deux valeurs estimées successives de a est inférieure à une valeur donnée, ou à l'issue d'un nombre donné d'estimations. 4. Procédé selon la revendication 1, caractérisé en ce que, [x]2 étant approché par x/A/2.a, 30 - on estime une valeur de a par : n* a = Al2/(n*.Y n*+1) IYi[Y n*+1/Yi]2 i=1 où n* et y n*+1 sont calculés selon la revendication 2, n* - on compare l'énergie totale En* = I2n*.a.y0n*+1 lyi à l'énergie totale E, i=1 - on décrémente ou incrémente n* pour obtenir une nouvelle valeur n*' telle que En* , E, 40 - on calcule une nouvelle valeur y n-+1 telle que En* E, - on estime une nouvelle valeur a' par :i0 n*' a' = IYi[Y n*'+1/Yi]2 i=1 - on arrête les estimations de a si la différence entre deux valeurs estimées successives de a est inférieure à une valeur donnée, ou à l'issue d'un nombre donné d'estimations. 5. Produit programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'une quelconque des revendications 1 à 4 lorsque ledit programme est exécuté sur un ordinateur. 6. Support du produit programme d'ordinateur selon la revendication 5. 7. Module d'allocation dans les sous-bandes d'un émetteur d'une liaison multicanal, caractérisé en ce qu'il comprend des moyens pour la mise en ceuvre du procédé selon l'une quelconque des revendications 1 à 4. 8. Emetteur d'une liaison multicanal, caractérisé en ce qu'il comprend le module d'allocation selon la revendication 7.20