![]() |
|
|
|
|
|
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 :
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 ( On peut donc définir :
- le débit moyen
en upstream : 4312*25*6
- le débit moyen
en downstream : 4312*225*7
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
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
Ainsi, on a :
Posons
La probabilité d’erreur symbole
Etant donné que cette probabilité p est fixée à
Par ailleurs, la relation
Le nombre de bits
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
En notant
Notons
L’équation précédente s’écrit alors :
3. 3ème étape : calcul des puissances de chaque sous-porteuse
On calcule les puissances
Pour chaque puissance
4. 4ème étape : détermination du nombre de bits alloués à chaque sous-porteuse
On détermine les tailles
Puis on en déduit le nombre de bits
Nous pouvons vérifier mathématiquement que lorsque la
puissance du j-ème canal est nulle, aucun bit ne lui est alloué (si
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
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
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
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.
|
La dernière mise à jour de cette page date du 18/02/05