FR 2913161 A1 20080829 FR 0753532 A 20070227 DÉCODEUR À MAXIMUM DE VRAISEMBLANCE POUR SYSTÈME MULTI- SOURCE À MODULATION DE POSITION D'IMPULSION ET D'AMPLITUDE DESCRIPTION DOMAINE TECHNIQUE La présente invention concerne le domaine du décodage à maximum de vraisemblance, plus particulièrement pour un système multi-source utilisant une modulation hybride de position d'impulsion et d'amplitude. ÉTAT DE LA TECHNIQUE ANTÉRIEURE Les récepteurs utilisant un critère de maximum de vraisemblance, dénommés aussi récepteurs ML (Maximum Likelihood) sont bien connus dans le domaine des télécommunications pour être optimaux lorsque le canal de transmission est gaussien. On trouvera par exemple une description de ces récepteurs dans l'ouvrage de J.G. Proakis intitulé Digital communications , [dème édition, pages 242-247. Les récepteurs à maximum de vraisemblance ont été notamment envisagés dans le domaine des télécommunications mobiles. Afin d'éliminer l'interférence multi-accès ou MAI (Mufti Access Interference), on peut recourir à un récepteur ML capable de décoder simultanément les symboles émis par les différents utilisateurs sur le canal de transmission (récepteur ML multi-utilisateur). On peut montrer que l'estimation des symboles transmis par ces utilisateurs selon le critère du maximum de vraisemblance revient à rechercher parmi les points d'un réseau celui qui est le plus proche d'un point représentatif du signal reçu dans un espace de dimension MK où M est la dimensionnalité de la modulation utilisée par les K utilisateurs. Le réseau de points est généré par les constellations de modulation des différents utilisateurs. Cette méthode s'avère rapidement complexe pour K élevé aussi recourt-on classiquement à un décodage dit par sphère qui limite la recherche du plus proche voisin aux points du réseau appartenant à une boule de bruit centrée sur le point reçu. On trouvera une description du décodeur par sphère dans l'article d'E. Viterbo et al. intitulé A universal lattice code decoder for fading channels publié dans IEEE Transactions on Information Theory, vol. 45, pages 1639-1642, Juillet 1999. Le décodage par sphère a été appliqué à des systèmes utilisant des constellations de modulation de type PAM ou QAM. Plus récemment, le décodage par sphère a été proposé pour la réalisation de récepteurs de systèmes MIMO (Multiple Input Multiple Output). On entend par système MIMO un système de télécommunication dans lequel au moins un émetteur transmet des symboles d'information au moyen d'une pluralité d'antennes. Le récepteur peut posséder une seule antenne (on parle alors plus particulièrement de système MISO, acronyme de Multiple Input Single Output) ou une pluralité d'antennes, le terme MIMO étant choisi ici pour désigner indifféremment ces deux configurations. Dans le cas d'un système MIMO, le réseau de points est généré par les constellations de modulation utilisées pour transmettre les symboles par les différentes antennes. On trouvera un exemple de réalisation de décodage par sphère pour système MIMO dans l'article de M.O. Damen et al. intitulé On Maximum-Likelihood detection and the search for the closest lattice point publié dans IEEE Trans. on Information Theory, Vol. 49, N 10, Oct. 2003, pages 2389-2402. Dans ce décodeur par sphère, seules des modulations PAM et QAM sont envisagées. Dans la suite nous désignerons par le terme générique multi-source aussi bien une configuration multi-utilisateur qu'une configuration MIMO. On comprendra que dans le premier cas les sources représentent les flux de symboles des ou à destination des différents utilisateurs et, dans le second cas, les flux de symboles émis par les différentes antennes. Bien entendu ces deux cas peuvent être combinés lorsque les terminaux des utilisateurs sont de type multiantenne. Nous supposerons par ailleurs que les flux de symboles sont synchrones. Le récepteur ML à décodage par sphère sera décrit dans le cas de K utilisateurs, chaque utilisateur 25 kE {1,..,K} transmettant à l'aide de ik antennes à destination du récepteur, soit un nombre total de K P = Eik sources. Le signal reçu peut être exprimé sous k=1 la forme vectorielle : x=Ha+n (1) 30 où . x est un vecteur de variables de décision de dimension ' où ' est égal au produit du nombre d'antennes du récepteur avec le nombre de variables de décision observées par antenne de réception, par exemple le nombre de trajets résolus par antenne. a est un vecteur de taille PA!, obtenu par la concaténation de vecteurs aw,W4,..,e), chaque vecteur W0, pE {1,..,P} étant la représentation vectorielle du symbole d'information transmis par la pierre source et étant de dimension M égale à la dimensionnalité de la modulation utilisée ; H est la matrice de taille P'xPM représentant le canal de transmission, elle décrit notamment les interférences entre utilisateurs et entre trajets issus des différentes antennes ; n est un vecteur de dimension P' dont les composantes sont des échantillons de bruit blanc centré additif gaussien affectant le signal reçu. Le récepteur à maximum de vraisemblance estime le vecteur â minimisant l'écart quadratique x ùHat avec le vecteur reçu, soit : â=argmm x (2) aE CP où CP est la constellation produit des constellations 25 respectives des P sources. On peut montrer que l'expression (2) peut s'écrire de manière équivalente : â=argmmzûRa2 5 (3) aE cP avec z = QTx et où Q et R sont respectivement une matrice unitaire de taille P'xP et une matrice triangulaire supérieure de taille PxP obtenue par décomposition QR de la matrice H, c'est-à-dire RTR=HTH. Pour des constellations PAM ou QAM, il est toujours possible, au moyen d'une opération linéaire élémentaire f, dont nous ferons par la suite abstraction, de se ramener au cas où les points de la constellation produit sont de éléments de ZMP où Z est l'ensemble des entiers relatifs et M la dimensionnalité des constellations de modulation. Les vecteurs Ra peuvent alors être représentés comme les points d'un réseau A de matrice génératrice R. Le décodage par sphère consiste à faire une recherche de plus proche voisin au sein d'une boule (dans un espace de dimension MP) centrée sur le point représentatif du signal reçu z. La recherche est effectuée parmi les points de A compris au sein de cette boule. La manière dont les candidats sont successivement sélectionnés (ou énumérés) est critique pour les performances de l'algorithme de décodage. On connaît essentiellement deux techniques d'énumération, la première dite de Pohst, la seconde dite de Schnorr-Euchner. Nous décrirons tout d'abord un décodage par sphère utilisant une énumération de Pohst. On supposera pour les besoins d'illustration que la modulation est de type PAM, c'est-à-dire que l'espace considéré est de dimension P. Il s'applique également à une modulation QAM, la dimension de l'espace étant alors 2P. La recherche est effectuée, dimension par dimension, ou selon la terminologie usuelle, couche par couche, en sélectionnant dans chaque couche la coordonnée d'un point candidat de A. La contribution de la couche P à la distance quadratique (3) vaut simplement : (zp ûrp pap) De même la contribution de la couche Pû1 à cette distance quadratique s'écrit : (zp û rP-1,P-lap_ û rp_ ,pap (zi û riiai û Ei) (4) et, de manière générale, la contribution de la couche i s'exprime par : (5) (6) P avec Ei défini par Ei = Si l'on désigne par Ti, j=i+1 la contribution des couches successives i+1,...,P, celle-ci peut être obtenue par récurrence descendante: 5 T_1=T+ziùEiùriiai 2 (7) avec Tp =O. Avec les conventions précédentes la recherche dans la sphère de rayon quadratique d revient à déterminer 10 pour chacune des couches les valeurs ai de Z vérifiant . z ûE~ +T 20 où M' est une puissance de 2 et si la transformation linéaire précitée est (m')=2m'û1ûM' pour m'E {1,..,M'}, la recherche peut être réduite aux entiers impairs appartenant à l'intervalle [Ai,Bi] où : 25 Ai = max (9) ( r 1~ zi ûEi -Vd ûTi 1ûM', ri ,i i et z E +~dùT Bi = min M'ù1, ù (10) ri,i où [xi est le plus petit entier supérieur à x et Lx] est le plus grand entier inférieur à x. Cette réduction de l'intervalle de recherche correspond en fait à une intersection de l'intervalle tel que défini en (9), avec la projection de la constellation sur la dimension en question. Un intervalle de validité est ainsi défini pour chaque couche. Il donne l'excursion maximale admissible dans cette couche, compte tenu du choix déjà fait pour les valeurs ai dans les couches supérieures. La Fig. 1 représente le principe du décodeur par sphère dans le cas simple où P=2 et M'=4. La sphère est centrée sur le point z représenté par une croix. Les points de la constellation produit C2 sont représentés par des cercles pleins. L'intervalle de validité [A2,B2] de la couche 2 n'est autre que l'intersection de la projection de la sphère avec celle de la constellation, ici [A2,B2]= [-3,3] . L'intervalle de validité [A1,B1] est ensuite déterminé par le choix d'une valeur a2 dans [A2,B2]. On voit ainsi dans l'exemple illustré que pour a2=1, l'intervalle de validité est [A1, B1 ] = [- 3,1] . La Fig. 2 représente un organigramme de la méthode de décodage par sphère utilisant une énumération de Pohst. A l'étape 210, on procède à l'initialisation de l'indice de couche, des variables intermédiaires et du rayon de recherche de la sphère, soit : i=P ; Tp =0 ; Ep =0 ; d =D où D est le rayon quadratique initial de la sphère de recherche. D est choisi en fonction d'une estimation de la puissance de bruit. A l'étape 220, on teste si Ti >d, c'est-à-dire si l'intervalle se réduit à l'ensemble vide. Si c'est le cas, on teste en 223 si i=P et dans l'affirmative l'algorithme se termine en 225. Dans la négative, on incrémente i de 1 et l'on passe à l'étape 230. Si T conséquence d = d et on met à jour le meilleur candidat â=a . Dans tous les cas on retourne ensuite à l'étape 240. L'algorithme exposé ci-dessus effectue une recherche en balayant les intervalles de validité couche par couche à partir de leurs bornes inférieures vers leurs bornes supérieures, le balayage le plus rapide étant effectuée dans la couche la plus haute (i= P) et le plus lent dans la couche la plus basse (i =1) . A chaque sélection d'une nouvelle coordonnée de candidat dans une couche, les bornes des intervalles de validité des couches supérieures sont recalculées. Par ailleurs, dès que l'on améliore la distance au point reçu, on met à jour le rayon de la sphère, ce qui permet d'accélérer la recherche. Enfin, le vecteur de sortie de l'algorithme est le point de la constellation produit le plus proche du point reçu z. Le décodage Pohst est assez des intervalles inférieures. Le décodage Schnorr-Euchnerpar sphère utilisant l'énumération de lent du fait du balayage systématique de validité à partir de leurs bornes par sphère utilisant l'énumération de est sensiblement plus rapide que le précédent. Il de faire une constellation part du principe qu'il est plus efficace recherche en partant d'un point ê de la produit correspondant à une première estimation du signal transmis. Plus précisément, ce point est obtenu au moyen d'une égalisation de type ZF- DFE: on soustrait l'interférence due à une couche (un 30 utilisateur) aux couches (inférieures) suivantes, la décision à chaque couche étant prise par le décodeur par sphère. Soit, en commençant par la couche P : êi = round(ei) avec ep =zplrPp P e i = (zi û i i eti = ~,JêJ pour i = Pû1,...,1 (11) J=i+1 où round(y) représente l'entier relatif impair (avec la forme précédente de transformation linéaire L) le plus proche de y. Chaque couche i contribue à la distance quadratique du point a du réseau au point z reçu pour di = ril(ai û 2 La recherche du plus proche voisin s'effectue dans chaque couche i en considérant successivement les coordonnées ê+26, ê+46, etc. où bi =sgn(ei ùêi) . On comprendra que l'on part ainsi de ei et que l'on progresse en zigzag de part et d'autre de cette estimation tout en s'assurant de rester dans l'intervalle de validité. La Fig. 3 représente un organigramme de la méthode de décodage par sphère utilisant une énumération de Schnorr-Euchner. A l'étape 310, on initialise l'indice de couche, les variables intermédiaires et le rayon de recherche de la sphère, soit : i=P; p=0 ;TP=0 ; d=D où D est le rayon quadratique initial de la sphère de recherche. A l'étape 320, on procède à l'égalisation ZF-DFE : êi_ round(ei) avec ei_ (ziù ,)/Il, et l'on détermine la valeur de coordonnée initiale al=êl ainsi que la direction de recherche initiale : 8i=sgn(eiùêi). A l'étape 330, on teste si le point est dans la sphère, c'est-à-dire si T +rZ(al ùel)2 en 340 qu'il est bien dans la constellation c'est-à-dire que al A défaut, on met à jour en 347 les variables p intermédiaires ~_~ = Ti +rii (ai ù e~) et on ~=Z décrémente i de 1. On retourne ensuite à l'étape 320. On teste en 350 si i= P. Si c'est le cas, l'algorithme se termine en 355, sinon, on passe à l'étape 370 pour incrémenter i de 1. A l'étape 345, si i=1, on a atteint la couche la plus basse et donc un point candidat a été trouvé. On ajoute la contribution de cette couche pour obtenir la distance du candidat sélectionné au point z, soit d=Ti+1-i1(aiùei)2. On compare en 360 cette distance au rayon quadratique courant d. Si elle est inférieure à d, on met à jour la distance d = d et le plus proche voisin â=a en 365. Dans tous les cas on passe par 370 pour incrémenter i de 1. Enfin, à l'étape 380, on met à jour al par al =al+BZ avec 8z = -8z -2sgn(8Z) et l'on retourne à l'étape 330. On a représenté schématiquement, en Fig. 4A et 4B, le balayage des points selon l'énumération de Pohst et celle de Schnorr-Euchner, respectivement. On a supposé que la constellation était 4-PAM et que le nombre de sources P était de 3. Les différentes lignes correspondent aux projections selon les P=3 dimensions. On a représenté par des croix les composantes de z et par des cercles les points des constellations de modulation PAM. Dans les deux cas, les branches successivement parcourues par l'algorithme ont été indiquées par (1), (2) etc. Alors que le décodage par sphère a fait l'objet de nombreuses études pour les modulations PAM et QAM, il n'a été envisagé que récemment pour les modulations PPM (Pulse Position Modulation). Un décodage par sphère pour ce type de modulation a été proposé pour un système MIMO UWB de type impulsionnel dans l'article de C. Abou-Rjeily et al. intitulé MIMO UWB communications using modified Hermite pulses , publié dans Proc. of the 17th Annual IEEE Internal Symposium on Personal, Indoor and Mobile Communications (PIRMC'06). On rappelle qu'un système UWB impulsionnel est un système utilisant la transmission en bande de base de trames d'impulsions très brèves (de l'ordre de quelques picosecondes). Les symboles transmis appartiennent à un alphabet de modulation M -PPM, ou de manière plus générale à une modulation hybride AI-PPMAl'-PAM. Le cardinal de l'alphabet de modulation est MM'. Pour chacune des M positions temporelles, M' amplitudes de modulation sont possibles. Un symbole a de cet alphabet peut être représenté par une séquence am, m=O,..,Mû1 avec am =ô(mû )a où est une position de la modulation AI-PPM, î une amplitude de la modulation PAM et 8(.) le symbole de Dirac. Chaque symbole PPM ou PPM-PAM module les positions temporelles et, le cas échéant, les positions temporelles et les amplitudes des impulsions élémentaires d'une trame. On peut considérer un symbole AI-PPM (resp. At-PPM-Al'-PAM) comme un vecteur de dimension Al, dont une seule des composantes est égale à 1 (resp. î) et les autres sont nulles. A la différence d'une modulation QAM, les composantes d'un symbole PPM ou PPM-PAM ne sont donc pas indépendantes. Si l'on suppose que P sources transmettent des symboles PPM, l'espace des signaux à considérer est de dimension MP. Dans cet espace, chaque source est représentée par une couche, elle-même composée de M positions temporelles (ou sous-couches) d'un symbole PPM ou PPM-PAM. Le décodage par sphère décrit dans l'article précité propose de traiter de manière conjointe M couches consécutives en raison de leur interdépendance. La relation (8) est alors remplacée par une contrainte liant M sous-couches successives, soit pour la couche d'ordre p .30 PM z(p) ù r a m f (p,m),j j j=f(p,m) d-T M t m=1 2 (12) où . z(P) est un sous vecteur de z, représentatif du signal reçu, autrement dit le vecteur z est formé par concaténation de P vecteurs z(1) , .. , z(P) correspondant chacun à une source, z('') étant la m1ème composante du symbole PPM ou PPM-PAM émis par cette source ; la fonction f est donnée par f(p,m)=(p-1)M+m ; Tp est la somme des contributions à la distance quadratique des couches p+1,...,P . Etant donné que, pour chaque source p, la transmission n'a lieu que pour une seule position c(p)E{1,..,M}, l'expression (12) peut être réécrite sous la forme : M 2 z mp) ùrf(P,m),f(p,c(p))af(P,c(P)) ùE'P,m Au sein de l'étape (b) l'étape (b2) est avantageusement suivie d'une étape (b3) dans laquelle on choisit comme nouveau champion de la liste relative à la position sélectionnée le symbole PAM suivant de cette liste. Si pour une couche donnée et un symbole PPM-PAM sélectionné dans cette couche, ladite somme des contributions excède le rayon quadratique de la sphère, on passe à la couche supérieure et on sélectionne un nouveau symbole PPM-PAM dans cette couche selon l'étape (b). Si tous les symboles de ladite couche supérieure ont déjà fait l'objet d'une sélection, on passe à la couche encore supérieure pour y sélectionner un nouveau symbole PPM-PAM selon l'étape (b). Si l'on a atteint la couche la plus haute et que, soit l'on a sélectionné tous les symboles PPM-PAM de ladite couche, soit la contribution de ladite couche calculée pour le symbole sélectionné excède le rayon quadratique de la sphère, le procédé de décodage se termine en fournissant ledit point le plus proche. Selon un exemple de réalisation, les symboles PPMPAM des sources de rangs respectifs 1,..,P, estimés au sens du maximum de vraisemblance, sont obtenus comme sous-vecteurs à M composantes du vecteur à MP composantes représentant ledit point le plus proche. L'invention est également définie par un récepteur à maximum de vraisemblance destiné à recevoir des symboles PPM-PAM d'une pluralité P de sources, comprenant un filtre adapté au canal de transmission entre les sources et le récepteur et, le cas échéant, au codage spatio-temporel utilisé à l'émission, le récepteur comprenant en outre un décodeur par sphère comprenant des moyens adaptés à exécuter les étapes du procédé de décodage par sphère selon l'une des revendications précédentes, le décodeur par sphère recevant en entrée la sortie dudit filtre adapté. BRÈVE DESCRIPTION DES DESSINS D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture d'un mode de réalisation préférentiel de l'invention fait en référence aux figures jointes parmi lesquelles : La Fig. 1 illustre le principe d'un décodage par sphère pour un système à deux sources PAM ; La Fig. 2 représente l'organigramme d'un premier algorithme de décodage par sphère connu de l'état de la technique ; La Fig. 3 représente l'organigramme d'un second algorithme de décodage par sphère connu de l'état de la technique ; Les Figs. 4A et 4B illustrent le balayage de points utilisés respectivement par le premier et le second algorithmes de décodage par sphère ; La Fig. 5 représente l'énumération des symboles PPM-PAM au sein d'une couche pour un mode de réalisation de l'invention ; La Fig. 6 représente l'organigramme d'un algorithme de décodage par sphère selon un mode de réalisation de l'invention ; La Fig. 7 représente un exemple de progression à travers la constellation produit de l'algorithme de décodage par sphère selon l'invention. EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS Nous considérerons ci-après un système comprenant P sources de symboles PPM-PAM. L'alphabet de modulation comprend M positions temporelles et, pour chacune de ces positions temporelles M' valeurs d'amplitude. On rappelle qu'un élément quelconque de cet alphabet peut s'écrire sous la forme d'une séquence am =8(mû )î , =1,..,M où î est un symbole de constellation M'-PAM Comme indiqué plus haut les sources de symboles peuvent être des flux de symboles émis par les antennes d'un terminal MIMO, flux de symboles en provenance ou à destination d'une pluralité d'utilisateurs, voire une combinaison de ces deux situations si chaque terminal utilisateur est équipé d'une pluralité d'antennes. Dans le cas général, K P = Eik où ik est le nombre d'antennes du terminal de k=1 l'utilisateur k et K le nombre d'utilisateurs. On supposera dans la suite que les flux de symboles sont émis de manière synchrone. Ces flux de symboles modulent avantageusement mais non nécessairement des trames de signaux UWB impulsionnels. Le récepteur est adapté à calculer P'M variables de décision avec P'> P. Par exemple, chaque antenne de réception est équipé d'un récepteur Rake adapté à séparer L trajets, et pour chaque trajet les M positions temporelles de la modulation PPM. Les variables de décision sont alors les P'M sorties de ces récepteurs Rake avec P'= L.Pr où Pr est le nombre d'antennes de réception. Si un codage spatio-temporel est utilisé à l'émission, un filtrage adapté à ce code est utilisé en réception pour séparer les différents utilisateurs et dans ce cas P'=L.Pr.P. Dans tous les cas, le signal reçu par le récepteur peut être représenté par un vecteur x de dimension P'M correspondant aux P'M valeurs des variables de décision. Le vecteur x peut s'exprimer, en adoptant les mêmes notations que pour l'équation (1), sous la forme x = Ha+n , à la différence près que le vecteur n est ici de dimension PMI, le vecteur a de dimension PM et la matrice H de taille P'MxPM . Le vecteur a peut être considéré comme la concaténation de P sous-vecteurs a(l),a(2),...,a(P) chaque sous-vecteur étant relatif à une source. La matrice H représente le canal de transmission et prend en compte les interférences multi-utilisateur et multi-trajet. Si R est la matrice de taille PMxPM obtenue par transformation QR de la matrice H, z=QTx est un résuméexhaustif du signal reçu appartenant à l'espace des signaux transmis. Le décodage par sphère consiste à rechercher le point â, appartenant à l'intersection de la constellation produit et d'une boule de bruit centrée sur z et pour lequel la distance à z est minimale. On appelle constellation produit la constellation générée par les constellations hybrides PPM-PAM des différentes sources. Le récepteur détermine parmi les (MM')" points de la constellation produit, c'est-à-dire parmi les (MM')" combinaisons de symboles PPM-PAM possibles émis par les P sources, celle qui satisfait au critère de maximum de vraisemblance. On notera, comme précédemment, pour une matrice il quelconque de taille PMxPM , fl(l']) la sous-matrice de 30 taille M xM de R constituée des éléments coi m, avec à-dire S2,(i'f), ûco m,m 23 m=(iù1)M+1,..,iM et m'=(jùl)M+l,..,jM, avec 1 eP_1 = V(z û Rêp) , (17) ou encore, puisque R et V sont triangulaires supérieures . e(P 1) = V(P-1,P-1) ((') ù R(P-1,p)êp(p + V(P-1,P) ((P) _ R(P,P)êPP) (18) et l'estimation ZF-DFE n'est autre 20 que â,_1 =ep_1 =apos~P_l~Ipos(p_l) où pos(Pû1) et apos(p_i) sont obtenues par le processus de compétition entre positions PPM précité. On procède ainsi de couche en couche, en éliminant à chaque couche p, l'interférence due aux Pû p couches 25 supérieures. Lorsque les P couches ont été soumises à l'égalisation ZF-DFE, on dispose d'un vecteur â défini par la concaténation des â(p) pour p=1,..,P. 10 15 Ce vecteur peut être représenté par un point de la constellation produit PPM-PAM. On part de ce point pour rechercher le plus proche voisin de z. La recherche se poursuit ensuite au sein de ladite constellation, selon une méthode d'énumération exposée ci-après. On a vu plus haut que, pour chaque couche p, on déterminait le symbole â(p) le plus proche de e. La contribution de cette couche à la distance quadratique entre z et â peut s'écrire : d = R(P,P) (âP ù e(P) y 2 p P étant donné que â(p) =apos(pMmûpos(p)) cette contribution s'exprime comme : d = 11R(P,P) \a pos(p)I.,Pos(P) ù ep 2 = R(P'P) ù E(P) 2 P AI pos(p) .,pos(p) avec E(P) = R(P,P)e(P) P On notera qu'en l'absence d'interférence entre les 20 différentes positions de modulation, c'est-à-dire si la réponse impulsionnelle du canal de transmission est plus courte que l'écart temporel entre ces positions, la matrice R(p'p) est diagonale et que la distance quadratique dp se confond avec l'écart quadratique 25 entre le symbole PPM-PAM testé â(p) et le signal égalisé par source. L'expression (20) peut se développer sous la forme suivante : 15 (19) (20) 10 dp = (E(P) r E(P) - 2a pos(p) (R(' (P) )TE(0 + (apos(p) )2 (R(,P) )T R('P) (21) On considère maintenant une position PPM pos(p) donnée et que l'on recherche le symbole PAM en cette position qui minimise dp. Etant donné que le premier terme (E(P)fE(P) ne dépend pas de apos(p) , le minimum est obtenu, en dérivant (21), pour : apos(P) (R(Pos(P) )T R(,)(P) où l'on a noté ici apos(p) une variable réelle pour les (R(,P) TE(P) (22) besoins de la dérivation. 15 minimale pour : La distance dp est donc apos(p) =round(âGpos(p)) (23) où round(x) est l'entier impair le plus proche de x . 20 Pour une position pos(p) donnée, les symboles PAM en cette position sont testés à partir de la valeur apos(p) puis successivement de part et d'autre de cette valeur en s'écartant de plus en plus du minimum. Plus précisément les valeurs suivantes de la position pos(p) 25 sont testées selon la séquence : îpos(p) ' îpos(p) + 2Apos(p) ' îpos(p) ù 2Apos(p) ' îpos(p) + 4Apos(p) ' îpos(p) -4Apos(p) (24) avec Opos(p) = sign(âpos(p) ùapos(p)) tant que l'on reste dans les bornes de la constellation PAM [ùM'+1,M'-1] . Du fait de la variation parabolique de dp, les contributions des symboles PAM successifs de la liste (24) sont croissantes. Pour sélectionner les symboles PPM-PAM à tester au sein d'une couche, on procède alors comme suit. Pour chaque position PPM me {1,...,M}, on détermine une liste Lm donnant la liste des symboles PAM de cette position, notés am et rangés par contributions dp croissantes, comme en (24). A chaque liste Lm correspond une valeur d'incrément Om et un pointeur nm pointant sur le symbole ocm en cours de test. A chaque fois que l'on arrive à la couche p pour procéder à une nouvelle égalisation ZF-DFE e , c'est-à- dire en y arrivant par la couche p +l, on détermine les listes Lm pour mE {1,...,M} et l'on initialise les pointeurs nm sur les premiers éléments respectifs de ces listes. On détermine la première position PPM à tester de la couche p par une compétition entre listes. La position PPM gagnante est donnée par : pos(p)=argmin(am) (25) Le premier symbole PPM-PAM testé de la couche p est par conséquent défini par : incrémente pointe désormais vers le second élément de la P P p Lpos(p) S O 1 t a pos(p) + 20 pos(p) Au passage suivant dans la couche p, sans égalisation ZF-DFE, c'est-à-dire en arrivant comme on le verra par la couche p-1, on procède à nouveau à une compétition entre listes, les candidats de chaque liste étant désignés par les pointeurs n,':,. Si l'on note PAM(7tm) les M candidats, la position PPM gagnante est donnée par : pos(p) = argmin(PAM (7tim)) (26) et le symbole PPM-PAM correspondant à sélectionner est défini par les composantes aos(p)c~(mùpos(p)). On procède ainsi à chaque passage dans la couche 20 p. Si pour une position PPM m donnée tous les symboles PAM de la liste Lm ont été testés, on lève un drapeau pour la position en question de manière à ce qu'ils ne soient plus pris en compte. Plus précisément, dès lors que pour le 1eme passage en position m, on a : 25 apos(p)+21+i(ù1+i0pos(p) M'ù1 et que pour le passage suivant en cette position on a : min (am )3 m - arg min (am r . On m m / ensuite le pointeur 7tpos(p) de sorte qu'il liste apos(p) +2i+2(-1)`0pos(p) M'-1 , c'est-à-dire, dès lors que l'on a franchit les bornes supérieure et inférieure de la constellation PAM, un drapeau flagm est levé soit flagm =1 . Si on constate que m fl flagm=l, c'est-à-dire que tous les symboles PPM-PAM m=1 de la couche p ont été testés, on passe à la couche supérieure p+l, pour rechercher un nouveau symbole PPM-PAM dans cette dernière. On a illustré en Fig. 5 la manière dont les symboles PPM-PAM étaient énumérés au sein d'une couche p. On a supposé ici que la constellation était 3-PPM-4-PAM et on a représenté les positions PPM par des barres verticales. Les points de la constellation sont indiqués par des disques noirs, les points hors constellation mais appartenant néanmoins au réseau de points sont représentés par des disques gris. Les composantes de epp) sur les différentes positions PPM, c'est-à-dire du signal reçu de la source p après égalisation ZF-DFE, sont représentés par des croix noires. Lors d'un passage (I) dans la couche p, à partir de la couche p+l, après égalisation, les positions initiales des pointeurs sont déterminées pour chacune des positions PPM. Après compétition entre les trois listes, la position 1 est retenue et le symbole sélectionné est (l,+1). C'est ce symbole âp qui sera utilisé pour l'égalisation des couches inférieures. Le pointeur de la liste Lp est déplacé vers le symbole suivant de la liste, soit 0,û1). Lors d'un second passage (II), à partir de la couche p-1, la compétition entre listes donne la position 3 gagnante. Le symbole sélectionné est (3,û1). Comme précédemment, ce symbole est utilisé pour l'égalisation des couches inférieures. Le pointeur de la liste Lp est déplacé vers le symbole suivant de la liste, soit (3,+1). Lors d'un troisième passage (III), à partir de la couche p-1, la compétition entre listes donne la position 1 gagnante. Le pointeur de la liste Lp est déplacé vers le symbole suivant de la liste, soit (1,+3). Lors d'un quatrième passage (IV), à partir de la couche p-1, la compétition entre listes donne cette- fois la position 2 gagnante. Le symbole sélectionné est (2,+3) Le pointeur de la liste Lp est déplacé vers le symbole suivant de la liste, soit (2,+1). Le décodage par sphère commence par la dernière couche (couche P). On ordonne les listes Ir., in =1,..M de symboles PPM-PAM de cette couche comme on l'a vu plus haut. On sélectionne d'abord celui qui apporterait la plus faible contribution dp à la distance quadratique au signal reçu grâce à la compétition entre listes. On élimine l'interférence générée par le symbole âP sur toutes les couches inférieures Pû1,Pû2,...,l. On passe ensuite à la couche immédiatement inférieure et on recommence ainsi pour chaque couche p>l. On progresse ainsi de couche en couche, les symboles sélectionnés dans les différentes couches formant une branche. Si la somme des contributions des couches supérieures et de la couche courante est supérieure au rayon courant de la sphère, on abandonne la branche en question et on passe à la couche supérieure à la couche courante pour sélectionner un nouveau symbole PPM-PAM. A l'inverse, on poursuit la branche jusqu'à ce que l'on atteigne la couche de rang 1. La distance quadratique entre le point â de la constellation produit au point reçu est obtenue comme la somme des contributions des différentes couches, p soit 61 =Edk . Si la distance est plus faible que le k=1 rayon courant de la sphère, le rayon ainsi que le meilleur point courant âopt sont mis à jour. Plus précisément, le nouveau rayon de la sphère prend la valeur de ladite distance et aopt =a . On retourne ensuite à la couche immédiatement supérieure (en l'occurrence la couche 2) pour sélectionner le second symbole PPM-PAM de cette couche grâce à la compétition entre listes. On élimine des couches inférieures (en l'occurrence de la couche de rang 1) l'interférence générée par ce symbole et l'on procède comme précédemment. De manière générale, supposons que l'on arrive à une couche p +l de la couche inférieure p. Si les listes L+l sont épuisées, c'est-à-dire si l'on a déjà précédemment testé les MM' symboles de cette couche, p ou bien si la somme des contributions 6p+1= Edk est k=p+1 plus grande que le rayon quadratique courant, on passe à la couche supérieure suivante. On progresse ainsi, par remontées successives vers des couches de rangs de plus en plus élevés et avec des intervalles de validité de plus en plus étroits (étant donné que le rayon de la sphère est mis à jour), jusqu'à ce que l'on ait épuisé la liste de la couche racine (couche P), auquel cas l'algorithme s'arrête. En sortie de décodage, le meilleur point en sortie âopt est celui qui réalise le minimum de distance à z. Le point âopt fournit l'estimation ML des symboles PPM-PAM transmis par les P sources, soit âôpt , âopt , .. , âopt . La Fig. 6 représente de manière schématique l'organigramme du procédé de décodage par sphère d'une pluralité de sources PPM selon l'invention. A l'étape 610, on initialise l'indice de couche par celui de la plus haute, p = P. On initialise les variables intermédiaires, notamment le rayon quadratique d de la sphère, d = D et P variables représentant respectivement la somme des contributions à la distance quadratique jusqu'aux P couches p respectives 6 p = Ldp , soit 6p =0 pour p =1,..,P . k=p A l'étape 615, on effectue l'égalisation ZF-DFE de la couche courante p compte tenu des symboles a ^(P) â(P-1), . . , a(p+l) sélectionnés dans les couches supérieures précédentes. A l'étape 620, on détermine les listes ordonnées Lm et les premiers éléments am de chacune de ces listes. On initialise les pointeurs nm pour qu'ils pointent vers ces premiers éléments. On détermine pos(p) et ap,,(p) grâce à la compétition entre listes puis l'on calcule la contribution dp grâce à (21). On abaisse également les drapeaux de dépassement des intervalles de validité .Îlagm=0,in=1,..,M. A l'étape 625, on met à jour 6p, la somme des contributions des couches p,..,P à la distance euclidienne à z, soit 6p =6p+1 +dp , compte tenu des symboles PPM-PAM sélectionnés dans ces couches. On teste ensuite si la somme de ces contributions excède le rayon quadratique courant d de la sphère. Si c'est le cas, il est inutile de conserver la branche courante â(P),â(P-1),...,â(t) puisque elle ne pourra, quels que soient les symboles que l'on sélectionnera dans les couches inférieures suivantes, conduire au plus proche voisin. On passe alors au test 635. Par contre si 6p est inférieure au dit rayon quadratique on passe au test 640. En 635, on teste si p = P. Si c'est le cas l'algorithme s'arrête en 637 et le plus proche voisin de z appartenant au réseau est âopt Si p ≠P, on incrémente p en 655 et on teste en 660 si on l'on a épuisé tous les symboles PPM-PAM de la m couche en question, c'est-à-dire si fl flagm=1. m=1 Dans l'affirmative, on retourne au test 635. Dans la négative, en 665, on procède à la compétition entre listes et on sélectionne le nouveau symbole PPM-PAM de la couche. On actualise les pointeurs 1t et les drapeaux flagm, pour m =1,..,M . On met également à jour la valeur de dp correspondant au nouveau symbole sélectionné et on retourne à l'étape 625. En pratique, si l'on a préalablement calculé et stocké les valeurs dp pour les différents symboles PPM-PAM en 620, il n'est pas nécessaire de recalculer dp. Si l'on décide de conserver la branche courante â(P),â(P1),...,e) en 630, on teste en 640 si cette branche a atteint la couche la plus basse Q,=1), auquel cas on dispose d'un point du réseau améliorant la distance courante à z et l'on passe à l'étape 650. Si, en revanche ce n'est pas le cas (p #1), on passe à la couche inférieure suivante en 645, puis on retourne à l'étape d'égalisation ZF-DFE. A l'étape 650, on met à jour le rayon de la sphère, soit d =G1 et le meilleur candidat âopt =â , puis on poursuit la recherche en incrémentant p à l'étape 655. Le meilleur candidat donne une estimation ML conjointe âopt , âopt , .. âopt des symboles PPM-PAM émis par les P sources. On a illustré en Fig. 7 la progression du décodage par sphère au sein de la constellation produit. L'espace des symboles transmis est divisé en P25 couches, chacune comportant M positions à Al' niveaux d'amplitude. On a représenté en ordonnées pour chacune des positions PPM de chaque couche p les M composantes de e(p), obtenues comme on l'a vu par égalisation ZF-DFE. La branche notée (1) est la première branche testée. Dans le cas présent, la branche progresse jusqu'à la couche la plus basse et améliore la distance quadratique à z. Le rayon quadratique d de la sphère est alors mis à jour. On passe à la couche 2 et le test d'une nouvelle branche (2). Etant donné que l'on a sélectionné un nouveau candidat dans la couche (2), on procède préalablement à une nouvelle égalisation de la couche 1. On a représenté par (e) une branche en cours de test. On remarque que lorsque cette branche atteint la couche p, la somme 6p des contributions des couches supérieures et de la couche courante P,Pû1,..,p, excède le rayon quadratique courant d de la sphère. La recherche se poursuit en passant à la couche supérieure p +l et en sélectionnant dans cette couche le symbole PPM-PAM (cf. étape 665 de la Fig. 6). On actualise la somme des contributions, 6p+1. Si cette somme est inférieure à d on poursuit avec la nouvelle branche (+1), sinon on remonte encore d'une couche. Lorsque l'on atteint la couche la plus haute (cf. étape 635 de la Fig. 6) et que, soit l'on a épuisé les M symboles de les listes Lm ( fl flagm =1) , soit la m=1 contribution de la couche P excède d, l'algorithme de décodage se termine en fournissant âopt• On a donné en annexe le pseudo-code de la méthode de décodage par sphère selon une réalisation possible de l'invention. Les notations suivantes ont été adoptées . OM est le vecteur nul de taille M ; 1M est un vecteur de taille M dont toutes les composantes sont égales à 1 ; flag et flagl sont des matrices de tailles MP . Elles indiquent pour chacune des couches et pour chaque position PPM dans cette couche les états de dépassement des bornes de la constellation PAM située en cette position ; p est un vecteur de taille M ; e et E sont des matrices de taille MP x P, les colonnes de e donnent le résultat de l'égalisation ZFDFE ; A matrice de taille M x P dont les colonnes sont les M composantes des symboles PPM-PAM sélectionnés pour les différentes couches ; diag(SZ) est la matrice diagonale composée des éléments diagonaux de la matrice il ; Diag(SZ) est un vecteur dont les composantes sont les éléments diagonaux de la matrice il ; Round(x) est l'entier le plus proche de x ; Co est un nombre positif plus grand que la distance initiale. Il pondère dans la fonction de coût les positions PPM dont tous les symboles PAM ont été testés (franchissement des bornes inférieure et supérieure de la constellation PAM), de manière à les exclure de la sélection. La méthode de décodage par sphère exposée ci-dessus est destinée à être implémentée grâce à des moyens logiciels ou matériels dans un récepteur ML opérant dans un système multi-source, par exemple un système MIMO et/ou un système multi-utilisateur. Avantageusement, les symboles PPM d'une source servent à moduler un signal impulsionnel du type TH-UWB (Time Hopped UWB), DS-UWB (Direct Spread UWB) ou TH-DS-UWB. Les signaux ainsi modulés sont transmis par exemple grâce à des antennes UWB conventionnelles ou des diodes laser. Annexe Décodage par sphère (input :z,R,P,M,M',D; output: âopt) Step 1 (Initialisation): Set k = P +1 ; dist(k) = 0 ; V = R1; p = 0M ; bestdist = D 1 0 Co nombre positif tel que Co > D Step 2 : newdist = dist(k)+ pTp; if ( newdist 3.2 for i = 1,..,k -1, = e.,k ù V(i,k)p endfor endif. 2 0 3.3 k = k -1, dist(k) = newdist 3.4 E(k) = R(k,k)e(k) 3.5 [pos(k),apos(k),a.,k,a.,k,d.,kI =list_compete(E0k),R(k,k),M') 3.6 A.,k = a pos(k)I.,pos(k) 3.7 step.,k = OM , steppos(k),k = 2sign(âstep(k),k ùastep(k),k) 25 3.8 flag,k = OM flag 1,k = OM 3.9 if îpos(k),k + step pos(k),k M'ù1 , 3.10 step pos(k),k = -2sign(step pos(k),k) , flaglpos(k),k = 0 endif 3.11 p = E(k) -06 pos(k)R. po (k), go to Step 2. 15 30 Step 4 : 4.1 if newdist 4.2 for, i =1,...,P, âôpt = A.,i, endfor 4.3 else if k = P, terminate else k = k + 1 endif. 4.4 if ~M 1 flagm k = 1 go to Step 4 endif. 4.5 ! génération du nouveau symbole PPM-PAM à tester T dstep(k),k =ù2 R.n'os(kl E(äk)(apos(k),k +Apos(k),k 4.6 (k) (k'k) 1 + [(R(k))TR(k)1(îpos(k),k + Apos(k),k + Co.Îlagpos(k),k 4.7 pos(k) = argmin (dm k) me {1,..,M} 1 0 4.8 îpos(k),k = a pos(k),k + step pos(k),k 4.9 if steppos(k),k = 0 , steppos(k),k = 2sign(âstep(k),k ùastep(k),k) 4.10 else step pos(k),k= (ù1)J1aglp S(k)>k step pos(k),k ù 2.Îlaglpos(k),ksign(step pos(k),k endif 15 4.11 if î pos(k),k + Step pos(k),k M'ù1 , 4.12 if flagl pos(k),k ≠ 0 , flagl pos(k) k = 0 , step pos(k),k = -2sign (step pos(k),k ) 4.13 else flagpos(k),k =1 endif 2 0 4.14 if îpos(k),k + Step pos(k),k M'ù1 , 4.15 flagpos(k),k =1 endif endif 4.16 îpos(k) = î pos(k),k , A.,k = î pos(k)l.,pos(k) 4.17 p = E(k) ùî pos(k)R. pos(k), go to Step 2 Subroutine de compétition de liste : List _ compete(input : E, R, M'; output : pos, amp, a, â, d) 5 Step 1 :El = RTE , El = diag(El) Step 2 : E2 = Diag(RTR), E2 = diag(E2) Step 3 : â = Diag Ei(E2 1' Step 4 : for in =1,..,M îm = 2Round 2 Step 5 : am = max(1-M',am) am = min(M'-1,am) endfor 10 Step 6 : d = -2Diag(Eldiag(a))+ Diag(E2(diag(a))2 ) Step 7 : pos = arg min (dm) ; amp = a pos m (âm+M'-1 - M'+l REVENDICATIONS 1. Procédé de décodage par sphère pour récepteur à maximum de vraisemblance destiné à recevoir des symboles PPM-PAM d'une pluralité P de sources, chaque source émettant un flux de symboles PPM-PAM à M positions et à Al' amplitudes de modulation, P symboles PPM-PAM émis simultanément par les P sources étant représentés par un point (a) de la constellation de modulation produit dans un espace des signaux transmis de dimension MP décomposé en P couches, chaque couche représentant les M positions de modulation possibles et en chacune de ces positions les M' amplitudes possibles d'un symbole PPM-PAM émis par cette source, le signal reçu (x) par ledit récepteur étant transformé en un point représentatif (z) de ce signal, dit point reçu, dans l'espace des signaux transmis, ledit procédé déterminant le point de la constellation produit le plus proche (âopt) du point reçu à l'intérieur d'une sphère de rayon quadratique donné, caractérisé en ce que, pour chaque couche de rang p . (a) on effectue une égalisation ZF-DFE du signal reçu dans ladite couche compte tenu des symboles PPMPAM estimés dans les P û p couches précédentes, dites couches supérieures à la couche p; (b) on sélectionne un symbole PPM-PAM de cette couche : (b1) en classant, pour chaque position PPM de ladite couche, la liste (Lm) des symboles PAM en cette position, en fonction des contributionsqu'ils apporteraient à la distance quadratique au point reçu et en retenant pour chaque liste le symbole PAM réalisant la plus faible contribution, dit champion de liste; (b2) en sélectionnant la position PPM (pos(p)) réalisant la plus faible contribution (dp) et en sélectionnant comme symbole PPM-PAM (îpos(p)â(mûpos(p))) le champion de la liste en la position ainsi déterminée ; (c) on ajoute cette contribution à celles obtenues pour les couches précédentes pour obtenir une somme de contributions (6p); les étapes (a),(b),(c) étant répétées jusqu'à ce que l'on atteigne la couche la plus basse ; et l'on met à jour le rayon quadratique de la sphère et ledit point le plus proche si ladite somme de contributions est inférieure au rayon quadratique de la sphère. 2. Procédé de décodage par sphère selon la revendication 1, caractérisé en ce qu'au sein de l'étape (b) l'étape (b2) est suivie d'une étape (b3) dans laquelle on choisit comme nouveau champion de la liste relative à la position sélectionnée le symbole PAM suivant de cette liste. 3. Procédé de décodage par sphère selon la revendication 2, caractérisé en ce que, si pour une couche donnée et un symbole PPM-PAM sélectionné dans cette couche, ladite somme des contributions excède lerayon quadratique de la sphère, on passe à la couche supérieure et on sélectionne un nouveau symbole PPM-PAM dans cette couche selon l'étape (b). 4. Procédé de décodage par sphère selon la revendication 3, caractérisé en ce que si tous les symboles de ladite couche supérieure ont déjà fait l'objet d'une sélection, on passe à la couche encore supérieure pour y sélectionner un nouveau symbole PPM- PAM selon l'étape (b). 5. Procédé de décodage par sphère selon la revendication 3 ou 4, caractérisé en ce que si l'on a atteint la couche la plus haute et que, soit l'on a sélectionné tous les symboles PPM-PAM de ladite couche, soit la contribution de ladite couche calculée pour le symbole sélectionné excède le rayon quadratique de la sphère, le procédé de décodage se termine en fournissant ledit point le plus proche (âopt)• 6. Procédé de décodage par sphère selon la revendication 5, caractérisé en ce que les symboles PPM-PAM des sources de rangs respectifs 1,..,P, estimés au sens du maximum de vraisemblance, sont obtenus comme sous-vecteurs ( âop , aop , .. âopt ) à M composantes du vecteur à MP composantes représentant ledit point le plus proche ( âopt) 7. Procédé de décodage par sphère selon l'une des revendications précédentes, caractérisé en ce que pourune couche de rang p donnée et une position PPM m de cette couche, ladite liste relative à cette position est, après classement : am ; îm + 2Am ; îm ù 2Am ; îm + 4Am ; îm ù 4Am ;... avec 0 = sign(ôcm ûî ) où âm est une valeur réelle représentative du signal reçu en position m, après égalisation de la source p, et cLm l'entier le plus proche de am, correspondant à une amplitude de la constellation PAM. 8. Procédé de décodage par sphère selon la revendication 7, caractérisé en ce que la valeur réelle représentative du signal reçu en position m, après égalisation de la source p est obtenue par : où R(14P) est la p ième sous-matrice de taille MxM sur la diagonale de la matrice triangulaire supérieure R de taille MPxMP, obtenue par transformation QR d'une matrice H représentative du canal de transmission entre les P sources et ledit récepteur ; Re) est la mieme colonne de la matrice R(P'P) et )T(p) a.= (R(P9P))TR(P9P) .,m)E(p) =R(p'p)ep ) où epp) représente le signal reçu de la source p après égalisation ZF-DFE. 9. Récepteur à maximum de vraisemblance destiné à recevoir des symboles PPM-PAM d'une pluralité P de sources, comprenant un filtre adapté au canal de transmission entre les sources et le récepteur et, le cas échéant, au codage spatio-temporel utilisé à l'émission, caractérisé en ce qu'il comprend en outre un décodeur par sphère comprenant des moyens adaptés à exécuter les étapes du procédé de décodage par sphère selon l'une des revendications précédentes, le décodeur par sphère recevant en entrée la sortie dudit filtre adapté.15