FR 2901434 A1 20071123 FR 0604429 A 20060517 utilisant plusieurs antennes en émission et en réception, a permis l'exploitation d'une nouvelle forme de diversité : la diversité d'antennes en émission. Le codage Spatio-Temporel n'est pas la seule technique ayant recours à plusieurs antennes en émission et en réception : ces techniques sont regroupées sous la dénomination MIMO (Multiple Input Multiple Output). Le recours au codage Spatio-Temporel sur plusieurs antennes améliore considérablement les performances (grâce à la diversité) et le débit d'information (grâce au multiplexage) des systèmes de télécommunications dans un milieu présentant des évanouissements ( fading channe/ ). io Parmi l'ensemble des codes Spatio-Temporels cohérents (c'est-à-dire que le récepteur dispose d'une connaissance parfaite ou au moins d'une estimation des coefficients de canaux) utilisant deux antennes en émission connus à l'heure actuelle, l'un des plus performants est le Go/den Code tel que décrit dans le document : J. C. Belfiore, G. Rekaya et E. Viterbo, The 15 Golden Code: A 2x2 Full-Rate Space-Time Code with Non-Vanishing Determinants," IEEE Trans. Inform. Theory (Avril 2005). En effet, le Go/den Code est un code à diversité maximale (la diversité d'émission est de 2) et à multiplexage maximale (2 symboles par utilisation canal). De plus, il présente l'un des gains de codage les plus élevés (quelque soit la constellation 20 utilisée). De plus, il a été démontré récemment que le Go/den Code peut être utilisé sur un Amplify and Forward Relay Channel avec un relais et une antenne et qu'il permet de tirer parti de la diversité de collaboration. Le Golden Code ne présente d'excellentes performances que pour un décodage au Maximum de Vraisemblance. Comme pour de nombreux codes 25 Spatio-Temporels (les codes linéaires), le décodage au Maximum de Vraisemblance du Golden Code se ramène à la recherche au sein d'une région (la région de shaping) d'un lattice (de dimension 8 pour le Golden Code), lattice qui change suivant les coefficients de canaux, du point le plus proche du point reçu. Pour ce faire des algorithmes de recherche du point le plus 30 proche au sein d'un lattice ont été adaptés au décodage de codes Spatio-Temporels : le Sphere Decoder et l'énumération de Schnorr-Euchner. Ces algorithmes nécessitent un nombre fortement variable d'itérations et se prêtent donc difficilement à une implémentation matérielle fonctionnant en temps réel. Des accélérations de ces algorithmes grâce à des prétraitements, 35 en particulier des réductions de base de type LLL, ont déjà été étudiées. -3Etant donnée la complexité du décodage au Maximum de Vraisemblance, des algorithmes sous-optimaux de décodage de codes Spatio-Temporels ont été développés. Certains de ces algorithmes émanent de l'égalisation et de l'annulation d'interférences : c'est le cas des algorithmes ZF (Zero Forcing), MMSE (Minimum Mean Square Error), ZF-DFE (Decision Feedback Equalizer) décrit dans : J. Foschini, G. Golden, R. Valenzuela et P. Wolniansky, Simplified processing for high spectral efficiency wireless communication employing multi-element arrays , IEEE Journal on Selected Areas Communications, vol. 17, p 1841-1852, Novembre 1999, de io l'algorithme de décodage du V-BLAST. Cependant, ces décodeurs ne permettent pas de tirer parti ni de la diversité d'émission ni de la diversité de réception. Récemment, des algorithmes sous optimaux à faible complexité ont été proposés. Ils utilisent les algorithmes MMSE ou ZF combinés avec une 15 réduction de base LLL. Grâce au LLL, ces algorithmes permettent l'exploitation de l'intégralité de la diversité, ce qui n'est pas le cas en l'absence de ce prétraitement. Dans le document : A. D. Murugan, H. El Gamal, M. O. Damen et G. Caire, A Unified Framework for Tree Search Decoding : Rediscovering the Sequential Decoder , IEEE Transactions on 20 Information Theory, vol. 52, no. 5, Mai 2006, il a été démontré l'intérêt d'utiliser le filtrage MMSE-GDFE comme prétraitement pour pouvoir effectuer un décodage dans le lattice sans tenir compte de la contrainte de shaping et exploiter les algorithmes de réduction tels que le LLL. De plus, un formalisme général de recherche au sein d'un arbre a été proposé, 25 permettant ainsi de décrire toutes les techniques issues du décodage au sein d'un lattice et d'introduire des techniques de décodage séquentiel. Cependant, même cette dernière technique ne permet pas d'optimiser les avantages du Golden Code. Un but de la présente invention est de proposer un nouveau décodeur 30 tirant parti de la diversité d'un Golden code. Un autre but de l'invention est de concevoir un décodeur spatio-temporel temps réel. On atteint a moins l'un des objectifs précités avec un procédé de décodage d'un vecteur Y de codes spatio-temporels 2x2, notamment de type Golden Code, caractérisé en ce qu'il comprend les étapes suivantes : - 4- - on réalise un filtrage de type MMSE-GDFE de façon à obtenir un vecteur YF=RX + W , avec yF le vecteur Y filtré au moyen d'une matrice de filtre F ( forward filter ), R une matrice conventionnelle nommée backward filter , X le vecteur émis et W la matrice bruit complexe, - on réalise un recentrage de constellation de sorte que le vecteur à déterminer devient Z tel que Z=YF-2KMRFS0=2KMRFS+W , KM étant la constante de normalisation de la constellation considérée, F étant le Golden Code, et S le vecteur des symboles d'information, - on réalise une étape de permutation des éléments des matrices Z, R io et F de façon à obtenir2, R et Î' tels que R "R est une matrice en forme de X, et on déplace le nombre complexe i de F vers R, et - on réalise une étape de réduction de base de lattice telle que 2= 2Kä `Î'hS'+ïV avec y = R.Da(xl, x2, x3, x4 ) et S'=fla'(X',X2,X3,X4).S, fla(x',x2,x3,x4)étant une matrice de changement de base, fla(x',x2,x3,x4)est 15 la matrice associée à A,(xl, x2, )3, x4) qui est une matrice dont le module de déterminant est égale à 1 et définie telle que & HAU est une matrice en forme de X, - on applique l'algorithme de décodage ZF-DFE dans lequel on identifie parmi les quatre éléments de 2, deux couches ou layers , chaque couche 20 comprenant les deux éléments de la diagonale ou l'anti-diagonale de 2 ; on applique l'algorithme DFE couche par couche, et on applique l'algorithme ZF au sein de chacune des couches. Les algorithmes de décodage de l'art antérieur présentant des performances comparables au Maximum de Vraisemblance traitent le 25 décodage du Golden Code comme celui d'un lattice quelconque de dimension 8. Ils ne prennent pas en compte deux spécificités de sa structure : sa construction en 2 layers et la structure algébrique de chacun de ces deux layers. La présente invention propose d'effectuer un décodage layer par layer (à la méthode d'un DFE), ramenant le problème à une dimension 2. Le 30 décodage au sein de chaque layer s'effectue par une technique simple de ZF après une réduction algébrique. Une telle technique de décodage en layers présente l'avantage de manipuler à chaque étape des matrices 2x2 diagonales ou connues à l'avance. Pour obtenir des performances proches du Maximum de Vraisemblance, on effectue avantageusement une réduction capable de combiner les deux /ayers avant de les décoder un par un. Les techniques de réductions classiques (LLL ou Korkhine-Zolotareff par exemple) détruisent la structure en layers. C'est pourquoi, une nouvelle forme de réduction, baptisée réduction algébrique, peut être utilisée. Selon une caractéristique avantageuse de l'invention, la permutation de Z est la suivante z1,1 Z22 z12 z1,1 z 2,1 Z1,2 Z= avec la convention suivante Z = Dans cette permutation, la première couche ou layer est constituée par le premier et le dernier éléments de Z. La seconde layer est constituée lo par le second et le troisième éléments de Z. Avantageusement, k est une matrice en forme de X telle que : rt1 0 R= 0 r1 2,1 0 0 1112 2 2 r2 2 r2, 0 2 2 r1,2 r,.1 0 0 0 i.r2,2_ a a8 0 0 j a aB 0 0 et F= j 0 0 a a 0 0 a a0 , a et 0 étant des coefficients de Golden Code tels que : e = -1+2 , e = 1 2 , a =1 + i ù 1.0 , 15 Cl =1+1-1.0 De préférence : x1 0 0 ùx4 â 0 x1 a x-4 0 A q(x1,x2,x3,x4) a 0 x3 0 a -2 -- X a 3 0 0 X a 2 X a et - 1 4 4 4 X1 X2 X1 X1 - X2 X2 XI +X2 X2 -X4 X2 + X2 X2 +2.X2 X3 +X3 -X3 2 2 2 3 3 - X2 - X1 - X2 -- X2 X1 où Vj 1 0 E(.) l'espérance. On va maintenant décrire le principe du Golden Code. Pour une constellation M2 QAM, le Golden Code (noté rM) est 30 l'ensemble fini des matrices 2x2 à coefficients complexes défini comme suit : avec a,b,c,d e M2QAM 1 a.(a + b.0) a rM = 5 i.a.(c + d.0) a 1+ J5 -- 1--\, 5 OùO= 2 , 0= 2 , a=1+i-i.0, a=1+i-i.0 - 8- et M2QAM jr M((2.k+1ùM)+i.(2.n+1ùM)) où KM = - -- =est la constante de normalisation de la M2 QAM. 1/2.(M2 -1)/3 Dans le contexte du MIMO, la notation matricielle s'interprète de la manière suivante : si on émet un mot X du Golden Code (X E rM), cela signifie que : x11 est émis par l'antenne i=1 à l'instant t=1. - x1,2 est émis par l'antenne i=1 à l'instant t=2. - x2,1 est émis par l'antenne i=2 à l'instant t=1. - x2,2 est émis par l'antenne i=2 à l'instant t=2. lo En considérant rM dans R8 (ou C4), le Golden Code peut être vu comme une portion d'un lattice de dimension 8 (ou de dimension 4 complexe) décentrée et délimitée par une région de shaping. Pour ce faire, il suffit de réécrire rM de la manière suivante : 2.KM a.(s, +s2.e) a.(s3 +s4.6) +KM.(1+i).(1ùM) a.(1+6) a.(1+6) i.a.(s3 +s4.e) a.(s, +s2.6) i.â(1+6) â.(1+6) avec (s,,s2,s3,s4) E Z[il4 nQM où QM = [0;Mù1]+i.[0;Mù1] Par la suite, le vecteur des symboles d'information est noté S=(s,,s2,s3,s4)T. Il est évident que la détermination du mot du Golden Code émis est équivalente à la détermination du vecteur S de Z[i]4 dans la région 20 de shaping QMa Avantageusement, un mot du Golden Code est constitué de deux la yers : le couple (x1,1, x2,2) forme le layer 1, qui ne dépend que du couple (s1 , s2) 25 - le couple (X1,2, x2,1) forme le layer 2, qui ne dépend que du couple (S3, s4) ; On reprend ci-dessous le critère idéaliste de décodage au Maximum de Vraisemblance Considérons le cas d'un récepteur possédant N antennes de réception 30 (N 2). Dans le cas d'un canal MIMO Flat Fading (qui est éventuellement différent entre l'instant 1 et l'instant 2), si l'on suppose qu'un mot du Go/den (k,n)E {0,...,Mû1{2} 15 Code X a été émis, les signaux reçus yj,t par l'antenne j (1 j N) à l'instant t (1 5 t 2) peuvent s'écrire sous la forme : y), + h; 2x2 t + b; t (Équation 1) où h~ désigne le coefficient de canal entre l'antenne d'émission i et 5 l'antenne de réception j à l'instant t et bit le bruit complexe sur l'antenne de réception j à l'instant t. Le bruit complexe est supposé Gaussien centré circulairement symétrique de variance No (la partie réelle et la partie imaginaire ont pour variance No/2) et indépendant suivant l'espace (suivant j) et le temps (suivant t) c'est-à-dire : 10 E(bobj,,t. ) = Nobt.râJ,J, où btt, désigne le symbole de Kronecker entre t et t'. Les coefficients de canaux et la variance du bruit sont supposés connus du récepteur. L'équation (1) peut être réécrite sous forme matricielle : Y1,1 hl hO 0 b1,1 1,1 1,2 _ _ x11 YN,l hN,1 hNl. 2 0 0 x2,1 bN,1 15 + Y1,2 0 0 h12 .1 ''2 x1.2 b1,2 1,2 x22 2 2 YN,2 0 O ''N,1 hN 2 bN,2 Y H B Or, étant donné que X E rM, il existe S E Z[i]4 n QM tel que: = 2.KM .(S + So ) 1 - r (1 + i).(1- M) 2 Ainsi, on a 20 Y = 2.KM.H.r.(S + So) + B D' où : avec So = - 10-Y'= Y û 2.KM.H.r.So = 2.KMH.r.S + B Il est aisé de démontrer que le décodage Maximum de Vraisemblance consiste à décider, connaissant Y' et les coefficients de canaux, que le vecteur émis est le vecteur défini par : S==Arg 2 Min ~SEZ[i]4fQr44 Y'ûA.S avec A = 2.KM.H.r Le décodage au Maximum de Vraisemblance consiste à trouver le point du lattice de dimension 8 réelle (dimension 4 complexe), généré par les colonnes de A, le plus proche de Y', sous la contrainte que les coordonnées de i0 ce point appartiennent à la région de shaping (QM ). A condition que la matrice A soit de rang 8 réel (ou rang 4 complexe), un décodage au Maximum de Vraisemblance est réalisable par l'algorithme de Sphere Decoder ou par l'algorithme d'énumération de Schnorr-Euchner tous deux dûment modifiés pour intégrer la contrainte de shaping . 15 Selon la présente invention, la première étape est l'application d'un filtre MMSE-GDFE. La technique de filtrage MMSE-GDFE est une technique de prétraitement couramment utilisée dans le domaine du décodage de codes Spatio-Temporels. Il a été démontré que le filtrage MMSE-GDFE permet de 20 s'affranchir de la contrainte de shaping, sans détériorer significativement les performances. De plus, ce filtrage permet de garantir que la matrice de canal virtuelle est de rang plein. En transformant le problème du décodage en celui d'une recherche au sein d'un lattice du point le plus proche d'un point reçu, le filtrage MMSE-GDFE permet de tirer profit des techniques de réduction de 25 base d'un lattice. Etant donné que la matrice 1 du Golden Code est une matrice unitaire, la matrice de filtrage MMSE-GDFE peut être déterminée exclusivement grâce à H et à No (tous deux supposés connus du récepteur). La matrice de filtre MMSE-GDFE, notée F ( forward filter ) de la 30 matrice H est la matrice complexe 4x2.N définie par : F = (R") 'H" , R est le filtre de retour : backward filter , - 11- où (RH)-' RH) ' 0 1 0 (RH )_1 2avec R1 (resp. R2) matrice complexe triangulaire supérieure 2x2 (dont les termes de la diagonale sont réels positifs) obtenue par décomposition de Cholesky de H'HH' + N012 (resp. H2HH2 + N012 ). s D'une façon générale, le décodage dans un lattice après filtrage MMSEGDFE se définit de la manière suivante. Le vecteur des symboles reçus Y est multiplié par la matrice F, pour obtenir un vecteur complexe de dimension 4, noté YF : yF = F.Y io Il est aisé de démontrer que l'on a : YF=R.X+W avec W un vecteur bruit complexe de dimension 4, dont chacune des composantes est de variance No. Les composantes de W sont toujours décorrélées entre elles mais ne sont plus gaussiennes. 15 Ainsi, on obtient : z = YF û 2.KM.R.r.So = 2.KM.R.r.S + W = AFS + W (Equation 2) avec AF = 2.KM.R.r Dans ce cas, étant donné Z et R, la méthode de décodage consiste à décider que le vecteur émis est le vecteur S défini par : 20 S=Arg Min ~sez[iJ4nQM ZûAF.S 2 r Cette méthode de décodage n'est pas équivalente à celle du Maximum de Vraisemblance, mais ne détériore que faiblement les performances tout en garantissant l'inversibilité de la nouvelle matrice génératrice (AF ). De plus, il a été montré dans [21], qu'il n'est pas pénalisant de ne pas tenir compte de 25 la condition de shaping. La méthode de décodage consiste alors à décider que le vecteur émis est le vecteur S défini par : =Arg Min ~ s, z[i]^ Z û AF.S ( 2 I Il s'agit donc bien de trouver le point du lattice généré par les colonnes de ^F le plus proche de Z.5 - 12- Si les coordonnées de S ne vérifient pas la condition de shaping , il est possible de décider d'un effacement ou de ramener dans la région de shaping en saturant les coordonnées de S qui ne vérifient pas la condition de shaping. Selon l'invention, le décodeur utilise une réduction de base d'un lattice. Le principe général de la réduction de base d'un lattice se définit de la manière suivante. Soit AR une matrice réelle carrée de dimension n et ZR un point de R". lo Supposons que l'on cherche le point du lattice généré par AR le plus proche de ZR, c'est-à-dire que l'on cherche SR dans Z" tel que : SR = Arg Min ,SREZ ZR -AR.SR ( r 2 Soit fl une matrice carrée de dimension n à coefficients entiers unimodulaire (fl c GLn (Z) ), alors son inverse fl-1 est également à coefficients 15 entiers. La matrice n est appelée matrice de changement de base. On a alors : ZR -AR.SR = ZR - AR.l I.n 1 .SR = ZR - AR' SR' avec AR'= AR.n et SR'= Il 1.SR Ainsi la recherche de SR est équivalente à la recherche de S'R défini 20 par : SR'= Arg min SF'EZ"ZR AR' SR' 2 r SR est obtenu grâce à la relation : SR = f1.SR' Le but de la réduction de base est d'obtenir à partir d'une matrice génératrice AR une matrice génératrice équivalente AR' (qui génère le même 25 lattice), qui présente de meilleures propriétés d'orthogonalité et de longueur de vecteurs de manière à faciliter la recherche du point le plus proche. Il existe différents critères de réduction auxquels sont associés des algorithmes pour réaliser ces réductions. Les deux algorithmes de réduction principaux sont : l'algorithme LLL et l'algorithme KZ. L'algorithme LLL est 30 souvent le plus utilisé car moins complexe que le KZ. Les algorithmes de classement des colonnes de la matrice sont aussi des algorithmes de réduction. Après filtrage MMSE-GDFE, la réduction de base peut être utilisée pour accélérer les algorithmes optimaux de recherche comme le Sphere Decoder ou l'énumération de Schnorr-Euchner. De la même manière, tous les algorithmes sous optimaux de recherche dans un arbre peuvent être améliorés grâce à une technique de réduction de base. to Le principe général d'un décodage ZF après filtrage MMSE-GDFE et réduction de base est le suivant. Après filtrage MMSE-GDFE, on a (cf. Equation 2) : Z=AF.S+W Pour pouvoir utiliser une technique de réduction, il faut travailler sur 15 des matrices et des vecteurs réels. La conversion d'un vecteur complexe (resp. d'une matrice complexe) en vecteur réel (resp. en matrice réelle) s'effectue de la manière suivante : et A = R ,Ji(AF) ù 3(AF ) 3(AF) ,,i(AF ) ZR = Dans le cas du Golden Code, ZR est un vecteur de dimension 8 et 20 AR une matrice 8x8. On obtient alors : ZR = AFR.SR + WR Après réduction de la matrice génératrice AR , la matrice réduite est notée AR' et la matrice de changement base n. 25 On a alors : ZR = AR'.SR'+WR (Equation 3) Le mot décodé est défini par SR = f1.SR' où SR' est obtenu en arrondissant les coordonnées de (AR') ' ZR . Le terme ZF (Zero Forcing) provient du fait que l'on multiplie le mot reçu ZR par l'inverse de la matrice 30 AR'. - 14- Le principe général d'un décodage ZF-DFE après filtrage MMSE-GDFE et réduction de base est le suivant. Le décodage ZF-DFE après réduction de base se déroule comme le décodage ZF jusqu'à l'équation 3. Une décomposition QR (ou 5 orthogonalisation de Gram-Shmit) de la matrice AR' est effectuée : AR'= U.T avec U une matrice 8x8 réelle unitaire et T une matrice triangulaire supérieure 8x8 réelle (dont les termes sur la diagonale sont positifs). En multipliant ZR par UT, on obtient : lO ZR'= UT.ZR = T.SR'+WR' avec E(WR' WR'T) = N I8 car U est unitaire Le mot décodé est défini par SR = f1.SR' où SR' est obtenu coordonnée par coordonnée de la manière suivante : ' S R.8 ?'R.8 +0.5 t88 15 Pour la coordonnée 7, on reporte la décision effectuée sur la coordonnée 8 : z' R.7 -t7.8s'R.8 +0.5 t,, et ainsi de suite jusqu'à : 20 s'R.1 8 Z'R.1-1t1.1S'Rj i=? -+0.5 t1.1 On va maintenant décrire l'algorithme de décodage par layers ou couches selon la présente invention, et en particulier son impact sur le principe général des algorithmes décrit ci-dessus. 25 Après filtrage MMSE-GDFE, on réalise une permutation de Z en réordonnant les lignes de Z. On définit alors le vecteur Z de la manière suivante : - 15- z1,1 z1,1 Z = z2,2 avec la convention suivante Z = z2,1 z1,2 z1.2 z2, z2,2 A partir de l'équation (2), il est aisé de montrer que : Z = 2KMR.r.S + W 0 0 i.r112 2 2 r2,2 r2.1 0 2 2 r1,2 r1.1 0 0 0 '''2,2_ et R= avec a ae 0 0 r-_ 1 a ae 0 0 0 0 a ae 0 0 i -c-te On remarquera que la matrice R est une matrice en X. En outre, on a déplacé i de Î vers 'È. Quelques définitions et propriétés : Io Définition 1 : Matrice en X : une matrice sera dite en X si tous les coefficients en dehors de la diagonale et de l'antidiagonale sont nuls. Proposition 1 : Le produit de deux matrices en X est une matrice en X. Définition 2 : 15 Soient (x')1 2 2 2 3 3 ù X2 Xi ù X2 ù X2 Xi où 1j54 x' =x;+6.x2 (x et x'2 Z[i]) 20 De plus, pour le Golden Code, la matrice )Coe est unitaire. Proposition 4 : Soit Aä(xi, x2, x3, x4) une matrice en X algébrique et na(x1,x2,x3,x4) sa matrice associée, alors na(x1,x2,x3,x4)EGL4(Z[i]) si et seulement si : 1 3 2 4 NQ[i,e11Q[i](x .x x .x ) na(x1 x2 x3 x4 ) =1. 25 Par ailleurs, on peut de la même manière définir des matrices en losange (coefficients nuls sur la diagonale et l'antidiagonale) susceptible d'obtenir de bons résultats. Après permutation de Z, on réalise une réduction de base dite réduction algébrique de la manière suivante. Soit Mx', x2, x3, x4) une matrice en X algébrique de déterminant de module 1 et f10(x',x2,x3,x4) sa matrice associée. 1-la(x',x2,x3,x4) est une matrice inversible et son inverse est à coefficients dans Z[i]. to On a donc : Z=2.KMR..f.S+W =2KMR.Aa(x',x2,x3,x4).r.fla'(x',x2,x3,x4).S+W Z = 2.KM.P.F.S'+W En ayant posé : 4 ==R.La(x',x2,x3,x4)et S'=fla'(x',x2,x3,x4).S La matrice Y est une matrice en X en tant que produit de matrice en X. 15 Ainsi on a effectué une réduction grâce à la matrice de passage fla(x',x2,x3,x4) qui a transformé la matrice de canal initiale R en une matrice de canal équivalenteY. Le but de la réduction algébrique est donc de trouver une matrice ,A(xl, x2, )3, x4) de telle sorte que la matrice4Pait de meilleures propriétés 20 pour permettre l'utilisation de technique de décodage simple, tout en obtenant de bonnes performances. Pour ce faire, on définit deux critères : un équilibre au sein de chaque layer et une maximisation de la puissance du second layer. Ces critères seront décrits plus en détails par la suite. Les propriétés recherchées de Li) dépendent donc de l'algorithme de 25 décodage employé. On va maintenant décrire le décodage par layer à plusieurs candidats : mise en oeuvre des algorithmes ZF-DFE. Le principe du décodage à p candidats est le suivant. 30 L'algorithme de décodage consiste à déterminer p candidats possibles pour le layer 2 . Pour chacun des p candidats du layer 2, on détermine la plus proche valeur du layer 1 en reportant la décision faite sur le layer 2 (comme pour la méthode DFE). Au sein de chacun des layers, la technique de décodage est le ZF rendu quasi optimal par la réduction algébrique (étape 2 de la réduction). Le nombre de candidats, p, est un nombre relativement faible : p=2 présente par exemple un excellent compromis entre complexité et performances. Dans l'optique d'un système temps réel facile à implémenter, il est préférable de fixer la valeur de p. Cependant, des stratégies plus complexes de détermination de p en fonction de la matrice Y pourraient être envisagées. - La décomposition QR Supposons que la réduction ait déjà été effectuée, on a ~o Z = 2KM.Y.I-.S'+W Une décomposition QR de la matrice 4iest effectuée : 0 0 14)1 ,2 1P2 2 2 ,2 (I2,1 0 1J1, 2 2 2 `P1,1 0 0 0 ~•q22 avec U matrice complexe 4x4 unitaire (UHU =14) et T matrice complexe 4x4 triangulaire supérieure dont les termes diagonaux sont réels positifs. De 15 plus, U et T possèdent une structure particulière : u1.1 0 0 u1.4 t11 0 0 t1,4 U = 0 U2.2 u23 0 et T = 0 t2,2 t2,3 o 0 u3.2 u3.3 0 0 0 t3,3 o u4,1 0 0 U4,4_ 0 0 0 t 4,4 Etant donné la forme de P, sa décomposition QR est équivalente à la décomposition QR de 2 matrices 2x2 : = U.T - 1 1 i.g42 1 1 q2,1 x'4'2,2 0 u 1.4 - t1,1 t1,4 t4,4 u4,4_ 20 u2.2 U32 2 2 1P2, 2 '.P 2,1 2 2 1i12 LP11 U23 3 t2,2 U 3,3 0 t 2.3 t3,3 On obtient alors : Z - = 2KM.U.T.I-.S'+W En multipliant parU", on obtient : Z'= U".Z = 2KMT.I-.S'+W' avec E(W' W'" ) = N0.14 puisque U est unitaire. -L'extraction de p candidats par ZF pour le second layer Les deuxdernières composantes de Z' sont : ù Z3 Z t4 = 2.KM. t3.3 0 0 t4,4 1 Ca,e. 5 S'3 W'3 S'4- _W_ En appliquant un ZF (en multipliant par la matrice inverse), on obtient : D'où : 1it3,3 0 0 1/t4.4- Z3 Z4 1/t3,3 0 ù W3 o 1/t44 W14 1 + _S'3 S'4 H Ca,a S'2 = 2.KM A partir du vecteurS'2, on établit une liste des p vecteurs de Z[i]2 distincts deux à deux }S'2 , les plus proches de 12. - Le décodage ZF du premier layer après report des p candidats Pour chacun des p vecteurs S'Z (1 j p), on calcule un vecteur Si; en arrondissant chacune des coordonnées du S'; défini comme suit : -2.KM. S'' ._ 1 ù - 0 t2,3 Z Z12 1/t11 0 0 1/t22 On construit le vecteurS'1 _ S'1== S1 S~1 2 Le vecteur S'' est ramené dans la base initiale, pour obtenir S' : S' = fla(xl x2 x3 x4) S'' Ainsi, on établit une liste de p vecteurs de Z[i]4 distincts deux à deux }S1, Sp } candidats pour être le vecteur décodé S. - détermination du meilleur candidat. 20 Pour chacun des vecteurs S', son appartenance à la région de shaping est testée. Ainsi, on construit une sous liste de la liste précédente en ne gardant que les vecteurs vérifiant la condition de shaping. On notera cette liste de k vecteurs (avec 0 Etant donné que la réduction ne modifie pas le module du déterminant de T (c'est-à-dire le produit tl,l.t2,2.t3,3.t4,4), maximiser le produit t3,3.t4,4 est équivalent à minimiser le produit tl,l.t2,2. Il est important de noter que : -Y1 4 i=1 ett22= 4)2 4 i=1 iPi.2 2 On va maintenant décrire un exemple d'algorithme de réduction prenant en compte les deux critères d'équilibre et de maximisation. Principe de l'algorithme de réduction : io L'algorithme de réduction algébrique s'effectue en deux étapes : -La première étape consiste à déterminer un premier quadruplet (131, 132 133, 134) d'entiers algébriques qui permettra la minimisation du produit 1)2 où la matrice cl)û est donnée par : (2 cl) = R.Da(p1,132,13`;,134 ) 15 -La deuxième étape consiste à équilibrer chacun des layers une fois la première étape effectuée. Cette étape ne modifiera pas l'équilibre entre les layers, c'est à dire que l'on aura : C1 02 y1 20 Préliminaires mathématiques : Si l'on a : = R.Aa(N1,52,53,34 ) On remarque que pour une matrice R donnée c1 ne dépend que de (131,132) que l'on notera (D1 (131,132) : (131,132)=1 r1 1 1 2 r1,1.R + i.r1,2 a 13 1 _q p2 i.r2 2,2 a 2 2 + r21,1 •p 25 02 ne dépend que de (131,132) (p1,132) 2 (~1 2 a 2 r2.2'p + r2,1 = 13 2 a 2 r1 p a 2 2 + 2 I2 13 Définition ù 22 ù Une unité d'un corps de nombre Q[i,e] est un élément de Z[i,8] dont l'inverse est également dans Z[i,8]. Toute unité de Q[i,e] a une norme algébrique par rapport à Q[i] qui appartient à {1,-1, i, -i}. Théorème de Dirichlet dans un corps quadratique réel : Soit Q[8] une extension algébrique totalement réelle de degré 2 de Q. Alors il existe une unité, appelée unité fondamentale p, telle que, toute unité u de Q[8] peut s'écrire : u = ( 1).pk avec k E Z Remarque Dans le cas du Golden Code, on peut prendre p =8 i o Proposition 5 : Si le couple ([31, [32) d'entiers algébriques de Z[i,8] minimise le produit ci) 02 , alors [3, et [32 n'ont pas de multiples communs autres que les unités de Z[i,8]. Preuve : is Supposons que (13', (32) minimise f1 02 et qu'il existe x E Z[i,8]tel que [31 = x.y1 et [32 = x.y2 . Alors (P1 ([31,132 ) 2 (131,132)= No[.e]/Q[i](x) (Y1,Y2 )• d'où No[ .e]; ope (x ) =1. Donc x est une unité de Z[i,8]. 20 Proposition 6 Si l'anneau des entiers algébriques Z[i,8] est un PID (Principal Integral Domain), ce qui est le cas pour le Golden Code, et si de plus [31 et [32 sont deux entiers algébriques de Z[i,8], qui n'ont aucun multiples communs autres que les unités de Z[i,8], alors il existe deux entiers algébriques [33 et 25 (34 tels que : [31.[33 [32.(34 = 1 Preuve : A partir de la proposition 5, on utilise une généralisation du théorème de Bézout dans un PID, voir notamment le document : H. Cohen, A Course 30 in Computational Algebraic Number Theory , Springer, 1996. Proposition 7 : 2901434 - 23 - Si le couple ([31, 132) d'entiers algébriques de Z[i3O] minimise le produit 02 et si de plus Z[i3O] est un PID, alors il existe deux entiers algébriques (33 et (34 de Z[i3O] (que l'on détermine en résolvant R' 133 -[32434 =1) tels que [1a(R',R2,133,R4) e GL4(Z[i]) 5 Proposition 8 : Soit p une unité fondamentale de Z[i3O] avec p >1. Soit (Y',Y2) E Z[i,8]2 , alors il existe ([31,132) E Z[i3O]2 tel que : cl)1 (13',132) 1)2 (p',R2) (1)1 (Y1,Y2)• 02 (Y',Y2) 2(R1,p2)+ (13',132). (131,132). p 2 et (i) 2 to Preuve : Soit k ù (Y',Y2 ))ù In( 142)(V1,Y2)) -+0.5 On prend : p1 = p-kyl et 132 = p-ky2 Alors on a 'if)1 (131,132). 2 (13',132) (Y1,Y2). 02 Max( 0-1 15 etû Min 01 (R1,R2 ), (R1,R2), P 15 - Deuxième étape : équilibre au sein des layers A l'issue de la première étape, on a = R.~a(N1,N2,3,N4 ) Une décomposition QR de est effectuée : cl) = U.T 20 Pour chaque layer j (1 j 2), on définit : kj= In Dans cette seconde étape, on utilisera la matrice de réduction Do(la k ,0,p-k2,o) On notera que sa matrice associée fla(î1 k',0,p k2,0)est bien dans 25 GL4(Z[i]) grâce à la Proposition 4 et au fait que le u_ki--k2 est une unité et In(t2 ;,2;~- In(t2;+1.21 2 +0.5 P ~- N Qp,ej / o[IJ (p-ki donc )i - Conclusion de l'algorithme de réduction - 26 - En conclusion, on définit : 4)=R.Aa(P',R2,(33,4).Aa(p- ,0,11 k2,0)=RAa(x',x2,x3,x4) avec x1 = pl.p k' x2 = 132.p kl x3 = [33.p k2 et x4 = p4.p k2 La courbe sur l'unique figure présente les performances du décodeur proposé pour deux valeurs de p (p=1 et p=2) comparées à celles du décodeur au Maximum de Vraisemblance et à celles du décodeur MMSE-GDFE LLL ZF-DFE. Les performances sont exprimées en PER (Packet Error Rate) en fonction du Rapport Signal à Bruit (SNR)en dB. Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention. On peut envisager l'utilisation de matrices en losange à la place des matrices en X pour la réduction de base et pour le décodage. Par ailleurs, on peut aussi ne pas réaliser la première étape de l'algorithme de réduction algébrique ou de la modifier pour la rendre plus facile à réaliser. Cependant, pour compenser cette baisse de qualité de la réduction, il sera nécessaire de prendre une valeur de p assez élevée. REVENDICATIONS 1. Procédé de décodage d'un vecteur Y de codes spatio-temporels 2x2, notamment de type Golden Code, caractérisé en ce qu'il comprend les étapes 5 suivantes : - on réalise un filtrage de type MMSE-GDFE de façon à obtenir un vecteur YF=RX + W , avec yF le vecteur Y filtré au moyen d'une matrice de filtre F ( forward filter ), R une matrice conventionnelle nommée backward filter , X le vecteur émis et W la matrice bruit complexe, to - on réalise un recentrage de constellation de sorte que le vecteur à déterminer devient Z tel que Z=YF-2KMRFS0=2KMRFS+W , KM étant la constante de normalisation de la constellation considérée, F étant le Golden Code, et S le vecteur des symboles d'information, - on réalise une étape de permutation des éléments des matrices Z, R 15 et F de façon à obtenir2, R et h tels que R "R est une matrice en forme de X, et on déplace le nombre complexe i de F vers R, et - on réalise une étape de réduction de base de lattice telle que Z=2Kä4'1'S'+W avec P= R.Aa(x1,x2,x3,x4) et S'=~a1(x1,x2,x3,x4).S, fla(x1,x2,x3,x4)étant une matrice de changement de base, F1 (x1,x2,x3,x4)est 20 la matrice associée à Aä(x1, x2, x3, x4) qui est une matrice dont le module de déterminant est égale à 1 et définie telle que &"Aä est une matrice en forme de X, -on applique l'algorithme de décodage ZF-DFE dans lequel on identifie parmi les quatre éléments de 2, deux couches ou layers , chaque couche 25 comprenant les deux éléments de la diagonale ou l'anti-diagonale de 2 ; on applique l'algorithme DFE couche par couche, et on applique l'algorithme ZF au sein de chacune des couches. 2. Procédé selon la revendication 1, caractérisé en ce que la 30 permutation de Test la suivante : avec la convention suivante Z = Z1,1 Z21 Z1.2 Z22 Z=. Procédé selon la revendication 2, caractérisé en ce que R est une matrice en forme de X telle que : 112.2- 28 - a a 0 0 1 a 2t 0 0 et Î'= 0 0 a a 0 0 a8 , a et 0 étant des 0 2 r2,2 2 r1.2 0 0 . R= coefficients de Golden Code tels que : g = -1+ e ù 1 2 2 a=1+iù i.e 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que : 0 0 a x4 a 0 x1 q X4 0 a x3 0 0 a-2 X â 0 0 a 2 ùx a et 1 1 4 4 4- x1 X2 X1 X1 - X2 1 1 4 4 np(x1 x2 x3 x4) - X2 X1 + X2 X2 - X1 x; +x2 x; +2.x2 x; +x2 -x2 2 2 2 3 3 - X2 - X1 - X2 - X2 X1 où Vj 1j4 x' =x;+e. x2 (x et x'2 EZ[i]). 15 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce qu'on détermine A,, de façon à ce que, lors d'une décomposition QR, les deux éléments d'une même couche soient sensiblement de même valeur. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé 20 en ce que Z est définie en deux couches, une première couche composée des éléments sur la diagonale et une seconde couche composée des éléments sur l'anti-diagonale, et en ce qu'on détermine A,, de façon à ce que, lors d'une Aa(X ,X ,XJ,X )_décomposition QR, le produit des deux éléments de la seconde couche soit supérieur au produit des deux éléments de la première couche. 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que 2 est définie en deux couches, une première couche composée des éléments sur la diagonale et une seconde couche composée des éléments sur l'anti-diagonale, et en ce que lors de l'application de l'algorithme ZF pour la seconde couche, on extrait p candidats possibles, ensuite pour la première couche on extrait également p candidats possibles, ~o puis on détermine le meilleur candidat vecteur. 8. Procédé selon la revendication 7, caractérisé en ce que p est égal à 2. 15 9. Procédé selon la revendication 1, caractérisé en ce que R et Aa sont des matrices en X. 10. Procédé selon la revendication 1, caractérisé en ce que R et A, sont des matrices en losange. 20