# Patent

## Title
Nonlinear precoding in code-division multiple access communication system

## Abstract

A precoding technique is herein disclosed for a spread-spectrum transmission system which advantageously addresses intersymbol interference along with multiuser and interchip interference.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of and is a nonprovisional of U.S. Provisional Application No. 60/710,060, entitled “NONLINEAR PRECODING FOR TD-SCDMA,” filed on Aug. 22, 2005, the contents of which are incorporated herein by reference.


BACKGROUND OF INVENTION
The invention relates generally to code-division multiple access systems and, in particular, to precoding techniques for reducing inteference in such systems.
A major problem for systems using code-division multiple access (CDMA) is that multipath fading can introduce multiuser interference (MUI) and intersymbol inteference (ISI). One technique to minimize the interference in direct sequence CDMA systems is referred to as “multiuser detection” (MUD), in which multiple transmitters (e.g., mobile units) send independent data streams to a single receiver (e.g., a base station) which performs complex signal processing algorithms to remove the MUI and ISI. Unfortunately, applying conventional multiuser detection to the downlink transmission rather than the uplink transmission faces a number of significant hurdles. For example, linear MUD techniques not only increase the complexity of the downlink receivers, they also require that the mobile units know the spreading sequence of the rest of the users.
One approach to addressing these issues is to transfer the decoding complexity of the receiver to the transmitter, a technique generally referred to as “precoding.” Transmitter precoding is an attractive solution for systems employing time-division multiplexing, where uplink and downlink channels are reciprocal to each other. A variety of linear precoding techniques have been proposed which obtain a good tradeoff between complexity and performance in a system with interchip inteference but without intersymbol interference. Intersymbol interference can be ignored through the introduction of guard intervals or because the spreading gain is much longer than the length of the multipath channel. In a system with intersymbol inteference, however, the complexity of such prior art systems becomes intractable since the matrix filter sizes are proportional to the frame length multiplied by the number of users (i.e., block processing).
SUMMARY OF INVENTION
A precoding technique is herein disclosed for a spread-spectrum transmission system which advantageously addresses intersymbol interference along with multiuser and interchip interference. The precoder design uses a feedback filter and a feedforward filter to address multiuser and interchip interference while another feedback filter is applied to a previously-precoded vector and the result subtracted from the incoming symbol vector to cancel intersymbol interference. The precoder design can be implemented using bit-wise operations or chip-wise operations. The chip-wise precoder design combines the preceding operation with the spreading operation and offers potential performance improvement compared with the bit-wise precoder. A power loading approach is also disclosed which further optimizes the system performance. The precoder design is advantageously considerably less complex than block-wise linear precoders. The disclosed precoding technique also is particularly advantageous when utilized with systems employing time-division multiplexing of the uplink and downlink channels.
These and other advantages of the invention will be apparent to those of ordinary skill in the art by reference to the following detailed description and the accompanying drawings.



BRIEF DESCRIPTION OF DRAWINGS
FIG. 1 illustrates a communication transmission system using a preceding structure arranged in accordance with an embodiment of the invention.
FIG. 2 illustrates a communication transmission system using a preceding structure arranged in accordance with another embodiment of the invention.
FIG. 3 is pseudo-code illustrating a greedy approach to generating the permutation matrix.
FIGS. 4, 5, and 6 illustrate the BER performance of the disclosed precoding techniques compared with a prior art linear precoder.
FIG. 7 illustrates the performance of channel prediction when used with the disclosed chip-wise precoding technique with loading and ordering.



DETAILED DESCRIPTION
FIG. 1 illustrates a communication transmission system using a precoding structure arranged in accordance with an embodiment of the invention. The system is herein assumed to be without limitation a discrete-time synchronous code-division multiple access (CDMA) system providing downlink transmission over multipath channels to K receivers 101, 102, . . . 105.
As depicted in FIG. 1, the transmitter receives a downlink information stream 110 denoted by b[i]=[b1[i], . . . , bK[i]]T, where bκ[i] is an information symbol selected from a finite constellation set A of the κ-th user transmitted during the i-th symbol interval. As further described in detail below, the transmitter performs a symbol by symbol preceding operation which results in a K×1 precoded symbol vector χ[i]=ψ(b[i], . . . , b[i−ν+1]), based on ν information symbol vectors. The precoded symbol vector is transformed into spread-spectrum signals at 150, where N denotes the spreading factor and sκ=[Sκ,1, . . . , sκ,N]T represents the spreading waveform of the κ-th user. The signal transmitted during the i-th symbol interval can be written as p[i]=Sχ[i], where S=[s1, s2, . . . , sK].
The multipath channels between the transmitter and the receivers 101, 102, . . . 105 are modeled as shown in FIG. 1 and as described below. The transmitted signal vector p[i] is depicted as passing through a parallel-to-serial converter 160 and subjected to different complex fading gains 171, 172, . . . 175 depending on the path to the receivers 101, 102, . . . 105. The path delays are assumed to be integral multiples of the chip interval. Denote the multipath channel seen by the κ-th user as ƒκ=[ƒκ,1, . . . ,ƒκ,2, . . . ,ƒκ,L]T, where L is the number of resolvable paths and fκ,l is the complex fading gain corresponding to the l-th path of the κ-th user. It is assumed that L≦N so that the delay spread is at most one symbol interval. Denote rκ[i] as the N×1 received signal vector by the κ-th user during the i-th symbol interval (i.e., N consecutive chip intervals). Then

rκ[i]=DκSχ[i]+ DκSχ[i−1]+nκ[i],   (1 )

where nκ[i] ̃Nc(0, σn2IN) is the complex white Gaussian noise vector at the κ-th receiver, and





  
    
      
        
          
            
              D
              k
            
            =
            
              
                [
                
                  
                    
                      
                        f
                        
                          k
                          ,
                          1
                        
                      
                    
                    
                      0
                    
                    
                      
                        
                      
                    
                    
                      
                        
                          
                        
                        ⁢
                        ⋯
                      
                    
                    
                      0
                    
                  
                  
                    
                      
                        f
                        
                          k
                          ,
                          2
                        
                      
                    
                    
                      
                        f
                        
                          k
                          ,
                          1
                        
                      
                    
                    
                      0
                    
                    
                      ⋰
                    
                    
                      ⋮
                    
                  
                  
                    
                      ⋮
                    
                    
                      ⋰
                    
                    
                      
                        
                      
                    
                    
                      ⋰
                    
                    
                      0
                    
                  
                  
                    
                      0
                    
                    
                      ⋯
                    
                    
                      
                        f
                        
                          k
                          ,
                          L
                        
                      
                    
                    
                      ⋯
                    
                    
                      
                        f
                        
                          k
                          ,
                          1
                        
                      
                    
                  
                
                ]
              
              
                N
                ×
                N
              
            
          
          ,
          
            

          
          ⁢
          and
        
        ⁢
        
          

        
        ⁢
        
          
            
              D
              _
            
            k
          
          =
          
            
              
                [
                
                  
                    
                      0
                    
                    
                      ⋯
                    
                    
                      
                        f
                        
                          k
                          ,
                          L
                        
                      
                    
                    
                      ⋯
                    
                    
                      
                        f
                        
                          k
                          ,
                          2
                        
                      
                    
                  
                  
                    
                      0
                    
                    
                      ⋯
                    
                    
                      ⋰
                    
                    
                      ⋰
                    
                    
                      ⋮
                    
                  
                  
                    
                      ⋮
                    
                    
                      ⋰
                    
                    
                      ⋰
                    
                    
                      0
                    
                    
                      
                        f
                        
                          k
                          ,
                          L
                        
                      
                    
                  
                  
                    
                      0
                    
                    
                      ⋯
                    
                    
                      
                        
                      
                    
                    
                      ⋯
                    
                    
                      0
                    
                  
                
                ]
              
              
                N
                ×
                N
              
            
            .
          
        
      
    
    
      
        (
        2
        )
      
    
  




The K receivers 101, 102, . . . 105 then proceed to process the multipath signals. Each receiver 101, 102, . . . 105 has a matched-filter 151, 152, . . . 155. At the κ-th receiver, the matched-filter is applied to the received signal rκ[i] with this user's signature waveform, i.e., yκ[i]=sκHrκ[i]. By stacking the matched-filter output from all users into a single vector, the output vector can be represented by




  
    
      
        
          
            [
            
              
                
                  
                    
                      s
                      1
                      H
                    
                    ⁢
                    
                      
                        r
                        1
                      
                      ⁡
                      
                        [
                        i
                        ]
                      
                    
                  
                
              
              
                
                  
                    
                      s
                      2
                      H
                    
                    ⁢
                    
                      
                        r
                        2
                      
                      ⁡
                      
                        [
                        i
                        ]
                      
                    
                  
                
              
              
                
                  ⋮
                
              
              
                
                  
                    
                      s
                      K
                      H
                    
                    ⁢
                    
                      
                        r
                        K
                      
                      ⁡
                      
                        [
                        i
                        ]
                      
                    
                  
                
              
            
            ]
          
          
            }
            
              y
              ⁡
              
                [
                i
                ]
              
            
          
        
        =
        
          
            
              
                [
                
                  
                    
                      
                        
                          s
                          1
                          H
                        
                        ⁢
                        
                          D
                          1
                        
                        ⁢
                        S
                      
                    
                  
                  
                    
                      
                        
                          s
                          2
                          H
                        
                        ⁢
                        
                          D
                          2
                        
                        ⁢
                        S
                      
                    
                  
                  
                    
                      ⋮
                    
                  
                  
                    
                      
                        
                          s
                          K
                          H
                        
                        ⁢
                        
                          D
                          K
                        
                        ⁢
                        S
                      
                    
                  
                
                ]
              
              
                }
                H
              
            
            ⁢
            
              x
              ⁡
              
                [
                i
                ]
              
            
          
          +
          
            
              
                [
                
                  
                    
                      
                        
                          s
                          1
                          H
                        
                        ⁢
                        
                          
                            D
                            _
                          
                          1
                        
                        ⁢
                        S
                      
                    
                  
                  
                    
                      
                        
                          s
                          2
                          H
                        
                        ⁢
                        
                          
                            D
                            _
                          
                          2
                        
                        ⁢
                        S
                      
                    
                  
                  
                    
                      ⋮
                    
                  
                  
                    
                      
                        
                          s
                          K
                          H
                        
                        ⁢
                        
                          
                            D
                            _
                          
                          K
                        
                        ⁢
                        S
                      
                    
                  
                
                ]
              
              
                }
                
                  H
                  _
                
              
            
            ⁢
            
              x
              ⁡
              
                [
                
                  i
                  -
                  1
                
                ]
              
            
          
          +
          
            
              
                [
                
                  
                    
                      
                        
                          s
                          1
                          H
                        
                        ⁢
                        
                          
                            n
                            1
                          
                          ⁡
                          
                            [
                            i
                            ]
                          
                        
                      
                    
                  
                  
                    
                      
                        
                          s
                          2
                          H
                        
                        ⁢
                        
                          
                            n
                            2
                          
                          ⁡
                          
                            [
                            i
                            ]
                          
                        
                      
                    
                  
                  
                    
                      ⋮
                    
                  
                  
                    
                      
                        
                          s
                          K
                          H
                        
                        ⁢
                        
                          
                            n
                            K
                          
                          ⁡
                          
                            [
                            i
                            ]
                          
                        
                      
                    
                  
                
                ]
              
              
                }
                
                  v
                  ⁡
                  
                    [
                    i
                    ]
                  
                
              
            
            .
          
        
      
    
    
      
        (
        3
        )
      
    
  




where H and H are K×K matrices. Accordingly, the precoder design should preferably be selected so as to generate an output vector y[i] that is as close as possible to the transmitted data vector b[i].

The different elements of the precoder design depicted in FIG. 1 can be described as follows. First, a feedforward (FF) filter matrix 120, represented by the matrix F, and a feedback (FB) filter matrix 125, represented by (C-I), are utilized to remove multiuser interference and interchip inteference. This design is based on the known technique of Thomlinson-Harashima precoding. See, e.g., H. Harashima and H. Miyakawa, “Matched Transmission Technique for Channels with Intersymbol Interference,” IEEE Trans. Commun., 20: 774-80 (1972); M. Tomlinson, “New Automatic Equaliser Employing Modulo Arithmetic,” IEEE Electron. Lett., pp. 138-39 (Mar. 1971); C. Windpassinger et al., “Precoding in Multi-Antenna and Multi-User Communications,” IEEE Trans. Wireless Commun. (Mar. 2004). Denote the LQ factorization of the matrix H as H=WFH, where F is unitary and W is lower triangular. The purpose of the feedforward matrix F is to convert the interference into a causal form without increasing the transmit power. This permits the cancellation of the causal interference using the feedback filter matrix (C-I). For the interference cancellation to be possible, C needs to be monic lower triangular. To obtain C, decompose W=G−1C where G is the diagonal matrix that makes C monic, i.e., G=diag(ω1,1−1, . . . , ωκ, κ−1) where ωi,i denotes the i-th diagonal element in W. Denote χas the output of the feedback filter. Then we have χ[i]=b[i ]−(C-I) χ[i], and consequently, the equivalent feedback operation is χ[i]=C−1b[i]. Thus, the input data symbols b[i] are first passed through the feedback filter C−1 and then through the feedforward filter F, i.e., χ[i]=FC−1b[i], followed by spreading as depicted in FIG. 1.
Due to the lower triangular structure of the matrix C, the output of the feedback filter χκ, κ=1, . . . , K, is is successively generated from the input data symbols bκ[i]∈A, and the previous output of the feedback filter, χl[i], l=1, . . . , κ−1, as χκ[i]=bκ[i]−Σl=1κ−1cκ, l χl [i ], κ=1, . . . , K. To prevent an increase in transmit power, a modulo operation with respect to A is applied, as depicted by 130 in FIG. 1. For example, for M-QAM constellations, the modulo operation corresponds to adding integer multiples of 2√{square root over (M)} to the real and the imaginary parts of bκ[i], so that the resulting output signal falls in the range of A. Then the output of the feedback filter becomes




  
    
      
        
          
            
              
                x
                ~
              
              k
            
            ⁡
            
              [
              i
              ]
            
          
          =
          
            
              
                b
                k
              
              ⁡
              
                [
                i
                ]
              
            
            +
            
              
                d
                k
              
              ⁡
              
                [
                i
                ]
              
            
            -
            
              
                ∑
                
                  l
                  =
                  1
                
                
                  k
                  -
                  1
                
              
              ⁢
              
                
                  c
                  
                    k
                    ,
                    l
                  
                
                ⁢
                
                  
                    
                      x
                      ~
                    
                    l
                  
                  ⁡
                  
                    [
                    i
                    ]
                  
                
              
            
          
        
        ,
        
          

        
        ⁢
        
          k
          =
          1
        
        ,
        ...
        ⁢
        
          
        
        ,
        K
        ,
      
    
    
      
        (
        4
        )
      
    
  




where dκ[i] ∈{2√{square root over (M)}(dI+jdQ)|dI, dQ∈Z}. That is, instead of feeding back bκ[i], the symbols νκ[i]=bκ[i]+dκ[i] are passed through C−1.

In order to cancel the effect, the receivers 101, 102, . . . 105 apply the same modulo operation at 131, 132, . . . 135. At the k-th user's receiver, a matched-filter sκ, a scalar operation gκ=G[κ, κ]=ωκ,κ−1 and the same modulo operation as applied at the transmitter are applied to the received signal rκ[i]. Therefore, without considering the modulo operation, the end-to-end operation for all K users is given by

z[i]=G(HFC−1b[i]+ν[i])=b[i]+Gν[i].   (5)

and the k-th user makes a decision on bκ[i] based on the decision statistic zκ[i]. Note that the scalar gains gκ, κ=1, . . . , K, can be either estimated at the receiver (automatic gain control) or broadcast by the transmitter/base station.

Finally, consider the intersymbol interference caused by the term Hχ[i−1]present in equation (3). As depicted in FIG. 1, another feedback filter 140 is employed to cancel the intersymbol interference term Hχ[i−1] with the decomposition H=G−1CFH. The receiver will observe an ISI term, Hχ[i−1] caused by the previous symbol. Then, a second feedback cancellation can be used to cancel the interference caused by the previous symbol χ[i−1]. Suppose that the previously precoded symbol χ[i−1] is first filtered by a filter A and then substracted from the current data symbol b[i], as depicted in FIG. 1. To find the matrix A that minimizes the mean-square error (MSE) consider the error signal at the decision device




  
    
      
        
          e
          ⁡
          
            [
            i
            ]
          
        
        =
        
          
            
              (
              
                
                  
                    GHFC
                    
                      -
                      1
                    
                  
                  ⁡
                  
                    (
                    
                      
                        b
                        ⁡
                        
                          [
                          i
                          ]
                        
                      
                      -
                      
                        Ax
                        ⁡
                        
                          [
                          
                            i
                            -
                            1
                          
                          ]
                        
                      
                    
                    )
                  
                
                +
                
                  Gv
                  ⁡
                  
                    [
                    i
                    ]
                  
                
                +
                
                  G
                  ⁢
                  
                    
                  
                  ⁢
                  
                    H
                    _
                  
                  ⁢
                  
                    x
                    ⁡
                    
                      [
                      
                        i
                        -
                        1
                      
                      ]
                    
                  
                
              
              )
            
            
              }
              
                z
                ⁡
                
                  [
                  i
                  ]
                
              
            
          
          -
          
            
              b
              ⁡
              
                [
                i
                ]
              
            
            .
          
        
      
    
    
      
        (
        6
        )
      
    
  




By the orthogonality principle, E{ezH}=0, which leads to (G H−GHFC−1A)=0, i.e., A=G H. Note that the matrix A is the same for the ZF (zero forcing) and MMSE (minimum mean-squared error) optimization criterion.

Hence, the end-to-end cascade of operations performed in FIG. 1 can be represented by




  
    
      
        
          
            z
            ⁡
            
              [
              i
              ]
            
          
          =
          
            
              G
              
                }
                rx
              
            
            (
            
              
                
                  
                    
                      G
                      
                        -
                        1
                      
                    
                    ⁢
                    
                      CF
                      H
                    
                  
                  
                    }
                    channel
                  
                
                ⁢
                
                  (
                  
                    
                      F
                      
                        }
                        FF
                      
                    
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                        
                          C
                          
                            -
                            1
                          
                        
                        
                          }
                          
                            cancel
                            ,
                            FB
                          
                        
                      
                      (
                      
                        
                          b
                          ⁡
                          
                            [
                            i
                            ]
                          
                        
                        -
                        
                          
                            G
                            ⁢
                            
                              
                            
                            ⁢
                            
                              H
                              _
                            
                            ⁢
                            
                              x
                              ⁡
                              
                                [
                                
                                  i
                                  -
                                  1
                                
                                ]
                              
                            
                          
                          
                            }
                            
                              cancel
                              ,
                              ISI
                            
                          
                        
                      
                      )
                    
                  
                  )
                
              
              +
              
                
                  
                    H
                    _
                  
                  ⁢
                  
                    x
                    ⁡
                    
                      [
                      
                        i
                        -
                        1
                      
                      ]
                    
                  
                
                
                  }
                  
                    ISI
                    ⁢
                    
                      
                    
                    ⁢
                    channel
                  
                
              
              +
              
                v
                ⁡
                
                  [
                  i
                  ]
                
              
            
            )
          
        
        ,
      
    
    
      
        (
        7
        )
      
    
  




where the modulo operation is not included for clarity.

FIG. 2 depicts an alternative chip-wise precoding design that includes the spreading operation as part of the preceding operation. The precoder takes as input the κ×1 symbol vectors b[i] and converts them into vectors p[i] of size N×1 ready to be transmitted at chip rate. At the k-th user's receiver, the N×1 received signal vector corresponding to p[i] is given by

rκ[i]=Dκp[i]+ Dκp[i−1]+nκ[i].   (8)

At each receiver κ, the matched-filter sκis applied to rκ[i]. By stacking the outputs of all κ matched-filters we obtain





  
    
      
        
          
            [
            
              
                
                  
                    
                      s
                      1
                      H
                    
                    ⁢
                    
                      
                        r
                        1
                      
                      ⁡
                      
                        [
                        i
                        ]
                      
                    
                  
                
              
              
                
                  
                    
                      s
                      2
                      H
                    
                    ⁢
                    
                      
                        r
                        2
                      
                      ⁡
                      
                        [
                        i
                        ]
                      
                    
                  
                
              
              
                
                  ⋮
                
              
              
                
                  
                    
                      s
                      K
                      H
                    
                    ⁢
                    
                      
                        r
                        K
                      
                      ⁡
                      
                        [
                        i
                        ]
                      
                    
                  
                
              
            
            ]
          
          
            }
            
              y
              ⁡
              
                [
                i
                ]
              
            
          
        
        =
        
          
            
              
                [
                
                  
                    
                      
                        
                          s
                          1
                          H
                        
                        ⁢
                        
                          D
                          1
                        
                      
                    
                  
                  
                    
                      
                        
                          s
                          2
                          H
                        
                        ⁢
                        
                          D
                          2
                        
                      
                    
                  
                  
                    
                      ⋮
                    
                  
                  
                    
                      
                        
                          s
                          K
                          H
                        
                        ⁢
                        
                          D
                          K
                        
                      
                    
                  
                
                ]
              
              
                }
                H
              
            
            ⁢
            
              p
              ⁡
              
                [
                i
                ]
              
            
          
          +
          
            
              
                [
                
                  
                    
                      
                        
                          s
                          1
                          H
                        
                        ⁢
                        
                          
                            D
                            _
                          
                          1
                        
                      
                    
                  
                  
                    
                      
                        
                          s
                          2
                          H
                        
                        ⁢
                        
                          
                            D
                            _
                          
                          2
                        
                      
                    
                  
                  
                    
                      ⋮
                    
                  
                  
                    
                      
                        
                          s
                          K
                          H
                        
                        ⁢
                        
                          
                            D
                            _
                          
                          K
                        
                      
                    
                  
                
                ]
              
              
                }
                
                  H
                  _
                
              
            
            ⁢
            
              p
              ⁡
              
                [
                
                  i
                  -
                  1
                
                ]
              
            
          
          +
          
            
              
                [
                
                  
                    
                      
                        
                          s
                          1
                          H
                        
                        ⁢
                        
                          
                            n
                            1
                          
                          ⁡
                          
                            [
                            i
                            ]
                          
                        
                      
                    
                  
                  
                    
                      
                        
                          s
                          2
                          H
                        
                        ⁢
                        
                          
                            n
                            2
                          
                          ⁡
                          
                            [
                            i
                            ]
                          
                        
                      
                    
                  
                  
                    
                      ⋮
                    
                  
                  
                    
                      
                        
                          s
                          K
                          H
                        
                        ⁢
                        
                          
                            n
                            K
                          
                          ⁡
                          
                            [
                            i
                            ]
                          
                        
                      
                    
                  
                
                ]
              
              
                }
                
                  v
                  ⁡
                  
                    [
                    i
                    ]
                  
                
              
            
            .
          
        
      
    
    
      
        (
        9
        )
      
    
  




Note that in contrast with the FIG. 1 embodiment described above, here H is not a square matrix but has dimension K×N with N≧K. Similarly as before, to apply the precoding we perform the LQ decomposition (with L being a lower triangular matrix of matrix Q) on H=WFH=G−1CF. The decomposition is easily obtained applying the Gram-Schmidt orthogonalization procedure on the rows of H, where the resulting orthonormal vectors form the columns of F of dimension N×K with FHF=Iκ. The Gram-Schmidt coefficients define the K×K lower triangular matrix W. The diagonal matrix G=diag(ω1,1−1, . . . , ωκ,κ−1) converts W into the monic lower triangular matrix C. In this way, and C-I are the feedforward and feedback filter matrices respectively, and the feedback matrix A=G H cancels the inter-symbol interference, as shown in FIG. 2. The κ-th diagonal element in G corresponds to the scalar gain applied at the κ-th user's receiver.

It is preferable that each user be provided with roughly the same bit error rate (BER) performance. It can be seen from equation (5) that the noise at each user's receiver is amplified by the corresponding diagonal element of G=diag(ω1,1−1, . . . , ωκ,κ−1) resulting in different SNR (hence BER) performance among users. Power loading can be employed to enforce the same performance across users. That is, the symbol vector b[i] is first multiplied by a diagonal matrix I=diag(Δ1, . . . Δκ) with Δκ2 denoting the power assigned to user κ. The modulo operation for each user then needs to take the loading value into account since the distance between the constellation points is scaled by it. Given the total transmit power PT, the loading problem can be formulated as solving for Δ1, . . . , Δκsuch that Σκ=1 κ Δκ2=PT, and Δκ2ωκ,κ2=η, ∀κ. The solution is




  
    
      
        
          
            
              γ
              k
              2
            
            =
            
              
                
                  w
                  
                    k
                    ,
                    k
                  
                  
                    -
                    2
                  
                
                
                  
                    ∑
                    
                      k
                      =
                      1
                    
                    K
                  
                  ⁢
                  
                    w
                    
                      k
                      ,
                      k
                    
                    
                      -
                      2
                    
                  
                
              
              ⁢
              
                P
                T
              
            
          
          ,
          
            

          
          ⁢
          
            k
            =
            1
          
          ,
          ...
          ⁢
          
            
          
          ,
          K
          ,
          
            

          
          ⁢
          and
        
        ⁢
        
          

        
        ⁢
        
          η
          =
          
            
              
                P
                T
              
              
                
                  ∑
                  
                    k
                    =
                    1
                  
                  K
                
                ⁢
                
                  w
                  
                    k
                    ,
                    k
                  
                  
                    -
                    2
                  
                
              
            
            .
          
        
      
    
    
      
        (
        10
        )
      
    
  




The transmitter/base station can broadcast the common constant value η to all receivers and then the receivers can adjust their respective ωκ, κ to obtain the required Δκvalue in the modulo operator. Therefore, the loading operation only requires the transmission of a constant value η common to all receivers. Note that different weighting factors can be included if different SNR performance levels are desired for different receivers.
It is interesting to note that when orthogonal spreading sequences are employed, i.e., when STS=Iκ, then we have ωκ,κ(b)≦ωκ,κ(c), for κ=1, . . . , K, and therefore η(b)≦η(c), where the superscripts b and c denote bit-wise and chip-wise precoders, respectively. First, comparing equations (3) and (9) we have H(b)=H(c)S. Let uκ+1, . . . , uNbe (N-K) orthonormal vectors in ν⊥RN\span (S). Define the unitary matrix S′=[s1, . . . , sκ, uκ+1, . . . , uN]=[S, U] and let

X=[H(b), H(c)U]=H(c)S′.   (11)

Since S′ is a unitary transformation, the rows in X and H(c) maintain the norm and the angles. Therefore, if the K×(N-K) block matrix HcU has any non-zero row (i.e., the projection of the rows of Hc onto span(U) is non-zero), the norm of the corresponding row in H(b) will be smaller than in H(c). Now consider the LQ factorization H(c)=W(c)F(c)H, obtained using Gram-Schmidt on the rows of H(c), i.e., {hκ(c)T}κ=1κ. Each value ωκ,κ(c) can be obtained as follows. Assume that at the κ-th step of the Gram-Schmidt algorithm the orthonormal vectors ƒ1(c), . . . , ƒκ-1(c) (i.e., first κcolumns in F(c)) have been obtained from h1(c), . . . , hκ−1(c), and denote Uκ−1=span {ƒ1(c), . . . , ƒκ−1(c)}. Then, by simple inspection of the structure of the LQ factorization ωκ,κ(c) is the norm of {tilde over (ƒ)}κ(c)=proj uκ−1⊥{hκ(c)}where Uκ−1⊥=RN\Uκ−1 and ƒκ(c)={tilde over (ƒ)}κ(c)/ωκ,κ(c). That is

ωκ,κ(c)=∥hκ(c)−projuκ−1{hk(e)}∥=∥{tilde over (ƒ)}κ(c)∥.   (12)

On the other hand, the diagonal elements of W(b) are similarly obtained from [H(b), 0κ, N-κ]. Then, using equations (11) and (12) we obtain

ωκ,κ(b)=ωκ,κ(c)−∥projν⊥{{tilde over (ƒ)}κ(c)}∥,   (13)

and hence ωκ,κ(b)≦ωκ,κ(c). Note that when N=K and orthogonal spreading sequences are employed, S is unitary and ωκ,κ(b)=ωκ,κ(c) for all κ, and hence η(b)=η(c). On the other hand, when the spreading sequences S are non-orthogonal, it is not true that ωκ,κ(b)≦ωκ,κ(c). However, it can be conjectured that η(b)≦η(c) still holds.

It is possible to optimize the system BER performance by optimizing the diagonal elements of the matrix W such that the common SNR of all users η is maximized. Note that W is obtained from the LQ decomposition of H. The LQ decomposition is essentially the Gram-Schmidt orthogonalization of the rows of H. The κ-th diagonal element of W is the length of the projection of the κ-th row vector of H onto the orthogonal complement of the space spanned by the first (κ−1) row vectors already orthogonalized. Different ordering in the orthogonalization process results in different diagonal values of W, and hence different values of η. Let P be the set of the K! possible K×K row permutation matrices. Then for any P ∈P, PH is a row-permuted version of H, which corresponds to a particular ordering of the K users in TH-precoding. Denote ωκ,κ(P) as the κ-th diagonal element of W resulting from the LQ decomposition of PH. Then the optimal row permutation matrix is given by




  
    
      
        
          P
          opt
        
        =
        
          
            arg
            ⁢
            
              
            
            ⁢
            
              
                max
                
                  P
                  ∈
                  P
                
              
              ⁢
              
                
                  P
                  T
                
                
                  
                    ∑
                    
                      k
                      =
                      1
                    
                    K
                  
                  ⁢
                  
                    
                      w
                      
                        k
                        ,
                        k
                      
                      
                        -
                        2
                      
                    
                    ⁡
                    
                      (
                      P
                      )
                    
                  
                
              
            
          
          =
          
            arg
            ⁢
            
              
            
            ⁢
            
              
                min
                
                  P
                  ∈
                  P
                
              
              ⁢
              
                
                  ∑
                  
                    k
                    =
                    1
                  
                  K
                
                ⁢
                
                  
                    
                      w
                      
                        k
                        ,
                        k
                      
                      
                        -
                        2
                      
                    
                    ⁡
                    
                      (
                      P
                      )
                    
                  
                  .
                
              
            
          
        
      
    
    
      
        (
        14
        )
      
    
  




With the optimal permutation Popt, the following modifications are needed at the transmitter and receiver:

    
    
        Perform the LQ decomposition as PH=WFH, or H=PTG−1CF;
        Apply GP at the receiver (i.e., apply the scalar gains according to the optimal order);
        The feedback matrix for removing the ISI becomes A=GP H.
    
    


With these modifications, the cascade of operations becomes




  
    
      
        
          
            
              
                z
                ⁡
                
                  [
                  i
                  ]
                
              
              =
              
              ⁢
              
                
                  GP
                  
                    }
                    rx
                  
                
                (
                
                  
                    
                      
                        
                          P
                          T
                        
                        ⁢
                        
                          G
                          
                            -
                            1
                          
                        
                        ⁢
                        
                          CF
                          H
                        
                      
                      
                        }
                        channel
                      
                    
                    ⁢
                    
                      (
                      
                        
                          F
                          
                            }
                            FF
                          
                        
                        ⁢
                        
                          
                        
                        ⁢
                        
                          
                            
                              C
                              
                                -
                                1
                              
                            
                            
                              }
                              
                                cancel
                                ,
                                FB
                              
                            
                          
                          (
                          
                            
                              
                                Γ
                                ⁢
                                b
                              
                              [
                              i
                              ]
                            
                            -
                            
                              
                                GP
                                ⁢
                                
                                  
                                
                                ⁢
                                
                                  H
                                  _
                                
                                ⁢
                                
                                  x
                                  ⁡
                                  
                                    [
                                    
                                      i
                                      -
                                      1
                                    
                                    ]
                                  
                                
                              
                              
                                }
                                
                                  cancel
                                  ,
                                  ISI
                                
                              
                            
                          
                          )
                        
                      
                      )
                    
                  
                  +
                
              
            
          
        
        
          
            
              
              ⁢
              
                
                  +
                  
                    
                      
                        H
                        _
                      
                      ⁢
                      
                        x
                        ⁡
                        
                          [
                          
                            i
                            -
                            1
                          
                          ]
                        
                      
                    
                    
                      }
                      
                        ISI
                        ⁢
                        
                          
                        
                        ⁢
                        channel
                      
                    
                  
                
                +
                
                  v
                  ⁡
                  
                    [
                    i
                    ]
                  
                
              
              )
            
          
        
        
          
            
              =
              
              ⁢
              
                
                  
                    Γ
                    ⁢
                    b
                  
                  [
                  i
                  ]
                
                +
                
                  
                    GPv
                    ⁡
                    
                      [
                      i
                      ]
                    
                  
                  .
                
              
            
          
        
      
    
    
      
        (
        15
        )
      
    
  




Note that the matrices G, F and C above are obtained from PH.

An exhaustive search solution to equation (14) is, in general, computationally prohibitive. Nevertheless, an approximate solution can be obtained using a suboptimal approach of lower computational complexity. Note that πκ=1κωκκ2 is invariant to the permutation matrix P. This result is easily proved recalling that PH=WFH, with orthonormal columns in F, then

det(H HH)=det(PT)det(W)det(WH)det(P)=πκ=1κωκ,κ2.   (16)

Consider the simple situation where K=2 users. Then H contains two rows denoted by h1T and h2T. Without loss of generality, assume that ∥h2∥<∥h1∥. Next, to maximize the objective function in equation (14), it can be shown that one should start with h2T, i.e., start by orthogonalizing the row with minimum ωκ,κ. Recall that ωκ,κ is the length of the projection of the κ-th row of H onto the orthogonal complement of the subspace spanned by the previous (κ−1) rows already orthogonalized. Then we need to show that





  
    
      
        
          
            1
            
              
                
                
                  h
                  2
                
                
              
              2
            
          
          +
          
            1
            
              
                
                
                  
                    h
                    1
                  
                  -
                  
                    
                      
                        
                          h
                          2
                          H
                        
                        ⁢
                        
                          h
                          1
                        
                      
                      
                        
                          
                          
                            h
                            1
                          
                          
                        
                        2
                      
                    
                    ⁢
                    
                      h
                      2
                    
                  
                
                
              
              2
            
          
        
        <
        
          
            1
            
              
                
                
                  h
                  1
                
                
              
              2
            
          
          +
          
            
              1
              
                
                  
                  
                    
                      h
                      2
                    
                    -
                    
                      
                        
                          
                            h
                            1
                            H
                          
                          ⁢
                          
                            h
                            2
                          
                        
                        
                          
                            
                            
                              h
                              1
                            
                            
                          
                          2
                        
                      
                      ⁢
                      
                        h
                        1
                      
                    
                  
                  
                
                2
              
            
            .
          
        
      
    
    
      
        (
        17
        )
      
    
  




From equation (16), the products of the denominators on both sides in equation (17) are equal. Therefore, equation (17) is equivalent to





  
    
      
        
          
            
              
                
                  
                  
                    
                      h
                      1
                    
                    -
                    
                      
                        
                          
                            h
                            2
                            H
                          
                          ⁢
                          
                            h
                            1
                          
                        
                        
                          
                            
                            
                              h
                              2
                            
                            
                          
                          2
                        
                      
                      ⁢
                      
                        h
                        2
                      
                    
                  
                  
                
                2
              
              +
              
                
                  
                  
                    h
                    2
                  
                  
                
                2
              
            
            <
            
              
                
                  
                  
                    
                      h
                      2
                    
                    -
                    
                      
                        
                          
                            h
                            1
                            H
                          
                          ⁢
                          
                            h
                            2
                          
                        
                        
                          
                            
                            
                              h
                              1
                            
                            
                          
                          2
                        
                      
                      ⁢
                      
                        h
                        1
                      
                    
                  
                  
                
                2
              
              +
              
                
                  
                  
                    h
                    1
                  
                  
                
                2
              
            
          
          ⇔
          
            
              
                
                  
                  
                    
                      h
                      2
                      H
                    
                    ⁢
                    
                      h
                      1
                    
                  
                  
                
                2
              
              
                
                  
                  
                    h
                    2
                  
                  
                
                2
              
            
            >
            
              
                
                  
                  
                    
                      h
                      2
                      H
                    
                    ⁢
                    
                      h
                      1
                    
                  
                  
                
                2
              
              
                
                  
                  
                    h
                    1
                  
                  
                
                2
              
            
          
        
        ,
      
    
    
      
        (
        18
        )
      
    
  




which is true by the assumption that ∥h2∥<∥h1∥.

FIG. 3 sets forth pseudo-code illustrating a greedy approach to finding the optimal permutation matrix. As shown above, this approach is optimal for K=2 users. Although the approach is sub-optimal for more than two users, it obtains good results with low complexity and performs especially well when used with the chip-wise precoder when N>K. The approach illustrated by FIG. 3 proceeds by orthogonalizing the row with minimum ωκ,κ at the κth iteration. In other words, the row is selected that is the closest to the subspace spanned by the rows already chosen. In FIG. 3, μp,j=ĥpHhj and θi represents the subset of rows already orthogonalized up to the i-th step. Note that besides finding the ordering P, the processing in FIG. 3 also provides the LQ decomposition PH=WFH, since W is given by the GS coefficients μij and the i-th row of F is given by ĥi. The complexity of the above search is O(K2), which is significantly lower than the O(K!) complexity of the exhaustive search approach.
Assuming that loading is applied and E{|bκ[i]|2}=1, then the bit error probability of each user can be well approximated by Pe=αQ(√{square root over (η/σn2)}), where α accounts for the increase in number of nearest neighbors due to the modulo operation (e.g., in QPSK α=2). Note that the precoding operation enhances the transmit power by a factor of




  β
  =
  
    
      M
      
        M
        -
        1
      
    
    .
  




When intersymbol interference is considered, previous symbols are always fedback and β is well approximated by





  
    M
    
      M
      -
      1
    
  
  .




Furthermore, because of the modulo operation, all of the symbols in the constellation have the same number of nearest neighbors and, therefore, the probability of error for the symbols at the edge of the constellation increases. This minor issue can be avoided—up to a point—by considering higher order constellations. As the constellation gets larger,





  
    M
    
      M
      -
      1
    
  
  ->
  1




and the percentage of symbols that increase the number of neighbors →0.

FIGS. 4, 5, and 6 illustrate the BER performance of the above nonlinear precoding techniques compared with a prior art linear precoder. Each receiver is assumed to employ a normalized Hadamard sequences of length N=8 as its spreading signature. All receivers are assumed to employ QPSK modulation. It is also assumed that each mobile user experiences an independent multipath channel ƒκ=[ƒκ,1, . . . , ƒκ,L]T with L=3 resolvable paths and the transmitter has perfect channel state information of all users. The path gains are generated according to




  
    
      f
      
        k
        ,
        i
      
    
    ~
    
      
        N
        c
      
      ⁡
      
        (
        
          0
          ,
          
            1
            L
          
        
        )
      
    
  
  .




For each data block, independent channel realizations are simulated for each user and the results are averaged over 1000 blocks. The continuous lines in the figures correspond to the analytical results computed using the approximate formula Pe=αQ(√{square root over (η/σn2)}) while the marks correspond to the simulated results. The above-described loading technique is employed, and a comparison is made between different ordering approaches: no-ordering, optimal ordering (i.e., exhaustive search) and the suboptimal ordering approach illustrated by FIG. 3.
FIG. 4 shows the BER performance of the bit-wise precoder and the chip-wise precoder proposed above where the number of users is K=3. As shown in FIG. 4, both non-linear precoders significantly outperform the prior art linear precoder. Moreover, the chip-wise precoder appears to offer better performance than the bit-wise precoder. Ordering appears to have a significant effect on the bit-wise precoder, whereas it does not appear to make a notable difference to the chip-wise precoder (for small number of users K). Furthermore, the greedy ordering approach described above appears to provide performance close to that of an exhaustive search method. FIG. 5 shows how the performance is affected when the number of users is increased to K=7. Notably, FIG. 5 shows that both precoding schemes perform very well even in such highly loaded systems. When the number of users is high, ordering brings a significant improvement for both bit-wise and chip-wise precoders, although the complexity of the exhaustive search method becomes prohibitive (i.e., it involves computing K!=5040 LQ decompositions of 7×7 matrices). The suboptimal ordering approach performs especially well in the chip-wise precoder and it requires less than 7 LQ decompositions. Comparing FIG. 5 with FIG. 4, it can be observed that the performance difference between the two precoders is reduced as the number of users increases.
FIG. 6 shows the performance of the different precoding approaches in an adverse scenario with a severe multipath channel with L=7 resolvable paths each distributed as




  ~
  
    
      N
      c
    
    ⁡
    
      (
      
        0
        ,
        
          1
          7
        
      
      )
    
  




and with K=N=8 users. As shown in FIG. 6, the chip-wise precoder and the bit-wise precoder provide the same results and the curves completely overlap. The reason is that the matrix H has the same dimensions for both solutions since N=K. As before, when the number of users is large, ordering improves the performance considerably. Moreover, it is seen that the effect of severe multipath and a large number of users has a minimum effect on performance. Also, the heuristic ordering approach does not perform well when N=K.

It has been assumed above that the transmitter has knowledge of the multipath channel states of all the receivers. In wireless systems using time division duplex (TDD), the downlink channel state information is available at the transmitter (which is estimated from the uplink transmission) as long as the coherence time of the channel is larger than the time difference between the uplink and downlink slots. On the other hand, in fast fading channels, the channel state that has been estimated during an uplink slot may have changed, and the estimate may no longer be accurate for precoding in the next downlink slot. In this case, channel prediction techniques can be used to estimate the future downlink channel state from the current and previous uplink channel estimates, by exploiting the second-order statistics of the fading channel.
Assume that the complex Gaussian fading process of each channel path ƒκ,i(t) follows the Jakes' model with the maximum Doppler spread ƒd. See, e.g., W. C. Jakes, “Microwave Mobile Communications,” Wiley (1974). That is, we have E{ƒκ,i(t1)ƒκ,i(t2)}=νκ,i2J0(2 πƒd|t1−t2|), κ=1, . . . , K; i=1, . . ., L, where J0(·) is the zeroth-order Bessel function ofthe first kind. Assume that in a TDD system the uplink and downlink slots are separated by T seconds; and the transmitter/base station estimates the multipath channel of each receiver every uplink slot. We set the time of the latest channel estimation as the reference t=0. Then the transmitter will estimate the channel state at times t ∈{0, −2T, −4T, . . . }. Consider channel estimation based on pilot symbols where the channel estimate has the form {circumflex over (ƒ)}κ,i(t)=ƒκ,i(t)+ξκ,i(t), where ξκ,i(t) ̃Nc(0, Δκ,i2). It is assumed that the base station estimates the channel once per slot and these estimates will be used to predict the channel for data precoding in the next downlink slot. Assume that after the current channel estimate at time t=0 the base station predicts each channel path at time τ which is called the prediction depth (e.g., τ=T where T is the slot duration). The prediction is implemented using a P-th order finite impulse response (FIR) filter




  
    
      
        
          
            
              
                f
                ~
              
              
                k
                ,
                i
              
            
            ⁡
            
              (
              τ
              )
            
          
          =
          
            
              
                ∑
                
                  p
                  =
                  0
                
                P
              
              ⁢
              
                
                  
                    w
                    
                      k
                      ,
                      i
                    
                  
                  ⁡
                  
                    (
                    p
                    )
                  
                
                *
                
                  
                    
                      f
                      ^
                    
                    
                      k
                      ,
                      i
                    
                  
                  ⁡
                  
                    (
                    
                      
                        -
                        p
                      
                      ⁢
                      
                        
                      
                      ⁢
                      2
                      ⁢
                      T
                    
                    )
                  
                
              
            
            =
            
              
                w
                
                  k
                  ,
                  i
                
                H
              
              ⁢
              
                
                  f
                  ^
                
                
                  k
                  ,
                  i
                
              
            
          
        
        ,
      
    
    
      
        (
        19
        )
      
    
  




where ωκ,i[ωκ,i(0), ωκ,i(1), . . . , ωκ,i(P)]T, {circumflex over (ƒ)}κ,i{{circumflex over (ƒ)}κ,i(0), {circumflex over (ƒ)}κ,i(−2T), . . . , {circumflex over (ƒ)}κ,i(−P2T)]T. The optimal filter that minimizes the mean square error ζpredE{|ƒκ,i(τ)− ƒκ,i(τ)|2} is given by ωκ,i=Rκ,i −1rκ,i, where the entries of Rκ,i and rκ,i are given respectively by [Rκ,i]p,q=νκ,i2J0(2πƒd|p−q|2T)+Δκ,i2δp,q, and [rκ,i]p=νκ,i2J0(2πƒd(τ+p2T)), p, q=0, 1, . . . , P.

In the prediction filter described above, estimates of the channel are used that have been sampled every 2T seconds. This sampling rate is in general much higher than the required minimum Nyquist sampling rate equal to twice the Doppler frequency 2ƒd. It has been shown that such oversampling could be unfavorable when the order of the filter P is fixed. Assume that the base station is able to estimate the channel every 2T seconds. Define the optimal sampling period as δ2T, where δ is a positive integer. Then for fixed values of the prediction depth, noise variance, Doppler frequency and filter order, we can compute the MSE of the prediction filter ζpred for different integer values of δ and select the one that minimizes ζpred. On the other hand, it has been observed that when the system parameters are fixed, ζpred decreases with the order of the prediction filter P. However, after a certain filter order, ζpred saturates since the noise in the previous channel estimates dominates in the MSE of the prediction error. Therefore, it is convenient to evaluate the MSE expression for different values of P and choose the shortest one that gets ζpred close to the saturation level.
FIG. 7 illustrates the performance of channel prediction when used with the above-described chip-wise precoding technique with loading and ordering. It is assumed that all the receivers are mobile units and are moving at ν=36 Km/h. As in the WCDMA TDD mode, it is assumed that the uplink and downlink are time multiplexed into a carrier centered at ƒc=2 GHz. The frame length is 10 ms, which is subdivided into 15 slots that can be allocated for either uplink or downlink. Therefore the uplink and downlink transmission can be interleaved in bursts of T=666.7 μs. As in the above description, we consider N=8, L=3 and νκ,i2=1/L. The fading process of each channel path is formed by samples of a stationary zero-mean complex Gaussian process with autocorrelation function J0(2πƒdt) and is generated according to the method described in P. Dent, et al., “Jakes Fading Model Revisited,” IEEE Electonic Letters, 29(13), pp. 1162-63 (June 1993). The previous channel estimates {{circumflex over (ƒ)}κ,i(t), t=0, −2T, . . . } are given by the true channel values corrupted by complex Gaussian noise with variance Δκ,i2=0.001. Evaluating the MSE expression ζpred for different orders of the prediction filter we find that a very short prediction filter with P=2 obtains good results. Evaluating ζpred we find that slightly better results can be obtained if the channel is sampled with δ=2. The results are evaluated over 10 different initial channel realizations. For each channel realization, we consider 200 slots of length T=666 μs (i.e., 200 channel variations) and in each slot we send 1000 QPSK symbols per mobile user. In the results we consider perfect channel estimation (genie aided), old channel estimation τ seconds before, and channel prediction with the optimal sampling (δ=2) and with the regular sampling (δ=1). FIG. 7 shows that the above-described prediction technique gives very good results even considering that all the users are moving at ν=36 Km/h and the prediction is based on noisy channel estimates. Notice that without channel prediction and only using old channel estimates, the performance would decrease considerably in these scenarios representing very high mobility.
While exemplary drawings and specific embodiments of the present invention have been described and illustrated, it is to be understood that that the scope of the present invention is not to be limited to the particular embodiments discussed. Thus, the embodiments shall be regarded as illustrative rather than restrictive, and it should be understood that variations may be made in those embodiments by workers skilled in the arts without departing from the scope of the present invention as set forth in the claims that follow and their structural and functional equivalents.

## Claims

1. A method for preprocessing a spread-spectrum transmission, the method comprising the steps of:
receiving channel state information for multipath channels to K receivers, K≧2;
precoding incoming K×1 symbol vectors prior to transmission by
applying a first feedback filter to a previously-precoded vector, and subtracting from the incoming K×1 symbol vectors to cancel intersymbol interference, the first feedback filter generated using the channel state information; and
applying a second feedback filter and a feedforward filter, the second feedback filter and the feedforward filter arranged so as to use the channel state information to cancel multiuser interference along the multipath channels to the K receivers.

2. The method of claim 1 wherein the preceding of a K×1 symbol vector proceeds in a bit-wise operation resulting in a K×1 precoded symbol vector and wherein the method further comprises applying a spreading operation to the K×1 precoded symbol vector thereby resulting in a precoded chip vector.

3. The method of claim 1 wherein precoding the incoming K×1 symbol vectors is combined with a spreading operation so that the precoding of a K×1 symbol vector proceeds in a chip-wise operation resulting in a N×1 precoded chip vector where N is a spreading factor for the spreading operation.

4. The method of claim 1 wherein a modulo operation is applied with the second feedback filter so as to prevent an increase in transmit power.

5. The method of claim 1 wherein channel state is represented by a matrix H which is decomposed into matrices G−1CFH, F being a unitary matrix, G−1C being lower triangular where G is a diagonal matrix which makes C monic lower triangular and where operation of the first feedback filter cancels intersymbol interference, operation of the second feedback filter can be represented by a feedback filter matrix (C-I), where I is an identity matrix, and operation of the feedforward filter can be represented by F.

6. The method of claim 5 wherein decomposition of the matrix H is performed using LQ decomposition, L being a lower triangular matrix of matrix Q.

7. The method of claim 5 wherein power loading is applied by multiplying the incoming K×1 symbol vectors by a matrix whose diagonal elements represent power assigned to a particular receiver.

8. The method of claim 7 wherein performance is optimized by orthogonalizing rows in the matrix H in an optimized order.

9. The method of claim 8 wherein the optimized order is specified by a permutation matrix P and wherein an optimal permutation matrix is found by iteratively selecting a row that is closest to a subspace spanned by rows already orthogonalized.

10. The method of claim 1 wherein the channel state information is estimated based on information from a previous transmission slot.

11. A transmitter arrangement for a spread-spectrum transmission system, the transmitter arrangement comprising:
a channel state estimator for generating channel state information for multipath channels to K receivers, K≧2; and
a precoder for preceding incoming K×1 symbol vectors prior to transmission, the precoder comprising
a first feedback filter generated using the channel state information from the channel state estimator, the first feedback filter being applied to a previously-precoded vector which is then subtracted from the incoming K×1 symbol vectors to cancel intersymbol interference; and
a second feedback filter and a feedforward filter, the second feedback filter and the feedforward filter arranged so as to use the channel state information to cancel multiuser interference along the multipath channels to the K receivers.

12. The transmitter arrangement of claim 11 wherein the precoding of a K×1 symbol vector proceeds in a bit-wise operation resulting in a K×1 precoded symbol vector and wherein the transmitter arrangement further comprises a module which performs a spreading operation to the K×1 precoded symbol vector thereby resulting in a precoded chip vector.

13. The transmitter arrangement of claim 11 wherein precoding the incoming K×1 symbol vectors is combined with a spreading operation so that the preceding of a K×1 symbol vector proceeds in a chip-wise operation resulting in a N×1precoded chip vector where N is a spreading factor for the spreading operation.

14. The transmitter arrangement of claim 11 wherein a modulo operation is applied with the second feedback filter so as to prevent an increase in transmit power.

15. The transmitter arrangement of claim 11 wherein channel state is represented by a matrix H which is decomposed into matrices G−1CFH, F being a unitary matrix, G−1C being lower triangular where G is a diagonal matrix which makes C monic lower triangular and where operation of the first feedback filter cancels intersymbol interference, operation of the second feedback filter can be represented by a feedback filter matrix (C-I) where I is an identity matrix, and operation of the feedforward filter can be represented by F.

16. The transmitter arrangement of claim 15 wherein decomposition of the matrix H is performed using LQ decomposition, L being a lower triangular matrix of matrix Q.

17. The transmitter arrangement of claim 15 wherein power loading is applied by multiplying the incoming K×1 symbol vectors by a matrix whose diagonal elements represent power assigned to a particular receiver.

18. The transmitter arrangement of claim 17 wherein performance is optimized by orthogonalizing rows in the matrix H in an optimized order.

19. The transmitter arrangement of claim 18 wherein the optimized order is specified by a permutation matrix P and wherein an optimal permutation matrix is found by iteratively selecting a row that is closest to a subspace spanned by rows already orthogonalized.

20. The method of claim 11 wherein the channel state information is estimated by the channel state estimator based on information from a previous transmission slot.