Brevet FR2818842A1 — publié le 20020628

La présente invention concerne une méthode et un dispositif de détection multi- utilisateur. Plus particulièrement, la présente invention concerne une méthode et ur dispositif de détection multi-utilisateur à maximum de vraisemblance pour un système de télécommunication DS-CDMA (Direct Séquence Code Division Multiple Access). Dans un système de télécommunication mobile DS-CDMA, la séparation des communications en provenance ou à destination des différents utilisateurs est réalisée en multipliant chaque symbole complexe d'un utilisateur par une séquence d'étalement qui est propre à ce dernier, encore appelée pour cette raison signature de l'utilisateur. La fréquence d'étalement (chip rate) étant supérieure à la fréquence de: symboles, le signal transmis par chaque utilisateur est distribué (ou étalé) dans l'espace des fréquences. Le rapport entre la bande occupée par le signal étalé et la bande occupée par le signal d'information est appelé facteur d'étalement. A la réception, la séparation d'un utilisateur donné est obtenue grâce à un filtrage adapté la signature correspondante. Lorsque le canal de transmission présente une pluralité de trajets de propagation, la sortie du filtrage adapté comporte autant de pics de corrélation. Chaque trajet du canal peut être modélisé par un coefficient multiplicatif complexe et un retard. Les signaux s'étant propagés selon les différents trajets peuvenl être alignés et combinés au moyen de coefficients complexes conjugués des coefficients de trajet, réalisant ainsi un filtrage adapté au canal de transmission. Pour simplifier la terminologie nous engloberons dans l'expression générale filtrage adapté à l'utilisateur k à la fois l'opération de filtrage adapté à la signature de l'utilisateur k et celle de filtrage adapté au canal de transmission. Pour combattre l'interférence entre signaux à destination (liaison descendante) ou en provenance (liaison montante) des différents utilisateurs, il a été proposé des méthodes de détection multi-utilisateur et notamment des méthodes de détection itératives telles que celles connues sous le nom de PIC (Parallel Interférence Cancellation) et SIC (Serial Interference Cancellation). Elles sont fondées sur l'itération d'un cycle d'élimination des interférences comportant l'estimation des symboles émis, l'évaluation des interférences et leur soustraction des signaux reçus. Bien que performantes, ces méthodes ne sont pas optimales dans la mesure où elles ne fournissent pas une estimation au sens du maximum de vraisemblance des symboles transmis par les différents utilisateurs. Une méthode de détection multi-utilisateur à maximum de vraisemblance inspirée de l'algorithme de Viterbi a été proposée par S. Verdu dans un article intitulé Minimum probability of error for asynchronous Gaussian multiple access channels >: publié dans IEEE Transactions on Information Theory, pages 85-96, Janvier 1986 mais sa complexité est prohibitive car elle varie de manière exponentielle avec le nombre d'utilisateurs . Plus récemment il a été proposé par L. Brunel et al., dans un article intitula Euclidian space lattice decoding for joint detection in CDMA system publié dans Proceedings of ITW, page 129, Juin 1999, une méthode de détection multi-utilisateui à maximum de vraisemblance utilisant une représentation par réseau de points. Selor cette méthode on détermine un vecteur caractéristique du signal reçu représentant une statistique suffisante pour la détection au maximum de vraisemblance des symbole: transmis par les différents utilisateurs. On montre sous certaines conditions que le vecteur caractéristique peut être représenté comme le point d'un réseau perturbé pai un bruit. La détection consiste alors à rechercher le point du réseau le plus proche du point correspondant au vecteur reçu. Cependant, la dimension du réseau à utiliser étanl en général de 2.K où K est le nombre d'utilisateurs le nombre de points à tester reste encore très élevé. Pour simplifier la détection, il a été proposé de limiter la recherche du plus proche voisin aux points du réseau appartenant à une sphère centrée autour du point reçu. Nous exposerons ci-après cette méthode de détection simplifiée dite méthode de détection par sphères : Nous nous plaçons dans le contexte d'un système de télécommunication mobile à accès multiple avec étalement de spectre par séquences directes (DS-CDMA) comprenant K utilisateurs communiquant de manière synchrone avec une station de base. Soit dk(i) le symbole complexe émis par l'utilisateur k à l'instant i . Ce symbole appartient à la constellation de modulation Ak utilisée par l'utilisateur k, que l'on appellera encore alphabet de symboles de l'utilisateur k. Chaque utilisateur k transmet un bloc de N symboles avec une amplitude du signal ak . Les symboles sont étalés par une signature complexe sk (t) = sk (t) + j.s[ (t) de durée égale à la période symbole T : r Les K symboles complexes dk(i)=df(i)+ j.dl(i) transmis à l'instant i sont placés dans un vecteur ligne de valeurs réelles d2(i) défini comme : Le signal modulé correspondant est alors, en fonction du temps t : Nous supposons que le canal est un canal idéal à bruit blanc additif gaussien. Soit n=St+rt le signal reçu au temps t et 77, un bruit gaussien complexe de moyenne nulle et dont les composantes ont une variance No . Soit le vecteur ligne y2(i(iy(i..,y,(iyk(i)) tel que MÛ=yW)+Jyi(J) soit la sortie complexe à l'instant i du filtre adapté à l'utilisateur k : Nous noterons R(i) la matrice d'autocorrélation des séquences d'étalement. Si l'on décompose les éléments complexes de (3) en leurs parties réelles et imaginaires, on obtient : Soient A2 =Diag(.mai,.. aK,aK) et Rz la matrice de taille 2K x 2K telle que : L'équation (4) peut alors se mettre sous forme matricielle : où M2 est une matrice réelle de taille 2K x 2K définie par Mz=AzRz et où le vecteur de bruit nzin;i,n; i,...,1),itlx{I)) a pour matrice de covariance NoRz . Nous démontrerons ci-après que y2(0> tel que donné par l'équation (6), peut être représenté comme un point d'un réseau A2 de dimension 2.K, de matrice génératrice M2 corrompu par un bruit nz . Nous appellerons réseau réel de points A de dimension # tout ensemble de vecteurs de RK vérifiant : x=hv\+biV2+...+bc\K où IEZ,li=1,...,x et où {vi,V2,...,vk-} est une base sur RK . Un exemple de réseau de points de dimension 2 a été représenté en Fig. 1. Les points du réseau forment un sous-groupe abélien additif de R#, c'est d'ailleurs le plus petit sous-groupe de R" contenant les vecteurs Vl,V2,..,vx et un Z- module de R" . Ces vecteurs de base forment les lignes de la matrice génératrice G du réseau. On peut donc écrire x = bG où r--Irj (7) La région délimitée par les vecteurs de base est appelée parallélotope fondamental et son volume, noté vol(A) ou det(A), est nommé volume fondamental. Ce volume fondamental n'est autre que le module du produit vectoriel des # vecteurs de base et est donc égal à Idet(G où det désigne le déterminant. S'il existe plusieurs choix possibles pour la matrice génératrice d'un même réseau, il n'existe par contre qu'une unique valeur pour le volume fondamental. La région de Voronoï V ou cellule de Dirichlet d'un point x appartenant au réseau est l'ensemble des points de R# plus proches de x que de tout autre point du réseau. Le volume de cette région est égal au volume fondamental. Le rayon d'empilement p du réseau est le rayon de la plus grande sphère inscrite dans la région de Voronoï et le rayon de recouvrement celui de la plus petite sphère circonscrite à cette même région. Le rayon d'empilement est donc le rayon des sphères dont l'empilement constitue le réseau de points et le rayon de recouvrement est celui des sphères les plus petites qui, centrées sur les points du réseau, permettent de recouvrir tout l'espace R" . La densité du réseau est le rapport entre le volume de la sphère de rayon p et le volume fondamental. Enfin, le coefficient d'erreur (kissing number) z-(A) du réseau est le nombre de sphères tangentes à une même sphère dans l'empilement ou, en d'autres termes, le nombre de voisins d'un point du réseau, situés à la distance minimale dE,n", = 2p . Considérons à nouveau l'équation (6). Les composantes du vecteur d2(i) appartiennent à un alphabet fini A de cardinal : Nous appellerons A la constellation du système (ou simplement constellation) par opposition aux Ak dites constellations de modulation. Supposons par exemple que les composantes dk (i) et dk(i) soient des symboles de modulation PAM d'ordre M : Si l'on effectue la transformation : dk idk i}±M-1 et di(i)=dj(i}tM-l) soit encore de manière vectorielle : où vM=(M-1,M-1,..,M-1) les composantes dfV) et c/{(/) sont des éléments de Z et par suite d'a(i) est un vecteur de Z2K. De manière générale, s'il existe une transformation affine transformant les composantes dfV) et dkl(i) en des éléments de Z, on peut représenter le vecteur d'2(i) par un vecteur de Bzz. De manière similaire, on effectue la transformation correspondante sur y2\i), c'est-à-dire : Moyennant cette transformation, que nous supposerons implicite dans la suite, le vecteur d2(/)M2(/) appartient alors à un réseau de points A2 de dimension 2.K tel que défini par la relation (7) avec G=M2(/). Le vecteur y2(/) peut donc être considéré comme un point du réseau A2 corrompu par un bruit n2(i). Si l'on suppose que les composantes du vecteur de bruit n2(/) sont des variables aléatoires indépendantes gaussiennes centrées, le problème de la détection au sens du maximum de vraisemblance des symboles émis par les différents utilisateurs se ramène à la recherche du point Z2 du réseau A2 tel que sa distance à y2(/) soit minimale. En réalité, les composantes du vecteur de bruit n2(/) sont corrélées et la matrice de covariance de n2(i) est NoR2 . Afin de se ramener au cas décorrélé il faut effectuer préalablement au décodage une opération de blanchiment du bruit. La matrice R étant hermitienne, la matrice d'autocorrélation R2 est symétrique définie positive et peut donc faire l'objet d'une factorisation de Cholesky : R2=W2 W[ (13) où W2 est une matrice triangulaire inférieure de taille 2Kx2K. On définit un vecteur d'observation blanchie : yz(i)=yz(i)wrl (14) ainsi qu'un nouveau réseau de points Q2 constitué des vecteurs de composantes (:i1R(ixl(i),...,x{!(ixk(i)) avec Ï2(/)=X2(/)W2r 'où X2(/) est un vecteur de composantes (XIR(jxi'(i. xKR(ix'K(i appartenant à A2. Le réseau Q2 a pour matrice génératrice A2W2, matrice réelle triangulaire inférieure. On peut facilement montrer, qu'après blanchiment, la matrice de covariance du bruit filtré n2()W2T-l est égale à NoIzx où I2K est la matrice identité de dimension 2K. La détection comprend donc une première étape de blanchiment du vecteur d'observation suivie d'une étape de recherche du plus proche voisin au sein du réseau de points #2. Pour réduire le nombre de points à tester, comme illustré en Fig. 1, on peut limiter la recherche à une sphère centrée autour du point #2. En pratique, le choix du rayon de la sphère résulte d'un compromis : il ne doit pas être trop grand pour ne pas conduire à un nombre de points trop élevé et suffisamment grand pour inclure au moins le plus proche voisin. La Fig. 2 représente schématiquement un dispositif de détection multi-utilisateur utilisant une méthode de détection par sphères. Le signal reçu n est filtré par une batterie de filtres adaptés à chacun des utilisateurs, 2101,...,210K. Les composantes réelles et imaginaires du vecteur d'observation y2(/) en sortie des filtres adaptés sont transmises à une unité de calcul matriciel effectuant l'opération de blanchiment spectral selon la relation (14). Les composantes réelles et imaginaires du vecteur blanchi y2(/) sont ensuite transmises à une unité de détection par sphères recherchant le plus proche voisin du point reçu au sein du réseau #2 de dimension 2.K. Les coordonnées du plus proche voisin donnent directement les composantes réelles et imaginaires des symboles estimés dx(i) pour les différents utilisateurs. L'étape de la recherche du plus proche voisin est gourmande en temps de calcul ce qui peut s'avérer très pénalisant lorsque le nombre d'utilisateurs est élevé. Le but de la présente invention est de proposer une simplification de la méthode de détection par sphères. A cette fin, l'invention est définie par une méthode de détection d'une pluralité de symboles (dk(/)) transmis par ou pour une pluralité K d'utilisateurs, chaque symbole appartenant à une constellation de modulation et faisant l'objet d'un étalement spectral par une séquence d'étalement, ladite méthode comprenant une étape de filtrage adapté pour fournir un vecteur réel (z) caractéristique dudit signal reçu, au moins le plus proche voisin dudit vecteur étant recherché au sein d'un réseau de points (#) généré par lesdites constellations de modulation, ladite recherche étant limitée à des vecteurs candidats (x) dont chacune des composantes (b,) possède une valeur comprise dans un intervalle de recherche défini par une borne inférieure (Bl-) et une borne supérieure (Bl+), lesdites bornes étant choisies de manière à ce que chacun desdits intervalles ne comprenne que des valeurs de composantes de points situés à l'intérieur d'une sphère de rayon ( ) prédéterminé et appartenant à une constellation de modulation. Avantageusement, pour une composante d'indice i donné, chaque couple de bornes inférieure ([3,-) et supérieure ( ruz ) est calculé à partir d'une grandeur T, caractéristique de la largeur de l'intervalle de recherche pour ladite composante. Cette grandeur caractéristique est déterminée par récurrence sur l'indice i : la grandeur caractéristique (T,) pour un indice donné est déterminée à partir de la grandeur d'indice précédent (T,+i) et de la valeur d'une composante (b,+i) choisie dans l'intervalle de recherche ( [+,,+] ) relatif à la composante d'indice précédent. Pour une composante de vecteur candidat d'indice (2k) donné, la borne inférieure de l'intervalle de recherche sera avantageusement choisie supérieure au plus petit entier (Mât) correspondant à un symbole de la constellation de modulation (Ak) et la borne supérieure de l'intervalle de recherche sera choisie inférieure au plus grand entier (Mik ) correspondant à un symbole de la constellation de modulation. Pour une première composante de vecteur candidat d'indice (2k-1) donné, la borne inférieure de l'intervalle de recherche sera choisie supérieure à un premier entier (M2k-i) et la borne supérieure de l'intervalle de recherche sera choisie inférieure à un second entier (Mi- ), lesdits premier et second entiers étant déterminés à partir de la valeur d'une seconde composante (b2k) du vecteur candidat telle que la première et la seconde composantes soient relatives à un même utilisateur. Avantageusement, lesdits premier et second entiers sont respectivement déterminés comme la plus petite valeur et la plus grande valeur de la première composante telle que le nombre complexe défini par la valeur de ladite première composante et la valeur de ladite seconde composante est un symbole de la constellation de modulation dudit utilisateur. La recherche du plus proche voisin est préférablement effectuée en balayant un à un lesdits intervalles de recherche pour les différents indices (i) de composante et en choisissant dans chacun desdits intervalles une valeur de composante (b,), les bornes de chaque intervalle étant déterminées en fonction de la largeur de l'intervalle d'indice précédent (/+1) et de la valeur de composante (bl+1) choisie dans ce même intervalle. Selon un mode de réalisation, si, au cours de ladite recherche, la norme (#w#) d'un vecteur candidat est inférieure au rayon de ladite sphère, le rayon est mis à jour à la valeur de ladite norme. Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, apparaîtront plus clairement à la lecture de la description suivante faite en relation avec les figures jointes, parmi lesquelles : La Fig. 1 représente un réseau de points utile à la méthode de détection employée dans le récepteur illustré en Fig. 2; La Fig. 2 représente de manière schématique la structure d'un récepteur DSCDMA multi-utilisateur utilisant une méthode de détection par sphères; La Fig. 3 représente un organigramme de la recherche du plus proche voisin utilisée dans la méthode de détection par sphères selon l'invention. La Fig. 4 représente un exemple de constellation de modulation d'un utilisateur. Considérons à nouveau un système de télécommunication DS-CDMA avec K utilisateurs fonctionnant en mode synchrone. Comme on l'a vu plus haut, la détection des symboles transmis par les différents utilisateurs au sens du maximum de vraisemblance peut se ramener à la recherche parmi les points d'un réseau (#2) du plus proche voisin du point correspondant au signal reçu. Dans le cas où les séquences d'étalement sont réelles ou plus généralement multiples réelles d'un même nombre complexe, on peut montrer que la recherche peut être effectuée dans un réseau de dimension réduite à K. En effet, les termes imaginaires de la matrice R2 et par suite de la matrice M2(/) étant nuls, on peut se ramener à un réseau de points réel A de dimension K et de matrice génératrice M(i) : où yR(i),dR(i),nR(i) (resp. y7(/),dJ(i),n7(/) ) sont les vecteurs constitués des parties réelles (resp. des parties imaginaires) des composantes de y(i),d(i),n(i) ; T M(/)=AR(/)où R(i) est la matrice constituée par les coefficients 7t=(/)(/)d/ et A 0 est le vecteur des amplitudes des K utilisateurs. Les vecteurs d'observation yR(i) et y1(i) appartiennent à R#. Après transformation éventuelle selon une relation du type de celle de (12), les vecteurs yR(i) et y;(/) peuvent être considérés comme des points d'un réseau A de matrice génératrice M(i) corrompus par du bruit. On montre aisément que les vecteurs de bruit nR(i) et n1 (i) ont tous deux pour matrice de covariance No.R(i). R(i) étant une matrice symétrique définie positive on peut la factoriser selon une décomposition de Cholesky : R = WWToù W est une matrice réelle triangulaire inférieure de taille KxK. Afin de décorréler les composantes de bruit, les vecteurs d'observation réels yR(i)et y'(i) sont tout d'abord soumis à une opération de blanchiment : Dans un deuxième temps, on recherche les plus proches voisins des vecteurs yR(i) et #1(i) appartenant au réseau de points # constitué des vecteurs i(i)=x(i)wT- où x(/) appartient à A. On notera que la matrice génératrice du réseau Q est égale à AW, matrice réelle triangulaire inférieure. D'autre part, on peut montrer facilement, qu'après blanchiment, les matrices de covariance des bruits filtrés nR(I)wT- et n7(/)\Vr sont toutes deux égales kNohc où IK est la matrice identité de dimension K Lorsque les symboles de ou pour les utilisateurs sont transmis de manière asynchrone, la modélisation du système est plus complexe car il faut tenir compte du fait qu'un symbole d'un utilisateur peut interférer avec deux voire plusieurs symboles consécutifs d'un autre utilisateur. On montre dans ce cas que l'on peut se ramener à une recherche du plus proche voisin au sein d'un réseau de dimension 2.K' (K' dans le cas de signatures réelles) avec K'>K où K' est fonction du nombre de symboles non encore estimés pouvant interférer entre eux. La détection n'est toutefois pas optimale au sens du maximum de vraisemblance. Dans tous les cas, le problème est de déterminer le point x d'un réseau E de dimension # le plus proche du vecteur reçu et blanchi y , ce qui revient à minimiser la métrique ou y=x +11, fl=t7Jt,...,7}K ) est le vecteur de bruit et g=(,..,xK) est un point appartenant au réseau. Le vecteur de bruit # a des composantes réelles indépendantes suivant une distribution gaussienne de moyenne nulle et de variance. On notera que le vecteur y(i) n'a pas besoin d'être blanchi si l'on utilise une métrique basée sur la matrice de covariance : On désignera par la suite, pour des raisons de simplification, z le vecteur d'observation blanchi (y(/)) ou non (y(/)) et Il.11 la métrique intervenant dans la relation (19) ou (20). Les points du réseau E peuvent être décrit par les vecteurs x=bG où b=b,...,bK) possède des composantes b, appartenant à l'anneau des entiers Z et où G est la matrice génératrice du réseau. On note {vi,V2,...,v r} les lignes de la matrice G. Par définition ces vecteurs forment une base du réseau. L'ensemble des symboles émis est limité à un alphabet de taille finie A##Z# appelé constellation. Cette constellation est déterminée par les constellations de modulation utilisées par (ou pour) les # utilisateurs et le cardinal de l'alphabet A# est le produit des cardinaux des différents alphabets de modulation. On supposera que les points complexes de chacune de ces constellations possèdent des valeurs réelles et des valeurs complexes régulièrement réparties . Comme on l'a vu un décodage exhaustif nécessiterait une recherche du plus proche voisin dans la totalité de A#. Le décodeur restreint avantageusement son calcul aux points qui sont situés à l'intérieur d'une zone de la constellation située autour du point reçu, préférentiellement à l'intérieur d'une sphère de rayon donné #C centrée sur le point reçu comme représenté en Fig. 1. Seuls les points du réseau situés à une distance quadratique inférieure à C du point reçu sont donc considérés pour la minimisation de la métrique (19). En pratique, le décodeur effectue la minimisation suivante : Pour ce faire, le décodeur recherche le plus petit vecteur w dans l'ensemble translaté z-#. On peut exprimer les vecteurs z et w comme : Il est important de noter que p et sont des vecteurs réels. Comme w=z-x où # x appartient au réseau E, on a la relation , = p, - h, pour i=l . K avec w= 9V, . i=1 Le vecteur w est un point du réseau dont les coordonnées sont exprimées dans le repère translaté centré sur le point reçu y. Le vecteur w appartient à une sphère de rayon quadratique C centrée en 0 si : Dans le nouveau système de coordonnées défini par , la sphère de rayon quadratique C centrée en y est donc transformée en une ellipse centrée à l'origine. La factorisation de Cholesky de la matrice de Gram r=GG'' donne r =AAT , où A est une matrice triangulaire inférieure d'éléments #ij. Il faut noter que si le vecteur y a été blanchi, il n'y a pas lieu d'effectuer cette factorisation car la matrice génératrice du réseau est déjà triangulaire inférieure. Toutefois, dans le cas où l'on n'a pas procédé au blanchiment préalable et donc où la décomposition de Cholesky est nécessaire : En posant on obtient En s'intéressant tout d'abord à la plage de variations possibles de ##, puis en rajoutant une à une les composantes, on obtient les # inégalités suivantes, qui définissent tous les points à l'intérieur de l'ellipse : On peut montrer que les inégalités (26) imposent aux composantes entières de b de satisfaire à : où [x] est le plus petit entier supérieur au réel x et [x] est le plus grand entier inférieur au réel x . Le décodeur possède # compteurs internes, à savoir un compteur par dimension, chaque compteur comptant entre une borne inférieure et supérieure comme indiqué en (27), étant entendu qu'à chaque compteur est associé un couple de bornes particulier. En pratique ces bornes peuvent être mises à jour de manière récursive. On pose : avec T#=C A l'aide des équations (28) à (30), on détermine récursivement la plage de variation de chaque composante b1 en commençant par la composante b#: On restreint avantageusement les plages de variation définies par (32) de manière à ne pas tester inutilement des points qui sont situés hors de la constellation. On rappelle que chaque utilisateur k utilise une constellation de symboles Ak, chaque symbole de la constellation étant un nombre complexe dont les parties réelle et imaginaire (éventuellement après transformation affine) sont des éléments de Z. Plaçons nous tout d'abord dans le cas général où le réseau est de dimension 2K, où K est le nombre d'utilisateurs. Pour chaque utilisateur k, on considère les dimensions 2k et 2k-1 portant le symbole complexe transmis par ou pour l'utilisateur k. Comme indiqué en Fig. 4, la constellation, ou de manière équivalente la constellation de modulation de l'utilisateur k est tout d'abord projetée sur la dimension 2k. Cette projection définit un intervalle [M2k-,M2k+] On définit alors l'intervalle de recherche [B2k-,B2k+] où : et l'on choisit un entier b2k dans cet intervalle. La composante b2k définit alors un intervalle [M2k-I,MU.I] pour la composante b2k-l comme indiqué sur la Fig. 4. On définit ensuite un intervalle de recherche [2&-i,2Ï2*-i]par : En procédant de la sorte on est assuré de ne rechercher le plus proche voisin que parmi des candidats qui sont à la fois situés dans la sphère de recherche et des points de la constellation. La situation est légèrement différente lorsque l'on utilise des séquences d'étalement réelles et donc lorsque le réseau de dimension K (où K est le nombre d'utilisateurs). Dans ce cas, les valeurs réelle et imaginaire des symboles font l'objet de recherches parallèles dans un réseau (A, #) de dimension K. Le calcul des bornes de recherche (et le choix des valeurs des valeurs des composantes) porte tour à tour sur la partie réelle et la partie imaginaire, de manière entrelacée. Dans l'exemple simple où la modulation employée sur une dimension i est une modulation PAM d'ordre M, la coordonnée entière btdu point recherché doit être comprise entre 0 et M -1. Les bornes de recherche sont ajustées par =Sup(L,0) et B,+ =Inj{n,M -1) de manière à ce que le compteur associé à la composante b, ne parcoure pas des points qui sont situés en dehors de la sphère de recherche ou en dehors de la constellation. Cet ajustement des bornes de recherche permet d'accélérer considérablement l'algorithme de détection par sphères. De plus, la recherche à l'intérieur de la sphère peut être encore accélérée en mettant à jour le rayon -Je avec la dernière norme euclidienne calculée llwll - La valeur initiale du rayon de recherche #C doit être choisie de manière appropriée. En effet, le nombre de points du réseau situés à l'intérieur de la sphère de décodage augmente avec C . C'est pourquoi le choix d'une grande valeur de C pénalise l'algorithme de décodage tandis que la sphère de recherche peut être vide si C est trop faible. De manière à être sûr que le décodeur trouve au moins un point du réseau, on choisit avantageusement un rayon de recherche supérieur au rayon de recouvrement du réseau. On peut par exemple le prendre égal à la borne supérieure de Rogers : OÙ VA: est le volume d'une sphère de rayon unité dans l'espace réel R#. La Fig. 3 représente un organigramme de la recherche du plus proche voisin utilisée dans la méthode de détection par sphères selon l'invention. Le vecteur z, la matrice G, la valeur initiale C sont les paramètres transmis à la méthode de recherche. On supposera que l'on se trouve dans la situation où #=2K, le cas simplifié #=K s'en déduisant sans difficulté. Dans une première étape 301, on procède à la factorisation de Cholesky de la matrice de Gram #=GGT si le vecteur z n'est pas issu d'un blanchiment (sinon la matrice G est, comme on l'a vu, déjà triangulaire inférieure). Les coefficients qij sont calculés selon la relation (24) et les valeurs ## sont calculées par la relation : p=zG-' . On initialise à l'étape 302 la valeur quadratique de la plus petite distance courante à C : Dmin2=C et on initialise le calcul récursif des bornes de recherche par : TK=C, S=p,i=1,..,x. On détermine également les valeurs de bornes Mi-, M,' avec i=2k, k=1,..,K et l'on construit ensuite K tables donnant les valeurs M1-,M1+ avec i=2k-l, k=1,..,K correspondant aux différentes valeurs b2k possibles. On initialise à l'étape 303 l'indice de la dimension de recherche, soit i=#. On calcule à l'étape 304 les valeurs L-,L+ grâce à la relation (32). On détermine.8- ,.8+ grâce à la relation (33) si i est pair. Si i est impair on détermine MT ,MÎ à partir de la table (i+1)/2 et de la valeur de b,+1 . Les bornes .8-,.8+ sont ensuite déterminée selon la relation (33'). En outre, b, est initialisé à la valeur Bl--1. A l'étape 305 la valeur de b, est incrémentée de 1 : bi=bi+1. L'étape 306 consiste en un test : bi>Bl+ ? Si le test en 306 est négatifon passe à l'étape 307 où l'on teste si i> 1. Si le test en 307 est positif on effectue le calcul de proche en proche des bornes de recherche. A l'étape 310 on calcule Tt~x = T, - q" (S, - b, )2 et , = p, - b, , puis, à K l'étape 311 on calcule St-=,a-+q,.r-y, . On décrémente ensuite / en 312 avant de j=1 retourner à l'étape 304 pour calculer les bornes de recherche pour i-1. Lorsque le test en 307 est négatif on passe à l'étape 308 pour calculer la norme quadratique IIwII2 du vecteur w relatif au point courant par IIWIIZ-T"-Ti+qm(S-In)2 . On teste ensuite si IIwl12 quadratique minimale par DIvrI2 et la taille de la sphère de recherche par TK=IIwII2 . On recommence la procédure de recherche en retournant en 303. Si le test en 306 est positif, c'est-à-dire si l'on atteint la borne supérieure de recherche pour la dimension courante, on teste en 321 si i=#. Si c'est le cas, la recherche est terminée en 320 et le dernier vecteur x stocké est le plus proche voisin. En revanche si le test est négatif, la recherche se poursuit en incrémentant i à l'étape 322 et en retournant à l'étape 305. REVENDICATIONS 1) Méthode de détection d'une pluralité de symboles (dk(i)) transmis par ou pour une pluralité K d'utilisateurs, chaque symbole appartenant à une constellation de modulation et faisant l'objet d'un étalement spectral par une séquence d'étalement, ladite méthode comprenant une étape de filtrage adapté pour fournir un vecteur réel (z) caractéristique dudit signal reçu, caractérisée en ce qu'au moins le plus proche voisin dudit vecteur est recherché au sein d'un réseau de points (#) généré par lesdites constellations de modulation, ladite recherche étant limitée à des vecteurs candidats (x) dont chacune des composantes (b,) possède une valeur comprise dans un intervalle de recherche défini par une borne inférieure (Bl-) et une borne supérieure (Bl+), lesdites bornes étant choisies de manière à ce que chacun desdits intervalles ne comprenne que des valeurs de composantes de points situés à l'intérieur d'une sphère de rayon (#C) prédéterminé et appartenant à une constellation de modulation. 2) Méthode de détection selon la revendication 1, caractérisée en ce que, pour une composante d'indice i donné, chaque couple de bornes inférieure (Bl-) et supérieure (Bl+) est calculé à partir d'une grandeur T, caractéristique de la largeur de l'intervalle de recherche pour ladite composante, cette grandeur caractéristique étant déterminée par récurrence sur l'indice i, la grandeur caractéristique (T,) pour un indice donné étant déterminée à partir de la grandeur d'indice précédent (Tl+1) et de la valeur d'une composante (b,,,) choisie dans l'intervalle de recherche ( [+,,+,) ) relatif à la composante d'indice précédent. 3) Méthode de détection selon la revendication 2, caractérisée en ce que, pour une composante de vecteur candidat d'indice (2k) donné, la borne inférieure de l'intervalle de recherche est choisie supérieure au plus petit entier (M2k-) correspondant à un symbole de la constellation de modulation (Ak) et la borne supérieure de l'intervalle de recherche est choisie inférieure au plus grand entier (Mi) correspondant à un symbole de la constellation de modulation. 4) Méthode de détection selon la revendication 2, caractérisée en ce que, pour une première composante de vecteur candidat d'indice (2k-l) donné, la borne inférieure de l'intervalle de recherche est choisie supérieure à un premier entier (M2k-1-)et la borne supérieure de l'intervalle de recherche est choisie inférieure à un second entier (M2k-1+), lesdits premier et second entiers étant déterminés à partir de la valeur d'une seconde composante (b2k) du vecteur candidat telle que la première et la seconde composantes soient relatives à un même utilisateur. 5) Méthode de détection selon la revendication 4, caractérisée en ce que lesdits premier et second entiers sont respectivement déterminés comme la plus petite valeur et la plus grande valeur de la première composante telle que le nombre complexe défini par la valeur de ladite première composante et la valeur de ladite seconde composante soit un symbole de la constellation de modulation dudit utilisateur. 6) Méthode de détection selon l'une des revendications précédentes, caractérisée en ce que la recherche du plus proche voisin est effectuée en balayant un à un lesdits intervalles de recherche pour les différents indices (i) de composante et en choisissant dans chacun desdits intervalles une valeur de composante (b,), les bornes de chaque intervalle étant déterminées en fonction de la largeur de l'intervalle d'indice précédent (i+1) et de la valeur de composante (bi+1) choisie dans ce même intervalle. 7) Méthode de détection selon l'une des revendications précédentes, caractérisée en ce que, si, au cours de ladite recherche, la norme (#w#) d'un vecteur candidat est inférieure au rayon de ladite sphère, le rayon est mis à jour à la valeur de ladite norme.