FR 2935570 A1 20100305 FR 0855882 A 20080902 Procédé de décodage d'un signal ayant subi un codage espace/temps avant émission, dans un système multi-antennaires, produit programme d'ordinateur et dispositif de décodage correspondant. 1. Domaine de l'invention Le domaine de l'invention est celui des communications sans fil. Plus précisément, l'invention concerne la réception de signaux dans le cadre de systèmes MIMO (en anglais � Multiple-Input Multiple-Output �, en français � Entrées Multiples Sorties Multiples �), mettant en oeuvre plusieurs antennes d'émission et plusieurs antennes de réception, et ayant subi un codage espace/temps avant émission. L'invention trouve notamment des applications dans le domaine des radiocommunications mobiles. 2. Art antérieur Les techniques de transmission dans des systèmes multi-antennaires présentent plusieurs avantages, et offrent par exemple des possibilités de transmission à haut débit avec une bonne fiabilité. En particulier, ces techniques permettent d'atteindre une capacité de transmission accrue en augmentant l'efficacité spectrale, notamment grâce à l'utilisation de codes espace/temps en émission. Les codes espace/temps utilisés en émission permettent en effet de répartir les symboles modulés sur les différents degrés de liberté du canal (en espace sur les antennes et en temps). Par exemple, ces codes espace/temps peuvent être construits en utilisant une construction algébrique, garantissant que ces codes soient : de rendement plein, de diversité maximale, atteignant la capacité du canal et ayant un déterminant minimal ne s'évanouissant pas lorsque l'efficacité spectrale augmente. Le décodage de tels codes espace/temps algébriques est alors mis en oeuvre en utilisant une représentation en réseaux de points de ces codes. On présente par exemple, en relation avec la figure 1, une chaîne de 30 transmission mettant en oeuvre des codes espace/temps en émission dans un contexte de transmission de type MIMO mettant en oeuvre nt antennes d'émission et nr antennes de réception. Côté émission, un signal binaire 10 à émettre (éventuellement codé selon une technique de codage source et/ou codage canal) est modulé dans un bloc de modulation 11, destiné à convertir des éléments binaires en symboles complexes : un tel bloc associe ainsi à un groupe de bits un symbole complexe appartenant à une constellation (de type QAM par exemple). On procède ensuite à un codage spatio-temporel 12 de chaque groupe de K symboles sous la forme d'une matrice, encore appelée mot de code X. Les éléments de la matrice mot de code X sont ensuite émis sur les nt antennes d'émission 131 à 13nt . Le signal est ensuite véhiculé à travers un canal de transmission, puis reçu sur les nr antennes de réception 141 à 14nr . Chaque antenne de réception reçoit une combinaison linéaire des signaux émis sur chacune des nt antennes d'émission. Classiquement, on note : Ynrxt = HnrxntXntxt +Wnrxt avec : - Y le signal reçu sur les nr antennes de réception ; - X le signal (ou mot de code) émis sur les nt antennes d'émission ; 20 û H la matrice représentative du canal de transmission ; - W la matrice représentative d'un bruit additif blanc gaussien ; et û t la longueur temporelle du code espace/temps. Le signal reçu est tout d'abord décodé dans un bloc de décodage spatio-temporel 15, mettant en oeuvre un traitement inverse au codage espace/temps mis 25 en oeuvre en émission. Pour le décodage, on peut utiliser une représentation du signal reçu en réseau de points, notamment si les codes espace/temps utilisés en émission sont construits en utilisant une technique de codage espace/temps algébrique. On rappelle en effet que la représentation en réseaux de points des codes 30 espace/temps permet leur décodage par des décodeurs de réseaux de points. Ces décodeurs permettent un décodage optimal au sens ML ou sous-optimal, selon la technique employée. Ainsi, les algorithmes de décodage de type décodage par sphères, Schnorr-Euchner, séquentiels (de type Fano ou à pile par exemple), etc, permettent un décodage optimal au sens du maximum de vraisemblance (ou ML, en anglais � Maximum Likelihood �). Les algorithmes de décodage linéaire (ZF ou � Zero-Forcing �, MMSE ou � Minimum Mean Square Error �, etc) ou non linéaire (décodage à retour de décision : ZF-DFE ou � Zero-Forcing ù Decision Feedback Equalization �, MMSE-DFE ou � Minimum Mean Square Error ù Decision Feedback Equalization �, etc) permettent un décodage sous-optimal. Le signal en sortie du bloc de décodage espace/temps 15 alimente ensuite un bloc de démodulation 16, délivrant un signal binaire estimé 17. Comme indiqué précédemment, pour pouvoir accroître le débit de transmission, on augmente le nombre d'antennes d'émission et/ou de réception 15 dans les systèmes MIMO. Malheureusement, l'augmentation du nombre d'antennes conduit à une augmentation de la dimension du réseau de points associé, rendant le décodage des signaux particulièrement complexe. La complexité des décodeurs optimaux au sens ML rend pratiquement 20 impossible leur implantation dans des terminaux mobiles, pour des réseaux de points de grandes dimensions. On rappelle en effet qu'un mot de code d'un code espace/temps transmis sur nt antennes d'émission et reçu sur n,, antennes de réception est représenté par un réseau de points de dimension réelle 2nrt (ou 2nt2 si nt =n,, =t). 25 Les décodeurs sous-optimaux sont moins complexes, mais présentent des performances moyennes. De plus, ces décodeurs ne permettent pas l'obtention de la diversité maximale nt • n, apportée par le système MIMO. Il existe donc un réel besoin pour une nouvelle technique de décodage des signaux dans les systèmes mettant en oeuvre plusieurs antennes d'émission et de 30 réception, présentant une complexité réduite et/ou permettant de conserver l'ordre de diversité du système de transmission. En d'autres termes, il existe un réel besoin pour un décodeur offrant un bon compromis entre la complexité et les performances. 3. Exposé de l'invention L'invention propose une solution nouvelle qui ne présente pas l'ensemble de ces inconvénients de l'art antérieur, sous la forme d'un procédé de décodage d'un signal reçu sur au moins deux antennes de réception, ledit signal ayant subi avant émission un codage espace/temps à l'aide d'un code construit à partir d'une algèbre sur un corps commutatif K, et étant émis sur au moins deux antennes d'émission. Selon l'invention, un tel procédé met en oeuvre : une étape de prétraitement du signal reçu comprenant les sous-étapes suivantes : o détermination d'une matrice représentative du canal de transmission ; o normalisation de la matrice représentative du canal de transmission et du signal reçu, délivrant respectivement une matrice de canal normalisée et un signal reçu normalisé ; o approximation de ladite matrice de canal normalisée, à partir d'une matrice (U) sélectionnée dans ladite algèbre et présentant un déterminant égal à 1 ; une étape de décodage espace/temps du signal reçu normalisé, à l'aide de l'approximation de la matrice de canal normalisée. Ainsi, l'invention propose une technique nouvelle et inventive pour le 25 décodage d'un signal codé espace/temps dans un système MIMO mettant en oeuvre une pluralité d'antennes d'émission et de réception. Pour ce faire, on applique un prétraitement algébrique au signal reçu, consistant à absorber une partie de la matrice de canal normalisée par le code espace/temps algébrique. De cette façon, la partie restante de la matrice du canal 30 de transmission, qui définit la base du réseau de points utilisé pour le décodage, 20 est quasi-orthogonale. On rappelle à cet effet que les outils algébriques n'ont, jusqu'à présent, été utilisés que pour construire des codes espace/temps. La structure algébrique de ces codes n'a jamais été exploitée pour le décodage, ce qui constitue un aspect innovant de l'invention. Plus précisément, on cherche selon l'invention à approximer la matrice représentative du canal de transmission normalisée. Par exemple, en supposant que la matrice H représentative du canal de transmission présente un déterminant différent de zéro, on cherche à approximer la matrice de canal normalisée Hl telle que Hl = (det(H))' 'n H , avec Hl E SLn ((C) , en utilisant une matrice de l'algèbre sur le corps commutatif K. On sélectionne ainsi une matrice de l'algèbre, et on approxime la matrice de canal normalisée à partir de la matrice de l'algèbre sélectionnée. Le signal normalisé reçu peut alors être décodé à l'aide de l'approximation de la matrice de canal normalisée Hl, en utilisant une technique de décodage classique qui peut être sous-optimale (de type linéaire ou non linéaire) ou optimale au sens du maximum de vraisemblance (ML). En particulier, selon l'invention, une technique de décodage qui serait sous-optimale si elle était appliquée directement au signal reçu devient quasi- optimale lorsqu'elle est appliquée au signal reçu normalisé exprimé à partir de l'approximation de la matrice de canal normalisée. Il est ainsi possible, selon l'invention, d'obtenir de bonnes performances tout en conservant une complexité réduite, puisque les techniques de décodage sous-optimales présentent une complexité réduite. L'invention permet également d'accélérer la mise en oeuvre du décodage en en simplifiant la complexité si une technique de décodage optimale au sens ML est mise en oeuvre. Selon un mode de réalisation particulier de l'invention, la matrice sélectionnée est une unité U d'un ordre de l'algèbre (noté O), et l'étape 30 d'approximation pondère l'unité U par une erreur d'approximation E, telle que : H1 = EU . Dans ce cas, l'ordre O est l'ordre utilisé pour construire le code espace/temps. En d'autres termes, l'unité U sélectionnée est pondérée par une erreur 5 d'approximation E pour approximer la matrice de canal normalisée HI. Du fait que U est une unité de l'ordre O, U est inversible dans O. En particulier, ledit ordre peut être un ordre maximal de l'algèbre. Par exemple, l'algèbre est à division et le code espace/temps est de la forme (0a), avec a un élément de l'algèbre et O un ordre maximal de l'algèbre 10 (plusieurs ordres maximaux pouvant exister). Selon un autre aspect de l'invention, l'étape d'approximation sélectionne l'unité U de façon que l'erreur d'approximation E soit quasi-orthogonale. De cette façon, l'invention permet d'absorber une partie de la matrice de canal normalisée (correspondant à l'unité U) par le code espace/temps, et 15 d'obtenir une base du réseau de points utilisée pour le décodage quasi-orthogonale (correspondant à l'erreur d'approximation E). Selon encore un autre aspect de l'invention, le signal normalisé s'écrit sous la forme YI = H1X + W1 , avec X un mot de code émis et Wi un bruit blanc additif gaussien normalisé. Après approximation de la matrice de canal 20 normalisée, le signal normalisé peut s'écrire sous la forme YI = EUX + W1 , avec UX un mot de code. On travaille donc directement sur la forme matricielle (et non vectorielle) du signal reçu normalisé pour déterminer une approximation de la matrice de canal normalisée. 25 Selon un mode de réalisation particulier de l'invention, le procédé de décodage comprend une étape de transformation du signal reçu normalisé YI sous forme vectorielle, telle que : Yi = h1(Ds + wl avec : 30 ù yi le signal reçu normalisé sous forme vectorielle ; hl la matrice de canal normalisée sous forme vectorielle ; s le vecteur de symboles d'information ; cl) une matrice de codage espace/temps, encore appelée matrice génératrice du code espace/temps ; wl le bruit blanc additif gaussien sous forme vectorielle. La vectorisation est donc mise en oeuvre après l'approximation de la matrice de canal normalisée. En particulier, la matrice génératrice du réseau de points, correspondant à la matrice de canal normalisée sous forme vectorielle multipliée par la matrice de codage espace/temps, est égale à : h1 = EZUI~ = Ei TU avec : ù El une transformation linéaire correspondant à une multiplication à gauche par ladite erreur d'approximation E ; ù UL une transformation linéaire correspondant à une multiplication à gauche par ladite unité U ; Tu une matrice unimodulaire. Selon l'invention, on entend par matrice unimodulaire une matrice dont les éléments sont dans l'anneau des entiers R du corps commutatif K, encore appelé corps de base, et dont le déterminant est inversible dans ledit anneau des entiers R. Le signal reçu normalisé Y1, sous forme vectorielle, peut s'écrire sous la forme suivante : Yl = Ei TUs + wl = El(Ds' + wl avec s' un vecteur de symboles. Avantageusement, le code espace/temps est construit à partir d'une algèbre à division, éventuellement cyclique. Il s'agit par exemple d'un code parfait comme un code d'or, ou d'un code quasi-parfait. L'invention concerne également un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, comprenant des instructions de code de programme pour la mise en oeuvre des étapes du procédé de décodage décrit précédemment, lorsque le programme est exécuté sur un ordinateur. Dans un autre mode de réalisation, l'invention concerne un dispositif de décodage d'un signal reçu sur au moins deux antennes de réception, ledit signal ayant subi avant émission un codage espace/temps à l'aide d'un code construit à partir d'une algèbre sur un corps commutatif K et étant émis sur au moins deux antennes d'émission. Selon l'invention, un tel dispositif comprend : des moyens de prétraitement du signal reçu comprenant : o des moyens de détermination d'une matrice représentative du canal de transmission ; o des moyens de normalisation de la matrice représentative du canal de transmission et du signal reçu, délivrant respectivement une matrice de canal normalisée et un signal reçu normalisé ; o des moyens d'approximation de ladite matrice de canal normalisée, à partir d'une matrice (U) sélectionnée dans ladite algèbre et présentant un déterminant égal à 1 ; des moyens de décodage espace/temps du signal reçu normalisé, à l'aide de 20 l'approximation de la matrice de canal normalisée. Un tel dispositif de décodage est notamment adapté à mettre en oeuvre le procédé de décodage décrit précédemment. Il peut être intégré dans un récepteur d'un système MIMO, comprenant au moins deux antennes de réception, pour des applications de type Wifi (IEEE 802.11n), WiMax mobile (IEEE 802.16e), 25 WiMax coopératif (TEE 802.16j), 3GPP-LTE, etc. Ce dispositif pourra bien sûr comporter les différentes caractéristiques relatives au procédé de décodage selon l'invention. 4. Liste des figures D'autres caractéristiques et avantages de l'invention apparaîtront plus 30 clairement à la lecture de la description suivante du principe général de l'invention et d'un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : - la figure 1 illustre une chaîne de transmission MIMO mettant en oeuvre un codage espace/temps ; - la figure 2 présente les principales étapes du procédé de décodage selon l'invention ; - la figure 3 illustre les performances de l'invention, appliquée au code d'or (en anglais � Golden Code �) ; - la figure 4 présente la structure d'un dispositif de décodage selon un mode 10 de réalisation particulier de l'invention. 5. Description d'un mode de réalisation de l'invention 5.1 Définitions On présente ci-après la terminologie utilisée dans ce document. Il s'agit du vocabulaire classique, bien connu de l'Homme du Métier. 15 A) Algèbre : Soit K un corps commutatif. On appelle algèbre A sur le corps K un ensemble muni des opérations binaires suivantes : - une opération d'addition � + � de AxA dans A ; - une opération de multiplication interne � x � de AxA dans A ; 20 - une opération de multiplication par scalaires � . � de KxA dans A ; telles que : 1. (A, +, .) est un espace vectoriel sur K ; 2. (A, x) est un anneau; 3.(Âa)b=a(2,b)_4ab) VÂ,EK, Va,bEA. 25 La multiplication dans l'algèbre A n'est pas nécessairement commutative. Les éléments de l'algèbre A peuvent être représentés sous forme matricielle. B) Algèbre à division : Une K-algèbre A est appelée algèbre à division si tout élément non nul de 30 A possède un inverse par rapport à l'opération de multiplication interne � x �. C) Algèbre cyclique . Soit L un corps d'extension de K de degré n tel que son groupe de Galois G = Gal(L / K) est cyclique avec un générateur 6. Soit y e K un élément non nul. On considère l'algèbre non commutative notée A = (L / K, 6, y) définie par : A = L eL ... O+ en-1L tel que e satisfait : en = y , xe = ea(x) Vx E L A est appelée algèbre cyclique, et n est l'indice de l'algèbre. Un élément a = x0 +exi +...+en-ixn_1 E A, avec x0,...,xn_1 E L, peut être représenté par la matrice n x n suivante : x0 x1 x2 xn-1 yo-(xn-1) 6(x0) 6(x1) 6(xn-2) ro2(xn-2) y62(xn-1) 62(x0) 62(xn-3) yan-1(x1) yan-1(x2) yan-1(x3) ... 6n-1(x0) Si n = 2 , l'algèbre cyclique est appelée algèbre de quaternions. Par exemple, le code d'or (� Golden Code �) est basé sur une algèbre cyclique à division d'indice n = 2 . Le corps K = Q(i), et son extension +1 L = Q(i, 0) , où 0 = 2 et 6 : x H x est tel que 6(9) = 0 =1û 0 , et a laisse les éléments de Q(i) invariants. L'élément y est égal à i. L'élément e est /0 1 j= avec j2 = i . On peut alors écrire : A = (Q(i, 0) l Q(i), a, i) = Q(i, 0) O+ jQ(i, 0) Un élément de A peut être représenté par une matrice sous la forme suivante : xi x2 ixx2 xi ' xl,x2 E Q[i3O] . D) Ordres et idéaux : Soit A une K-algèbre, et soit R l'anneau des entiers de K. Un idéal de A est un R-module à engendrement fini contenu dans A tel que KI = A , où : KI = xi K,xi E I,m E N i=i Un ordre O de A est un idéal qui est un sous-anneau de A avec le même 5 élément unitaire. Un ordre maximal est un ordre qui n'est contenu dans aucun autre ordre de A. E) Unité : Une unité d'un ordre O est un élément inversible U E O tel que son inverse U-1 par rapport à la multiplication � x � dans A appartient également à 10 l'ordre O. Par exemple, dans le cas du code d'or, un ordre maximal de A est : O = xl x2 ,xi,x2 E 7 [i3O] îx2 xi ax- 2 ax1 avec xi = si + s20 , x2 = s3 + s40 , et les symboles si, s2, s3, s4 E Z [i ] . 5.2 Description d'un mode de réalisation 20 A) Principe général L'invention concerne le décodage d'un signal reçu, transmis dans un système MIMO mettant en oeuvre au moins deux antennes d'émission et au moins deux antennes de réception. Avant émission, le signal a subi un codage espace/temps à l'aide d'un code construit à partir d'une algèbre sur un corps 25 commutatif K, encore appelé corps de base. Par exemple, le codage espace/temps algébrique mis en oeuvre en émission utilise une algèbre à division. Ainsi, les codes espace/temps utilisés peuvent être des codes parfaits, comme le code d'or, O peut s'écrire 0=7[i3O]C, [i3O]j. Le code d'or est une version normalisée avec constante de normalisation 15 égale à 1 / d'un idéal bilatère Oct = aO avec a =1 + iO . Chaque mot de code X généré de cette façon prend la forme suivante : 1 axl ax2 X= ou des codes quasi-parfaits. D'autres codes peuvent également être utilisés, du moment qu'ils sont construits à partir d'une algèbre sur un corps commutatif. Le principe général de l'invention repose sur la mise en oeuvre d'un prétraitement du signal reçu permettant de faciliter le décodage de ce signal. Plus précisément, le prétraitement mis en oeuvre permet de déterminer une approximation de la matrice représentative du canal de transmission, sous forme normalisée, à l'aide d'une matrice sélectionnée dans l'algèbre utilisée pour construire le code espace/temps. Par exemple, la matrice sélectionnée est une unité U d'un ordre quelconque ou d'un ordre maximal de l'algèbre, correspondant à l'ordre utilisé pour construire le code espace/temps, et l'approximation de la matrice de canal normalisée Hl correspond à cette unité pondérée par une erreur d'approximation E : Hl = EU . La matrice sélectionnée dans l'algèbre est notamment choisie de façon que l'erreur d'approximation E soit quasi-orthogonale. De cette façon, une partie de la matrice de canal normalisée (correspondant à la matrice U sélectionnée dans l'algèbre) est absorbée par le code algébrique, puisque la matrice U appartient à l'ordre de l'algèbre utilisé pour le code espace/temps, et donc UX est un mot de code. Le reste de la matrice de canal normalisée (correspondant à l'erreur d'approximation E) est une matrice quasi-orthogonale, définissant la base du réseau de points utilisé pour le décodage. On rappelle en effet que la représentation en réseaux de points des codes espace/temps permet leur décodage par des décodeurs de réseaux de points. On peut donc considérer que l'invention permet de réduire le réseau de points du système de transmission, en réception, puisque la base du réseau de points utilisé pour le décodage est construite à partir de la matrice E correspondant à l'erreur d'approximation, et non à partir de la matrice de canal. Cette réduction, effectuée en utilisant les propriétés de l'algèbre, permet ainsi d'accélérer le décodage du réseau de points. On présente désormais, en relation avec la figure 2, les principales étapes 30 mises en oeuvre pour le décodage du signal reçu Ynr Xt , avec nr 2 , émis par au moins deux antennes d'émission et ayant subi avant émission un codage espace/temps à l'aide d'un code construit à partir d'une algèbre sur un corps commutatif K. La technique selon l'invention peut notamment être mise en oeuvre dans le bloc de décodage spatio-temporel 15 de la figure 1. Plus précisément, au cours d'une première étape 21, le procédé selon l'invention met en oeuvre une étape de prétraitement du signal reçu YnrXt. Ce prétraitement à droite utilise, en réception, les outils algébriques pour déterminer une approximation de la matrice de canal normalisée. Plus précisément, l'étape de prétraitement du signal reçu comprend les sous-étapes suivantes : ù détermination d'une matrice H représentative du canal de transmission ; - normalisation de la matrice représentative du canal de transmission et du signal reçu, délivrant respectivement une matrice de canal normalisée Hl et un signal reçu normalisé Yl ; approximation de ladite matrice de canal normalisée, à partir d'une matrice (U) sélectionnée dans ladite algèbre et présentant un déterminant égal à 1. On approxime de cette façon la matrice de canal normalisée par une matrice de l'algèbre du code espace/temps de déterminant égal à 1. Une grande partie de la matrice de canal normalisée (et donc du canal de transmission) peut alors être absorbée par le code espace/temps algébrique. Au cours d'une deuxième étape 22, on applique un décodage espace/temps au signal reçu normalisé, à l'aide de l'approximation de la matrice de canal normalisée. Cette étape de décodage espace/temps permet d'estimer le vecteur de symboles d'information du signal émis, noté s . On note par ailleurs que le procédé selon l'invention peut être mis en oeuvre de diverses manières, notamment sous forme câblée ou sous forme logicielle. B) Description détaillée On décrit ci-après plus en détail la mise en oeuvre de l'étape de prétraitement du signal reçu. On utilise pour ce faire l'algèbre du code espace/temps utilisé en émission, et, par exemple, les unités d'un ordre de cette algèbre. En se référant de nouveau à la figure 1, on propose selon l'invention d'approximer la matrice de canal H, après normalisation, par un élément d'un ordre de l'algèbre. De cette façon, on peut considérer qu'une partie du canal est absorbée par le code. Le signal reçu s'exprime : Ynrxt = HnrxntXntxt +Wnrxt avec : X le signal émis sur les nt antennes d'émission ; H la matrice représentative du canal de transmission ; W la matrice représentative d'un bruit additif blanc gaussien ; et t la longueur temporelle du code espace/temps. On considère par exemple que le mot de code X appartient à une algèbre à division. En d'autres termes, le code espace/temps considéré est un sous-ensemble de 0a, avec O un ordre de l'algèbre. Par exemple, un tel code est un code Parfait, tel que décrit dans le document � Perfect space-time codes for any number of antennas � (P. Elia et al., IEEE Transactions on information theory, vol. 53, n°11, novembre 2007). On considère le cas nt = nr = t . On omet donc les indices dans les équations suivantes. On considère selon le modèle de transmission que la matrice représentative du canal de transmission H a un déterminant différent de zéro avec une probabilité égale à 1. Après normalisation du système de transmission, on peut donc écrire : Hl = (det(H))lin H , avec Hl E SLn((C) . Le signal reçu normalisé Yl peut alors s'écrire : Yl = H1X +Wl = (det(H)) 1/n HX +Wl et on cherche à approximer la matrice de canal normalisée Hl à partir d'une 30 matrice de l'ordre de l'algèbre utilisé pour construire le code espace/temps. C) Approximation parfaite On suppose tout d'abord que l'on peut sélectionner une matrice U dans l'ordre O de l'algèbre présentant un déterminant égal à 1, telle que Hl =U . Ce cas correspond à une approximation parfaite de la matrice de canal normalisée. Le signal reçu normalisé peut alors s'écrire : Yl=UX+W1 où UX est toujours un mot de code. U est une unité de l'ordre O de l'algèbre. En d'autres termes, puisque U est une unité de l'ordre O de l'algèbre, alors U est inversible en O, et on a : {UX XEOa}=Oa. On vectorise alors le signal reçu normalisé, exprimé en fonction de l'approximation de la matrice de canal normalisée. Pour ce faire, on applique une fonction � permettant de transformer des 2 matrices sous forme vectorielle. Par exemple, pour � : Mn (C) CCn , on a : ml1 min (mii,...,mni,m12,...,mn2,...min,... Vmnl ... mnn Après vectorisation, le signal reçu normalisé, sous forme vectorielle, peut s'écrire sous la forme suivante : yl = hlOs + wl = Ulis + wl où : y1 = �(Y1) w1= 4(Wl) Os= O(X) ; UL est la transformation linéaire correspondant à une multiplication à gauche par l'unité U ; 1 est une matrice génératrice du code, encore appelée matrice de codage espace/temps ; s est un vecteur de symboles d'information qui peuvent être par exemple issus d'une modulation d'amplitude en quadrature (QAM). Plus précisément, la matrice 1 génératrice du code est une matrice dont les colonnes sont les vecteurs wi, pour i allant de 1 à n2 , qui forment une base du réseau de points de dimension complexe n2 . 1 Par exemple, on considère {w1,..., WnJ 2 } une base de Oa . Chaque mot de code X peut s'écrire dans cette base : n2 t 2 X = Isiwi avec s = (si,...,sn2 ) ERn i=1 avec R l'anneau des entiers du corps de base K, et la matrice génératrice cl) est formée des colonnes suivantes : O(wl),...,O(wn2) Le mot de code X vectorisé peut alors s'exprimer sous la forme suivante : n 2 x = O(X) = siO(wi) = ts i=1 De plus, comme U est une unité de O, on a Uic = (I)Tu , avec Tu une matrice unimodulaire, c'est-à-dire une matrice à éléments dans l'anneau des entiers R du corps de base K, et dont le déterminant est inversible dans l'anneau des entiers R. En effet, comme U est une unité de O, {Uwi,. . .,Uw 2 { est encore une n base de Oa. Le mot de code X peut s'écrire dans cette nouvelle base: n2 t 2 X = I s ' i (Uwi) avec s' = (s'1,..., s' 2) ERn n i=1 Sous forme vectorisée, ce mot de code peut également s'écrire : n2 n2 n2 O(X) = O(Uwi) = U, O(wi) = 0(wi) = U1cbs' i=1 i=1 i=1 On a donc (tes = Ulis' . La matrice Tu = -1UId3 est la matrice de changement de base entre les bases {w1,..., W 2 { et {Uwi,. . ., Uw 2 1. En particulier, puisque Tu envoie n chaque vecteur à coordonnées dans R dans un autre vecteur à coordonnées dans R, et det(Tu) = det(Ui) = det(U)2 = 1, Tu est unimodulaire. En revenant à l'expression du signal reçu normalisé sous forme vectorielle, on a: y1 =UI(Ds+w1 =cTus+w1 =fis'+w1 où Tus = s' est toujours un signal dans R. Le signal reçu normalisé, sous forme vectorielle, peut donc s'exprimer sous la forme suivante : y1 = fis'+ w1 Le vecteur de symboles estimés peut alors s'écrire sous la forme suivante, où [ ] dénote une décision dure, utilisée dans le cas d'un décodeur de type ZF ou ZF-DFE par exemple : s' = [(D-1y1 = [s'+ (I)-1w11= [s '+ (det(H))1/n (D-1w] L'estimation du vecteur de symboles d'information , est alors obtenue en multipliant le vecteur de symboles estimés par l'inverse de la matrice Tu (soit ) s = Tu-1s Dans le cas où l'on considère que la matrice de canal normalisée est parfaitement égale à une unité, et si la matrice génératrice du code cl) est une matrice unitaire, comme c'est le cas pour un code Parfait par exemple, comme le code d'or, on peut décoder le signal reçu normalisé en utilisant une technique de type ZF, qui présente des performances optimales au sens ML. L'estimation du vecteur de symboles est alors effectuée en prenant la partie entière composante par composante, et ne nécessite pas la mise en oeuvre d'un décodeur de réseau de points. D) Approximation imparfaite S'il n'existe pas de matrice U dans l'ordre de l'algèbre égale à la matrice de canal normalisée H1, on approxime la matrice de canal normalisée par une matrice U sélectionnée dans l'ordre de l'algèbre, pondérée par une erreur d'approximation E, telle que H1 = EU , avec le déterminant de U égal à 1. En reprenant les étapes précédentes, on obtient alors : y1 = EZUI(Ds + w1 = EIcDTus + w1 = Elts'+ w1 avec El la transformation linéaire correspondant à la multiplication à gauche par 17 l'erreur d'approximation E. Le vecteur de symboles estimés peut alors s'écrire sous la forme suivante, où [ ] dénote une décision dure : s' = ~~-lEl-lyl = [s '+ (det(H))l'n -lEl-1w] = [s' + n] L'estimation du vecteur de symboles d'information , est alors obtenue en multipliant le vecteur de symboles estimés par l'inverse de la matrice Tu (soit Tuù1(') ) s = Tvùis~ E) Choix de l'unité U pour optimiser le décodage ZF Afin d'obtenir un décodage quasi-optimal en utilisant une technique de décodage de type ZF, il est souhaitable d'avoir une erreur d'approximation E quasi-orthogonale. Il est donc souhaitable de choisir une unité U de façon à obtenir une erreur d'approximation E = H1U-1 quasi-orthogonale. Pour ce faire, le critère à respecter est par exemple de choisir l'unité U qui minimise l'erreur quadratique moyenne. Par exemple, on se place dans un contexte MIMO comprenant n antennes d'émission et n antennes de réception, mettant en oeuvre un code espace/temps par bloc, sur un canal quasi-statique, dans lequel H = det(H)l/n Hi , et on cherche à minimiser la norme de Frobenius E 2 F 2 F E1 U = arg min UEo det(U)=1 UHl-1 2 F Ce critère revient à minimiser la trace de la matrice de covariance du bruit n(s'=[s'+n]): H H Cov(n) = Cov 1 -lE1-iw = 1-lE~-iCov(w)(E~-1) (1) det(H)l/n det(H) Cov(n) = No -1E1-1(El-1)H (.13-1)H det(H) No 2 N 2 2N0 2 tr(Cov(n)) = -lE~-i = o El-i = o E-i det(H) F det(H) F det(H) F On rappelle que le critère présenté ci-dessus s'applique dans le cas où la matrice 1 génératrice du code est unitaire. Bien entendu, cette matrice n'est pas nécessairement unitaire, et d'autres critères peuvent être utilisés, selon la forme de la matrice 1 génératrice du code et/ou la technique de décodage utilisée (ZF, ZF- DFE, MMSE, MMSE-DFE, décodage par sphères, décodage à pile, ...). 5.3 Application au code d'or (� Golden Code �) On présente ci-après l'application de la solution de l'invention au code d'or. Le code d'or est notamment décrit dans le document � The Golden Code : A 2 x 2 Full-Rate Space-Time Code With Nonvanishing Determinants � (Jean-Claude Belfiore et al., IEEE Transactions on information theory, Vol. 51, No 4, avril 2005). Par exemple, on se place dans le contexte d'une algèbre à division, utilisée pour construire un code espace/temps de la forme 0a, avec a un élément de l'algèbre et O un ordre maximal de l'algèbre. On note que certains codes parfaits autres que les codes d'or, ne sont pas nécessairement construits à partir d'un ordre maximal. Du fait des propriétés de l'algèbre, chaque unité de l'ordre O peut s'écrire comme un produit fini d'un nombre fini de générateurs du groupe des unités et de leurs inverses. Par exemple, les générateurs sont au nombre de huit pour le code d'or. Le nombre minimal de générateurs dépend de l'algèbre choisie. Comme déjà indiqué, le prétraitement algébrique selon l'invention consiste à approximer la matrice du canal normalisée Hl à l'aide d'une unité U de l'ordre O de l'algèbre utilisé pour construire le code espace/temps, pondérée par une erreur d'approximation E. On présente ci-après un exemple d'algorithme pouvant être mis en oeuvre pour la recherche d'unités U, dans le cas où nt = n,, = 2 . Comme indiqué précédemment, pour un décodage de type ZF, le critère pour le choix de l'unité U qui approxime la matrice de canal normalisée Hl est le 30 suivant : on cherche l'unité U telle que la norme de Frobenius de l'erreur d'approximation E = H1U-1 soit minimisée. Dans le cas nt = n,, = 2, quelque soit le code algébrique utilisé, on peut mettre en oeuvre une réalisation de l'algorithme de recherche des unités qui exploite l'action du groupe des unités de norme 1 de l'ordre O sur l'espace hyperbolique H3. Plus précisément, on définit l'espace hyperbolique H3 comme l'ensemble des points {(x, y, z ) , x, y, z E III, z > 01. La distance hyperbolique p(P1, P2) entre deux points P1 = (x1, Yi , z1) et P2 = (x2, y2, z2) est donnée par l'équation suivante : 1+ (x1 ùx2)2 +(yl ùy2)2 +(z1 ùz2)2 \ 2z1z2 15 où x* dénote le conjugué complexe de x. Soit Hl la matrice du canal normalisée, et soient Ui,...,Ur un ensemble minimal de générateurs pour le groupe des unités de norme 1 de l'ordre O. Un tel ensemble de générateurs se calcule par exemple en utilisant l'algorithme de Swan tel que décrit dans le document � Presentations of the unit group of an order in a 20 non-split quaternion algebra � (G. Corrales et al., Advances in mathematics, 186 n.2 (2004) 498-524). Les huit générateurs du groupe des unités dans le cas du code d'or sont par exemple : p(P1,P2)=arccosh On considère le point de base J = (0,0,1) dans l'espace hyperbolique H3. Soit B une matrice 2 x 2 complexe telle que det(B) = 1 : /a b\ B d~ . On définit le point B(J) dans l'espace hyperbolique H3: c i 9 (bd * +ac*) 3(bd * +ac*) 1 c2+ d2 c2+ d2 c2+ d2 B(J) _ (1) U1 = 25 U4 = , U3 = /ie 0 1+i `0 i01 `iû1 a l , U2 = 0 -1- 1+i 1+ , U6 = + 1 0 ' US ~i(1 + i9) U, _ 1ùi e+i / 1ùi e+i ' U i(e+i) 1-i, 8 i(O+i) 1-i) On note Ur+1 = Ul 1 , 21 U2r = (17 71 les inverses de ces r = 8 générateurs : U9 = U11, Ulo = U21, ..., U16 = U8-1. Ces générateurs diffèrent d'un code algébrique à un autre. On cherche selon cet algorithme à déterminer l'unité U de l'ordre de l'algèbre permettant d'approximer la matrice de canal normalisée H1, connaissant la matrice de canal normalisée H1. On considère que les points U1(J),...,Ur(J),Ur+1(J),...,U2r(J), calculés selon l'équation (1), sont mémorisés dans une mémoire. On note Ui(J) _ (xi,yi,zi) Soient H, U et io des variables. Pour initialiser l'algorithme, on pose : H=H1 /1 0 U= ~0 io = 0 On réitère ensuite les étapes suivantes : 1. Calculer H (J) = (x, y, z) en utilisant l'équation (1) ; 2. Pour i = 1,1,...,2r, calculer : --1 (x - xi)2 + (y - yi)2 + (z - zi)2 di = 2cosh p(H (J),Ui(J)) =1+ 2zzi et do=2cosh~p(H 1(J),J=1+x2+y2+(zù1)2 2z 3. Choisir io = arg min di. Si plusieurs indices atteignent le minimum, on iE{o,...,2r} choisit le plus petit. 4. Mettre à jour U et H , tels que : U - UUio , H - HUio . 5. Si io ≠ 0 , on retourne à l'étape 1. Sinon, si io = 0 alors l'unité U cherchée est égale à u 1 (U = U 1), et l'algorithme est interrompu. On sélectionne ainsi, selon cet exemple, une unité U de l'algèbre pouvant être utilisée pour approximer la matrice de canal normalisée Hl, et telle que la matrice d'erreur d'approximation E soit quasi-orthogonale. En utilisant une technique de décodage de type ZF après la réduction algébrique décrite précédemment, on obtient seulement 3dB de perte par rapport 5 aux performances obtenues avec un décodeur optimal au sens ML. Il est donc possible, selon l'invention, de simplifier le décodage d'un signal reçu dans un système multi-antennaires en utilisant une technique de décodage dite sous-optimale, tout en obtenant de bonnes performances. En particulier, on peut noter que dans le cas d'un canal peu variable en 10 temps, un simple ajustement de l'approximation est nécessaire aux différents instants de transmission (� time block �), et il n'est pas nécessaire de refaire une nouvelle approximation. La figure 3 illustre les performances de l'invention en taux d'erreur par mot (FER) en fonction du rapport signal à bruit (SNR) en dB. 15 Plus précisément : la courbe ML illustre les performances d'un décodeur classique mettant en oeuvre une technique de décodage optimale au sens ML ; la courbe MMSE-GDFE + LLL + ZF illustre les performances d'un décodeur classique mettant en oeuvre une technique de décodage sous- 20 optimale de type ZF et un prétraitement à droite de type LLL (� Lenstra Lenstra Lovasz �), et un prétraitement à gauche de type MMSE-GDFE ; la courbe MMSE-GDFE + LLL + ZF-DFE illustre les performances d'un décodeur classique mettant en oeuvre une technique de décodage 25 sous-optimale de type ZF-DFE et un prétraitement à droite de type LLL (� Lenstra Lenstra Lovasz �), et un prétraitement à gauche de type MMSE-GDFE ; la courbe MMSE-GDFE + AR + ZF illustre les performances d'un décodeur selon l'invention mettant en oeuvre une technique de 30 décodage sous-optimale de type ZF et un prétraitement à droite de type réduction algébrique selon l'invention, et un prétraitement à gauche de type MMSE-GDFE ; la courbe MMSE-GDFE + AR + ZF-DFE illustre les performances d'un décodeur selon l'invention mettant en oeuvre une technique de décodage sous-optimale de type ZF-DFE et un prétraitement à droite de type réduction algébrique selon l'invention, et un prétraitement à gauche de type MMSE-GDFE . 5.4 Structure du dispositif de décodage On présente finalement, en relation avec la figure 4, la structure simplifiée 10 d'un dispositif de décodage selon un mode de réalisation particulier de l'invention. Un tel dispositif comprend une mémoire 41 constituée d'une mémoire tampon, une unité de traitement 42, équipée par exemple d'un microprocesseur �P, et pilotée par le programme d'ordinateur 43, mettant en oeuvre le procédé de 15 décodage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur 43 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 42. L'unité de traitement 42 reçoit en entrée un signal, reçu sur au moins deux antennes de réception, et ayant subi avant émission 20 un codage espace/temps algébrique. Le microprocesseur de l'unité de traitement 42 met en oeuvre les étapes du procédé de décodage décrit précédemment, selon les instructions du programme d'ordinateur 43, pour décoder le signal reçu. Pour cela, le dispositif de décodage comprend, outre la mémoire tampon 41, des moyens de prétraitement du signal reçu, permettant de déterminer une 25 approximation de la matrice de canal normalisée à partir d'une matrice sélectionnée dans l'algèbre utilisée pour construire le code espace/temps, et des moyens de décodage espace/temps du signal reçu normalisé, à l'aide de l'approximation de la matrice de canal normalisée. Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 42. 30 L'unité de traitement 42 délivre donc en sortie un ou plusieurs vecteurs de symboles estimés, correspondant à une estimation du signal émis sur au moins deux antennes d'émission. Un tel décodeur trouve notamment des applications dans des systèmes MIMO pour des applications de type Wifi (IEEE 802.11n), WiMax mobile (IEEE 5 802.16e), WiMax coopératif (IEE 802.16j), 3GPP-LTE, etc. REVENDICATIONS1. Procédé de décodage d'un signal reçu sur au moins deux antennes de réception, ledit signal ayant subi avant émission un codage espace/temps à l'aide d'un code 5 construit à partir d'une algèbre sur un corps commutatif K et étant émis sur au moins deux antennes d'émission, caractérisé en ce qu'il met en oeuvre : une étape de prétraitement (21) dudit signal reçu (Y) comprenant les sous-étapes suivantes : 10 o détermination d'une matrice représentative du canal de transmission (H) ; o normalisation de ladite matrice représentative du canal de transmission et dudit signal reçu, délivrant respectivement une matrice de canal normalisée (HI) et un signal reçu normalisé (YI) ; 15 o approximation de ladite matrice de canal normalisée, à partir d'une matrice (U) sélectionnée dans ladite algèbre et présentant un déterminant égal à 1 ; une étape de décodage espace/temps (22) dudit signal reçu normalisé (Y1), à l'aide de l'approximation de ladite matrice de canal normalisée. 20 2. Procédé de décodage selon la revendication 1, caractérisé en ce que ladite matrice sélectionnée est une unité U d'un ordre de ladite algèbre, et en ce que ladite étape d'approximation pondère ladite unité par une erreur d'approximation E, telle que : H1=EU. 25 3. Procédé de décodage selon la revendication 2, caractérisé en ce que ledit ordre est un ordre maximal de ladite algèbre. 4. Procédé de décodage selon l'une quelconque des revendications 2 et 3, caractérisé en ce que ladite étape d'approximation sélectionne l'unité U de façon que ladite erreur d'approximation E soit quasi-orthogonale. 30 5. Procédé de décodage selon l'une quelconque des revendications 2 à 4,caractérisé en ce que, ledit signal normalisé s'écrivant sous la forme Y1 = H1X + Wl avec X un mot de code émis et Wl un bruit blanc additif gaussien normalisé, ledit signal normalisé, après approximation de ladite matrice de canal normalisée, s'exprime sous la forme suivante: Y1 =EUX+W1 avec UX un mot de code. 6. Procédé de décodage selon l'une quelconque des revendications 2 à 5, caractérisé en ce qu'il comprend une étape de transformation dudit signal reçu normalisé Y1 sous forme vectorielle, telle que : yl = h1cs + wl avec : y1 le signal reçu normalisé sous forme vectorielle ; h1 la matrice de canal normalisée sous forme vectorielle ; s un vecteur de symboles d'information ; 15 cl) une matrice de codage espace/temps ; w1 un bruit blanc additif gaussien sous forme vectorielle. 7. Procédé de décodage selon la revendication 6, caractérisé en ce que ladite matrice de canal normalisée, sous forme vectorielle, multipliée par la matrice de codage espace/temps est égale à : 20 h19 = EZUIcl) = El (I)Tu avec : El une transformation linéaire correspondant à une multiplication à gauche par ladite erreur d'approximation E ; UL une transformation linéaire correspondant à une multiplication à 25 gauche par ladite unité U ; T u une matrice unimodulaire ; et en ce que ledit signal reçu normalisé Y1, sous forme vectorielle, est égal à : Y1 = Ei TUs + w1 = El(Ds' + w1 avec s' un vecteur de symboles. 30 8. Procédé de décodage selon l'une quelconque des revendications 1 à 7, 10caractérisé en ce que ledit code espace/temps est construit à partir d'une algèbre à division. 9. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour la mise en oeuvre des étapes du procédé de décodage selon l'une au moins des revendications 1 à 8, lorsque ledit programme est exécuté sur un ordinateur. 10. Dispositif de décodage d'un signal reçu sur au moins deux antennes de réception, ledit signal ayant subi avant émission un codage espace/temps à l'aide d'un code construit à partir d'une algèbre sur un corps commutatif K et étant émis sur au moins deux antennes d'émission, caractérisé en ce qu'il comprend : ù des moyens de prétraitement (21) dudit signal reçu comprenant : o des moyens de détermination d'une matrice représentative du canal de transmission ; o des moyens de normalisation de ladite matrice représentative du canal de transmission et dudit signal reçu, délivrant respectivement une matrice de canal normalisée (Hl) et un signal reçu normalisé (Yi) ; o des moyens d'approximation de ladite matrice de canal normalisée, à partir d'une matrice (U) sélectionnée dans ladite algèbre et présentant un déterminant égal à 1 ; ù des moyens de décodage espace/temps (22) dudit signal reçu normalisé, à l'aide de l'approximation de ladite matrice de canal normalisée.