Abstract:
An equalization method for a downlink channel in an MC-CDMA telecommunication system includes a plurality of links established between a transmitter and a plurality of receivers, each link using a distinct access code amongst N possible codes. The method includes a first step of estimating the relative levels of the signals transmitted by the transmitter using each of the N codes, the first step including an equalization of the MC-CDMA symbols carrier by carrier, and a second step using the levels for estimating the symbols transmitted by the user over at least one link, the second step being adapted to minimize the mean square error between the transmitted symbols and the estimated symbols.

Description:
BACKGROUND OF THE INVENTION 
   1. Field of the Invention 
   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. 
   2. Discussion of Background 
   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 sub-carrier. 
   More precisely,  FIG. 1  shows the structure of an MC-CDMA transmitter for a given user k. Let d k (i) 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, the user k transmits his data 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       l   -   1       ⁢       ∑     l   =   0       L   -   1       ⁢       v   k     ·       c   k     ⁡     (     l   ·     T   c       )       ·       d   k     ⁡     (   i   )       ·     exp   ⁡     (       j   ·   2     ⁢   π   ⁢           ⁢     l   /   L       )                     (   1   )               
where ν 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       l   -   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 subcarrier 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 (Maximum Ratio Combining) defined by the use of the coefficients q l =h* l  where .* denotes the complex conjugate;   EGC (Equal Gain Combining) defined by the use of the coefficients q l =e −jφl  where h l =p 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 neglect the intersymbol interference. The equalisation can therefore be carried out 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. Citerne entitled “A novel linear MMSE detection technique for MC-CDMA” published in Electronics Letters, Vol. 36, N o  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 equalisation 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 equalisation is effected by means of a multiplication  331  by a matrix Q of the signals of the different carriers. The despread signal obtained at the output of the adder  340  is then multiplied by the transmission level v k  of the user k 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, 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 ν 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.
 
   SUMMARY OF THE INVENTION 
   As has just been seen, the GMMSE equalisation method assumes that the matrix V is known, that is to say the transmitted levels of the different users. However, a mobile terminal does not know the transmission powers of the signals transmitted by the base station intended for the different users nor even the codes which are actually used. The developments of the state of the art generally assume that the transmission levels are known, which is not the case in practice. In addition, formula (3) requires an inversion of a matrix of size N, equal to the length of the spreading sequence and to the maximum value of the number of users (or equivalently the resolution of a system of N linear equations). Thus, even if the system is working at low load, the complexity of the equalisation operation always remains high. 
   The aim of the present invention is to propose a GMMSE equalisation method for a downlink channel in an MC-CDMA telecommunication system which makes it possible to estimate the different transmission levels intended for the different users and which is of reduced complexity, notably when the system is not working at full load. 
   To this end, the present invention is defined by an equalisation method for a downlink channel in an MC-CDMA telecommunication system in which a plurality of links are established between a transmitter and a plurality of receivers, each link using a distinct access code amongst N possible codes, characterised in that it comprises a first step of estimating the relative levels ({circumflex over (ν)} i ) of the signals transmitted by the transmitter by means of each of the said N codes, the said first step including an equalisation of the MC-CDMA symbols carrier by carrier, and a second step using the said levels for estimating the symbols transmitted by the user over at least one link, the said second step being adapted to minimise the mean square error between the said transmitted symbols and the estimated symbols. 
   Advantageously, the carrier by carrier equalisation of the MC-CDMA symbols is followed by a filtering adapted to each of the N possible codes. The N values obtained by filtering adapted to each of the N possible codes will then be subjected to a modulus calculation giving the estimation of the said levels. A time smoothing operation can be provided prior to or subsequent to that of calculating the modulus. 
   According to one embodiment, the second step is adapted to calculate:
 
 {circumflex over (D)} =( Â   H   Â+σ   b   2   ·I   N ) −1   Â   H   Y 
 
where {circumflex over (D)} is the vector of the estimated symbols on the different links, Y is the received vector of the components of an MC-CDMA symbol on the different carriers, Â=HC{circumflex over (V)} with H the matrix giving the characteristics of the transmission channel at these different carrier frequencies, C is the matrix of the N codes, {circumflex over (V)}=Diag({circumflex over (ν)} 0 , . . . , {circumflex over (ν)} N-1 ) where the {circumflex over (ν)} i  values are the transmission levels estimated by the first step, σ b   2  is the variance of the noise on each carrier and I N  the unity matrix of size N×N.
 
   Advantageously, the carrier by carrier equalisation of the first step is an MRC equalisation. In this case, and according to a second embodiment, the second step is adapted to calculate:
 
 {circumflex over (D)} =( Â   H   Â+σ   b   2   ·I   N ) −1   {circumflex over (V)}   H   Z 
 
where {circumflex over (D)} is the vector of the symbols estimated on the different links, Z represents the output of the adapted filtering of the first step, Â=HC{circumflex over (V)} with H a matrix giving the characteristics of the transmission channel at the different carrier frequencies, C is the matrix of the N codes, {circumflex over (V)}=Diag({circumflex over (ν)} 0 , . . . , {circumflex over (ν)} N-1 ) where the {circumflex over (ν)} i  values are the transmission levels estimated by the first step, σ b   2  is the variance of the noise on each carrier and I N  the unity matrix of size N×N.
 
   If the components of the matrix of the codes C satisfy an equation of the type c* k,i c k,j =λ ij c k,ƒ(i,j)  or λ ij c* k,ƒ(i,j)  where λ ij  is a complex number and ƒ(i,j) is an index between 0 and N-1 dependent on i and j, in particular if the codes are Walsh-Hadamard, rotated Walsh-Hadamard, Fourier or rotated Fourier codes, the matrix Â H Â can be obtained from the matrix B=C H |H| 2 C and the latter can itself be obtained by first of all calculating one of its rows/columns and deriving therefrom the other rows/columns by means of a permutation of its elements. 
   According to a variant, a subset of codes amongst the N possible codes will be selected from the N estimated levels ({circumflex over (ν)} i ). The selection can be carried out by retaining, amongst the N estimated levels ({circumflex over (ν)} i ), those which exceed a predetermined threshold value Th. Alternatively, for a given link k using a code c k  and having a transmission level {circumflex over (ν)} k , a selection is made of the codes c m  associated with transmission levels {circumflex over (ν)} m  such that {circumflex over (ν)} m &gt;μ·{circumflex over (ν)} k  with 0&lt;μ&lt;1. The threshold value Th or μ will advantageously be determined as a function of the ratio between the number of codes actually used and the number N of possible codes. In addition, for a given link k using a code c k , it is possible finally to retain, amongst the codes selected, only those which are most able to jam it. The codes c i  most able to jam the code c k  will advantageously be obtained from a property of the sequence produced defined by w ik [l]=c li ·c* lk  where c li  and c lk  are the sequences associated with the codes c j  and c k  respectively. If the codes satisfy an equation of the type c l,i ·c* l,k =λ ik c l,ƒ(i,k)  or λ ik c* l,ƒ(i,k)  where λ ik  is a complex number and ƒ(i,k) is an index which is a function of i and k, the codes most able to jam the code C k  can be obtained from the codes most able to jam a predetermined code c 0 . 
   If P codes amongst N have been selected as indicated above, the matrix {circumflex over (V)}=Diag({circumflex over (ν)} 0 , . . . ,{circumflex over (ν)} N-1 ), where the {circumflex over (ν)} i  values are the transmission levels estimated by the first step, can be reduced to a matrix {circumflex over (V)}′ of size P×P now including only the levels associated with the said selected codes, the second step then being adapted to calculate:
 
 {circumflex over (D)}′= ( Â′   H Â′+σ b   2   ·I   P ) −1   Â′   H   Y 
 
where {circumflex over (D)}′ is the vector of the estimated symbols on the links relating to the selected codes, Â′=HC′{circumflex over (V)}′ where H is the matrix giving the characteristics of the transmission channel at the different carrier frequencies, C′ is the matrix of the P codes selected, Y is the received vector of the components of the MC-CDMA symbol on the different carriers, σ b   2  is the variance of the noise on each carrier and I P  the unity matrix of size P×P.
 
   Advantageously, the carrier by carrier equalisation of the first step is an MRC equalisation. In this case, if P codes amongst N have been selected as indicated above, the matrix {circumflex over (V)}=Diag({circumflex over (ν)} 0 , . . . ,{circumflex over (ν)} N-1 ), where the {circumflex over (ν)} i  values are the transmission levels estimated by the first step, can be reduced to a matrix {circumflex over (V)}′ of size P×P now containing only the levels associated with the said selected codes, the second step then being adapted to calculate:
 
 {circumflex over (D)}′= ( Â′   H   Â′+σ   b   2 ·I P ) −1   {circumflex over (V)}′   H   Z′ 
 
where Â′=HC′{circumflex over (V)}′, H is the matrix giving the characteristics of the transmission channel at the different carrier frequencies, C′ is the matrix of the P codes selected, Z′ represents the output of the adapted filtering of the first step, reduced to the P codes selected, σ b   2  is the variance of the noise on each carrier and I P  the unity matrix of size P×P. The matrix Â′ H Â′ can be obtained from the matrix product C′ H |H| 2 C′ or from the matrix product (C H |H| 2 C)′ where (C H |H| 2 C)′ is a version reduced to the selected codes of the matrix C H |H| 2 C, the choice of the first or of the second calculation method depending on the number of codes selected. If the matrix C of the codes is such that c* k,i c k,j =λ ij c k,ƒ(i,j)  or λ ij c* k,ƒ(i,j)  where λ ij  is a complex number, where ƒ(i,j) is an index between 0 and N-1 dependent on i and j, the matrix C H |H| 2 C can be obtained by first of all calculating a first row/column of the said matrix and deriving the others from the said first row/column by means of a permutation of its elements. If the matrix C is a Hadamard or rotated Hadamard matrix, the said first row of C H |H| 2 C will be calculated by means of a Hadamard transform. Likewise, if the matrix C is a Fourier or rotated Fourier matrix, the first row of C H |H| 2 C will be calculated by means of a Fourier transform. The matrix Â′ H Â′ will be obtained from the matrix product C′ H |H| 2 C′ if the number of codes selected is less than log 2 (N) and from the matrix product (C H |H| 2 C)′ otherwise.
 
   The invention is also defined by a telecommunication system receiver of the MC-CDMA type, comprising means for implementing the equalisation method as disclosed above. 
   Finally, the invention concerns a receiver for a telecommunication system of the MC-CDMA type, comprising 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 schematically a transmission level estimator useful to the equalisation device according to the invention; 
       FIG. 5  depicts schematically the structure of an MC-CDMA receiver using a GMMSE equalisation according to a first embodiment of the invention; 
       FIG. 6  depicts schematically the structure of an MC-CDMA receiver using a GMMSE equalisation according to a second embodiment of the invention. 
   

   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(ν 0 , . . . , ν N-1 ) represents the levels transmitted. The matrix C corresponds to the code sequences transmitted. The i th  column of C corresponds to the i th  code sequence. For example, this matrix may be a Walsh-Hadamard or Fourier matrix, for which a fast transform algorithm exists. The diagonal matrix H represents the frequency response of the channel to the different subcarrier frequencies, 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 o  0011834 filed on 14 Sep. 2000 in the name of the applicant and included here by reference. 
   When the system is not under full load, that is to say when the system has only a number P&lt;N of users, it is possible to reduce the size of the vectors and matrices participating in equation (4). Indeed, it is possible to assume, without loss of generality, that these P users are the first P users: 0, . . . , P-1. It is concluded from this that d i =0 for i&gt;P-1. Let D′ be the vector reduced to the non-zero data: D′=(d 0 , . . . , d P-1 ) T . Likewise the levels ν i  are zero for i&gt;P-1. Likewise, it is possible to define a reduced matrix V′=Diag (ν 0 , . . . , ν P-1 ). 
   If the P used codes of the users are known, 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′. The vector Y is then written: Y=A′D′+b. 
   On reception the vector Y is the subject of the GMMSE equalisation for the matrix Q given by (3). If {circumflex over (D)} is the vector of the estimated symbols 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)
 
   When the system is not under full load equations (5) and (6) are reduced respectively to:
 
 {circumflex over (D)}′=A′   H ( A′A′   H +σ b   2   ·I   N ) −1   Y   (5′)
 
 {circumflex over (D)}′= ( A′   H   A′+σ   b   2   ·I   P ) −1   A′   H   Y   (6′)
 
   It will be noted that equation (6′) involves the matrix A′ H A′ of reduced size P×P whilst equation (5′) involves the matrix A′A′ H  of size N×N. 
   The idea at the basis of the invention is to estimate the transmission levels in a preliminary step by means of a single user detection method and then to use these levels for the GMMSE equalisation. 
   The single user detection as disclosed above in relation to  FIG. 2  makes it possible to obtain a first approximation of the relative transmission level of each user, ignoring inter-user interference. To do this, there is applied, at the output of the FFT module, as indicated in  FIG. 4 , a carrier to carrier equalisation 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 a symbol vector Z=(z 0 , . . . , z N-1 ) T , that is to say:
 
Z=C H QY  (7)
 
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 despreading module is represented by  450 . The operation performed 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 (7) is then written:
 
Z=C H H H Y  (8)
 
   An estimation of the relative transmission levels in the module  460  is obtained in the form of a vector {circumflex over (ν)}=({circumflex over (ν)} 0 , . . . , {circumflex over (ν)} N-1 ) T  such that: 
                     v   ⋒     i     =         |     z   i     ⁢     |   2         =     |     z   i     |               (   9   )               
if the interference and noise are ignored, and
 
                     v   ⋒     i     =       |     z   i     ⁢     |   2     ⁢     -       λ   ^     2                   (   10   )               
if an estimation λ 2  of the power of the interference and noise is available.
 
   Advantageously, if several MC-CDMA symbols have been transmitted with the same codes and the same powers (for example within the same symbol frame), the module  460  can effect a smoothing of the values {circumflex over (ν)} i  or {circumflex over (ν)} 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 (ν)} i (n):
 
 {tilde over (ν)}   i ( n )=α{tilde over (ν)} i ( n -1)+β{tilde over (ν)} i ( n )   (11)
 
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, the matrix A can be estimated by:
 
Â=HC{circumflex over (V)}
 
and therefore
 
Â H ={circumflex over (V)} H C H H H   (12)
 
where {circumflex over (V)}=Diag({circumflex over (ν)} 0 , . . . ,{circumflex over (ν)} N-1 ).
 
It then suffices to replace A and A H  in (5) or (6) by their respective estimates in order to obtain {circumflex over (D)}.
 
   Advantageously, the detection will be effected by means of formula (6) and use will be made of the MRC equalisation method given by (8) in the preliminary single-user detection step. Thus the result of the carrier by carrier equalisation will be able to be reused in the GMMSE equalisation. This is because equation (6) can be written:
 
 {circumflex over (D)}= ( Â   H   Â+σ   b   2   ·I   N ) −1   Â   H   Y= ( Â   H   Â+σ   b   2   ·I   N ) −1   {circumflex over (V)}   H   C   H   H   H   Y =( Â   H   Â+σ   b   2   ·I   N ) −1   {circumflex over (V)}   H   Z   (13)
 
   The variance of the noise σ b   2  can be evaluated for its part, in a conventional manner, by means of pilot signals serving for the estimation of the transmission channel. It is also possible to use a “typical” mean value. 
   The matrix Â H Â can also be rewritten in the form:
 
 Â   H   Â={circumflex over (V)}   H ( C   H   H   H   HC ) {circumflex over (V)}={circumflex over (V)}   H ( C   H   |H|   2   C ) {circumflex over (V)}   (14)
 
It will be shown that, for the majority of the codes in normal use, the calculation of the matrix B=C H |H| 2 C can be considerably simplified.
 
   Assume first of all that the code used is a Walsh-Hadamard (WH) 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 
                       l 
                     
                   
                   = 
                   
                     [ 
                     1 
                     ] 
                   
                 
               
             
             
               
                 ( 
                 15 
                 ) 
               
             
           
         
       
     
   
   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,i⊕j   (16)
 
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 (16) 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   (17)
 
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 )  (18)
 
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 can be shown that, if the matrix C of the initial code is such that the combined product of two codes is still a code or its conjugate then the matrix C r  of the rotated code has the same property, to within a multiplying factor. 
   In general terms, the codes satisfying the following property will be considered:
 
c* k,i c k,j =λ ij ·c k,ƒ(i,j)  or λ ij ·c* k,ƒ(i,j)  which will be denoted λ ij ·c k,   (*)ƒ(i,j)   (19)
 
where ƒ(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 depending in general 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 
                           
                         
                       
                     
                   
                   = 
                   
                     
                       
                         λ 
                         
                           i 
                           , 
                           j 
                         
                       
                       ⁢ 
                       
                         ∑ 
                         
                           k 
                           = 
                           0 
                         
                         
                           N 
                           - 
                           1 
                         
                       
                     
                     | 
                     
                       h 
                       k 
                     
                     ⁢ 
                     
                       | 
                       2 
                     
                     ⁢ 
                     
                       c 
                       
                         k 
                         , 
                         
                           f 
                           ⁡ 
                           
                             ( 
                             
                               i 
                               , 
                               j 
                             
                             ) 
                           
                         
                       
                       
                         ( 
                         
                             
                         
                         * 
                         
                             
                         
                         ) 
                       
                     
                   
                 
               
             
             
               
                 ( 
                 20 
                 ) 
               
             
           
         
       
     
   
   First of all, for example, the first row of the matrix B is calculated, that is to say the coefficients b 0j , and then the other rows are derived therefrom by permutation: 
   
     
       
         
           
             
               
                 
                   b 
                   ij 
                 
                 = 
                 
                   
                     
                       
                         λ 
                         ij 
                       
                       
                         λ 
                         
                           o 
                           , 
                           j 
                         
                       
                     
                     ⁢ 
                     
                       b 
                       
                         0 
                         , 
                         
                           
                             f 
                             o 
                             
                               - 
                               1 
                             
                           
                           ⁡ 
                           
                             ( 
                             
                               f 
                               ⁡ 
                               
                                 ( 
                                 
                                   i 
                                   , 
                                   j 
                                 
                                 ) 
                               
                             
                             ) 
                           
                         
                       
                     
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     where 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       
                         f 
                         0 
                       
                       ⁡ 
                       
                         ( 
                         k 
                         ) 
                       
                     
                   
                   = 
                   
                     f 
                     ⁡ 
                     
                       ( 
                       
                         0 
                         , 
                         k 
                       
                       ) 
                     
                   
                 
               
             
             
               
                 ( 
                 21 
                 ) 
               
             
           
         
       
     
   
   If a table of ƒ 0   −1 ƒ, and, where applicable, of 
               λ     i   ⁢           ⁢   j         λ     o   ⁢           ⁢   j         ,         
is available, calculating the matrix B requires only the calculation of just one of its rows.
 
   In general terms, if the code employed satisfies property (19), notably for a Hadamard, rotated Hadamard, Fourier or rotated Fourier code, 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 derived therefrom by means of permutation and multiplication operations. 
   According to an advantageous embodiment of the invention, in the calculation of (5), (6), (13) or (14), account is taken only of the codes actually used (that is to say for the users present) and, amongst these, for a given user, only those significantly interfering with the code of this user. 
   Consider a user k. Formula (9) or (10) gives the estimation of the transmission levels {circumflex over (ν)}=({circumflex over (ν)} 1 , . . . , {circumflex over (ν)} N-1 ). 
   The most interfering codes can 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 {circumflex over (ν)} m  levels are selected; 
   (2) the codes c m  distinct from c k  associated with the levels {circumflex over (ν)} m &gt;Th are selected, where Th is a predetermined threshold. Advantageously, the threshold Th will be adaptive and will depend on the transmission level for the user in question. The codes c m  will be selected such that: {circumflex over (ν)} m &gt;μ. {circumflex over (ν)} 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 (ν)} kδ and the codes c m  will be selected such that: {circumflex over (ν)} m &gt;μ.{circumflex over (ν)} kδ . According to one variant, the absolute Th or relative μ threshold can be chosen as a function of 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 two levels of use of the resource, on which the interference depends after demodulation. 
   Naturally a combination of the above criteria can also be envisaged. In addition, as a complement to the selection from the transmission levels, it is possible to select, 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, included here by reference, that, if the coefficients h k  of the channel are correlated, for a given user code, some codes (for an equal transmission level) are more jamming than others. More precisely, the interference between two codes c i  and c j  is related to the properties of the sequence “produced” w ij , defined by w ij [k]=c i [k]c j *[k]. This selection criterion will be referred to hereinafter as the intrinsic jamming criterion. 
   With each code c i  there is associated a set E j  of codes judged to be “non-critical”, that is to say weakly interfering. The size of these sets depends on the accepted interference level. 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 are expressed by:
 
j=tab[i,k]  (22)
 
   In the case of the WH sequences, a table with one dimension suffices: it is possible to store only the sequences associated with the sequence 0. 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 propensity for jamming:
       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 E i  from those of E 0  by:
 j=i⊕tab[0, k]  (23) 
This property can be extended to any code satisfying property (19). Equation (23) then becomes:
   j=ƒ   i   −1 (tab[0,ƒ 0 ( k )]) where ƒ i ( j )=ƒ( i,j )  (24)       
   Where the functions ƒ i   −1  have a simple form, a table with only one dimension suffices to generate the sets of non-critical codes. In particular these properties apply 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 can take place before or after the selection according to the transmission level criterion. 
   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 the performance and to reduce complexity, whilst decreasing the size of the matrices. 
   Concerning the improvement to performance, it should be noted in fact that the codes which are not used can correspond to estimations {circumflex over (ν)} i  of low, but not zero, values, which may interfere with decoding. On the other hand, if a code used is eliminated whose transmitted level is low, the performance will be only very slightly degraded. 
   Concerning the reduction in the size of the matrices, if P codes have finally been selected it is possible to construct a matrix {circumflex over (V)}′ of size P×P obtained from {circumflex over (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 {circumflex over (V)}′=Diag({circumflex over (ν)} 0 , . . . , {circumflex over (ν)} P-1 ). 
   The symbols transmitted for the different users will then advantageously be estimated using the reduced equations (5′) or (6′). 
   Two cases are presented depending on whether or not the preliminary step of estimating the levels by single user detection has used an MRC equalisation. 
   If the preliminary step has not used an MRC equalisation, V is replaced by {circumflex over (V)}′ in the expression of matrices A and A H A, which gives reduced versions Â′ and Â′ H Â′. The reduced matrix Â′ is simply obtained by the expression Â′=HC′{circumflex over (V)}′ where C′ is the matrix reduced to the P selected codes. The symbols are then estimated by:
 
 {circumflex over (D)}′= ( Â′   H   Â′+σ   b   2   ·I   P ) −1   Â′   H   Y   (25)
 
   If, on the other hand, the preliminary step has used an MRC equalisation, that is to say if the vector Z=C H H H Y is already available as indicated at (8), it is possible to create a vector of reduced size, Z′ containing only the components corresponding to the selected codes, here the first P components. The symbols are then estimated in a similar manner to (13):
 
 {circumflex over (D)}′= ( Â′   H   Â′+σ   b   2   ·I   P ) −1   {circumflex over (V)}′   H   Z′   (26)
 
   In both cases, it is important to note that the inversion of the matrix (or the resolution of a linear system) relates to a matrix of size P rather than to a matrix of size N. 
     FIG. 5  depicts an MC-CDMA reception device using the GMMSE equalisation method according to a first embodiment of the invention and implementing an estimation of the symbols according to (25). 
   The modules  510 ,  520 ,  550  and  560  are identical to the modules  410 ,  420 ,  450  and  460  in  FIG. 4 . The module  570  makes a selection of the codes according to the transmission level and/or intrinsic jamming criterion. The set S P  of the indices of the selected codes is transmitted to the matrix calculation module  580  as well as the vector {circumflex over (ν)}′=({circumflex over (ν)} 1 , . . . , {circumflex over (ν)} P-1 ) of the corresponding transmission levels. The matrix calculation module  580  also receives the values of C, H, σ 2 , evaluates the matrix Â′ and then Â′ H Â′ as will be seen below and finally calculates {circumflex over (D)}′ according to (25). In practice, this calculation will be made by resolving the system of P linear equations with P unknowns {circumflex over (d)} k :
 
( Â′   H   Â′+σ   b   2   ·I   P ) {circumflex over (D)}′=Â′   H   Y    (27)
 
   At the output of  580 , only the value {circumflex over (d)} k  corresponding to the code of the user in question is actually used. If the user has established several links with the base station, the set of corresponding values {circumflex over (d)} k  will be retained. 
     FIG. 6  shows an MC-CDMA reception device using the GMMSE equalisation method according to a second embodiment of the invention and implementing an estimation of the symbols according to (26). The modules  610 ,  620 ,  650 ,  660 ,  670  are identical to the modules  510 ,  520 ,  550 ,  560  and  570  of  FIG. 5 . Unlike  FIG. 5 , however, the single user detection module  550  is here situated in the main detection flow. It effects an equalisation according to the MRC method followed by despreading, or, in other words, a filtering operation adapted to the transmission channel and to the codes of the different users. The set S P  of selected indices is used by the module  671 , which reduces the vector Z to the vector Z′ of the components corresponding to these indices. The module  680  receives the vector Z′, the values of C, H, σ 2 , evaluates the matrix A′ and then Â′ H Â′ as will be seen below and finally calculates {circumflex over (D)}′ according to (26). In practice, this calculation will be made by resolving the system of P linear equations with P unknowns {circumflex over (d)} k :
 ( Â′   H   Â′+σ   b   2   ·I   P ) {circumflex over (D)}′={circumflex over (V)}′   H   Z′   (28) 
   As before, at the output of  680 , only the value or values {circumflex over (d)} k  relating to the code or codes of the user will be retained. 
   It should be noted that, in the reception device of  FIG. 5  or that of  FIG. 6 , the components of the vector {circumflex over (D)}′ can serve for an estimation of finer levels than that obtained from the single user detection. In this case, the new vector of the estimated levels can be used for a new calculation of {circumflex over (D)}′ or for a calculation of a vector of symbols at a subsequent time. To do this, the output of  580  (or respectively  680 ) is looped back onto the module  560  (or respectively  660 ). 
   In addition, the equalisation device according to the invention can make provision for changing dynamically from one equalisation method to another according to the characteristics of the channel or the occupation rate of the resource P/N. For example, the EGC method will be preferred to the MRC method if the occupation rate P/N is greater than a certain predetermined threshold. The reception device then changes from the configuration in  FIG. 6  to that in  FIG. 5  and vice-versa. Naturally, the switching can take place only at the start of a detection cycle, so as to ensure the consistency of the calculations. 
   As seen above, the modules  580  and  680  first of all evaluate the matrix Â′ by Â′=HC′{circumflex over (V)}′. A first expression of Â′ H Â′ is derived therefrom:
 
 Â′   H   Â′={circumflex over (V)}′   H ( C′   H   |H|   2   C′ ) {circumflex over (V)}′   (29)
 
   If it is observed that Â′ can also be written Â′=(HC)′{circumflex over (V)}′ where (HC)′ is the reduction of the matrix HC to its first P columns. A second expression of Â′ H Â′ is derived therefrom:
 
 A′   H   A′={circumflex over (V)}′   H ( C   H   H   H )′( HC ) ′{circumflex over (V)}′={circumflex over (V)}′   H ( C   H   |H|   2   C ) ′{circumflex over (V)}′   (30)
 
   It will be noted that, according to this second expression, a calculation of C H |H| 2 C on the complete matrix C is first of all effected before proceeding with a reduction in dimension. 
   When the number of codes P is low, the calculation of Â′ H Â′ according to formula (29) will be opted for. This calculation leads to approximately (NP 2 +2P 2 +NP) operations. 
   If on the other hand the reduction in the number of codes is not very high, the calculation according to formula (30) will be opted for, since there exists a fast algorithm for applying the transform C. This calculation is all the more simple since, in the majority of cases, the codes of the matrix C satisfy property (19). The elements of B=C H |H| 2 C can then be obtained by (20) and (21). As indicated above, only the calculation of one row (or one column) is effected, the other rows (or the other columns) being derived therefrom by permutation of the elements. If use is made for example of a WH code, the first row of the matrix B is obtained by a Hadamard transform of the vector ρ=(|h 0 | 2 , . . . , |h N-1 | 2 ) T  requiring (N log 2 (N) operations. The complete calculation of Â′ H Â′ requires (N log 2 (N)+2P 2 ) operations. This operation will therefore be more effective as soon as log 2 (N) is smaller than P 2 . The modules  580  and  680  can change dynamically from the calculation according to (29) to the calculation according to (30) and vice-versa. 
   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 for fulfilling 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 autocovariance 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