Patent Publication Number: US-8976759-B2

Title: Multi-user downlink linear MIMO precoding system

Description:
This application is a divisional of U.S. patent application Ser. No. 13/273,880, filed Oct. 14, 2011, which in turn is a divisional of U.S. patent application Ser. No. 12/002,874, filed Dec. 19, 2007, which in turn claims priority to U.S. Provisional Patent Application No. 60/870,930, filed Dec. 20, 2006, which is incorporated by reference herein. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention is related generally to wireless transmission, and in particular, to throughput optimization of mufti-user downlink linear multi-input multi-output (MIMO) precoding systems with quantized feedback. 
     In MIMO wireless transmission systems, higher rates of throughput (e.g., sum rates) for the overall system are desired. To facilitate gains in throughput, precoding may be used. Precoding is a generalized beamforming scheme for supporting multi-layer transmission in MIMO systems. In precoding, the multiple streams of the signals are emitted from the transmit antennas with independent and appropriate weighting so as to increase the link throughput at the receiver output. 
     In current systems, precoding algorithms for multi-user MIMO use either linear or nonlinear precoding algorithms. Linear precoding may achieve reasonable performance with lower complexity than nonlinear precoding. Nonlinear precoding may achieve greater capacity, but is very complex and accordingly slower. In general, nonlinear precoding is designed based on the concept of dirty paper coding (DPC). That is, known interference at the transmitter is subtracted without the penalty of resources if the optimal precoding scheme is applied to the transmission signal. 
     In general, multi user (MU-) MIMO systems offer significant gains over single user (SU-) MIMO schemes. In particular, by increasing the number of users there is a potential gain in system throughput. Even for a relatively small number of users, MU-MIMO systems can still outperform SU-MIMO systems by using an appropriate transmission scheme (such as precoding) for low- and mid-range SNRs. 
     With full channel state information at the transmitter (CSIT), the capacity of a Gaussian MU-MIMO channel is achieved by using DPC. However, there are insufficient solutions regarding capacity without CSIT or with partial CSIT. Many prior systems have instead used simpler transmission schemes with linear precoding. With partial CSIT, different schemes have been used. For example, a simple random beamforming algorithm has been used to realize the asymptotical gain of scheduling at the limit of large number of users. In another example, a robust opportunistic user scheduling and power allocation strategy based on limited feedback is used. However, these systems have sub-optimal throughput over the network because they do not have full CSIT and cannot quickly and efficiently schedule multiple users. 
     Therefore, there remains a need to improve throughput in MU-MIMO networks using CSIT. 
     BRIEF SUMMARY OF THE INVENTION 
     The present invention is generally directed to transmission in downlink multi-user MIMO networks. To maximize throughput over the network, quantized CSIT is sent through a low-rate feedback link feedback from a plurality of users back to a base station. The base station then determines a subset of the plurality of users to transmit one or more signals to based an the received feedback and determines a precoding matrix based on the received feedback from the plurality of users wherein the precoding matrix maximizes a sum-rate throughput for the subset of the plurality of users. 
     Additionally, based on the received feedback, the base station designs a quantization codebook. This codebook may be designed off-line and/or online. The codebook and/or precoding matrix are used to transmit signals to the users. 
     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 THE DRAWINGS 
         FIG. 1  depicts an exemplary network in which the present invention may be implemented; 
         FIG. 2  depicts a flowchart of a method of transmission over a network; 
         FIG. 3  depicts a flowchart of a method of designing a quantization codebook according to an embodiment of the invention; 
         FIG. 4  is a flowchart of a method of designing a precoder according to an embodiment of the invention; and 
         FIG. 5  is a schematic drawing of a controller. 
     
    
    
     DETAILED DESCRIPTION 
     The present invention is related generally to downlink wireless networks, and in particular to throughput optimization in multi-user downlink linear multi-input multi-output (MIMO) precoding systems with quantized feedback. In general, multi-user MIMO (MU-MIMO) systems may offer significant gains over single user MIMO (SU-MIMO) schemes. In particular, by increasing the number of users (e.g., receivers) there is a potential gain in transmission scheduling. Even for a relatively small number of users, MU-MIMO systems may still outperform SU-MIMO systems by using an appropriate transmission scheme, such as precoding, for the low- and mid-range signal to noise ratios (SNRs). 
     To improve scheduling, linear precoding may be used in MU-MIMO systems where the quantized channel state information at the transmitter (CSIT) is provided through a low-rate feedback link. With full CSIT, the capacity of a Gaussian MU-MIMO channel may be achieved by using dirty-paper coding. Thus, in a linear precoder design—given quantized CSIT—the actual channels lie in a “neighborhood” of the quantized channel with certain distribution. Since the precoding is based on a specific quantization codebook, the performance of MU-MIMO schemes with quantized feedback using the inventive linear precoder design is directly affected by the quantization codebook. Similarly, a quantization codebook may be designed based on a capacity measure for general correlated channels. A new distance metric on the Grassmanian manifold is used to design the optimal precoder codebook. In application, this new metric is equivalent to the chordal distance at low SNRs and to the Fubini-Study distance at high SNRs. Thus, codebooks based on the inventive distance metric outperform codebooks designed based on chordal distance and Fubini-Study distance. 
     Further, transmissions to multiple users (e.g., receivers, reception antennas, etc.) may be scheduled to maximize throughput in wireless networks. The scheduling uses the quantized feedback from the users to create a precoder and/or a codebook for use in signal transmission. 
       FIG. 1  depicts an exemplary network  100 . Network  100  includes a base station  102  which has one or more (e.g., 1, 2, . . . , M) transmission antennas  104   a ,  104   b ,  104 M. The base station  102  may transmit signals via transmission antennas  104   a - 104 M to one or more (e.g., 1, 2, . . . , K) receivers  106   a ,  106   b , . . . ,  106 K which may each have one or more reception antennas  108   a ,  108   b ,  108   c ,  108   d ,  108   e , . . . ,  108 N. Each of the receivers  106   a - 106 K may be capable of transmitting feedback via respective feedback links  110   a ,  110   b , . . . ,  110 K. 
     Network  100  may be a downlink multi-user multiple input and multiple output (MU-MIMO) system. That is, network  100  may include multiple base stations  102  and/or multiple receivers  106   a - 106 K and base stations  102  may transmit signals to the receivers  106   a - 106 K. 
     Base station  102  may have and/or be a wireless transmitter (e.g., cellular site, satellite, Tx, etc.) as is known and accordingly may include a precoder  112  for precoding signals transmitted by transmission antennas  104   a - 104 M and/or a scheduler  114  for scheduling one or more transmissions. In some embodiments, base station  102  may comprise multiple transmitters, each with multiple precoders  112  and transmission antennas  104   a - 104 M. Further, base station  102  may comprise one or more reception antennas and/or inputs (not shown) for receiving input data and/or feedback signals, etc. and one or more controllers (e.g., controller  500  of  FIG. 5 ) and/or or appropriate control circuitry, symbol generators, multiplexers, etc. 
     Receivers (e.g., users)  106   a - 106 K may be wireless reception devices (e.g. mobile telephone, ground station, Rx, etc.) as are known and may be capable of receiving and decoding (e.g., demultiplexing) signals received at reception antennas  108   a - 108 N as well as transmitting feedback (e.g., quantized feedback) to base station  100 . It is understood that this feedback transmission may be wired and/or wireless over feedback links  110   a - 110 K and/or may be transmitted using a combination of reception antennas  108   a - 108 N (e.g., to transmit) and/or transmission antennas  104   a - 104 M (e.g., to receive) and feedback links  110   a - 110 K are shown in this manner for diagram simplicity. Feedback links  110   a - 110 K may be low-rate feedback links providing channel state information to the transmitter. In this way, the transmitter may have (e.g., may determine from information received over feedback links  110   a - 110 K) CSIT. 
     Precoder  112  and/or controller  500  may be capable of performing precoding functions. That is, the precoder  112  and/or controller may design, determine, and/or implement a precoder and/or a codebook for use in signal transmission by base station  102 . 
     In network  100 , the complex baseband signal model for the k th  receiver (e.g., of receivers  106   a - 106 K) is y k =H k +w k  where x is the M×1 transmitted signal vector, H k  is the N k ×M channel matrix, w k ˜N c (0, I) is a circularly symmetric complex additive white Gaussian noise vector, and y k  is the N k ×1 received signal vector. In a block fading channel model in which the channel remains constant during the transmission of each packet (or codeword of length T) and the channel changes independently from one block to another, where the distribution of the channel state is known a priori, the average power constraint is given by E[x H x]≦P. 
     For maximizing the sum-rate (e.g., the total rates from the base station  102  to active receivers  106   a - 106 K) throughput in network  100 , the following assumptions are made. First, quantized channel state information for each receiver  106   a - 106 K is provided via a feedback link  110   a - 110 K. Second, only linear precoding is allowed by the base station  102 . Third, receivers  106   a - 106 K do not decode other receivers&#39; signals; they treat those signals as noise. 
       FIG. 2  depicts a flowchart of a method  200  of transmission over the network  100 . In at least one embodiment, transmission may be transmission of signals (e.g., wireless signals, information, data, etc.) from base station  102  to receivers  106   a - 106 K. The method  200  begins at step  202 . 
     In step  204 , a channel is quantized and feedback is sent from receivers  106   a - 106   k  to base station  102  over feedback links  110   a - 110 K. In at least one embodiment, the channel being quantized may be indicative of a channel received from the base station  102  and information indicative of the channel may be quantized by receivers  106   a - 106 K and/or base station  102 . The quantized channels may then be fed back as feedback to the base station  102  via feedback links  110   a - 110 K. 
     For quantization of a channel, let U k D k V k * be a singular value decomposition (SVD) of the k th  receiver channel H k . With B bits of feedback per receiver, the receivers  106   a - 106 K quantize the first N columns of V k  (where N≦min(N 1 , . . . , N k , M) is a fixed number predetermined by the base station  102 ) using a quantization codebook Q={Q 1 , Q 2 , . . . , Q 2     B   }Q i γ   M×N  as 
                     V   ^     k     ⁡     (     1   :   N     )       =     arg   ⁢           ⁢       min     Q   ⁢           ⁢   ε   ⁢           ⁢   Q       ⁢     d   ⁡     (         V   k     ⁡     (     1   :   N     )       ,   Q     )             ,         
where dc (.,.) is a distance metric. The columns of the quantized precoding matrix {circumflex over (V)} k (1:N) correspond to possible different streams for a particular receiver  106   a - 106 K. Codebook design and choice of an appropriate distance metric are discussed in further detail below with respect to method  300 .
 
     In step  206 , transmissions are scheduled. That is, at a given time, a determination may be made as to which receivers  106   a - 106 K should receive transmissions. In some embodiments, based on the quantized feedback sent from the receivers  106   a - 106 K to the base station  102  in step  204 , the base station  102  selects a subset of L, L≦M, streams (u) to transmit over transmission antennas  104   a - 104 M. 
     In system  100  with K receivers  106   a - 106 K where each receiver  106   a - 106 K feeds back quantized channel state information (CSI) corresponding to the first N dominant eigenvectors V k (1:N) of its channel H k , scheduling comprises choosing a set of L streams out of KN possible streams that have the best throughput performance. Thus, the optimum receiver subset selection requires calculating the performance for 
                   (         KN           L         )           
subsets and the computational complexity of finding the optimal precoder with maximum throughput for each subset is high. Hence, optimal scheduling is computationally intensive.
 
     In some embodiments, an alternative scheduling criterion may be used. In such embodiments, the scheduler  114  or another component (e.g., base station  102 , controller  500  of  FIG. 5 , etc.) determines the subset of receivers  106   a - 106 K that minimizes 
               ϕ   ⁡     (       V   _     ^     )       =       ∑     i   =   1     L     ⁢           ⁢       ∑       j   =   1     ,     j   ≠   i       L     ⁢           ⁢                v   ^     i   *     ⁢       v   ^     j            2               
for all matrices  {circumflex over (V)} =[{circumflex over (v)} 1 , {circumflex over (v)} 2 , . . . , {circumflex over (v)} L ] T  composed of L out of KN quantized eigenvectors. To solve this scheduling problem, a numerical approach based on simulated annealing may be used where different subsets of quantized eigenvectors constitute the set of states and the energy of the state  {circumflex over (V)}  is given by φ( {circumflex over (V)} ). In the i th  iteration, the transition probability between the current state  {circumflex over (V)}   (i)  and the candidate state  {circumflex over (V)}   (i+1)  is given by
 
               P   ⁡     (           V   _     ^       (   i   )       →         V   _     ^       (     i   +   1     )         )       =     min   ⁡     (     1   ,     exp   ⁡     [       1     T   i       ⁢     (       ϕ   ⁡     (         V   _     ^       (   i   )       )       -     ϕ   ⁡     (         V   _     ^       (     i   +   1     )       )         )       ]         )             
where T i  is a sequence of decreasing positive real numbers.
 
     In step  208 , a precoder (e.g., a precoding matrix) found. The precoder may be found as described below with respect to method  400  and  FIG. 4 . 
     At step  210 , the signals to be transmitted from base station  102  are preceded. Here, a quantization codebook may be designed (as described below with respect to  FIG. 3  and method  300 ) and/or a predetermined codebook may be used (e.g., selected, via a look-up, using controller  500 , etc.). 
     A transmitted signal x from the base station  102  may comprise L data streams, u 1 , u 2 , u L , sent through column vectors g 1 , g 2 , . . . , g L  of a linear precoder G (e.g., precoder  112 ). In this way, 
             x   =     Gu   =       ∑     i   =   1     L     ⁢           ⁢       u   i     ⁢     g   i                 
where one or more streams may be intended for a receiver  106   a - 106 K.
 
     In some embodiments, steps  204 - 210  are performed jointly (e.g., in parallel) to find the optimal transmission scheme. In alternative embodiments, a decoupled (e.g., step by step) approach may be used where the quantization codebook design depends only on maximizing a single-receiver capacity, the scheduling is based on minimizing the sum of the inner products between the channel directions of all pairs of the scheduled receiver streams, and the optimal linear precoder is designed for the scheduled subset of the receiver streams based on maximizing the sum rate. 
     Following precoding in step  210 , the signals are transmitted by base station  102  to one or more of receivers  106   a - 106 K in step  212 . The method ends at step  214 . 
       FIG. 3  depicts a flowchart of a method  300  of designing a quantization codebook according to an embodiment of the invention. A quantization codebook may be designed using a criterion based on a capacity measure. This differs from conventional codebook design (e.g., using the maximum mutual-minimum-distance). Thus, optimal codebook design may be based on the capacity measure, which is generally SNR dependant. While the capacity measurement does not directly define a valid distance metric for the design, a simple bound on the capacity expression can be used to formulate a quantization codebook design. 
     Since codebook design is independent of a receivers index, for notational simplicity the subscript “k” will not always be used hereinafter. For example, the channel matrix of the k th  receiver would be noted H. With B bits of feedback, designing a codebook may comprise finding the set Q={Q 1 , Q 2 , . . . , Q 2     B   } of semi-unitary matrices and mapping Q(H) from the set of channel conditions H to Q that maximizes the instantaneous information rate 
             C   =     log   ⁢           ⁢     det   ⁡     (     I   +       P   N     ⁢     HQ   ⁡     (   H   )       ⁢       Q   ⁡     (   H   )       *     ⁢     H   *         )               
where Q(H) represents the M×N transmission matrix used for the channel condition H and Q(H)*Q(H)=I.
 
     The method starts at step  302 . In step  304 , an evaluation set of channels (e.g., {H (l) } l=1   Size ) is generated. In at least one embodiment, the evaluation set may be based on channel distributions. In step  306 , the evaluation set is factorized. That is, the evaluation set of channels from step  304  are singular value decomposed (e.g., H (l) =U (l) D (l) V (l) ). 
     For further notational simplicity, Q(H) is represented only as Q hereinafter. Substituting the SVD of H=UDV* into 
               C   =     log   ⁢           ⁢     det   (     I   +       P   N     ⁢     HQ   ⁡     (   H   )       ⁢       Q   ⁡     (   H   )       *     ⁢     H   *         )         ,     
     ⁢     C   =     log   ⁢           ⁢       det   (     I   +       P   N     ⁢          D        2     ⁢     V   *     ⁢     QQV   *         )     .               
An approximate upper bound of the capacity may be expressed, where channel realizations have bounded norms (e.g., ∥H∥ F   2 =tr[H + H]=tr[D 2 ]≦β), as
 
             C   ⁢     &lt;   ≈     ⁢     log   ⁢           ⁢       det   ⁡     (     I   +       P   N     ⁢   β   ⁢           ⁢     V   *     ⁢     QQV   *         )       .             
Considering the low SNR approximation (e.g., P→0),
 
                     ⁢     C   ⁢     &lt;   ≈     ⁢         P   ⁢           ⁢   β     N     ⁢                V   *     ⁢   Q          F   2     .               
Similarly, considering the high SNR approximation (e.g., P→∞),
 
     
       
         
           
             C 
             ⁢ 
             
               &lt; 
               ≈ 
             
             ⁢ 
             
               
                 log 
                 ⁡ 
                 
                   ( 
                   
                     
                       
                         P 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         β 
                       
                       N 
                     
                     ⁢ 
                     
                       
                          
                         
                           
                             V 
                             * 
                           
                           ⁢ 
                           Q 
                         
                          
                       
                       2 
                     
                   
                   ) 
                 
               
               . 
             
           
         
       
     
     For 0&lt;SNR&lt;∞, since the transmitted signals are the linear combination of the columns of the precoder Q, the quantization codebook design relies on a metric that measures the distance between the subspaces spanned by different precoders (e.g., Q 1  and Q 2 ). Maximizing 
             C   ⁢     &lt;   ≈     ⁢     log   ⁢           ⁢     det   ⁡     (     I   +       P   N     ⁢   β   ⁢           ⁢     V   *     ⁢     QQV   *         )               
is related to minimizing the p-metric
 
                 d   p     ⁡     (     Q   ,   V     )       =     arc   ⁢           ⁢     cos   [       (     I   +       p   N     ⁢   β   ⁢           ⁢     V   *     ⁢     QQV   *         )         (     1   +   p     )     N       ]             
between the subspaces defined by V and Q on the Grassmanian manifold G(M,N) (e.g., the space of all N dimensional subspaces of an M dimensional vector space). The design of a codebook as discussed herein is based on the p-metric and accordingly depends on the SNR level. Therefore, based on the average power P, the value of the parameter p is chosen as
 
             p   =       β   ⁢           ⁢   P     N           
where the resulting codebook is found where SNR varies in a neighborhood of the design SNR. The choice of β is discussed in further detail below. Of course, it follows that
 
             p   =         SNR   ave     N     ⁢       max   k     ⁢       {            H     (   l   )            F   2     }     ⁢           ⁢   and                         d   p     ⁡     (     Q   ,   V     )       =     arccos   ⁡     [       det   ⁡     (     I   +       pV   *     ⁢     QQ   *     ⁢   V       )           (     1   +   p     )     N       ]             
(e.g., the inventive distance metric).
 
     In step  308 , the codebook Q(0)={Q 1 (0), Q 2 (0), . . . , Q 2     a   (0)} is initialized. In at least one embodiment, the codebook is initialized randomly. In step  310 , partitions { , k=1, 2, . . . , 2 B } are found where   is the set of all right singular vectors defined in the partitioning discussed below. 
     Given the quantization codebook Q={Q 1 , Q 2 , . . . , Q 2     E   }, the optimal partitioning of the quantizer Q(H) satisfies;
 
 ={ Vε     M×N   :d   p ( V,Q   k )≦ d   p ( V,Q   j ),∀ j≠k.  
 
     In step  312 , the centroid is found. In at least one embodiment, the centroid may be expressed as {Q k (i), k=1, 2, . . . , 2 B }. To satisfy the centroid condition, 
               Q   k     =     arg   ⁢           ⁢       min       Q   ∈     C     M   ×   N         ,         Q   *     ⁢   Q     =   1         ⁢     E   ⁡     [         d   p     ⁡     (     Q   ,   V     )       ❘     V   ∈     V   k         ]                 
may be solved for the k th  partition. In at least one embodiment, this may be solved numerically. To employ a gradient-descent search algorithm, real representations of the matrices Q, H, V, are used as  Q ,  H ,  V , respectively, defined by
 
     
       
         
           
             
               Q 
               _ 
             
             = 
             
               
                 [ 
                 
                   
                     
                       
                         ℜ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           e 
                           ⁡ 
                           
                             ( 
                             Q 
                             ) 
                           
                         
                       
                     
                     
                       
                         
                           - 
                           𝔍 
                         
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           m 
                           ⁡ 
                           
                             ( 
                             Q 
                             ) 
                           
                         
                       
                     
                   
                   
                     
                       
                         𝔍 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           m 
                           ⁡ 
                           
                             ( 
                             Q 
                             ) 
                           
                         
                       
                     
                     
                       
                         ℜ 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         
                           e 
                           ⁡ 
                           
                             ( 
                             Q 
                             ) 
                           
                         
                       
                     
                   
                 
                 ] 
               
               . 
             
           
         
       
     
     The semi-unitary matrix Qε   M×N  is then parameterized using N Φ =2(M−N+1)N independent real parameters φ i =1, . . . , N Φ . Therefore, 
               Q   k     =     arg   ⁢           ⁢       min       Q   ∈     C     M   ×   N         ,         Q   *     ⁢   Q     =   1         ⁢     E   ⁡     [         d   p     ⁡     (     Q   ,   V     )       ❘     V   ∈     V   k         ]                 
may be determined by considering the unconditional problem in terms of the vector Φ=[φ 1 , φ 2 , . . . , φ NΦ ]. This leads to the objective function
 
                 min   Φ     ⁢     J   ⁡     (     Q   ⁡     (   Φ   )       )         =       min   Φ     ⁢     E   [         d   p     (         Q   _     ⁡     (   Φ   )       ,       V   _     ❘     V   ∈     ℧   k           ]     .               
The derivative of this objective function with respect to φ k  is then
 
                         ∂     ∂     ϕ   k         ⁢     J   ⁡     (       Q   _     ⁡     (   Φ   )       )         =     tr   ⁢     {         [       ∂       Q   _     ⁡     (   Φ   )           ∂     ϕ   k         ]     T     ⁢       ∇     Q   _       ⁢     J   ⁡     (     Q   _     )           }         ,     1   ≤   k   ≤       N   Φ     ⁢           ⁢   where                                         ∇     Q   _       ⁢     J   ⁡     (     Q   _     )         =       ⁢     E   ⁡     [         -         (     1   -     F   2       )         -   1     /   2           (     1   +   p     )     N         ⁢       ∇     Q   _       ⁢     det   ⁡     (     I   +     p   ⁢           ⁢       V   _     T     ⁢       Q   ⁢             _     ⁢       Q   _     T     ⁢     V   _         )           ❘     V   ∈     ℧   k         ]                   =       ⁢       ∇     Q   _       ⁢     J   ⁡     (     Q   _     )                     =       ⁢     E   ⁡     [         -   2     ⁢           ⁢   p   ⁢           ⁢       F   ⁡     (     1   -     F   2       )           -   1     /   2       ⁢     V   _     ⁢           ⁢       V   _     T     ⁢         Q   _     ⁡     (     I   +     p   ⁢           ⁢       V   _     T     ⁢     Q   _     ⁢           ⁢       Q   _     T     ⁢     V   _         )         -   1         ❘     V   ∈     V   k         ]                                     with   ⁢          ⁢     F   =       [       det   ⁡     (     I   +     p   ⁢       V   _     T     ⁢     Q   _     ⁢           ⁢       Q   _     T     ⁢     V   _         )           (     1   +   p     )     N       ]     .                               
Therefore, a gradient descent search algorithm may be used with the recursion Φ (l+1) Φ (l) =μ l ∇ Φ J(  Q (Φ))| Φ     (l)    where μ l  is the sequence of step sizes.
 
     In step  314 , a check is performed to determine if the centroid Φ (l+1) =Φ (l) =μ l ∇ Φ J(  Q (Φ))| Φ     (l)    has converged. Here, Φ is used to find the unitary matrix Q(φ) and Q(φ) is the centroid for   described above. If the centroid has not converged, step  312  is repeated iteratively until convergence. 
     If the centroid has converged, the method proceeds to step  316  and a check is performed to determine if the quantization codebook  ={Q k } has converged. If the codebook has converged, the method proceeds to step  318  and the quantization codebook   is determined. That is, when the quantization codebook   converges after a number of iterations, the set of all Q k  is the codebook. If the codebook has not converged, the method returns to step  310 . 
     In actual implementation, this algorithm converges readily. Accordingly, the method  300  may be used in on-line (e.g., live, continuous transmission, etc.) applications. The method ends at step  318 . 
       FIG. 4  is a flowchart of a method  400  of designing a precoding matrix and for precoding and transmission according to an embodiment of the invention. In some embodiments, the precoding matrix (alternatively referred to as the “precoder”) may be stored on designed by and/or implemented by precoder  112  of  FIG. 1  and may be used for precoding transmissions in network  100 . In the same or alternative embodiments, the precoding matrix may be designed for transmission to multiple receivers  104   a - 104 K based on quantized feedback in order to maximize the sum-rate. The method  400  begins at step  402 . 
     In step  404 , each receiver  106   a - 106 K performs SVD on its incoming channel (e.g., H k =U k D k V k *) and quantizes the dominant right eigenvectors V k (1:N). In step  406 , the resultant indices are fed back to the base station  102  via feedback links  110   a - 110 K. The scheduler  114  or another component (e.g., controller  500  of  FIG. 5 , etc.) may select L transmission streams as discussed above with respect to step  206  of method  200 .  {circumflex over (V)} =[{circumflex over (v)} 1 , {circumflex over (v)} 2 , . . . , {circumflex over (v)} L ] T  denotes the matrix of the quantized eigenvectors of the L scheduled receiver streams. In general, {circumflex over (v)} k  corresponds to the k th  receiver  106   a - 106 K for which the channel matrix is given by H k . In some embodiments, streams belonging to the same receiver are jointly detected. In this way, if {circumflex over (v)} i  and {circumflex over (v)} j  belong to the same receiver  106   a - 106 K, H i =H j . At the transmitter (e.g., base station  102 ), each set of quantized indices restricts the set of channel conditions for the scheduled receivers to a Voronoi region: D( {circumflex over (V)} )={(H l , . . . , H L ):∥v k −{circumflex over (v)} k ∥≦∥v k −q j ∥, {circumflex over (v)} k , q j εQ, 1≦j≦2 B , {circumflex over (v)} k ≠q j , and k=1, 2, . . . , L} and d(v k ,{circumflex over (v)} k )≦d(v k ,q j ) where d(.,.) is the distance (e.g., design) metric described above, v 1 , v 2 , . . . , v L  are the corresponding right eigenvectors of the channel matrices H 1 , H 2 , . . . , H L  to the quantized eigenvectors respectively, and Q={q 1 , q 2 , . . . , q 2     B   } is the quantization codebook as discussed above. 
     In step  406 , the data streams are preceded. In some embodiments, L data streams u 1 , u 2 , . . . , u L  may be precoded by the M×L precoding matrix G=[g 1 , g 2 , . . . , g L ] with g i εC M×l . The received signal by the k th  receiver  106   a - 106 K is 
               y   k     =         H   k     ⁢     g   k     ⁢     u   k       +       ∑       i   =   1     ,     j   ≠   k       L     ⁢       H   k     ⁢     g   l     ⁢     u   i         +       w   k     .             
By treating interference between receivers  106   a - 106 K as noise, the rate of k th  stream is
 
     
       
         
           
             
               
                 R 
                 k 
               
               ⁡ 
               
                 ( 
                 
                   
                     V 
                     _ 
                   
                   ^ 
                 
                 ) 
               
             
             = 
             
               
                 log 
                 ⁡ 
                 
                   ( 
                   
                     1 
                     + 
                     
                       
                         ( 
                         
                           
                             H 
                             k 
                           
                           ⁢ 
                           
                             g 
                             k 
                           
                         
                         ) 
                       
                       * 
                       
                         
                           [ 
                           
                             1 
                             + 
                             
                               
                                 ∑ 
                                 
                                   
                                     i 
                                     = 
                                     1 
                                   
                                   , 
                                   
                                     j 
                                     ≠ 
                                     k 
                                   
                                 
                                 L 
                               
                               ⁢ 
                               
                                 
                                   ( 
                                   
                                     
                                       H 
                                       k 
                                     
                                     ⁢ 
                                     
                                       g 
                                       l 
                                     
                                   
                                   ) 
                                 
                                 ⁢ 
                                 
                                   
                                     ( 
                                     
                                       
                                         H 
                                         k 
                                       
                                       ⁢ 
                                       
                                         g 
                                         l 
                                       
                                     
                                     ) 
                                   
                                   * 
                                 
                               
                             
                           
                           ] 
                         
                         
                           - 
                           1 
                         
                       
                       ⁢ 
                       
                         ( 
                         
                           
                             H 
                             k 
                           
                           ⁢ 
                           
                             g 
                             k 
                           
                         
                         ) 
                       
                     
                   
                   ) 
                 
               
               . 
             
           
         
       
     
     Channel knowledge at the base station  102  for each set of feedback indices defined by the set HεD( {circumflex over (V)} ) is a deterministic function of the channel state information at the receiver (CSIR), the sum rate throughput may be 
               R   sum     =       max   g     ⁢       ∑     V   ^       ⁢       Pr   ⁡     (     H   ∈     D   ⁡     (       V   _     ^     )         )       ⁢       E     H   ∈     D   ⁡     (       V   _     ^     )           ⁡     [       ∑     k   =   1     L     ⁢       R   k     ⁡     (       V   _     ^     )         ]                   
where optimization is taken over the set of precoding matrices G={G( {circumflex over (V)} ), ∀ V } for each Voronoi region.
 
     The average power used by each precoder GεG may then be E[|Gu| 2 ]=tr(GG*) when E[uu*]=I. Therefore, G is defined such that the total power constraint Σ   {circumflex over (V)}   Pr(HεD( {circumflex over (V)} ))tr(G( {circumflex over (V)} )G( {circumflex over (V)} )*)≦P is satisfied. In alternative embodiments, constant power may be used. In such cases, the power constraint may be tr(G( {circumflex over (V)} )G( {circumflex over (V)} )*)≦P. 
     In step  408 , the rate may be optimized. That is, the optimization problem R sum  may be solved. In some embodiments, the optimization may be solved separately for each Voronoi region. For a generic Voronoi region ID and a precoder G, the optimization problem may be: 
                 max   G     ⁢   J     =       E     H   ∈   D       ⁡     [       ∑     k   =   1     L     ⁢     log   ⁡     (     1   +       (       H   k     ⁢     g   k       )     *       [     1   +       ∑       i   =   1     ,     j   ≠   k       L     ⁢       (       H   k     ⁢     g   i       )     ⁢       (       H   k     ⁢     g   i       )     *           ]       -   1       ⁢     (       H   k     ⁢     g   k       )         )         ]             
such that tr(GG*)≦P.
 
     In some embodiments, a gradient descent search algorithm may be used to find the solution. The gradient of the objective function with respect to the precoder G may be determined analytically. The (I,j) th  element of the objective function in such instances is 
                 ∂   J       ∂     g   lj         =       E     H   ∈   D       ⁡     [         2     A   l       ⁢       (       H   l     ⁢     g   l       )     *     ⁢         ∑     -   1       l     ⁢     h   j     (   l   )           +       ∑       k   =   1     ,     k   ≠   l       L     ⁢       2     A   k       ⁢         (       H   k     ⁢     g   k       )     *     ⁡     [     -       ∑   k     -   1       ⁢           h   j     (   k   )       ⁡     (       H   k     ⁢     g   l       )       *     ⁢     ∑   k     -   1             ]       ⁢     (       H   k     ⁢     g   k       )           ]             
where Σ k =I+Σ i=,j×k   L (H k g i )*, A k =1+(H k g k )*Σ k   −1 (H k g k ),h j   (k)  is the j th  row if H k  and g ij  is the j th  element of the column vector g l . The objective function may then be expressed as ∇ G J=E HεD [H*ψ*A+H*ω*ΥA−H*ψ*AψHG] where
 
               A   =     diag   ⁡     (       1     A   1       ,     1     A   2       ,   …   ⁢           ,     1     A   L         )         ,         
H=[H 1   T H 2   T  . . . H L   T ] T , ψ=diag(T 1 , T 2 , . . . , T L ), Υ=diag(T 1 H 1 g 1 , T 2 H 2 g 2 , . . . , T 2 H L g L ), and T l =(H l g l )*Σ l   −1 , 1≦l≦L.
 
     In step  410 , the precoding matrix may be determined. In some embodiments, the precoder (precoding matrix) may be determined (e.g., the optimal G may be found) using a gradient descent algorithm as is known with the following recursion: 
     
       
         
           
             
               
                 
                   G 
                   ~ 
                 
                 
                   k 
                   + 
                   1 
                 
               
               = 
               
                 
                   G 
                   
                     ( 
                     k 
                     ) 
                   
                 
                 - 
                 
                   
                     μ 
                     k 
                   
                   ⁢ 
                   
                     
                       ∇ 
                       G 
                     
                     ⁢ 
                     
                       J 
                       ⁡ 
                       
                         ( 
                         
                           G 
                           
                             ( 
                             k 
                             ) 
                           
                         
                         ) 
                       
                     
                   
                 
               
             
             , 
             
               
 
             
             ⁢ 
             
               
                 G 
                 
                   ( 
                   
                     k 
                     + 
                     1 
                   
                   ) 
                 
               
               = 
               
                 
                   
                     P 
                   
                   ⁢ 
                   
                     
                       G 
                       ~ 
                     
                     
                       ( 
                       
                         k 
                         + 
                         1 
                       
                       ) 
                     
                   
                 
                 
                   
                     tr 
                     ⁡ 
                     
                       ( 
                       
                         
                           
                             G 
                             ~ 
                           
                           
                             ( 
                             
                               k 
                               + 
                               1 
                             
                             ) 
                           
                         
                         ⁢ 
                         
                           
                             G 
                             ~ 
                           
                           
                             
                               ( 
                               
                                 k 
                                 + 
                                 1 
                               
                               ) 
                             
                             * 
                           
                         
                       
                       ) 
                     
                   
                 
               
             
           
         
       
     
     where G (k)  is the precoding matrix after the k th  iteration and u k  is the step size parameter. Normalization with 
               G     (     k   +   1     )       =         P     ⁢       G   ~       (     k   +   1     )             tr   ⁡     (         G   ~       (     k   +   1     )       ⁢       G   ~         (     k   +   1     )     *         )                 
may be performed to satisfy the power constraint described above.
 
     Step  410  may be initialized to an arbitrary semi-unitary matrix G that satisfies the power constraint tr(GG*)≦P. In the same or alternative embodiments, step  410  may be initially started at the solution to 
                 G   ~       (   0   )       =           V   _     *     ⁡     [             V   ^     ⁢   V     _     *     +       L   P     ⁢   I       ]         -   1             
which may facilitate faster convergence of the recursion.
 
     In some embodiments, an alternative algorithm to the gradient descent algorithm may be used. For example, since the optimal solution satisfies G=   HεD [(H*ψ*AψH) −1 H*ψ*(I+Υ)A], an alternative iterative algorithm may be used. In such an algorithm, at the k th  step, G may be calculated using G (k)  (e.g., the precoding matrix at the k th  iteration) and {tilde over (G)} (k+1)   [H*ψ*AψH) −1 H*ψ*(I+Υ)A]| G     (k)   . In this way, the new precoding matrix G (k+1)  may be obtained after normalization. Other algorithms for determining the precoding matrix G may be used as appropriate. 
     The method ends at step  412 . 
     In order to detect their streams, receivers  106   a - 106 K have to know the precoder used by the transmitter (e.g., base station  102 ). This information is provided to the set of scheduled receivers  106   a - 106 K through a reconfirmation process used by the base station  102 . This reconfirmation is done either by sending a dedicated precoded pilot for each user or by re-transmitting the index of the Voronci region (e.g., the set of all scheduled user feedback indices). The size of precoding codebook is 2 BL  for L streams and B bits of quantization of each eigenvector. Hence, although the precoding codebook can be obtained off-line based on a given quantization codebook, it might be practically not possible to store the precoding codebook because the size of the codebook could be very large. However, by implementing the same precoding method and the corresponding initialization as described above, the precoder may be computed on-line both at the base station  102  and at the receivers  106   a - 106 K based on the quantization indices of the scheduled users. 
     The use of feedback may become undesirable at high SNR if a codebook with fixed size is employed since at high SNR a simple TDMA strategy without feedback will outperform a multi-user transmission strategy with imperfect CSIT. If the codebook size is fixed, transmission rank control may be employed by reducing the number of scheduled user streams as SNR increases. The sum-rate performance of such an adaptive transmission strategy is not limited at high SNR and is may improve performance over a TDMA strategy without CSIT and a multi-user precoding scheme with fixed transmission rank. The optimal transmission rank depends on the average SNR and can be computed off-line by using a simple greedy method. 
     Given the SNR, the precoder rank that results in the highest average sum-rate performance may be found. A precoder may be determined off-line as described above with respect to  FIG. 4  for fixed transmission rank over different channel realizations. The rank that maximizes the average throughput performance may then be chosen. Therefore, in practical implementation a lookup table may be used with the available power and average SNR to determine the appropriate precoder rank that corresponds to the number of user streams to be selected by the scheduler  114 . 
       FIG. 5  is a schematic drawing of a controller  500  according to an embodiment of the invention. Controller  500  may be used in conjunction with and/or may perform the functions of base station  102 , precoder  112 , and/or scheduler  114 . In the same or alternative embodiments, controller  500  may reside at, be component of, and/or may be used by one or more receivers  106   a - 106 K. That is, controller  500  may be adapted to perform functions of a transmitter and/or a receiver as is known. 
     Controller  500  contains a processor  502  which controls the overall operation of the controller  500  by executing computer program instructions which define such operation. The computer program instructions may be stored in a storage device  504  (e.g., magnetic disk, database, etc.) and loaded into memory  506  when execution of the computer program instructions is desired. Thus, applications for performing the herein-described method steps, such as precoding, codebook construction, transmitting and/or receiving data, and throughput optimization, in methods  200 ,  300 , and  400  are defined by the computer program instructions stored in the memory  506  and/or storage  504  and controlled by the processor  502  executing the computer program instructions. The controller  500  may also include one or more network interfaces  508  for communicating with other devices via a network (e.g., a peer to peer network, etc.). The controller  500  also includes input/output devices  510  (e.g., display, keyboard, mouse, speakers, buttons, etc.) that enable user interaction with the controller  500 . Controller  500  and/or processor  502  may include one or more central processing units, read only memory (ROM) devices and/or random access memory (RAM) devices. One skilled in the art will recognize that an implementation of an actual controller could contain other components as well, and that the controller of  FIG. 5  is a high level representation of some of the components of such a controller for illustrative purposes. 
     According to some embodiments of the present invention, instructions of a program (e.g., controller software) may be read into memory  506 , such as from a ROM device to a RAM device or from a LAN adapter to a RAM device. Execution of sequences of the instructions in the program may cause the controller  500  to perform one or more of the method steps described herein, such as those described above with respect to methods  200 ,  300 , and  400 . In alternative embodiments, hard-wired circuitry or integrated circuits may be used in place of, or in combination with, software instructions for implementation of the processes of the present invention. Thus, embodiments of the present invention are not limited to any specific combination of hardware, firmware, and/or software. The memory  506  may store the software for the controller  500 , which may be adapted to execute the software program and thereby operate in accordance with the present invention and particularly in accordance with the methods described in detail above. However, it would be understood by one of ordinary skill in the art that the invention as described herein could be implemented in many different ways using a wide range of programming techniques as well as general purpose hardware sub-systems or dedicated controllers. 
     Such programs may be stored in a compressed, uncompiled and/or encrypted format. The programs furthermore may include program elements that may be generally useful, such as an operating system, a database management system, and device drivers for allowing the controller to interface with computer peripheral devices, and other equipment/components. Appropriate general purpose program elements are known to those skilled in the art, and need not be described in detail herein. 
     The foregoing Detailed Description is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the principles of the present invention and that various modifications may be implemented by those skilled in the art without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention.