# Patent

## Title
Multi-user downlink linear MIMO precoding system

## Abstract

Multi-user (MU-) MIMO systems with quantized feedback are designed to maximize the sum-rate via scheduling and linear precoding. 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 on the received feedback and determines a preceding 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.

## Background
This application 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 multi-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 on 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 104a, 104b, . . . , 104M. The base station 102 may transmit signals via transmission antennas 104a-104M to one or more (e.g., 1, 2, . . . , K) receivers 106a, 106b, . . . , 106K which may each have one or more reception antennas 108a, 108b, 108c, 108d, 108e, . . . , 108N. Each of the receivers 106a-106K may be capable of transmitting feedback via respective feedback links 110a, 110b, . . . , 110K.
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 106a-106K and base stations 102 may transmit signals to the receivers 106a-106K.
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 104a-104M 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 104a-104M. 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) 106a-106K 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 108a-108N 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 110a-110K and/or may be transmitted using a combination of reception antennas 108a-108N (e.g., to transmit) and/or transmission antennas 104a-104M (e.g., to receive) and feedback links 110a-110K are shown in this manner for diagram simplicity. Feedback links 110a-110K 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 110a-110K) 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 kth receiver (e.g., of receivers 106a-106K) is yk=Hkx+wk where x is the M×1 transmitted signal vector, Hk is the Nk×M channel matrix, wk ̃Nc(0, I) is a circularly symmetric complex additive white Gaussian noise vector, and yk is the Nk×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[xHx]≦P.
For maximizing the sum-rate (e.g., the total rates from the base station 102 to active receivers 106a-106K) throughput in network 100, the following assumptions are made. First, quantized channel state information for each receiver 106a-106K is provided via a feedback link 110a-110K. Second, only linear precoding is allowed by the base station 102. Third, receivers 106a-106K do not decode other receivers' 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 106a-106K. The method 200 begins at step 202.
In step 204, a channel is quantized and feedback is sent from receivers 106a-106k to base station 102 over feedback links 110a-110K. 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 106a-106K and/or base station 102. The quantized channels may then be fed back as feedback to the base station 102 via feedback links 110a-110K.
For quantization of a channel, let UkDkVk* be a singular value decomposition (SVD) of the kth receiver channel Hk. With B bits of feedback per receiver, the receivers 106a-106K quantize the first N columns of Vk (where N≦min(N1, . . . , Nk, M) is a fixed number predetermined by the base station 102) using a quantization codebook Q={Q1, Q2, . . . , Q2B}, QiεM×N as




  
    
      
        
          V
          ^
        
        k
      
      ⁡
      
        (
        
          1
          :
          N
        
        )
      
    
    =
    
      arg
      ⁢
      
        
          min
          
            Q
            ∈
            Q
          
        
        ⁢
        
          d
          ⁡
          
            (
            
              
                
                  V
                  k
                
                ⁡
                
                  (
                  
                    1
                    :
                    N
                  
                  )
                
              
              ,
              Q
            
            )
          
        
      
    
  
  ,




where d(.,.) 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 106a-106K. 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 106a-106K should receive transmissions. In some embodiments, based on the quantized feedback sent from the receivers 106a-106K 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 104a-104M.
In system 100 with K receivers 106a-106K where each receiver 106a-106K feeds back quantized channel state information (CSI) corresponding to the first N dominant eigenvectors Vk(1:N) of its channel Hk, 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 106a-106K 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 ith 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 Ti is a sequence of decreasing positive real numbers.

In step 208, a precoder (e.g., a precoding matrix) is 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 precoded. 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, u1, u2, . . . , uL, sent through column vectors g1, g2, . . . , gL 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 106a-106K.

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 106a-106K 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 receiver's index, for notational simplicity the subscript “k” will not always be used hereinafter. For example, the channel matrix of the kth receiver would be noted H. With B bits of feedback, designing a codebook may comprise finding the set Q={Q1, Q2, . . . , Q2B} 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=1Size) 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
    =
    
      logdet
      ⁡
      
        (
        
          I
          +
          
            
              P
              N
            
            ⁢
            
              HQ
              ⁡
              
                (
                H
                )
              
            
            ⁢
            
              
                Q
                ⁡
                
                  (
                  H
                  )
                
              
              *
            
            ⁢
            
              H
              *
            
          
        
        )
      
    
  
  ,
  
    C
    =
    
      logdet
      ⁡
      
        (
        
          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∥F2=tr[H*H]=tr[D2]≦β), as





  C
  ⁢
  
    <
    ≈
  
  ⁢
  
    log
    ⁢
    
      
    
    ⁢
    
      
        det
        ⁡
        
          (
          
            I
            +
            
              
                P
                N
              
              ⁢
              β
              ⁢
              
                
              
              ⁢
              
                V
                *
              
              ⁢
              
                QQV
                *
              
            
          
          )
        
      
      .
    
  




Considering the low SNR approximation (e.g., P→0),





  C
  ⁢
  
    <
    ≈
  
  ⁢
  
    
      
        P
        ⁢
        
          
        
        ⁢
        β
      
      N
    
    ⁢
    
      
        
          
          
            
              V
              *
            
            ⁢
            Q
          
          
        
        F
        2
      
      .
    
  




Similarly, considering the high SNR approximation (e.g., P→∞),





  C
  ⁢
  
    <
    ≈
  
  ⁢
  
    log
    ⁢
    
      
    
    ⁢
    
      
        (
        
          
            
              P
              ⁢
              
                
              
              ⁢
              β
            
            N
          
          ⁢
          
            
              
              
                
                  V
                  *
                
                ⁢
                Q
              
              
            
            2
          
        
        )
      
      .
    
  




For 0<SNR<∞, 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., Q1 and Q2). Maximizing




  C
  ⁢
  
    <
    ≈
  
  ⁢
  
    log
    ⁢
    
      
    
    ⁢
    
      det
      ⁡
      
        (
        
          I
          +
          
            
              P
              N
            
            ⁢
            β
            ⁢
            
              
            
            ⁢
            
              V
              *
            
            ⁢
            
              QQV
              *
            
          
        
        )
      
    
  




is related to minimizing the p-metric





  
    
      d
      p
    
    ⁡
    
      (
      
        Q
        ,
        V
      
      )
    
  
  =
  
    arccos
    [
    
      
        (
        
          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)={Q1(0), Q2(0), . . . , Q2B(0)} is initialized. In at least one embodiment, the codebook is initialized randomly. In step 310, partitions {k, k=1, 2, . . . , 2B} are found where k is the set of all right singular vectors defined in the partitioning discussed below.
Given the quantization codebook Q={Q1, Q2, . . . , Q2B}, the optimal partitioning of the quantizer Q(H) satisfies:

k={VεM×N:dp(V,Qk)≦dp(V,Qj),∀j≠k. 

In step 312, the centroid is found. In at least one embodiment, the centroid may be expressed as {Qk(i), k=1, 2, . . . , 2B}. To satisfy the centroid condition,




  
    Q
    k
  
  =
  
    arg
    ⁢
    
      
    
    ⁢
    
      
        min
        
          
            Q
            ∈
            
              C
              
                M
                ×
                N
              
            
          
          ,
          
            
              
                Q
                *
              
              ⁢
              Q
            
            =
            I
          
        
      
      ⁢
      
        
      
      ⁢
      
        E
        ⁡
        
          [
          
            
              
                d
                p
              
              ⁡
              
                (
                
                  Q
                  ,
                  V
                
                )
              
            
            |
            
              V
              ∈
              
                V
                k
              
            
          
          ]
        
      
    
  




may be solved for the kth 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, I=1, . . . , Nφ. Therefore,




  
    Q
    k
  
  =
  
    arg
    ⁢
    
      
    
    ⁢
    
      
        min
        
          
            Q
            ∈
            
              C
              
                M
                ×
                N
              
            
          
          ,
          
            
              
                Q
                *
              
              ⁢
              Q
            
            =
            I
          
        
      
      ⁢
      
        
      
      ⁢
      
        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 k 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 ={Qk} 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 Qk 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 104a-104K based on quantized feedback in order to maximize the sum-rate. The method 400 begins at step 402.
In step 404, each receiver 106a-106K performs SVD on its incoming channel (e.g., Hk=UkDkVk*) and quantizes the dominant right eigenvectors Vk(1:N). In step 406, the resultant indices are fed back to the base station 102 via feedback links 110a-110K. 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 kth receiver 106a-106K for which the channel matrix is given by Hk. 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 106a-106K, Hi=Hj. 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)})={(H1, . . . , HL):∥vk−{circumflex over (v)}k∥≦∥vk−qj∥, {circumflex over (v)}k,qjεQ, 1≦j≦2B, {circumflex over (v)}k≈qj, and k=1, 2, . . . , L} and d(vk,{circumflex over (v)}k)≦d(vk,qj) where d(.,.) is the distance (e.g., design) metric described above, v1, v2, . . . , vL are the corresponding right eigenvectors of the channel matrices H1, H2, . . . , HL to the quantized eigenvectors {circumflex over (v)}1, {circumflex over (v)}2, . . . , {circumflex over (v)}L, respectively, and Q={q1, q2, . . . , q2B} is the quantization codebook as discussed above.
In step 406, the data streams are precoded. In some embodiments, L data streams u1, u2, . . . , uL may be precoded by the M×L precoding matrix G=[g1, g2, . . . , gL] with giεCM×1. The received signal by the kth receiver 106a-106K is




  
    y
    k
  
  =
  
    
      
        H
        k
      
      ⁢
      
        g
        k
      
      ⁢
      
        u
        k
      
    
    +
    
      
        ∑
        
          
            i
            =
            1
          
          ,
          
            i
            ≠
            k
          
        
        L
      
      ⁢
      
        
      
      ⁢
      
        
          H
          k
        
        ⁢
        
          g
          i
        
        ⁢
        
          u
          i
        
      
    
    +
    
      
        w
        k
      
      .
    
  




By treating interference between receivers 106a-106K as noise, the rate of the kth stream is





  
    
      R
      k
    
    ⁡
    
      (
      
        
          V
          ^
        
        _
      
      )
    
  
  =
  
    
      log
      ⁡
      
        (
        
          1
          +
          
            
              (
              
                
                  H
                  k
                
                ⁢
                
                  g
                  k
                
              
              )
            
            *
            
              
                [
                
                  1
                  +
                  
                    
                      ∑
                      
                        
                          i
                          =
                          1
                        
                        ,
                        
                          i
                          ≠
                          k
                        
                      
                      L
                    
                    ⁢
                    
                      
                    
                    ⁢
                    
                      
                        (
                        
                          
                            H
                            k
                          
                          ⁢
                          
                            g
                            i
                          
                        
                        )
                      
                      ⁢
                      
                        
                          (
                          
                            
                              H
                              k
                            
                            ⁢
                            
                              g
                              i
                            
                          
                          )
                        
                        *
                      
                    
                  
                
                ]
              
              
                -
                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 Rsum may be solved. In some embodiments, the optimization may be solved separately for each Voronoi region. For a generic Voronoi region D and a precoder G, the optimization problem may be:




  
    
      max
      G
    
    ⁢
    
      
    
    ⁢
    J
  
  =
  
    
      E
      
        H
        ∈
        D
      
    
    ⁡
    
      [
      
        
          ∑
          
            k
            =
            1
          
          L
        
        ⁢
        
          
        
        ⁢
        
          log
          ⁡
          
            (
            
              1
              +
              
                
                  (
                  
                    
                      H
                      k
                    
                    ⁢
                    
                      g
                      k
                    
                  
                  )
                
                *
                
                  
                    [
                    
                      I
                      +
                      
                        
                          ∑
                          
                            
                              i
                              =
                              1
                            
                            ,
                            
                              i
                              ≠
                              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
                  
                
                )
              
              *
            
            ⁢
            
              
                ∑
                l
                
                  -
                  1
                
              
              ⁢
              
                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=1,i≈kL(Hkgi)(Hkgi)*, Ak=1+(Hkgk)*Σk−1(Hkgk),hj(k) is the jth row if Hk and glj is the jth element of the column vector gl. The objective function may then be expressed as ∇GJ=EHε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(T1, T2, . . . , TL), γ=diag(T1H1g1, T2H2g2, . . . , T2HLgL), and Tl=(Hlgl)*Σ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 kth iteration and uk 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)−1H*ψ*(I+γ)A], an alternative iterative algorithm may be used. In such an algorithm, at the kth step, G may be calculated using G(k) (e.g., the precoding matrix at the kth iteration) and {tilde over (G)}(k+1)HεD[(H*ψ*AψH)−1H*ψ*(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 106a-106K have to know the precoder used by the transmitter (e.g., base station 102). This information is provided to the set of scheduled receivers 106a-106K 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 Voronoi region (e.g., the set of all scheduled user feedback indices). The size of precoding codebook is 2BL 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 106a-106K 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 106a-106K. 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.

## Claims

1. A method implemented in a base station used for a downlink multi-user (MU) multi-input multi-output (MIMO) system, comprising:
receiving an indication of a quantized vector from each of a plurality of user equipments;
determining the precoder;
precoding data streams for the plurality of user equipments; and
transmitting the precoded data to the plurality of user equipments,
wherein the precoded data is expressed by equation


x=Gu 

where x is the precoded data, u denotes the data streams, G is a precoder comprising matrix [{circumflex over (v)}1, {circumflex over (v)}2, . . . , {circumflex over (v)}L], and {circumflex over (v)}1, {circumflex over (v)}2, . . . , and {circumflex over (v)}L are indicated by the plurality of user equipments,

wherein the number of the data streams is equal to or greater than the number of the user equipments, and
wherein determining the precoder comprises:
(a) initializing initial precoder {tilde over (G)}(0) as





  
    
      
        
          
            V
            _
          
          ^
        
        *
      
      ⁡
      
        [
        
          
            
              
                V
                ^
              
              _
            
            ⁢
            
              
                
                  V
                  ^
                
                _
              
              *
            
          
          +
          
            
              L
              P
            
            ⁢
            I
          
        
        ]
      
    
    
      -
      1
    
  
  ,




where {circumflex over (V)}=[{circumflex over (v)}1, {circumflex over (v)}2, . . . , {circumflex over (v)}L]T, P is average power, L is the number of the data streams, and I is an identity matrix;
(b) determining kth precoder





  
    G
    
      (
      k
      )
    
  
  =
  
    
      
        P
      
      ⁢
      
        
          G
          ~
        
        
          (
          k
          )
        
      
    
    
      
        tr
        ⁡
        
          (
          
            
              
                G
                ~
              
              
                (
                k
                )
              
            
            ⁢
            
              
                G
                ~
              
              
                
                  (
                  k
                  )
                
                *
              
            
          
          )
        
      
    
  




at a kth iteration;
(c) determining (k+1)th precoder {tilde over (G)}(k+1) as EεD└(H*ψ*AψH)−1H*ψ*(I+γ)A┘|G(k),
where H is a channel matrix of transmission channels to the plurality of user equipments, E denotes the expectation operation, D is the set of channel over which the expectation is taken,





  
    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(T1H1g1, T2H2g2, . . . TLHLgL), gl is the lth column of the precoder G,




  
    
      
        A
        l
      
      =
      
        1
        +
        
          
            
              (
              
                
                  H
                  l
                
                ⁢
                
                  g
                  l
                
              
              )
            
            *
          
          ⁢
          
            
              Ω
              l
              
                -
                1
              
            
            ⁡
            
              (
              
                
                  H
                  l
                
                ⁢
                
                  g
                  l
                
              
              )
            
          
        
      
    
    ,
    
      
        Ω
        l
        
          -
          1
        
      
      =
      
        I
        +
        
          
            ∑
            
              
                i
                =
                1
              
              ,
              
                i
                ≠
                l
              
            
            L
          
          ⁢
          
            
          
          ⁢
          
            
              (
              
                
                  H
                  l
                
                ⁢
                
                  g
                  i
                
              
              )
            
            ⁢
            
              
                (
                
                  
                    H
                    l
                  
                  ⁢
                  
                    g
                    i
                  
                
                )
              
              *
            
          
        
      
    
    ,
    
      

    
    ⁢
    
      
        T
        l
      
      =
      
        
          
            (
            
              
                H
                l
              
              ⁢
              
                g
                l
              
            
            )
          
          *
        
        ⁢
        
          Ω
          l
          
            -
            1
          
        
      
    
    ,
    
      
    
    ⁢
    
      
        
          and
          ⁢
          
            
          
          ⁢
          1
        
        ≤
        l
        ≤
        L
      
      ;
      
        
      
      ⁢
      and
    
  
  ⁢
  
    
  



(d) performing (b) and (c) for a specific number of iteration, where the specific number of iteration ≧0.

2. A base station used for a downlink multi-user (MU) multi-input multi-output (MIMO) system, comprising:
a receiving unit to receive an indication of a quantized vector from each of a plurality of user equipments;
a control unit to determine the precoder;
a precoding unit to precode data streams for the plurality of user equipments; and
a transmission unit to transmit the precoded data to the plurality of user equipments,
wherein the precoded data is expressed by equation


x=Gu 

where x is the precoded data, u denotes the data streams, G is a precoder comprising matrix [{circumflex over (v)}1, {circumflex over (v)}2, . . . , {circumflex over (v)}L], and {circumflex over (v)}1, {circumflex over (v)}2, . . . , and {circumflex over (v)}L are indicated by the plurality of user equipments,

wherein the number of the data streams is equal to or greater than the number of the user equipments, and
wherein the control unit performs:
(a) initializing initial precoder





  
    
      
        G
        ~
      
      
        (
        0
        )
      
    
    ⁢
    
      
    
    ⁢
    as
    ⁢
    
      
    
    ⁢
    
      
        
          
            
              V
              _
            
            ^
          
          *
        
        ⁡
        
          [
          
            
              
                
                  V
                  ^
                
                _
              
              ⁢
              
                
                  
                    V
                    ^
                  
                  _
                
                *
              
            
            +
            
              
                L
                P
              
              ⁢
              I
            
          
          ]
        
      
      
        -
        1
      
    
  
  ,




where {circumflex over (V)}=[{circumflex over (v)}1, {circumflex over (v)}2, . . . , {circumflex over (v)}L]T, {circumflex over (v)}i being the quantized vector corresponding to the ith user equipment, P is average power, L is the number of the data streams, and I is an identity matrix;
(b) determining kth precoder





  
    G
    
      (
      k
      )
    
  
  =
  
    
      
        P
      
      ⁢
      
        
          G
          ~
        
        
          (
          k
          )
        
      
    
    
      
        tr
        ⁡
        
          (
          
            
              
                G
                ~
              
              
                (
                k
                )
              
            
            ⁢
            
              
                G
                ~
              
              
                
                  (
                  k
                  )
                
                *
              
            
          
          )
        
      
    
  




at a kth iteration;
(c) determining (k+1)th precoder {tilde over (G)}(k+1) as EHεD└(H*ψ*AψH)−1H*ψ*(I+γ)A┘|G(k),
where H is a channel matrix of transmission channels to the plurality of user equipments, E denotes the expectation operation, D is the set of channel over which the expectation is taken,





  
    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(T1H1g1, T2H2g2, . . . TLHLgL), gl is the lth column of the precoder G,




  
    
      
        A
        l
      
      =
      
        1
        +
        
          
            
              (
              
                
                  H
                  l
                
                ⁢
                
                  g
                  l
                
              
              )
            
            *
          
          ⁢
          
            
              Ω
              l
              
                -
                1
              
            
            ⁡
            
              (
              
                
                  H
                  l
                
                ⁢
                
                  g
                  l
                
              
              )
            
          
        
      
    
    ,
    
      
        Ω
        l
        
          -
          1
        
      
      =
      
        I
        +
        
          
            ∑
            
              
                i
                =
                1
              
              ,
              
                i
                ≠
                l
              
            
            L
          
          ⁢
          
            
          
          ⁢
          
            
              (
              
                
                  H
                  l
                
                ⁢
                
                  g
                  i
                
              
              )
            
            ⁢
            
              
                (
                
                  
                    H
                    l
                  
                  ⁢
                  
                    g
                    i
                  
                
                )
              
              *
            
          
        
      
    
    ,
    
      

    
    ⁢
    
      
        T
        l
      
      =
      
        
          
            (
            
              
                H
                l
              
              ⁢
              
                g
                l
              
            
            )
          
          *
        
        ⁢
        
          Ω
          l
          
            -
            1
          
        
      
    
    ,
    
      
    
    ⁢
    
      
        
          and
          ⁢
          
            
          
          ⁢
          1
        
        ≤
        l
        ≤
        L
      
      ;
      
        
      
      ⁢
      and
    
  
  ⁢
  
    
  



(d) performing (b) and (c) for a specific number of iteration, where the specific number of iteration ≧0.

3. A method implemented in a user equipment used for a downlink multi-user (MU) multi-input multi-output (MIMO) system, comprising:
transmitting an indication of a quantized vector to a base station; and
receiving data precoded with a precoder from the base station,
wherein the precoded data is precoded from data streams for a plurality of user equipments,
wherein the precoded data is expressed by equation


x=Gu 

where x is the precoded data, u denotes the data streams, G is a precoder comprising matrix [{circumflex over (v)}1, {circumflex over (v)}2, . . . , {circumflex over (v)}L], and {circumflex over (v)}1, {circumflex over (v)}2, . . . , and {circumflex over (v)}L are indicated by the plurality of user equipments,

wherein the number of the data streams is equal to or greater than the number of the user equipments, and
wherein the precoder is determined by:
(a) initializing initial precoder





  
    
      
        G
        ~
      
      
        (
        0
        )
      
    
    ⁢
    
      
    
    ⁢
    as
    ⁢
    
      
    
    ⁢
    
      
        
          
            
              V
              _
            
            ^
          
          *
        
        ⁡
        
          [
          
            
              
                
                  V
                  ^
                
                _
              
              ⁢
              
                
                  
                    V
                    ^
                  
                  _
                
                *
              
            
            +
            
              
                L
                P
              
              ⁢
              I
            
          
          ]
        
      
      
        -
        1
      
    
  
  ,




where {circumflex over (V)}=[{circumflex over (v)}1, {circumflex over (v)}2, . . . , {circumflex over (v)}L]T, P is average power, L is the number of the data streams, and I is an identity matrix;
(b) determining kth precoder





  
    G
    
      (
      k
      )
    
  
  =
  
    
      
        P
      
      ⁢
      
        
          G
          ~
        
        
          (
          k
          )
        
      
    
    
      
        tr
        ⁡
        
          (
          
            
              
                G
                ~
              
              
                (
                k
                )
              
            
            ⁢
            
              
                G
                ~
              
              
                
                  (
                  k
                  )
                
                *
              
            
          
          )
        
      
    
  




at a kth iteration;
(c) determining (k+1 precoder {tilde over (G)}(k+1) as EHεD└(H*ψ*AψH)−1H*ψ*(I+γ)A┘|G(k),
where H is a channel matrix of transmission channels to the plurality of user equipments, E denotes the expectation operation, D is the set of channel over which the expectation is taken,





  
    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(T1H1g1, T2H2g2, . . . TLHLgL), gl is the lth column of the precoder G,




  
    
      
        A
        l
      
      =
      
        1
        +
        
          
            
              (
              
                
                  H
                  l
                
                ⁢
                
                  g
                  l
                
              
              )
            
            *
          
          ⁢
          
            
              Ω
              l
              
                -
                1
              
            
            ⁡
            
              (
              
                
                  H
                  l
                
                ⁢
                
                  g
                  l
                
              
              )
            
          
        
      
    
    ,
    
      
        Ω
        l
        
          -
          1
        
      
      =
      
        I
        +
        
          
            ∑
            
              
                i
                =
                1
              
              ,
              
                i
                ≠
                l
              
            
            L
          
          ⁢
          
            
          
          ⁢
          
            
              (
              
                
                  H
                  l
                
                ⁢
                
                  g
                  i
                
              
              )
            
            ⁢
            
              
                (
                
                  
                    H
                    l
                  
                  ⁢
                  
                    g
                    i
                  
                
                )
              
              *
            
          
        
      
    
    ,
    
      

    
    ⁢
    
      
        T
        l
      
      =
      
        
          
            (
            
              
                H
                l
              
              ⁢
              
                g
                l
              
            
            )
          
          *
        
        ⁢
        
          Ω
          l
          
            -
            1
          
        
      
    
    ,
    
      
    
    ⁢
    
      
        
          and
          ⁢
          
            
          
          ⁢
          1
        
        ≤
        l
        ≤
        L
      
      ;
      
        
      
      ⁢
      and
    
  
  ⁢
  
    
  



(d) performing (b) and (c) for a specific number of iteration, where the specific number of iteration ≧0.