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

Description:
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]=[b 1 [i], . . . , b K [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=[s 1 , s 2 , . . . , s K ]. 
   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]˜N c (0, σ n   2 I N ) 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&#39;s signature waveform, i.e., y κ [i]=s κ   H rκ[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=WF H , 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 −1 C 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 −1 b[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 −1 b[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   κ−1 c κ , 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   ]       -       ∑     ℓ   =   1       k   -   1       ⁢       c     k   ,   ℓ       ⁢         x   ~     ℓ     ⁡     [   i   ]               ,     
     ⁢     k   =   1     ,   …   ⁢           ,   K   ,           (   4   )               
where d κ [i] ∈{2√{square root over (M)}(d I +jd Q )|d I , d Q ∈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&#39;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   −1   b[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 −1 CF H . 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{ez H }=0, which leads to (G  H −GHFC −1 A)=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&#39;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=WF H =G −1 CF. 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 F H F=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&#39;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&#39;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 P T , the loading problem can be formulated as solving for Δ 1 , . . . , Δ κ such that Σ κ=1    κ  Δ κ   2 =P T , 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 S T S=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 , . . . , u N be (N-K) orthonormal vectors in ν ⊥             R N \span (S). Define the unitary matrix S′=[s 1 , . . . , s κ , u κ+1 , . . . , u N ]=[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 H c U has any non-zero row (i.e., the projection of the rows of H c  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 h 1   (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   ⊥ =R N \U κ−1  and ƒ κ   (c) ={tilde over (ƒ)} κ   (c) /ω κ,κ   (c) . That is
 
ω κ,κ   (c)=∥h   κ   (c)−proj   uκ−1 {h k   (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   T         ∑     k   =   1     K     ⁢       w     k   ,   k       -   2       ⁡     (   P   )               =     arg   ⁢           ⁢       min     P   ∈   ??       ⁢       ∑     k   =   1     K     ⁢         w     k   ,   k       -   2       ⁡     (   P   )       .                     (   14   )               
With the optimal permutation P opt , the following modifications are needed at the transmitter and receiver:
         Perform the LQ decomposition as PH=WF H , or H=P T G −1 CF;   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=WF H , with orthonormal columns in F, then
 
 det ( H H   H )= det ( P   T ) det ( W ) det ( W   H ) det ( P )=π κ=1   κ ω κ,κ   2 .   (16)
 
Consider the simple situation where K=2 users. Then H contains two rows denoted by h 1   T  and h 2   T . Without loss of generality, assume that ∥h 2 ∥&lt;∥h 1 ∥. Next, to maximize the objective function in equation (14), it can be shown that one should start with h 2   T , 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         &lt;       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       &lt;                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       &gt;                h   2   H     ⁢     h   1            2              h   1          2           ,           (   18   )               
which is true by the assumption that ∥h 2 ∥&lt;∥h 1 ∥.
 
     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&gt;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 =ĥ p   H h j  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=WF H , 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(K 2 ), 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 P e =αQ(√{square root over (η/σ n   2 )}), 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       -&gt;   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 
               
             
             ~ 
             
               
                 ?? 
                 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 P e =αQ(√{square root over (η/σ n   2 )}) 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 
           ~       ??   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&#39; model with the maximum Doppler spread ƒ d . See, e.g., W. C. Jakes, “Microwave Mobile Communications,” Wiley (1974). That is, we have E{ƒ κ,i (t 1 )ƒ κ,i (t 2 )}=ν κ,i   2 J 0 (2 πƒ d |t 1 −t 2 |), κ=1, . . . , K; i=1, . . ., L, where J 0 (·) 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)˜N c (0, Δ κ,i   2 ). 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 ζ pred           E{|ƒ κ,i (τ)−  ƒ   κ,i (τ)| 2 } is given by ω κ,i =R κ,i    −1 r κ,i , where the entries of R κ,i  and r κ,i  are given respectively by [R κ,i ] p,q =ν κ,i   2 J 0 (2πƒ d |p−q|2T)+Δ κ,i   2 δ p,q , and [r κ,i ] p =ν κ,i   2 J 0 (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 ν κ,i   2 =1/L. The fading process of each channel path is formed by samples of a stationary zero-mean complex Gaussian process with autocorrelation function J 0 (2πƒ d t) 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 Δ κ,i   2 =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.