Abstract:
Exemplary embodiments of the invention provide an equalization method for a downlink channel in a telecommunication system transmitting MC-CDMA symbols on a plurality of carrier frequencies, in which a plurality of links are established between a transmitter and a plurality of receivers in order to transmit a plurality of coded signals, each link using a distinct access code amongst N possible codes, the conjugate product of two possible codes being proportional to a possible code or to its conjugate, the method including, for at least one receiver, a step of calculating a matrix (B, B) characteristic of the plurality of links, the calculation step first of all calculating the elements of a row or a column in the characteristic matrix and deducing the other rows or the other columns by means of a permutation of the elements.

Description:
BACKGROUND 
   The present invention concerns an equalisation method and device for the downlink channel of a telecommunications system of the MC-CDMA type. More particularly, the present invention concerns an equalisation method and device of the GMMSE type. 
   Multi-Carrier Code Division Multiple Access (MC-CDMA) combines OFDM (Orthogonal Frequency Division Multiplex) modulation and the CDMA multiple access technique. This multiple access technique was proposed for the first time by N. Yee et al. in the article entitled “Multicarrier CDMA in indoor wireless radio networks” which appeared in Proceedings of PIMRC&#39;93, Vol. 1, pages 109–113, 1993. The developments of this technique were reviewed by S. Hara et al. in the article entitled “Overview of Multicarrier CDMA” published in IEEE Communication Magazine, pages 126–133, December 1997. 
   Unlike the DS-CDMA (Direct Sequence Code Division Multiple Access) method, in which the signal of each user is multiplied in the time domain in order to spread its frequency spectrum, the signature here multiplies the signal in the frequency domain, each element of the signature multiplying the signal of a different subcarrier. 
   More precisely,  FIG. 1  shows the structure of an MC-CDMA transmitter for a given user k. Let d k (t) be the i th  symbol to be transmitted from the user k, where d k (i) belongs to the modulation alphabet. The symbol d k (i) is first of all multiplied at  110  by a spreading sequence or signature of the user, denoted c k (t), consisting of N “chips”, each “chip” being of duration T c , the total duration of the spreading sequence corresponding to a symbol period T. The results of the multiplication of the symbol d k (i) by the different “chips” are converted by the serial to parallel converter  120  into a block of L symbols, where L is in general a multiple of N. It will be considered, for reasons of simplification of presentation, that L=N. The block of L symbols is then subjected to an inverse fast Fourier transformation (IFFT) in the module  130  before being transmitted to the parallel to serial converter  140 . In order to prevent intersymbol interference, a guard interval, with a length greater than the duration of the pulse-type response of the transmission channel, is added to the MC-CDMA symbol. This interval is obtained by the addition (not shown) of a suffix chosen so as to be identical to the start of the said symbol. The symbol thus obtained is amplified at  150  in order to be transmitted over the user channel. It can therefore be seen that the MC-CDMA method can be analysed into a spreading in the spectral domain (before IFFT) followed by an OFDM modulation. 
   In practice, a base station transmits the data for a user k in the form of frames of I symbols, each symbol d k (i) being spread by a real signature c k (t) with a duration equal to the symbol period T, such that c k (t)=0 if t∉[0,T[. The signal modulated at time t=i.T+l.T c  can then be written, if the guard intervals between MC-CDMA symbols are omitted: 
                     S   k     ⁡     (   t   )       =       ∑     i   =   0       I   -   1       ⁢       ∑     l   =   0       L   -   1       ⁢       v   k     ·       c   k     ⁡     (     l   .     T   c       )       ·       d   k     ⁡     (   i   )       ·     exp   ⁡     (       j   ·   2     ⁢   π   ⁢           ⁢     l   /   L       )                     (   1   )               
where v k  is the amplitude of the signal transmitted by the user k, assumed to be constant for a transmission unit.
 
   An MC-CDMA receiver for a given user k has been illustrated schematically in  FIG. 2 . 
   The demodulated received signal is sampled at the “chip” frequency and the samples belonging to the guard interval are eliminated (elimination not shown). The signal obtained can be written: 
                   R   ⁡     (   t   )       =         ∑     k   =   0       K   -   1       ⁢       ∑     i   =   0       I   -   1       ⁢       ∑     l   =   0       L   -   1       ⁢         h   kl     ⁡     (   i   )       ·     v   k     ·     c   kl     ·       d   k     ⁡     (   i   )       ·     exp   ⁡     (       j   ·   2     ⁢   π   ⁢           ⁢     l   /   L       )               +     b   ⁡     (   t   )                 (   2   )               
where K is the number of users, c kl =c k (l.T c ),h kl (i) represents the response of the channel of the user k to the frequency of the subearrier l of the MC-CDMA symbol transmitted at time i.T and where b(t) is the received noise.
 
   If the downlink channel is considered, the transmission channels have identical characteristics and it is possible to write h kl =h l . The study will be limited hereinafter to the downlink channel. 
   The samples obtained by sampling at the “chip” frequency are put in parallel in a serial to parallel converter  210  before undergoing an FFT in the module  220 . The samples in the frequency domain, output from  220 , are equalised and despread by the signature of the user k. To do this, the samples of the frequency domain are multiplied by the coefficients q l .c kl   *  in the multipliers  230   0 , . . . ,  230   L−1 , and then added at  240  in order to supply as an output an estimated symbol {circumflex over (d)} k (i). 
   Different possibilities of equalisation have been envisaged in the state of the art:
         MRC (Maximumn Ratio Combining) defined by the use of the coefficients q l =h t   *  where .* denotes the complex conjugate;   EGC (Equal Gain Combining) defined by the use of the coefficients q l =e −jφ     l    where h l =ρ l .e jφ     l   ;   ZF (Zero Forcing) where q l =h l   −1 (i);   zero forcing ZF with threshold (Th) where q l =h l   −1 (i) if |h l (i)|&lt;Th and q l =0 (or q l =e −jφ     l   ) otherwise;   the Minimum Mean Square Error (MMSE) algorithm for minimising the mean square error on each of the carriers:       

             q   l     =       h   l   *                h   l          2     +     σ   2               
where σ 2  is the variance of the noise on the carrier.
 
   In MC-CDMA, the presence of a guard period makes it possible to disregard the intersymbol interference. The equalisation can therefore be simply effected by means of a simple multiplication by a complex coefficient, carrier by carrier. 
   The receiver illustrated in  FIG. 2  decodes the data of a user k without taking account of the interference due to the other users. For this reason it is known as single user or SU. 
   The multiuser detection techniques are known notably in CDMA telecommunications systems. They have the common characteristic of taking account of the interference generated by the other users. 
   A multiuser detection or MUD technique for MC-CDMA was presented in the article by J-Y. Beaudais, J. F. Hélard and J. Citeme entitled “A novel linear MMSE detection technique for MC-CDMA” published in Electronics Letters, Vol. 36, N°7, pages 665–666, 30 Mar. 2000. The equalisation method proposed no longer operates carrier by carrier but MC-CDMA symbol by MC-CDMA symbol, taking account of all the carriers. For this reason it is called GMMSE (Global Minimum Mean Square Error) equalisation or, equivalently, M-MMSE (Matrix Minimum Mean Square Error) equalisation. Its purpose is to minimise the mean square error between the estimated symbols {circumflex over (d)} k (i) and the transmitted symbols d k (i). 
   An MC-CDMA receiver with GMMSE equalization for a user k (also referred to in this case as per user MMSE) has been shown in  FIG. 3 . It differs from that of  FIG. 2  in that the equalization is effected by means of a multiplication  331  by a matrix Q of the signals of the different carriers. The modules  310 ,  320  can be seen, identical to the modules  210  and  220  on  FIG. 2 . After the matrix multiplication  331 , the samples are despread by the signature of user k. To do this, the samples of the frequency domain are multiplied by the coefficients c kl   *  in the multipliers  332   0 , . . . ,  332   L−1  and then added at  340 . The despread signal obtained at the output of the adder  340  is then multiplied at  360  by the transmission level v k  of the user κ in question in order to supply an estimated symbol {circumflex over (d)} k (i). 
   As shown in the aforementioned article, the matrix Q can be obtained by applying the Wiener filtering theory, in the form:
 
 Q=H   H ( AA   H +σ b   2   .I   N ) −1   (3)
 
with A=HCV where H is the diagonal matrix N×N representing the frequency response of the channel to the different subearriers, C is the matrix N×N whose columns are the code sequences of the different users (which will hereinafter simply be referred to as “codes”), V is the diagonal matrix N×N whose elements v i  are the transmission levels of the different users, σ b   2  is the variance of the noise and I N  is the identity matrix of size N×N. The symbol . H  designates the conjugate transpose. It should be noted that, in general, matrix inversion is not carried out but the corresponding system of linear equations is resolved.
 
   As indicated by (3), the equalisation operation depends on the calculation of the matrix AA H  and the inversion of the matrix AA H +σ b   2 .I N  (or equivalently the resolution of a linear system of rank N). These calculations consume resources of the mobile terminal, all the more so if they have to be performed frequently, notably in the case of rapid variations on the transmission channel. However, it is known that the resources of the terminals constitute precisely the critical part of a mobile telecommunication system. 
   SUMMARY 
   The problem at the basis of the present invention is to propose a GMMSE equalisation method for a downlink channel of an MC-CDMA telecommunication system which does not use significant calculation resources. 
   The problem is resolved by the invention, defined, as an equalisation method for a downlink channel in a telecommunication system transmitting MC-CDMA symbols on a plurality of carrier frequencies, in which a plurality of links are established between a transmitter and a plurality of receivers in order to transmit a plurality of coded signals, each link using a distinct access code amongst N possible codes, the conjugate product of two possible codes being proportional to a possible code or to its conjugate, the said method comprising, for at least one receiver, a step of calculating a matrix (B, E) characteristic of the said plurality of links, the said calculation step first of all calculating the elements of a row or a column in the characteristic matrix and deducing the other rows or the other columns by means of a permutation of the said elements. 
   According to a first embodiment, the characteristic matrix is the product E=C|V| 2 C H  where C is the matrix of the possible codes, C H  is the conjugate transpose of C, V=Diag(v 0 , . . . , v N−1 ) where the coefficients v i  are the transmission levels, real or estimated, of the signals coded by means of the said N possible codes. 
   Advantageously, it comprises a second step of calculating the matrix Λ=HEH H +σ b   2 .I N  where I N  is the unity matrix of size N×N, σ b   2  is the variance of the noise, H=Diag(h 0 , . . . , h N−1 ) and where the coefficients hi characterise the response of the transmission channel, between the said transmitter and the said receiver, at the different carrier frequencies. Advantageously too, it comprises a third step of calculating {circumflex over (D)}=A H Λ −1 Y where {circumflex over (D)} is the vector of the estimated symbols on the different links, A=HCV, Y is the received vector of the components of an MC-CDMA symbol on the different carrier frequencies. 
   According to a second embodiment, the characteristic matrix is the product B=C H |H| 2 C where C is the matrix of the possible codes, C H  is the conjugate transpose of C, H=Diag(h 0 , . . . , h N−1 ) where the coefficients h i  characterise the response of the channel, between the said transmitter and the said receiver, at the different carrier frequencies. 
   Advantageously, it comprises a second step of calculating the matrix Ω=V H BV+σ b   2 .I N  where I N  is the unity matrix of size N×N, σ b   2  is the variance of the noise, V=Diag(v 0 , . . . , v N−1 ) where the coefficients v i  are the transmission levels, real or estimated, of the signals coded by means of the said N possible codes. Advantageously too, it comprises a third step of resolving a system of linear equations Ω{circumflex over (D)}=A H Y where A=HCV, Y is the received vector of the components of an MC-CDMA symbol on the different carrier frequencies and where {circumflex over (D)} is the vector of the estimated symbols on the different links. 
   According to a variant, from the transmission levels, real or estimated, of the signals coded by means of the said N possible codes, a subset of codes will be selected amongst the N possible codes. In this case, P codes amongst N having been selected, the matrix V=Diag(v 0 , . . . , v N−1 ), where the v i  values are the estimated or real levels, can be reduced to a matrix V′ of size P×P now containing only the levels associated with the said selected codes and the step of calculation of the characteristic matrix will be followed by a second step of calculating the matrix Ω′=V′ H B′V′+σ b   2 .I P  where B′ is a matrix of size P×P obtained by reducing B to the P rows and P columns corresponding to the codes selected, σ b   2  is the variance of the noise on each carrier and I P  the unity matrix of size P×P. 
   Advantageously, there will be effected an equalisation of the MC-CDMA symbols over the different carrier frequencies followed by a filtering adapted to each of the N possible codes. The transmission levels of the signals coded by means of the said N possible codes will then be estimated by effecting a modulus calculation at the output of the said adapted filtering. 
   In this case the equalisation methods can provide for a third step of resolving a system of linear equations Ω′{circumflex over (D)}′=V′ H Z′ where Z′ is the reduction of a vector Z to the P components corresponding to the selected codes, where Z is the result of the carrier by carrier equalisation and where {circumflex over (D)}′ is the vector of the estimated symbols on the different links using the said selected codes. 
   The matrix C of the possible codes can be chosen such that its elements c k,i  satisfy an equation of the type c k,i   * c k,j =λ ij .c k,f(i,j)  or λ ij .c k,f(i,j)   *  where f(i,j) is an index between 0 and N−1 dependent on i and j and λ ij  is a complex number. If the matrix C of the possible codes is a matrix of a Hadamard or rotated Hadamard code, a row or a column of the characteristic matrix will be calculated by means of a Hadamard transform. Likewise, if the matrix C of the possible codes is a matrix of a Fourier or rotated Fourier code, a row or a column of the characteristic matrix will be calculated by means of an FFT. 
   The present invention is also defined by an equalisation device for a receiver in a telecommunication system of the MC-CDMA type, comprising means for implementing the equalisation method as disclosed above. 
   Finally, the present invention concerns a receiver for a telecommunication system of the MC-CDMA type, characterised in that it comprises such an equalisation device. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The characteristics of the invention mentioned above, as well as others, will emerge more clearly from a reading of the following description given in relation to the accompanying figures, amongst which: 
       FIG. 1  depicts schematically the structure of an MC-CDMA transmitter known from the state of the art; 
       FIG. 2  depicts schematically the structure of a single user MC-CDMA receiver known from the state of the art; 
       FIG. 3  depicts schematically the structure of an MC-CDMA receiver using a GMMSE equalisation, known from the state of the art; 
       FIG. 4  depicts a transmission level evaluation module; 
       FIG. 5  depicts schematically an equalisation device according to a first embodiment of the invention; 
       FIG. 6  depicts schematically an equalisation device according to a second embodiment of the invention; 
       FIG. 7  depicts schematically an equalisation device according to a third embodiment of the invention. 
   

   DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   Once again the context of an MC-CDMA system using a GMMSE equalisation method will be referred to. The MC-CDMA signal after the FFT step (that is to say the signal output from the module  320  of  FIG. 3 ) can be written in the form of a vector Y of dimension N whose components correspond to the different carriers. Taking the above notations again (but omitting, for reasons of simplification, the time index i), it is possible to express Y as a function of the vector D of the symbols d k  transmitted to the different users:
 
 Y=HCVD+b=AD+b   (4)
 
where A=HCV and where b is the vector of the noise components.
 
   More precisely, D=(d 0 , . . . , d N−1 ) T  represents the vector of the symbols transmitted to the different users. The diagonal matrix V=Diag(v 0 , . . . , v N−1 ) represents the transmission levels. The matrix C is the matrix of the N possible codes. More precisely, the i th  column of C corresponds to the sequence of the i th  code. For example, this matrix can be a Walsh-Hadamard matrix, for which a fast transform algorithm exists. The diagonal matrix H represents the frequency response of the channel compared to the different subcarriers, that is to say H=Diag (h 0 , h 1 , . . . , h N−1 ). It will be assumed hereinafter that this matrix is known. Techniques exist for estimating the frequency response matrix, for example relying on the insertion of reference pilots, as described in the French application N° 0011834 filed on 14.9.00 in the name of the applicant and included here by reference. 
   On reception the vector Y is the subject of the GMMSE equalisation by the matrix Q given by (3). If {circumflex over (D)} is the vector of the symbols estimated for the different users, obtained by despreading:
 
 {circumflex over (D)}=V   H   C   H   QY=A   H ( AA   H +σ b   2   .I   N ) −1   Y   (5)
 
it can be shown (see annexe) that expression (5) is equivalent to:
 
 {circumflex over (D)} =( A   H   A+σ   b   2   .I   N ) −1   A   H   Y   (6)
 
   As will be seen later, it is possible to estimate the different transmission levels and therefore the matrix V. Knowing the frequency response matrix H and the matrix of the code C, it is possible to derive A (and A H ) therefrom and, by means of formula (5) or (6), to obtain {circumflex over (D)}. 
   The variance of the noise σ b   2  can for its part be evaluated conventionally, by means of pilot signals used for estimating the transmission channel. It is also possible to use a “typical” mean value. 
   The matrix A H A in (6) can be rewritten in the form
 
 A   H   A=V   H ( C   H   H   H   HC ) V=V   H ( C   H   |H|   2   C ) V   (7)
 
   Likewise, the matrix AA H  in (5) can be written in the form:
 
 AA   H   =HCVV   H   C   H   H   H   =H ( C|V|   2   C   H ) H   H   (8)
 
   The general idea of the invention is that, for the majority of the codes currently used, the calculation of the matrix B=C H |H| 2 C in (7) or of the matrix E=C|V| 2 C H  in (8) can be considerably simplified. 
   Assume first of all that the code used is a Walsh-Hadamard (WM code. It will be recalled that the WH code can be generated like the columns of a matrix C 2p  obtained by recurrence: 
   
     
       
         
           
             
               
                 
                   C 
                   
                     2 
                     ⁢ 
                     p 
                   
                 
                 = 
                 
                   
                     
                       [ 
                       
                         
                           
                             
                               C 
                               p 
                             
                           
                           
                             
                               C 
                               p 
                             
                           
                         
                         
                           
                             
                               C 
                               p 
                             
                           
                           
                             
                               - 
                               
                                 C 
                                 p 
                               
                             
                           
                         
                       
                       ] 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     and 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       C 
                       1 
                     
                   
                   = 
                   
                     [ 
                     1 
                     ] 
                   
                 
               
             
             
               
                 ( 
                 9 
                 ) 
               
             
           
         
       
     
   
   The matrix is real, symmetrical and equal to its own inverse. In addition, the sequences are orthogonal. 
   The elements of C can be expressed in the form: c ij =(−1) &lt;ij&gt;  where &lt;i, j&gt; is the scalar product of the binary representations of i and j: 
   
     
       
         
           
             〈 
             
               i 
               , 
               j 
             
             〉 
           
           = 
           
             
               ∑ 
               k 
             
             ⁢ 
             
               
                 i 
                 k 
               
               ⁢ 
               
                 j 
                 k 
               
             
           
         
       
     
   
   The following property is derived therefrom:
 
 c   ki   *   c   kj   =c   k,j⊕j   (10)
 
where i⊕j represents the bitwise addition of the integers i and j.
 
This is because:
 
                 ∑   n     ⁢       i   n     ⁢     k   n         +       ∑   n     ⁢       j   n     ⁢     k   n           =         ∑   n     ⁢       (       i   n     +     j   n       )     ⁢     k   n         =       ∑   n     ⁢         (     i   ⊕   j     )     n     ⁢     k   n                 
and therefore &lt;k,i&gt;+&lt;k,j&gt;=&lt;k,i⊕j&gt;.
 
The result of (1 0) is that the conjugate product of two WH codes is still a WH code.
 
   Assume now that the codes used are Fourier codes, defined by: c i,k =exp(−j 2π ik/N). The matrix of the code is symmetrical.
 
 c   k,i   *   c   k,j   =c   k,j−i   (11)
 
where “j−i” designates here the subtraction modulo N.
 
   The result here too is that the combined product of two Fourier codes is still a Fourier code. 
   This property can be extended to a family of codes obtained by “rotation” of the previous codes (and for this reason referred to as rotated codes) as presented in the article by A. Bury et al. entitled “Diversity comparison of spreading transforms for multi-carrier spread spectrum transmission methods” published in Electronic Wireless 2000 Proceedings, Dresden, Germany. The matrix of a rotated code is defined by:
 
 C   r   =C. D ( r )  (12)
 
where D is a diagonal matrix defined by the vector r=(r 0 , . . . , r N−1 ) T  that is to say D=Diag(r 0 , . . . , r N−1 ) where r i =exp(jφ i ).
 
   It is important to note that coding N symbols intended for N users by means of the matrix of a rotated code is equivalent to effecting a rotation of each of these symbols through an angle φ i  and then applying the matrix of the initial code. In other words, a rotated code of an initial code can boil down to the initial code at the cost of a rotation of the constellation for each of the users. 
   If the matrix C of the initial code relates to a Fourier code, then, for the rotated Fourier code:
 
 c   k,i   r*   c   k,j   r   =r   i   *   .c   k,i   *   .r   j   .c   k,j =exp(φ j −φ i ). c   k,j−i =π ij   .c   k,j−i   r   (13)
 
   with λ ij =φ j −φ i −φ j−i    
   Likewise, for a rotated Hadamard code:
 
 c   k,i   r*   c   k,j   r   =r   i   *   .c   k,i   .r   j   .c   k,j =exp(φ j −φ i ). c   k,j⊕i =λ ij   c   k,j⊕i   r   (13′)
 
   with λ ij =φ j −φ i −φ j⊕i    
   Subsequently, the codes satisfying the following property will be considered:
 
 c   k,i   *   c   k,j =λ ij   .c   k,f(i,j)  or λ i   .c   k,f(i,j)   *  which will be denoted λ ij   .c   k,f(i,j)   (*)   (14)
 
where f(i,j) is an index dependent on i and j and describing 0 to N−1 with i constant or with j constant and where λ ij  is a complex number in general depending on the indices i and j.
 
   In this case the coefficients b ij  of the matrix B=C H |H| 2 C can be expressed by: 
   
     
       
         
           
             
               
                 
                   b 
                   ij 
                 
                 = 
                 
                   
                     
                       ∑ 
                       
                         k 
                         = 
                         0 
                       
                       
                         N 
                         - 
                         1 
                       
                     
                     ⁢ 
                     
                       
                         
                            
                           
                             h 
                             k 
                           
                            
                         
                         2 
                       
                       ⁢ 
                       
                         c 
                         
                           k 
                           , 
                           i 
                         
                         * 
                       
                       ⁢ 
                       
                         c 
                         
                           k 
                           , 
                           j 
                         
                       
                     
                   
                   = 
                   
                     
                       λ 
                       ij 
                     
                     ⁢ 
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           0 
                         
                         
                           N 
                           - 
                           1 
                         
                       
                       ⁢ 
                       
                         
                           
                              
                             
                               h 
                               k 
                             
                              
                           
                           2 
                         
                         ⁢ 
                         
                           c 
                           
                             k 
                             , 
                             
                               f 
                               ⁡ 
                               
                                 ( 
                                 
                                   i 
                                   , 
                                   j 
                                 
                                 ) 
                               
                             
                           
                           
                             (* 
                             ) 
                           
                         
                       
                     
                   
                 
               
             
             
               
                 ( 
                 15 
                 ) 
               
             
           
         
       
     
   
   First of all, for example, the first row of the matrix B is calculated, that is to say the coefficients b 0,j , and then the other rows are derived therefrom by permutation and multiplication: 
   
     
       
         
           
             
               
                 
                   b 
                   ij 
                 
                 = 
                 
                   
                     
                       
                         λ 
                         ij 
                       
                       
                         λ 
                         
                           o 
                           , 
                           j 
                         
                       
                     
                     ⁢ 
                     
                       b 
                       
                         0 
                         , 
                         
                           
                             f 
                             0 
                             
                               - 
                               1 
                             
                           
                           ⁡ 
                           
                             ( 
                             
                               f 
                               ⁡ 
                               
                                 ( 
                                 
                                   i 
                                   , 
                                   j 
                                 
                                 ) 
                               
                             
                             ) 
                           
                         
                       
                       * 
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     where 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       
                         f 
                         0 
                       
                       ⁡ 
                       
                         ( 
                         k 
                         ) 
                       
                     
                   
                   = 
                   
                     f 
                     ⁡ 
                     
                       ( 
                       
                         0 
                         , 
                         k 
                       
                       ) 
                     
                   
                 
               
             
             
               
                 ( 
                 16 
                 ) 
               
             
           
         
       
     
   
   If a table of f 0   −1 f and, where applicable, of 
               λ   ij       λ     o   ,   j         ,         
is available, calculation of the matrix B requires only the calculation of one of its rows. By way of example, expression (16) is written in the case of a WH code: b ij =b 0,j⊕j .
 
   If for example use is made of a WH code, a rotated WH code, a Fourier code or a rotated Fourier code, the first row of the matrix B can advantageously be obtained by simple transform of the vector ρ=(|h 0 | 2 , . . . , |h N−1 | 2 ) T . 
   This is because, in the case of a WH code, the first row is obtained by Hadamard transform of ρ: 
   
     
       
         
           
             
               
                 
                   b 
                   
                     0 
                     , 
                     j 
                   
                 
                 = 
                 
                   
                     
                       ∑ 
                       
                         k 
                         = 
                         0 
                       
                       
                         N 
                         - 
                         1 
                       
                     
                     ⁢ 
                     
                       
                         
                            
                           
                             h 
                             k 
                           
                            
                         
                         2 
                       
                       ⁢ 
                       
                         c 
                         
                           k 
                           , 
                           0 
                         
                       
                       ⁢ 
                       
                         c 
                         
                           k 
                           , 
                           j 
                         
                       
                     
                   
                   = 
                   
                     
                       
                         ∑ 
                         
                           k 
                           = 
                           0 
                         
                         
                           N 
                           - 
                           1 
                         
                       
                       ⁢ 
                       
                         
                           
                              
                             
                               h 
                               k 
                             
                              
                           
                           2 
                         
                         ⁢ 
                         
                           c 
                           
                             k 
                             , 
                             
                               0 
                               ⊕ 
                               j 
                             
                           
                         
                       
                     
                     = 
                     
                       
                         
                           ∑ 
                           
                             k 
                             = 
                             0 
                           
                           
                             N 
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                           
                             
                                
                               
                                 h 
                                 k 
                               
                                
                             
                             2 
                           
                           ⁢ 
                           
                             c 
                             
                               k 
                               , 
                               j 
                             
                           
                         
                       
                       = 
                       
                         
                           ∑ 
                           
                             k 
                             = 
                             0 
                           
                           
                             N 
                             - 
                             1 
                           
                         
                         ⁢ 
                         
                           
                             c 
                             
                               j 
                               , 
                               k 
                             
                           
                           ⁢ 
                           
                             
                                
                               
                                 h 
                                 k 
                               
                                
                             
                             2 
                           
                         
                       
                     
                   
                 
               
             
             
               
                 ( 
                 17 
                 ) 
               
             
           
         
       
     
   
   and, in the case of a Fourier code, the first row is obtained by Fourier transform of ρ: 
                   b     0   ,   j       =         ∑     k   =   0       N   -   1       ⁢     |     h   k     ⁢     |   2     ⁢       c     k   ,   0     *     ⁢     c     k   ,   j             =         ∑     k   =   0       N   -   1       ⁢     |     h   k     ⁢     |   2     ⁢     c     k   ,     j   -   0             =         ∑     k   =   0       N   -   1       ⁢     |     h   k     ⁢     |   2     ⁢     c     k   ,   j           =         ∑     k   =   0       N   -   1       ⁢     c     j   ,   k         |     h   k     ⁢     |   2                     (   18   )               
Advantageously, the Fourier transform will be effected by means of an FFT.
 
   If rotated versions of these codes are used, the coefficients of the first row of B are derived from (17) and (18) by means of a simple multiplication by complex coefficient. 
   In general terms, if the code employed satisfies property (14), notably for a Hadamard, rotated Hadamard, Fourier or rotated Fourier code, advantageously a row of the matrix B will be calculated (or a column since it is hermitian) and the other rows (or respectively the other columns) will be deduced therefrom by means of permutation and where necessary multiplication operations. 
   In a similar manner, when the code matrix C satisfies the property (14), an expression similar to (15) and (16) can be obtained for E=C|V| 2 C H . Calculation of the matrix E then requires merely the calculation of just one of its rows (or columns). In addition, if a WH code, a rotated WH code, a Fourier code or a rotated Fourier code is used, a row (or column) of the matrix E can be obtained by simple transformation of the vector π=(|v 0 | 2 , . . . , |v N−1 | 2 ) T  in a similar fashion to (17) and (18). 
   The calculation by transform (Hadamard, FFT) of a row (or column) of the matrix B or E requires N log 2 N operations. A complete calculation of the matrix A H A by equation (7) or of the matrix AA H  by equation (8) requires N log 2 N+2N 2  operations. This is to be compared with the N 3 +3N 2  operations which would be required by the conventional calculation of the matrix V H (C H |H| 2 C)V or H(C|V| 2 C H )H H . 
   The transmission levels v 0 , . . . , v N−1 , appearing in the matrix V can be known from the MC-CDMA receiver. This will for example be the case if the base station transmits them to the receivers on an auxiliary channel. On the other hand, if the transmission levels are not known to the receiver, the latter can estimate them, as will be seen. This is because the single user detection disclosed above in relation to  FIG. 2  makes it possible to obtain a first approximation of the relative transmission level of each user, ignoring the inter-user interference. A carrier by carrier equalisation is applied, at the output of the FFT module, as indicated in  FIG. 4 , by means of the multipliers  431   0 , . . . ,  431   N−1 , and then at  432  the signals are despread by means of the sequences of the different users, in order to obtain therefrom a symbols vector Z=(z 0 , . . . , z N−1 ) T , that is to say:
 
Z=C H QY  (19)
 
   where Q=Diag(q 0 , . . . , q N−1 ) where the q i  values are coefficients of the chosen equalisation method MRC, EGC, ZF, MMSE. The combination of the equalisation module and the despreading module is represented by  450 . The operation carried out at  450  is therefore a multiplication by the matrix C H Q and its output is the vector Z. 
   It will be noted that, if the equalisation method adopted is the MRC method, expression (19) is also written:
 
Z=C H H H Y  (20)
 
   An estimation is obtained of the relative transmission levels in the module  460  in the form of a vector {circumflex over (v)}=({circumflex over (v)} 0 , . . . , {circumflex over (v)} N−1 ) T  such that:
 
 {circumflex over (v)}   i   =z   i |  (21)
 
if the interference and noise are ignored, and
 
 {circumflex over (v)}   i   =√ {square root over (|z i | 2 −{circumflex over (λ)} 2 )}  (22)
 
if an estimation {circumflex over (λ)} 2  of the power of the interference and noise is available.
 
   Advantageously, if several MC-CDMA symbols belong to the same block transmitted with the same code and at the same power, the module  460  can effect a smoothing of the values {circumflex over (v)} i  or {circumflex over (v)} i   2  by means of an FIR or IIR filter. In the latter case, no additional latency is introduced by the smoothing. If the output of the filter at time n is denoted {tilde over (v)} i (n):
 
 {tilde over (v)}   i ( n )=α {tilde over (v)}   i ( n −1)+β {circumflex over (v)}   i ( n )  (23)
 
and where α and β are the coefficients of the filter. For example, α=0.9 and β=1−α will be taken.
 
   In all cases, once the relative transmission levels have been evaluated, it is possible to estimate the matrix A by:
 
A=HC{circumflex over (V)} and therefore A H ={circumflex over (V)} H C H H H   (24)
 
where {circumflex over (V)}=Diag({circumflex over (v)} 0 , . . . , {circumflex over (v)} N−1 ). In addition, the matrix AA H  is estimated by {circumflex over (V)}(C|H| 2 C H ){circumflex over (V)} H  (or respectively A H A by H(C|{circumflex over (V)}| 2 C H )H H ) and {circumflex over (D)} is derived therefrom by means of equation (5) or (6).
 
   Advantageously, the detection will be effected by means of formula (6) and use will be made of the MRC equalisation method given by (20) in the preliminary single user detection step. Thus the result of the carrier by carrier equalisation can be reused in the GMMSE equalisation. This is because equation (6) can also be written:
 
 {circumflex over (D)} =( A   H   A=σ   b   2   .I   N ) −1   A   H   Y =( A   H   A=σ   b   2   .I   N ) −1   {circumflex over (V)}   H   C   H   H   H   Y =( A   H   A=σ   b   2   .I   N ) −1   {circumflex over (V)}   H   Z   (25)
 
   It is now assumed that the transmission levels v 0 , . . . , v N−1  are known, and that they have been transmitted to the receiver or estimated by it by means of one of formulae (21) to (23) as has just been seen. 
   According to an advantageous embodiment of the invention, in the calculation of (5) or (6) only the codes actually used (that is to say for the users present) are taken into account and, amongst these, for a given user, only those significantly interfering with the code of this user. 
   The most interfering codes can then be determined according to one of the following criteria: 
   (1) the P−1 (P a given integer such that P&lt;N) codes c m  distinct from c k  associated with the highest levels v m  are selected; 
   (2) the codes c m  distinct from c k  associated with the levels v m &gt;Th where Th is a predetermined threshold, are selected. Advantageously, the threshold Th will be adaptive and will depend on the transmission level for the user in question. Then the codes c m  will be selected such that: v m &gt;μ.v k  with, for example, 0&lt;μ&lt;1. If the receiver of the user k uses several codes of indices k 1 , . . . , k Δ , that is to say if the user has established several links with the base station (the channel of a user then consists of several links), account will be taken of the code of index k δ ∈{k 1 , . . . , k Δ } associated with the lowest level {circumflex over (v)} kδ  and the codes c m  will be selected such that: v m &gt;μ.v kδ . According to a variant, the absolute threshold Th or the relative threshold μ can be chosen according to the values of N (the length of the sequences) and P (the number of codes used), for example as a function of the ratio P/N, that is to say the degree of use of the resource, on which the interference after demodulation depends. 
   Naturally, a combination of the above criteria can also be envisaged. In addition, in addition to the selection from the transmission levels, it is possible to select, from amongst those adopted according to this criterion, only the most intrinsically jamming codes (that is to say excluding any consideration of transmission level) for the code in question. This is because it is known, for example from the article by D. Mottier and D. Castelain entitled ‘A spreading sequence allocation procedure for MC-CDMA transmission systems’, published in VTC&#39; Fall 2000, September 2000 and included here by reference, that, if the coefficients h k  of the channel are correlated, for a given user code, certain codes, for equal transmission levels, are more jamming than others. More precisely, the interference between two codes c i  and c j  is related to the properties of the “conjugate product” sequence w ij , defined by w ij [k]=c i [k]c j   * [k]. This selection criterion will be referred to as the intrinsic jamming criterion. 
   With each code c i  there is associated a set E i  of codes judged to be “non-critical”, that is to say with a low interference level. The size of these sets depends on the level of interference accepted. It will be assumed that each set E i  contains M elements. 
   According to one advantageous embodiment, the sets E i  are stored in a bidimensional table: a first input corresponds to the index i of the code in question; a second input corresponds to the rank k (k between 0 and M−1) of the “non-critical” code. The output of the table gives the indices j of the codes, which is expressed by:
 
j=tab[ik]  (26)
 
   In the case of the WH sequences, a table with one dimension suffices: it is possible to store only the sequences associated with the 0 sequence. This is because w ij [k]=c i⊕j [k]=w 0,i⊕j  (the sequence produced corresponds to a code), if the term             is given to the property related to the sequence produced making it possible to distinguish a code which has an intrinsically low jamming level:
   E i ={j, such that w ij =c i c j   *  satisfies the property            }
               E i ={j, such that w 0 , i⊕j =c 0 c i⊕j  satisfies the property          }
               E i ={k⊕i; w 0 , k =c 0 c k   *  satisfies the property          }
               E i ={k⊕i; k∈E 0 }=i⊕E 0  
   It is therefore possible to generate the indices of the associated codes of El from those of E 0  by
 
 j=i ⊕tab[0 ,k]   (27)
 
This property can be extended to any code satisfying property (14). Equation (26) then becomes:
 
 j=f   i   −1 (tab[0 ,f   0 ( k )]) where  f   i ( j )= f ( i,j )  (28)
 
   In particular, this property also applies to a rotated Hadamard code, to a Fourier code or to a rotated Fourier code. 
   The intrinsic jamming criterion consists, for a given user k, of eliminating the codes relating to the indices belonging to E k  and selecting the codes relating to the remaining indices. 
   It should be noted that the selection according to the intrinsic jamming criterion may take place before or after the selection according to the transmission level criterion. 
   As will be seen, the selection of the codes according to the transmission level criterion, in possible combination with the intrinsic jamming criterion, makes it possible both to improve performance and to reduce the complexity by decreasing the size of the matrices. 
   Concerning the improvement to performance, it will be noted in fact that, when the levels v i  are estimated, the non-used codes can correspond to values of v i  which are low, but non-zero, which may interfere with the decoding. On the other hand, if a code used whose transmitted level is low is eliminated, the performance will thereby be only very slightly degraded. 
   Concerning the reduction in size of the matrices, if P codes have finally been selected, it is possible to construct a matrix V′ of size P×P obtained from V by eliminating the elements relating to the non-selected codes. It can be assumed, without loss of generality, that these codes bear the indices 0, . . . P−1, and hence V′=Diag(v 0 , . . . , v P−1 ). The matrix C can also be reduced to a matrix C′ of size N×P containing only the codes used. In this case, the matrix A, the product of the matrices H,C and V, is also reduced to a matrix A′ of size N×P: A′=HC′V′, and the vector Y is written: Y=A′D′+b. 
   The estimation of the symbols transmitted for the different users will then advantageously be done using the reduced equations, corresponding respectively to (5) and (6):
 
 {circumflex over (D)}′=A′   H ( A′A′   H =σ b   2   .I   N ) −1   Y   (29)
 
 {circumflex over (D)} ′=( A′   H   A′=σ   b   2   .I   P ) −1   A′   H   Y   (30)
 
   It will be noted that equation (29) involves the matrix A′A′ H  of size N×N whilst equation (30) involves the matrix A′ H A′ of reduced size P×P. Therefore preferably an estimation of the symbols according to equation (30) will be used. 
   In addition, if an estimation of the transmission levels is carried out by means of a single user equalisation of the MRC type, as disclosed above, the vector Z=C H H H Y defined at (20) is already available and it is consequently possible to create a vector of reduced size Z′ containing only the components corresponding to the selected codes, here by assumption the first P components. The symbols are then estimated in a manner similar to (25):
 
 {circumflex over (D)} ′=( A′   H   A′=σ   b   2   .I   P ) −1   {circumflex over (V)}′   H   Z′   (31)
 
   It is possible to rewrite the expression of A′ H A′ appearing in (30) (or in (31) if an estimation of the transmission levels has been carried out) by observing that A′ can also be expressed in the form A′=(HC)′V′ where (HC)′ is the reduction of the matrix HC to its first P columns:
 
 A′   H   A′=V′   H ( C   H   |H|   2   C )′ V′=V′   H   B′V′   (32)
 
It should be noted that, according to this expression, first of all B=C H |H| 2 C is calculated on the complete matrix C before proceeding with a reduction in dimension.
 
   It should be stated that the codes of the matrix C satisfy property (14), it suffices to calculate a row (or column) of B, the other rows (or columns) being derived therefrom using a permutation of these elements. In addition, if the matrix C is the matrix of a Fourier, rotated Fourier, Hadamard or rotated Hadamard code, the calculation of a row (or column) of B is easily obtained by transformation of the vector ρ. 
     FIG. 5  illustrates a GMMSE equaliser according to a first embodiment of the invention. 
   The modules  510 ,  520  can be seen, identical to the modules  410  and  420  of  FIG. 4 . The output of the FFT module  520  is the vector Y. The vector ρ issuing from a channel estimator is subjected at  590  to a transform (Hadamard, Fourier) corresponding to the code used for supplying the first row of the matrix B. From a table  592  giving the permutation of the indices f 0   −1 f, the module  591  generates, by means of (16), other rows of the matrix B. A matrix calculation module  593  receives the transmission levels v=(v 0 , . . . , v N−1 ) T  and calculates the matrix Ω=V H BV+σ b   2 .I N  (equation 6). The module  580  resolves the linear system Ω{circumflex over (D)}=A H Y where the values of {circumflex over (d)} k  are the unknowns. 
   According to a variant embodiment, not shown, the module  590  receives the vector π obtained from the received or estimated transmission level values. The module  590  effects a transform (Hadamard, Fourier) corresponding to the code used for supplying the first row of the matrix E. The module  591  next generates the other rows of the matrix E by means of the permutation table  592 . The matrix A=HEH H +σ b   2 .I N  is calculated in the module  593  and then transmitted to the module  580  which, in this case, calculates {circumflex over (D)}=A H Λ −1 Y. According to this variant the module  593  does not receive the vector v. 
     FIG. 6  illustrates a GMMSE equaliser according to a second embodiment of the invention with the estimation of the transmission levels but without reduction in dimension by selection of codes. 
   The modules  610 ,  620 ,  650 ,  660  can be seen, identical to the modules  410 ,  420 ,  450  and  460  in  FIG. 4 . The module  660  supplies an evaluation of the transmission levels {circumflex over (v)}=({circumflex over (v)} 0 , . . . , {circumflex over (v)} N−1 ) T  from the output Z of the single user detection module ( 650 ). The module  650  uses an equalisation of the MRC type. The modules  690 ,  691 ,  692  are identical to the modules  590 ,  591 ,  592 . The matrix calculation module receives from the module  691  the matrix B and the vector {circumflex over (v)} of the estimated transmission levels and effects the matrix calculation Ω={circumflex over (V)} H B{circumflex over (V)}+σ b   2 .I N . The module  680  resolves the linear system Ω{circumflex over (D)}=A H Y where the values of {circumflex over (d)} k  are the unknowns. 
   According to a variant embodiment, not shown, the estimation module  660  does not transmit the vector {circumflex over (v)} of the estimated transmission levels to the module  693 . On the other hand, the vector π is calculated from the components of {circumflex over (v)} and then supplied to the module  690 . The latter applies to it the transform corresponding to the code, which makes it possible to obtain, for example, the first row of the matrix Ê=C|{circumflex over (V)}| 2 C H . The other rows of the matrix are next generated by  691  from the permutation table  692 . The matrix {circumflex over (Λ)}=HÊH H +σ b   2 .I N  is calculated in the module  693  and then transmitted to the module  680  which, in this case, calculates {circumflex over (D)}=A H {circumflex over (Λ)} −1 Y. 
     FIG. 7  illustrates a GMMSE equaliser according to a third embodiment of the invention, effecting an evaluation of the transmission levels and a reduction in dimension by selection of codes. The modules  710 ,  720 ,  750 ,  760  are identical to the modules  410 ,  420 ,  450  and  460  in  FIG. 4 . The modules  790 ,  791  and  792  are identical to the modules  690 ,  691  and  692  in  FIG. 6 . From the evaluation of the transmission levels {circumflex over (v)}=({circumflex over (v)} 0 , . . . , {circumflex over (v)} N−1 ) T  effected by the module  760 , the module  770  selects the indice of the codes with the highest interference level and transmits them to the modules  771  and  772 . The module  771  constructs the vector Z′ from the vector Z. retaining only the components relating to the selected indices. Likewise, the module  772  reduces the matrix B of size N×N to the matrix B′ of size P×P, retaining only the rows and columns relating to the selected indices. The selection module  770  also transmits, to the matrix calculation module  793  and to the module  780 , the P transmission levels selected {circumflex over (v)}′=({circumflex over (v)} 0 , . . . , {circumflex over (v)} P−1 ) T . The latter effects the calculation Ω=V′ H B′V′+σ b   2 .I P  and transmits it to  780 , which resolves the linear system Ω′{circumflex over (D)}′={circumflex over (V)}′ H Z′ where the values of {circumflex over (d)} k  are the unknowns. 
   Although the MC-CDMA reception device using the equalisation method according to the invention has been depicted in the form of functional modules, it goes without saying that all or part of this device can be implemented by means of a single processor, either dedicated or programmed to fulfil all the functions described or in the form of a plurality of processors either dedicated or programmed for each fulfilling some of the said functions. 
   Annexe: 
   Let Y=AD+b be an observable from which it is possible to estimate the vector D by Wiener filtering. A is a square matrix of size N×N. The vector {circumflex over (D)} of the estimated symbols for the different users is obtained by means of the Wiener-Hopf equation:
 
 {circumflex over (D)}=R   DY   R   YY   −1   Y =( R   DD   A   H )( AR   DD   A   H +σ b   2   .I   N ) −1   Y 
 
   where R DY , R YY , R DD  are respectively the covariance matrix of Y and D and the autoco variance matrices of Y and D. If it is assumed that the transmitted symbols are decorrelated, this gives R DD =I N  and therefore:
 
 {circumflex over (D)}=A   H ( AA   H =σ b   2   .I   N ) −1   Y 
 
   Let X=A H Y, the result of the matched filtering of Y: it is known that X is an exhaustive summary of Y. It is possible to take as an observable the vector X instead of the vector Y and estimate the vector D from this new observable by means of a Wiener filtering. The estimated vector {circumflex over (D)} is then written:
 
{circumflex over (D)}=R DX   * R XX   −1 X
 
However  R   DX   =E ( DX   H )= E ( DY   H   A )=( R   DD   A   H   +R   Db ) A=A   H   A  and likewise
 
 R   XX   =A   H   AR   DD   A   H   A+A   H   R   bb   A =( AA   H =σ b   2   I   N ) A   H   A  and hence
 
 {circumflex over (D)} =( A   H   A =σ b   2   I   N ) −1   X =( A   H   A+σ   b   2   I   N ) −1   A   H   Y 
 
   If the square matrix A is replaced by a rectangular matrix A′ of size N×P, there is obtained, in the same way:
 
 {circumflex over (D)} =( A′   H   A′+σ   b   2   I   P ) −1   X =( A′   H   A′+σ   b   2   I   P ) −1   A′   H   Y