Allocation dynamique des bits

 

Accueil
L'équipe
Introduction
Contexte historique
Partie technique
Partie Humaine
Conclusion
Bibliographie
Telechargements
Docs
Contactez-nous

 

 

Technique DMT Prefixe cyclique Evaluation canaux Allocation dynamique des bits

 

 

Une fois l’évaluation des canaux réalisée, on peut calculer le nombre de bits à affecter à chaque canal.

 

Le nombre de bits alloués à chaque sous-porteuse est déterminé grâce à la technique du « water pouring ». Cette technique se base sur un débit binaire et une puissance totale d’émission fixés. Son principe est de répartir la puissance totale d’émission sur les sous-porteuses afin de maximiser la capacité de chaque canal. Puis, à partir de la puissance répartie sur chaque sous-porteuse, un certain nombre de bits est alloué à chaque canal. On procède finalement à quelques ajustements sur le nombre de bits alloués pour obtenir le débit fixé.

 

Vous trouverez ci-dessous les différentes étapes de l’algorithme appliqué au cas de l’ADSL. Son implémentation correspond à la fonction repart_bits fournie en annexe. Celle-ci prend en paramètres le nombre N de canaux utilisés, h_moy_abs et noise_moy_abs qui sont chacun des vecteurs lignes de longueur N et qui correspondent respectivement au module au carré de la fonction de transfert et à la puissance du bruit.

 

 

1.      1ère étape : la définition des paramètres

 

On définit les paramètres fixes :

  • La puissance totale
  • Le débit bit à atteindre D
  • La largeur de la bande de transmission W
  • La probabilité d’erreur maximale  

 

Dans le cas de l’ADSL, on considère une puissance moyenne d’un watt par sous-porteuse, la puissance totale (somme des puissances de chaque sous-porteuse) correspond donc à N.

La largeur de bande d’un canal est de 4.3125 kHz. Le débit à atteindre s’écrit donc : D=W*N*n, avec n le nombre de bits envoyés en moyenne sur un canal. Le produit N*n correspond alors à la taille moyenne d’une trame DMT.

Dans le cas de l’ADSL, le débit maximal en upstream est de 800 Kbps et celui en downstream est de 8192 Kbps. Il y’a au maximum 800/4.3125 soit 186 bits dans une trame DMT en upstream et 8192/4.3125 soit 1900 bits dans une trame DMT en downstream. Pour estimer un débit moyen, on suppose qu’on peut atteindre usuellement 85% du débit maximum. On considère donc qu’il y a en moyenne 159 bits transmis sur les 25 sous-porteuses utilisées pour l’upstream et que 1615 bits sont transmis sur les 225 sous-porteuses utilisées en downstream. On fixe ainsi une moyenne de 6 bits par sous-porteuse en upstream (159/25) et 7 bits par sous-porteuse pour le downstream (1615/225).

On peut donc définir :

-    le débit moyen en upstream : 4312*25*6 646.8 Kbps

-    le débit moyen en downstream : 4312*225*7 6.8 Mbps

Enfin, on fixe une probabilité d’erreur maximale de .

 

 

2.      2ème étape : mise en place des équations

 

La formule analytique de la probabilité d’erreur symbole  pour une modulation M-QAM, en présence d’un bruit blanc de densité spectrale , peut être approximée par  avec  l’énergie moyenne d’un symbole dans la constellation et  la fonction d’erreur définie par :

 

On peut transposer ce calcul de probabilité d’erreur à celui d’un système DMT (composé de la somme de N modulations M-QAM) en l’appliquant à chaque sous-bande. On peut également exprimer cette probabilité en fonction de la puissance de bruit , de la fonction de transfert , et de la puissance  sur la sous-bande j grâce à la relation suivante :

 

Ainsi, on a :

 avec  la taille de la constellation utilisée dans le j-ème canal.

 

Posons .

La probabilité d’erreur symbole  peut alors s’écrire :.

Etant donné que cette probabilité p est fixée à ,  peut se calculer en résolvant l’équation : .

 

Par ailleurs, la relation  nous permet d’exprimer la taille de la constellation utilisée dans le j-ème canal () en fonction de la puissance  de ce canal :

 

Le nombre de bits  alloué à chaque sous-porteuse s’écrit alors :

=

 

Rappelons que le principe de l’algorithme est de maximiser le débit binaire atteint en respectant la condition .

L’expression du débit binaire est : débit = .

La largeur W étant fixée, on cherche à maximiser  avec . Le problème se ramène donc à un problème d’optimisation sous contrainte. En effet, en notant  la fonction à maximiser et  sa contrainte d’égalité, nous avons :

 

 

En notant  le multiplicateur de Lagrange associé à la contrainte, nous devons résoudre :

, ce qui s’écrit : = 0.

Notons .

L’équation précédente s’écrit alors : . Ainsi,  et donc  . La constante  est ensuite calculée de telle sorte que , ce qui s’écrit :  d’où  et .

 

 

 

 

3.     3ème étape : calcul des puissances de chaque sous-porteuse

 

On  calcule les puissances  de chaque sous-porteuse, à partir de l’équation établie à la deuxième étape :

 

Pour chaque puissance  ainsi calculée, on fait un test de signe. S’il s’avère que celle-ci est négative, on annule la puissance de la sous-porteuse associée.

 

 

 

4.    4ème étape : détermination du nombre de bits alloués à chaque sous-porteuse

 

On détermine les tailles  des constellations à partir de l’équation établie à la deuxième étape et des puissances  calculées à l’étape précédente:

 

Puis on en déduit le nombre de bits  alloué à chaque sous-porteuse ainsi que le débit atteint :

                 

Nous pouvons vérifier mathématiquement que lorsque la puissance du j-ème canal est nulle, aucun bit ne lui est alloué (si = 0, = 1 et = 0).

 

 

5.     5ème étape : ajustement du débit obtenu par rapport au débit fixé (ajustement grossier)

 

Cette étape est une étape de vérification : on vérifie que les performances désirées peuvent être atteintes : il faut que le débit calculé à l’étape précédente soit supérieur au débit D initialement voulu. Si ce n’est pas le cas, c’est que la probabilité d’erreur maximale p fixée est trop faible. Il faut donc l’augmenter et refaire les calculs.

Dans le cas contraire (si le débit calculé est supérieur au débit D fixé), on essaie de se rapprocher le plus possible de ce débit D voulu.

Ainsi, si  avec e entier positif, alors on retire e bits à chaque sous-porteuse.

           

Par ailleurs, puisque l’ADSL utilise au maximum une modulation 256-QAM, le nombre de bits par sous-porteuse doit être limité à Kmax =8 bits. Comme le nombre de bits attribué à chaque canal est un nombre entier, on va arrondir les  réels  trouvés à leur entier le plus proche. Nous devons ainsi nous assurer que les éléments du vecteur d’allocation k soient compris entre 0 et 8,5 (non compris).

 

 

6.    6ème étape : ajustement précis du débit

 

On cherche maintenant à atteindre plus précisément le débit D voulu. Pour cela on arrondit, dans un premier temps, les  calculés. Puis, on recalcule le débit réel à partir des arrondis. On crée ensuite le vecteur diff_bit qui est l’écart entre le nombre de bits réel  calculé et son arrondi.

 

Si débit<D, on rajoute un bit à la sous-porteuse dont le coefficient diff_bits est le plus grand. En effet, pour que le débit effectif s’approche du débit fixé, on doit augmenter le nombre de bits alloués au total. Or, l’indice du maximum du vecteur diff_bits correspond au canal auquel on a retiré le plus de bits en approximant le nombre de bits calculé à son arrondi. On corrige donc en rajoutant un bit à ce canal. 

Si débit>D, on retire un bit à la sous-porteuse dont le diff_bits est le plus petit. Cette fois-ci, nous voulons diminuer le nombre de bits alloués. On retire donc un bit au canal auquel on a ajouté le plus de bits lorsqu’on a approximé le nombre de bits alloués à son entier le plus proche.

 

On recalcule alors le débit atteint à partir du nouveau nombre de bits. On réitère cette étape jusqu'à ce que le débit calculé soit assez proche du débit fixé.

 

En pratique, il est très difficile d’obtenir au final un débit exactement égal au débit fixé. Ces débits étant de l’ordre du Mbps, on essaiera d’approcher le débit voulu à une centaine de bits/s près. De plus, comme nous voulons éviter d’avoir un vecteur d’allocation avec des composantes négatives ou supérieures à Kmax, avant de rajouter ou avant de retirer un bit à une sous-porteuse, on vérifie qu’on ne va pas enfreindre la limite inférieure de 0 bit ou la limite supérieure de 8 bits par sous-porteuse. Si c’est le cas, on va artificiellement modifier la composante diff_bits du canal sensible de provoquer un problème.

 

La figure ci-dessous  montre un exemple de la répartition des bits dans chaque canal en fonction du RSB des canaux.

 

 

 

Nous voyons bien que le nombre de bits envoyés dans un canal est proportionnel à la qualité de celui-ci. L’algorithme du « water pouring »  permet ainsi d’améliorer les performances de la ligne en optimisant le débit de chaque canal.

 

 

Accueil Technique DMT Prefixe cyclique Evaluation canaux Allocation dynamique des bits

 

 

Accueil | Technique DMT | Prefixe cyclique | Evaluation canaux | Allocation dynamique des bits

 

La dernière mise à jour de cette page date du 18/02/05