# Patent

## Title
Quantization of channel state information in multiple antenna systems

## Abstract

A new vector quantization algorithm for reducing bit rate used for channel state information feedback in a variety of multiple antenna systems on flat and frequency selective channels. The receiver chooses an instantaneous capacity maximizing entry from a small finite set of predefined covariance matrices. The codebook of covariance matrices is constructed based on separate optimization of the channel eigenmodes and power division between them. If, for the given channel realization, one of the predefined covariance matrices provides higher capacity than equal power distribution the indexes of the two codebooks are fed to the transmitter, otherwise, the transmitter uses the open-loop approach. A vector quantization algorithm in which receiver chooses an instantaneous throughput maximizing modulation matrix from a finite set of predefined matrices (code-words). The codebook of modulation matrices is constructed based on joint optimization of the dominant channel eigenmodes of users and separate quantization of power levels.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit under 35 USC 119(e) of provisional patent application No. 60/808,806 filed May 26, 2006.


BACKGROUND
The development of the modern Internet-based data communication systems and ever increasing demand for bandwidth have spurred an unprecedented progress in development of high capacity wireless systems. The major trends in such systems design are the use of multiple antennas to provide capacity gains on fading channels and orthogonal frequency division multiplexing (OFDM) to facilitate the utilization of these capacity gains on rich scattering frequency-selective channels. Since the end of the last decade, there has been an explosion of interest in multiple-input multiple-output systems (MIMO) and a lot of research work has been devoted to their performance limits and methods to achieve them.
One of the fundamental issues in multiple antenna systems is the availability of the channel state information at transmitter and receiver. While it is usually assumed that perfect channel state information (CSI) is available at the receiver, the transmitter may have perfect, partial or no CSI. In case of the single user systems, the perfect CSI at the transmitter (CSIT) allows for use of a spatial water-filling approach to achieve maximum capacity. In case of multi-user broadcast channels (the downlink), the capacity is maximized by using the so called dirty paper coding, which also depends on the availability of perfect CSIT. Such systems are usually refereed to as closed-loop as opposed to open-loop systems where there is no feedback from the receiver and the transmitter typically uses equal-power division between the antennas.
In practice, the CSI should be quantized to minimize feedback rate while providing satisfactory performance of the system. The problem has attracted attention of the scientific community and papers provided solutions for beamforming on flat-fading MIMO channels where the diversity gain is the main focus. Moreover, some authors dealt with frequency-selective channels and OFDM modulation although also those papers were mainly devoted to beamforming approach.
Unfortunately, availability of full CSIT is unrealistic due to the feedback delay and noise, channel estimation errors and limited feedback bandwidth, which forces CSI to be quantized at the receiver to minimize feedback rate. The problem has attracted attention of the scientific community and papers have provided solutions for single-user beamforming on flat-fading MIMO channels, where the diversity gain is the main focus. More recently, CSI quantization results were shown for multi-user zero-forcing algortihms by Jindal.
SUMMARY
We present a simple, flexible algorithm that is constructed with multiplexing approach to MIMO transmission, i.e., where the channel is used to transmit multiple data streams. We use a vector quantizer approach to construct codebooks of water-filling covariance matrices which can be used in a wide variety of system configurations and on frequency selective channels. Moreover, we propose a solution which reduces the required average feedback rate by transmitting the indexes of only those covariance matrices which provide higher instantaneous capacity than the equal power allocation.



BRIEF DESCRIPTION OF THE FIGURES
Embodiments will now be described with reference to the figures, in which like reference characters denote like elements, by way of example, and in which:
FIG. 1 shows a typical transmission system;
FIG. 2 is a flow diagram showing basic system operation;
FIG. 3 is a flow diagram showing use of quantized mode gain in the system of FIG. 1;
FIG. 4a is a flow diagram showing design of optimized orthogonal mode matrices for use in the system of FIG. 1 for single user case;
FIG. 4b is a flow diagram showing design of optimized orthogonal modes for use in the system of FIG. 1 for a multi user system;
FIG. 5 is a flow diagram showing an embodiment of calculation of throughput at the transmitter in the system of FIG. 1 for single user case;
FIG. 6 is a flow diagram showing an embodiment of calculation of throughput at the transmitter in the system of FIG. 1 for multiple user case;
FIG. 7 is a flow diagram showing design of stored modulation matrices at the transmitter of FIG. 1 for multiple user case;
FIG. 8 is a flow diagram showing nested quantization;
FIG. 9 is a flow diagram showing design of mode gain matrixes for use in the system of FIG. 1;
FIG. 10 is a flow diagram showing design of power allocation matrices for use at the transmitter of FIG. 1 for multiple user case;
FIG. 11 shows the distribution of {circumflex over (V)} and Ŝ in vector codebooks for a 2×2 MIMO system and NV=2 and NS=1. The two orthogonal eigenvectors in each {circumflex over (V)} matrix are shown using the same line style. The X-axis corresponds to the real entries in the first rows of {circumflex over (V)} and the YZ-plane corresponds to the complex entries in the second rows of the matrices. In case of Ŝ, the entries are presented for different power levels P in a normalized form Ŝ/P. FIG. 11(a) shows {circumflex over (V)} for NV=2 and FIG. 11(b) shows Ŝ for NS=1
FIG. 12 shows (a) ergodic system capacity C and (b) average feedback bit rate Rb for different granularities of channel state information at the transmitter on the flat fading channel. System capacity is shown in logarithmic scale to better illustrate the differences between curves.
FIG. 13 shows (a) capacity loss and (b) average feedback bit rate Rb on the frequency selective channel.
FIG. 14 shows sum-rates of cooperative, zero-forcing DPC and linear systems with full CSIT and 10 users with identical receivers.
FIG. 15 is an example of multi-user interference caused by partial CSIT.
FIG. 16 is an example of the nested quantization of eigenmodes. The thick lines symbolize centroids {circumflex over (v)}(i) of the respective regions υi. 16(a) shows a coarse 2-bit quantizer and 16(b) a precise 2-bit quantizer of υ3.
FIG. 17 shows linear system sum-rates with full CSIT and varying feedback bit-rate for K=2. nT=2 and all users with nR=2 antennas.
FIG. 18 shows linear system sum-rates with full CSIT and varying feedback bit-rate for K=10. nT=2 and all users with nR=2 antennas.
FIG. 19 shows linear system sum-rates with full CSIT and nested CSI quantization with varying eigenmode coherence time τeig (Nυ). nT=2, K=10, nR=2, Ns=1 and Nυ=2, 4.



DETAILED DESCRIPTION
One of the fundamental issues in multiple antenna systems is the availability of the channel state information (CSI) at transmitter and receiver[24]. The perfect CSI at the transmitter (CSIT) enables the use of a spatial water-filling, dirty paper coding and simultaneous transmission to multiple users, allowing the systems to approach their maximum theoretical capacity. Such systems are usually referred to as closed-loop as opposed to open-loop systems where there is no feedback from the receiver. Closed-loop systems enable major increases of system capacities, allowing the operators to multiply their revenue and maintain high quality of service at the same time.
In this work, we describe a flexible approach to CSI encoding, which can be used to construct the linear modulation matrices for both single-user and multi-user networks. In both cases, the modulation matrices are composed of two independent parts: the eigenmode matrix and the diagonal power division matrix with the sum of entries on the diagonal equal to 1. The system operates as follows:

    
    
        1. The receiver(s)[24] estimate(s) the respective multiple antenna channel(s).
        2. Each estimated channel is decomposed using the singular value decomposition (SVD) to form the matrix of eigenmodes[30] and their respective singular values[30A].
        3. If the system works in the single-user mode, all entries in the codebook of transmitter eigenmode modulation matrices[32] and all entries in the codebook of transmitter power division matrices[32A] are tested at the receiver to choose their combination providing highest instantaneous capacity. The indices of the best transmitter eigenmode and power division matrices are then sent[34],[34A] back to the transmitter.
        4. If the system works in the multi-user mode, all entries in the codebook of receiver eigenmode vectors[32] and all entries in the codebook of receiver mode gains[32A] are tested at the receiver[24] for best match with the estimated channel (the matching function can be chosen freely by the system designer). The indices of the best receiver eigenmode and power division matrices[94] are then sent[34] back to the transmitter.
        5. Based on the received[36],[36A] indices, the transmitter chooses[38],[52],[62] the modulation matrix and uses it to transmit[40] the information to one or more users[24] at a time.
    
    


Our proposed method allows to simplify the feedback system by implementing only one set of eigenmode matrices for all values of signal-to-noise ratio (SNR) and a much smaller set of power division matrices that differ slightly for different values of SNR. As a result, the required feedback bit rate is kept low and constant throughout the whole range of SNR values of interest. The additional advantage of the splitting of the modulation matrix into two parts is that is can lower the feedback bit rate for slowly-varying channels. If the eigenmodes of the channel stay within the same region for an extended period of time, additionally, nested encoding can be performed to increase the resolution of the CSIT and improve the system capacity.
The actual design of the receiver and transmitter eigenmode and power division matrices can be done using numerical or analytical methods and is not the object of this disclosure. However, our method allows for actual implementations of systems closely approaching the theoretical capacities of MIMO channels without putting any unrealistic demand on the feedback link throughput. This is a major improvement compared to the other state-of-the art CSI quantization methods, which experience problems approaching the theoretical capacities and suffer from the early onset of capacity ceiling due to inter-user interference at relatively low SNR.
I System Model for Single User Communication and OFDM
We assume that the communication system consists of a transmitter equipped with nT antennas[22] and a receiver[24] with nR antennas[26]. A general frequency selective fading channel is modeled by a set of channel matrices Hj of dimension nR×nT defined for each sub-carrier j=0, 1, . . . NOFRM−1. The received signal at the jth sub-carrier is then given by the nR-dimensional vector yj defined as

yj=Hjxj+nj  (1)

where xj is the nT-dimensional vector of the transmitted signal and nj is the nR-dimensional vector consisting of independent circular complex Gaussian entries with zero mean and variance 1. Moreover, we assume that power is allocated equally across all sub-carriers |xj|2=P.

II Quantizing Water-Filling Information

If the transmitter has access to the perfect channel state information about the matrix Hj, it can select the signaling vector xj to maximize the closed-loop system capacity




  
    
      
        C
        =
        
          
            ∑
            j
          
          ⁢
          
            
              log
              2
            
            ⁢
            
              det
              ⁡
              
                [
                
                  I
                  +
                  
                    
                      H
                      j
                    
                    ⁢
                    
                      Q
                      j
                    
                    ⁢
                    
                      H
                      j
                      H
                    
                  
                
                ]
              
            
          
        
      
    
    
      
        (
        2
        )
      
    
  




where Qj=E[xjxjH]. Unfortunately, optimizing the capacity in (2) requires a very large feedback rate to transmit information about optimum Qj (or correspondingly Hj) which is impractical. Instead, we propose using a limited feedback link, with the transmitter choosing from a set of matrices {circumflex over (Q)}(n).

Using the typical approach involving singular value decomposition and optimum water-filling, we can rewrite (1) as

yj=Hjxj+nj(UjDjVjH)(Vj{tilde over (x)}j)nj  (3)

where E[{tilde over (x)}j{tilde over (x)}jH]=Sj constrained with Tr (Sj)=P is a diagonal matrix describing optimum power allocation between the eigenmodes Vj. Based on (3), the set of matrices Qj=VjSjVjH maximizes capacity in (2).

To construct the most efficient vector quantizer for channel feedback, the straightforward approach would be to jointly optimize signal covariance matrices Q for all sub-carriers at once. Such an approach, however, is both complex and impractical, since any change of channel description and/or power level would render the optimized quantizer suboptimal. Instead, we propose an algorithm which separately quantizes information about eigemnode matrices Vj in codebook {circumflex over (V)} and power allocation Sj in codebook Ŝ. Note that the first variable depends only on channel description and not on the power level P which simplifies the design.
We optimize the quantizers {circumflex over (V)} and Ŝ for flat-fading case and we apply them separately for each sub-carrier in case of OFDM modulation. Although such an approach is sub-optimal, it allows a large degree of flexibility since different system setups can be supported with the same basic structure.
A Quantizing Eigenmodes
We assume that the receiver[24] has perfect channel state information (CSIR) and attempts to separate[30] the eigenmode streams {tilde over (x)}j in (3) by multiplying yj with UjH. However, if the transmitter uses quantized eigenmode matrix set with limited cardinality, the diagonalization of {circumflex over (x)}j will not be perfect. To model this, we introduce a heuristic distortion metric which is expressed as

γV(n;H)=∥DVH{circumflex over (V)}(n)−D∥F  (4)

where {circumflex over (V)}(n) is the nth entry in the predefined set of channel diagonalization matrices and ∥·∥F is the Frobenius norm. We omitted subscript entries j in (4) for the clarity of presentation.

We assume that n=0, 1, . . . 2NV−1 where NV is the number of bits per channel realization in the feedback link needed to represent the vectors {circumflex over (V)}(n). To design the quantizer using (4), we divide the whole space of channel realizations H into 2NV regions Vi where

Vi={H:γV(i;H)<γV(j;H) for all j≠i}  (5)

It can be shown that minimizing this metric should, on average, lead to maximizing the ergodic capacity of the channel with the quantized feedback (when γ(n; H)=0 the channel becomes perfectly diagonalized). The optimum selection of {circumflex over (V)} and regions Vi in (5) is an object of our current work. Here, however, we use a simple iterative heuristic based on a modified form of the Lloyd algorithm, which has very good convergence properties and usually yields good results. The algorithm starts by creating a codebook of centroids {circumflex over (V)} and, based on these results, divides the quantization space into regions Vi. The codebook is created as follows:[50]

    
    
        1. Create a large training set of L random matrices H(l).[46]
        2. For each random matrix H(l), perform singular value decomposition to obtain D(l) and V(l) as in (3).
        3. Set iteration counter i=0. Create a set of 2NV random matrices Ĥ(n).
        4. For each matrix Ĥ(n) calculate corresponding {circumflex over (V)}(i)(n) using singular value decomposition.
        5. For each training element H(l) and codebook entry {circumflex over (V)}(i)(n) calculate the metric in (4). For every l choose indexes nopt(l) corresponding to the lowest values of γV (n; H(l)).
        6. Calculate a new set {circumflex over (V)}(i+1)(n) as a form of spherical average of all entries V(l) corresponding to the same index n using the following method. (The direct averaging is impossible since it does not preserve orthogonality between eigenvectors.) For all n calculate the subsets L(n)={l:nopt(l)=n} and if their respective cardinalities |L(n)|≠0 the corresponding matrices Q(i+1)(n) can be obtained as
    
    






  
    
      
        
          
            
              Q
              _
            
            
              (
              
                i
                +
                1
              
              )
            
          
          ⁡
          
            (
            n
            )
          
        
        =
        
          
            1
            
              
              
                L
                ⁡
                
                  (
                  n
                  )
                
              
              
            
          
          ⁢
          
            
              ∑
              
                l
                ∈
                
                  L
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
            
            ⁢
            
              
                
                  V
                  ⁡
                  
                    (
                    l
                    )
                  
                
                1
              
              ⁢
              
                
                  OV
                  ⁡
                  
                    (
                    l
                    )
                  
                
                H
              
            
          
        
      
    
    
      
        (
        6
        )
      
    
  




    
    
        
        
            where 1O is an nT×nT all-zero matrix with the exception of the upperleft corner element equal to 1. Finally, using singular value decomposition, calculate {circumflex over (V)}(i+1)(n) from

 Q(i+1)(n)={circumflex over (V)}(i+1)(n)W({circumflex over (V)}(i+1)(n)H  (7)

            where W is a dummy variable.
        
        
        7. Calculate the average distortion metric γV(i+1)=1/LΣlγV(nopt(l); H(l)).
        8. If distortion metric fulfills | γV(i+1)− γV(i)|/ γV(i)<Θ, stop. Otherwise increase i by 1 and go to 5).
    
    


Upon completion of the above algorithm, the set of vectors {circumflex over (V)} can be used to calculate the regions in (5). The results of the codebook optimization are presented in FIG. 11a) for a case of nT=nR=2 and NV=2. The optimization was performed using L=1,000·2NV and θ=10−7.
B Quantizing Power Allocation Vectors
Having optimized[50] power-independent entries in the codebook of channel eigenmode matrices {circumflex over (V)}, the next step is to create a codebook for power allocation Ŝ[118]. We use a distortion metric defined as




  
    
      
        
          
            γ
            S
          
          ⁡
          
            (
            
              k
              ;
              H
              ;
              P
            
            )
          
        
        =
        
          
            det
            ⁡
            
              [
              
                I
                +
                
                  HQH
                  H
                
              
              ]
            
          
          
            det
            ⁡
            
              [
              
                I
                +
                
                  H
                  ⁢
                  
                    
                      V
                      ^
                    
                    ⁡
                    
                      (
                      
                        n
                        opt
                      
                      )
                    
                  
                  ⁢
                  
                    
                      S
                      ^
                    
                    ⁡
                    
                      (
                      k
                      )
                    
                  
                  ⁢
                  
                    
                      
                        V
                        ^
                      
                      H
                    
                    ⁡
                    
                      (
                      
                        n
                        opt
                      
                      )
                    
                  
                  ⁢
                  
                    H
                    H
                  
                
              
              ]
            
          
        
      
    
    
      
        (
        8
        )
      
    
  




where Ŝ(k) is the kth entry in the predefined set of channel water-filling matrices and {circumflex over (V)}(nopt) is the entry in the {circumflex over (V)} codebook that minimizes metric (4) for the given H. We use k=0, 1, . . . 2NS−1 where NS is the number of bits per channel realization in the feedback link needed to represent the vectors Ŝ(k). Minimizing the metric in (8) is equivalent to minimizing the capacity loss between the optimum water-filling using Q and the quantized water-filling using {circumflex over (V)} and Ŝ.

Similarly to the previous problem, we divide the whole space of channel realizations H into 2Ns regions Si(P) where

Si(P)={H:γS(i;H;P)<γS(j;H;P) for all j≠i}  (9)

and to create the codebook Ŝ, we use the following method:

    
    
        1. Create a large training set of L random matrices H(l).
        2. For each random matrix H(l), perform water-filling operation to obtain optimum covariance matrices Q(l) and S(l).
        3. Set iteration counter i=0. Create[100],[104] a set of 2Ns random diagonal matrices Ŝ(i)(k) with Tr (Ŝ(i)(k))=P.
        4. For every codebook entry Ŝ(i)(k) and matrix Q(l). calculate[112] the metric as in (8). Choose[106] indexes kopt(l) corresponding to the lowest values of γS(k; H(l); P).
        5. If γS(kopt(l); H(l); P)>γeq(H(l); P) where γeq(H(l), P) is the metric corresponding to equal-power distribution defined as
    
    






  
    
      
        
          
            
              γ
              eq
            
            ⁡
            
              (
              
                
                  H
                  ⁡
                  
                    (
                    l
                    )
                  
                
                ;
                P
              
              )
            
          
          =
          
            
              det
              ⁡
              
                [
                
                  I
                  +
                  
                    
                      H
                      ⁡
                      
                        (
                        l
                        )
                      
                    
                    ⁢
                    
                      Q
                      ⁡
                      
                        (
                        l
                        )
                      
                    
                    ⁢
                    
                      
                        H
                        H
                      
                      ⁡
                      
                        (
                        l
                        )
                      
                    
                  
                
                ]
              
            
            
              det
              ⁡
              
                [
                
                  I
                  +
                  
                    
                      P
                      /
                      
                        n
                        T
                      
                    
                    ⁢
                    
                      H
                      ⁡
                      
                        (
                        l
                        )
                      
                    
                    ⁢
                    
                      
                        H
                        H
                      
                      ⁡
                      
                        (
                        l
                        )
                      
                    
                  
                
                ]
              
            
          
        
        ,
      
    
    
      
        (
        10
        )
      
    
  




    
    
        
        
            set the corresponding entry kopt(l)=2NS. For all k calculate the subsets[108] L(k)={l: kopt(l)=k}.
        
        
        6. For all k=0, 1, . . . 2Ns−1[114] for which |L(k)|≠0, calculate[116] a new set Ŝ(i+1)(k) as the arithmetic average
    
    






  
    
      
        
          
            
              S
              ^
            
            
              (
              
                i
                +
                1
              
              )
            
          
          ⁡
          
            (
            k
            )
          
        
        =
        
          
            1
            
              
              
                L
                ⁡
                
                  (
                  k
                  )
                
              
              
            
          
          ⁢
          
            
              ∑
              
                l
                ∈
                
                  L
                  ⁡
                  
                    (
                    k
                    )
                  
                
              
            
            ⁢
            
              
                S
                ⁡
                
                  (
                  l
                  )
                
              
              .
            
          
        
      
    
    
      
        (
        11
        )
      
    
  




    
    
        7. Calculate the average distortion metric
    
    






  
    
      
        
          
            γ
            _
          
          S
          
            (
            
              i
              +
              1
            
            )
          
        
        =
        
          
            1
            L
          
          ⁢
          
            
              ∑
              l
            
            ⁢
            
              min
              ⁢
              
                
                  {
                  
                    
                      
                        γ
                        S
                      
                      ⁡
                      
                        (
                        
                          
                            
                              k
                              opt
                            
                            ⁡
                            
                              (
                              l
                              )
                            
                          
                          ;
                          
                            H
                            ⁡
                            
                              (
                              l
                              )
                            
                          
                          ;
                          P
                        
                        )
                      
                    
                    ,
                    
                      
                        γ
                        eq
                      
                      ⁡
                      
                        (
                        
                          
                            H
                            ⁡
                            
                              (
                              l
                              )
                            
                          
                          ;
                          P
                        
                        )
                      
                    
                  
                  }
                
                .
              
            
          
        
      
    
    
      
        (
        12
        )
      
    
  




    
    
        8. If distortion metric fulfills | γSi+1− γSi|/ γS(i)<Θ, stop. Otherwise increase i with 1 and go to 4).
    
    


The set of vectors Ŝ is then used to calculate the regions in (9). Since water-filling strongly depends on the power level P and {circumflex over (V)}, optimally the Ŝ should be created for every power level and number of bits NV in eigenvector matrix codebook. As an example, the results of the above optimization are presented in FIG. 11b) for a case of nT=nR=2, NV=2 and NS=1. The optimization was performed using L=1,000·2Ns and Θ=10−7. The curves show the entries on the diagonals of the two matrices Ŝ(k) normalized with P. As one can see, one of the matrices tends to assign all the power to one of the eigenmodes, while the other balances the assignment between them. As expected, the balancing becomes more even with increasing P where the capacity of the equal-power open-loop systems approaches the capacity of the water-filling closed-loop systems. Since the differences between the entries of Ŝ(k) are not that large for varying powers, it is possible to create an average codebook Ŝ which could be used for all values of P but we do not treat this problem in here.
An interesting property of the above algorithm is that is automatically adjusts the number of entries in Ŝ according to the number of entries in {circumflex over (V)}. For low values of NV, even if the algorithm for selection of Ŝ is started with high NS, the optimization process will reduce the search space by reducing cardinality |L(k)| of certain entries to 0. As a result, for NV=2, 3, NS=1 will suffice, while for NV=4, the algorithm will usually converge to NS=2. This behavior can be easily explained since for low resolution of the channel eigenvector matrices {circumflex over (V)} only low precision is necessary for describing Ŝ. Only with increasing NV, the precision NS becomes useful.
III VQ Algorithm for Flat-Fading MIMO Channels
The vector quantizers from the previous sections are first applied to a flat-fading channel case. In such a case, the elements of each matrix H in (1) are independent circular complex Gaussian elements, normalized to unit variance.
The system operation can now be described as follows:

    
    
        1. The receiver[24] estimates the channel matrix H.
        2. The receiver[24] localizes the region V according to (5) and stores its index as nopt.[32]
        3. Using nopt, the receiver[24] places H in a region Si according to (9) and stores its index as kopt.
        4. If the resulting system capacity using the predefined codebook entries is higher than the capacity of equal power distribution as in

C(nopt,kopt)>log2det[II+P/nTHHH]  (13)
        
            indexes nopt and kopt are fed back to the transmitter.[34],[36]
        
        
        5. The transmitter uses[40],[38A] the received indices of a codebook entries to process its signal. If there is no feedback, power is distributed equally between the antennas[22].
    
    


Using the above algorithm, the system's performance is lower-bounded by the performance of the corresponding open-loop system and improves if the receiver[24] finds a good match between the channel realization and the existing codebook entries. The salient advantage of such an approach is its flexibility and robustness to the changes of channel model. If there are no good matches in the codebook, the feedback link is not wasted and the transmitter uses the equal power distribution. The disadvantage of the system is that the feedback link is characterized by a variable bit rate.
IV VQ Algorithm for Frequency-Selective MIMO-OFDM Channels
In case of the frequency-selective channel, flat fading algorithm is applied to the separate OFDM sub-carriers. Although this approach is clearly sub-optimal, it allows us to use a generic vector quantizer trained to the typical flat-fading channel in a variety of other channels.
In general case, the feedback rate for such an approach would be upperbounded by NOFDM (NV+ND). However, as pointed out by Kim et al, the correlation between the adjacent sub-carriers in OFDM systems can be exploited to reduce the required feedback bit rate by proper interpolating between the corresponding optimum signal ling vectors. In this work, we use a simpler method which allows the receiver[24] to simply group adjacent M sub-carriers and perform joint optimization using the same codebook entry for all of them (such methods are sometimes called clustering).
V Simulation Results
A Flat-Fading Channel
We tested the system on 2×2 MIMO and 4×4 MIMO channels with varying SNR and feedback rates. We tested 2×2 MIMO channel with NV=2, 3, 4 and ND=1, corresponding to total feedback rate of between 3 and 5 bits. Correspondingly, in case of 4×4 MIMO, we used NV=10, 12, 14 and ND=2, corresponding to total feedback rate between 12 and 16 bits. We define an additional parameter called feedback frequency, ν which defines how often the receiver[24] requests a specific codebook entry instead of equal power distribution and an average feedback bit rate as Rb=ν(NV+NS).
FIG. 12(a) presents the results of simulations of ergodic capacity of the system (based on 100,000 independent channel matrices H) in case of perfect CSIT, vector quantized feedback (partial CSIT) and no CSIT. It is clearly seen that, even for very low bit rates on a feedback channel, the proposed scheme performs closely to the optimum. A rule of thumb seems to be that the number of bits needed to encode the codebook is approximately equal to nT×nR. Moreover, FIG. 12(b) shows that as the SNR grows, less feedback is required to provide good system performance and the proposed algorithm automatically reduces the reverse link usage.
It is also interesting to note that increasing the quality of quantization increases the feedback frequency ν. This is a consequence of the fact that there is a higher probability of finding a good transmit signal covariance matrix when there are a lot of entries in the codebook.
B Frequency-Selective Channel
We have simulated the 2×2 MIMO system using the OFDM modulation with carrier frequency: fc=2 GHz; signal bandwidth; B=5 MHz, number of sub-carriers: NOFDM=256; ITU-R M.1225 vehicular A channel model with independent channels for all pairs of transmit and receive antennas[22][26]; the guard interval equal to the maximum channel delay.
The results of simulations are presented in FIG. 13. Since the capacity curves of this system are very similar to capacity of the flat-fading 2×2 system in FIG. 12 we decided to show the losses of performance as compared to the perfect water-filling case instead. FIG. 13a) shows the loss of performance defined as C−C(M) where C is defined in (2) and C(NV, NS, M) is the capacity of the system with different feedback rates and clustering of M sub-carriers. As expected, increasing the clustering, decreases the throughput since the same covariance matrix is used for too many adjacent sub-carriers. At the same time, in FIG. 13b) shows that the required average feedback rate decreases significantly with increasing M. For the simulated channel, the best results are provided by M=8, which is approximately equal to the coherence bandwidth of the channel. An interesting feature of the OFDM-MIMO is that, unlike in the flat-fading case, the feedback rate remains almost constant throughput the P range. In any case, however, around two orders of magnitude more feedback bit rate is required on frequency selective channel.
VI System Model for Multi User Communication
We assume that the communication system consists of a transmitter equipped with nT antennas[22] and K≧nT mobile receivers[24] with identical statistical properties and nR(k) antennas[26], where k=1, 2, . . . K. The mobile user channels are modeled by a set of i.i.d. complex Gaussian channel matrices Hk of dimension nR(k)×nT. (Throughout the document we use the upper-case bold letters to denote matrices and lower-case bold letters to denote vectors.) The received signal of the kth user is then given by the nR(k)-dimensional vector yk defined as

yk=Hkx+nk  (14)

where x is the nT-dimensional vector of the transmitted signal and nk is the nR(k)-dimensional vector consisting of independent circular complex Gaussian entries with zero means and unit variances. Finally, we assume that the total transmit power at each transmission instant is equal to P. The above assumptions cover a wide class of wireless systems and can easily be further expanded to include orthogonal frequency division multiplexing (OFDM) on frequency-selective channels or users with different received powers (due to varying path loss and shadowing).

Although theoretically it is possible to design the optimum CSI quantizer for the above canonical version of the system, such an approach may be impractical. For example, subsets of receivers[24] with different numbers of receive antennas[26] would require different CSI codebooks and quantizer design for such a system would be very complex. To alleviate this problem, we assume that the base station treats each user as if it was equipped with only one antenna[26], regardless of the actual number of antennas[26] it may have. While suboptimal, such an approach allows any type of a receiver[24] to work with any base station and may be even used to reduce the quantization noise as shown by Jindal. We call such system setup virtual multiple-input single-output (MISO) since, even though physically each transmitter-receiver link may be a MIMO link, from the base station's perspective it behaves like MISO.
We follow the approach of Spencer et al, where each user performs singular value decomposition of Hk=UkSkVkH[30] and converts its respective Hk, to a nr-dimensional vector hk as

hk=ukHHk=skmaxvkH  (15)

[42] where skmax is the largest singular value[30A] of Sk and uk and vk are its corresponding vectors[30] from the unitary matrices Uk and Vk, respectively.

Based on (15), the only information that is fed[36],[36A] back from[34],[34A] the receivers[24] to the transmitter is the information about the vectors hk, which vastly simplifies the system design and allows for easy extensions. For example, if multiple streams per receiver are allowed, the channel information for each stream can be quantized using exactly the same algorithm.
VII System Design with Full CSIT
In this section, we present typical approaches for the system design when full CSIT is available. As a simple form of multi-user selection diversity, we define a subset of active users with cardinality nT as S. Furthermore, for each subset S, we define a matrix H[S]=[h1T, h2T, . . . , hnTT]T, whose rows are equal to the channel vectors hk of the active users.
A Cooperative Receivers
The upper-bound for system sum-rate is obtained when the users are assumed to be able to cooperate. With such an assumption, it is possible to perform singular value decomposition of the joint channel as H[S]=U[S]S[S]VH[S]. Defining si as the entries on the diagonal of S[S] allows to calculate the maximum sum-rate of a cooperative system as




  
    
      
        
          R
          coop
        
        =
        
          
            max
            S
          
          ⁢
          
            
              ∑
              
                i
                =
                1
              
              
                n
                T
              
            
            ⁢
            
              
                [
                
                  
                    log
                    2
                  
                  ⁡
                  
                    (
                    
                      
                        ξ
                        ⁡
                        
                          [
                          S
                          ]
                        
                      
                      ⁢
                      
                        s
                        i
                        2
                      
                    
                    )
                  
                
                ]
              
              +
            
          
        
      
    
    
      
        (
        16
        )
      
    
  




where ξ[S] is the solution of the water-filling equation





  
    
      ∑
      
        i
        =
        1
      
      
        n
        T
      
    
    ⁢
    
      
        [
        
          
            ξ
            ⁡
            
              [
              S
              ]
            
          
          -
          
            1
            /
            
              s
              i
              2
            
          
        
        ]
      
      +
    
  
  =
  
    P
    .
  




B Zero-Forcing Dirty-Paper Coding

In practice, the receivers[24] cannot cooperate and the full diagonalization of the matrix H[S] is impossible. The problem can still be solved by using linear zero-forcing (ZF) followed by non-linear dirty paper precoding, which effectively diagonalizes the channels to the active users. The matrix H[S] is first QR-decomposed as H[S]=L[S]Q[S], where L[S] is lower triangular matrix and Q[S] is a unitary matrix. After multiplying the input vector x by Q[S]H, the resulting channel is equal to L[S], i.e., the first user does not suffer from any multi-user interference (MUI), the second user receives interference only from the first user, etc.
In this case, non-causal knowledge of the previously encoded signals can be used in DPC encoder allowing the signal for each receiver[24]i>1 to be constructed in such a way that the previously encoded signals for users k<i are effectively canceled at the ith receiver[24]. Since the effective channel matrix is lower triangular, the channel will be diagonalized after the DPC, with li being the entries on the diagonal of L[S]. This leads to maximum sum-rate calculation as




  
    
      
        
          R
          
            zf
            ⁢
            
              -
            
            ⁢
            dpc
          
        
        =
        
          
            max
            
              S
              ord
            
          
          ⁢
          
            
              ∑
              
                i
                =
                1
              
              
                n
                T
              
            
            ⁢
            
              
                [
                
                  
                    log
                    2
                  
                  ⁡
                  
                    (
                    
                      
                        ξ
                        ⁡
                        
                          [
                          
                            S
                            ord
                          
                          ]
                        
                      
                      ⁢
                      
                        l
                        i
                        2
                      
                    
                    )
                  
                
                ]
              
              +
            
          
        
      
    
    
      
        (
        17
        )
      
    
  




where ξ[Sord] is the solution of the water-filling equation. Note that, as opposed to (16), the maximization is performed over ordered versions of the active sets S.

C Linear Modulation

Even though, theoretically, the above approach solves the problem of the receiver[24] non-cooperation, its inherent problem is the absence of effective, low complexity DPC algorithms. Moreover, since dirty-paper coding requires full CSIT, it is likely that systems employing DPC would require significantly higher quality of channel feedback than simpler, linear precoding systems.
We use the linear block diagonalization approach, which eliminates MUI by composing the modulation matrix B[S] of properly chosen null-space eigenmodes for each set S. For each receiver[24]iεS, the ith row of the matrix H[S] is first deleted to form H[Si]. In the next step, the singular value decomposition is performed[30],[30A] to yield H[Si]=U[Si]S[Si]VH[Si]. By setting the ith column of B[S] to be equal to the rightmost vector of V[Si], we force the signal to the ith receiver[24] to be transmitted in the null-space of the other users and no MUI will appear. In other words, the channel will be diagonalized with di, being the entries on the diagonal of H[S]B[S]. This leads to formula




  
    
      
        
          R
          linear
        
        =
        
          
            max
            S
          
          ⁢
          
            
              ∑
              
                i
                =
                1
              
              
                n
                T
              
            
            ⁢
            
              
                [
                
                  
                    log
                    2
                  
                  ⁡
                  
                    (
                    
                      
                        ξ
                        ⁡
                        
                          [
                          S
                          ]
                        
                      
                      ⁢
                      
                        d
                        i
                        2
                      
                    
                    )
                  
                
                ]
              
              +
            
          
        
      
    
    
      
        (
        18
        )
      
    
  




where ξ[S] is the solution of the water-filling equation.

As an example, FIG. 14 shows the sum-rates of the discussed systems for K=10 users and different antenna configurations. The zero-forcing DPC system approaches the cooperative system's sum-rate as the transmitted power increases. The sub-optimal linear modulation provides lower sum-rate but losses at P>0 dB, as compared to the ZF-DPC system, are in the range of only 1-2 dB for the 4×4 configuration and fractions of dB for the 2×2 system. Since the linear system is much easier to implement than ZF-DPC, we will use it to test our CSI encoding algorithms.
VIII System Design with Partial CSIT
The systems discussed so far are usually analyzed with assumption that, at any given time, the transmitter will have full information about the matrices H[S]. Unfortunately, such an assumption is rather unrealistic and imperfect CSIT may render solutions relying on full CSIT useless.
In practice, the receivers[24] will quantize the information about their effective channel vectors hk [30] as ĥk[32], according to some optimization criterion. Based on this information, the transmitter will select[38],[52],[62] the best available modulation matrix B from the predefined transmitter codebook and perform water-filling using the best predefined power division matrix {circumflex over (D)}. Regardless of the optimization criterion, the finite cardinality of the vector codebooks will increase MUI and lower system throughput. FIG. 15 shows the mechanism leading to appearance of the MUI in a simple system with nT=2 and K=2 users with effective channel vectors h1 and h2, encoded by the quantizer as ĥ1 and ĥ2. If the full CSIT is available, the transmitter will choose[38] a modulation matrix based on eigenmodes v1 and v2, which are perpendicular to vectors h2 and h1, respectively. As a result, each user will be able to extract its desired signal without MUI. With partial CSIT, however, the transmitter will obtain only approximate versions of the effective channel vectors, and the resulting modulation matrix will be based on eigenmodes {circumflex over (v)}1 and {circumflex over (v)}2, whose dot products with h2 and h1 will not be zero, causing the MUI.
IX CSI Quantization Algorithms
The fundamental difference between CSI encoding in single-user and multiple-user systems is that during normal system operation, each receiver[24] chooses its vector ĥk without any cooperation with other receivers[24]. This means that the design of optimum codebook for hk, must precede the design of codebooks {circumflex over (B)} and {circumflex over (D)}. Based on (15), one can see that channel state information in form of the vector hk consists of the scalar value of channel gain[30A] skmax and the eigenmode[30] vkH. Since these values are independent, we propose an algorithm which separately quantizes the information about eigenrnodes[32] in codebook {circumflex over (v)} and amplitude gains[32A] in codebook ŝ.
A Quantization[32],[51] of Receiver Channel Eigenmodes
We assume that Nυ is the number of bits per channel realization in the feedback link needed to represent the vectors vk in (15). We divide the space of all possible v's into 2Nυ regions υi 

υi={v:γυ(i;v)<γυ(j;v) for all j≠i}  (19)

where γυ(n; v) is a distortion function. Within each region υi, we define a centroid vector {circumflex over (v)}(i)[49], which will be used as a representation of the region. The design of the codebook {circumflex over (v)} can be done analytically and/or heuristically using for example the Lloyd algorithm. In this work, we define the distortion function as the angle between the actual vector v and {circumflex over (v)}(i): γυ(i; v)=cos−1({circumflex over (v)}(i)·v), which has been shown by Roh and Rhao to maximize ergodic capacity, and use Lloyd algorithm to train[47] the vector quantizer. Note that the construction of {circumflex over (v)} is independent of the transmit power.

B Quantization[32A] of Receiver Amplitude Gains

We assume that Ns is the number of bits per channel realization in the feedback link needed to represent the scalar skmax in (15). We divide the space of all possible channel realizations s=smax into 2Ns regions si 

si={s:|ŝ(i)−s|<ŝ(j)−s| for all j≠i}  (20)

where ŝ(i)[100] are scalar centroids representing regions si. In this work, we perform the design[102] of the codebook ŝ using the classical non-uniform quantizer design algorithm with distortion function given by quadratic function of the quantization error as ε(i; s)=(s−ŝ(i))2.

The construction of the codebook ŝ is generally dependent on the transmit power level. However, as pointed out above the differences between the codebooks ŝ for different power regions are quite small. This allows us to create only one codebook ŝ and use it for all transmit powers.
C Quantization of the Transmitter Modulation Matrices
The calculation of the modulation matrix {circumflex over (B)} is based on the given codebook {circumflex over (v)}. We assume that the quantization[32] of the channel eigenmodes is performed at the receiver[24] side and each user transmits[34] back its codebook index ik. The indices are then used at the transmitter side to select[38][52][62] the modulation matrix {circumflex over (B)}(i1, i2, . . . iK). Since, from the linear transmitter point of view, ordering of the users is not important, we will use the convention that the indices (i1, i2, . . . iK) are always presented in the ascending order. For example, in a system with K=2, nT=2 and 1-bit vector quantizers {circumflex over (v)}, there will exist only three possible modulation matrices corresponding to sets of {circumflex over (v)} indices (1, 1), (1, 2) and (2, 2).
In the context of vector quantizing, the design of the modulation matrices can no longer be based on the algorithm presented in Section VII.C. Using this method with quantized versions of hk produces wrong result when identical indices ik are returned and the receiver[24] attempts to jointly optimize transmission to the users with seemingly identical channel vectors ĥk. Instead, we propose the following algorithm to optimize the set of matrices {circumflex over (B)}(i1, i2, . . . iK):

    
    
        1. Create a large set of NnT random matrices[46] Hk, where N is the number of training sets with nT users each.
        2. For each random matrix Hk, perform singular value decomposition[68] and obtain hk [70] as in (15).
        3. For each vector hk store[74] the index ik of the corresponding entry {circumflex over (v)}(ik).
        4. Divide[76] the entire set of matrices Hk into N sets with nT elements each.
        5. Sort[78] the indices ik within each set l in the ascending order. Map[78] all unique sets of sorted indices to a set of unique indices IB (for example (1, 1)→IB=1; (1, 2)→IB=2; (2, 2)→IB=3 . . . ).
        6. In each set l, reorder the corresponding channel vectors hk according to their indices ik and calculate[80] the optimum Bl using the method from Section VII.C.
        7. Calculate[84] a set {circumflex over (B)}(IB) as a column-wise spherical average of all entries Bl corresponding to the same[82] index IB.
    
    


After calculation of |IB| modulation matrices {circumflex over (B)}, the remaining part of system design is the calculation of the water-filling matrices {circumflex over (D)}, which divide the powers between the eigenmodes at the transmitter. The procedure for creation of codebook {circumflex over (D)}[118] is similar to the above algorithm, with the difference that the entries ŝ(nk) are used instead of {circumflex over (v)}(ik), and the spherical averaging of the water-filling matrices is performed diagonally, not column-wise. Explicitly:

    
    
        1. Create a large set of NnT random matrices[46]Hk, where N is the number of training sets with nT users each.
        2. For each random matrix Hk, perform singular value decomposition[104] and obtain hk as in (15).
        3. For each vector hk store the index nk of the corresponding entry ŝ(nk).[106]
        4. Divide the entire set of matrices Hk into N sets with nT elements each. [108]
        5. Sort the indices nk within each set l in the ascending order. Map all unique sets of sorted indices to a set of unique indices ID (for example (1, 1)→ID=1; (1, 2)→ID=2; (2, 2)→ID=3 . . . ).[110]
        6. In each set l, reorder the corresponding channel vectors hk according to their indices nk and calculate the optimum Dl using the method of water-filling from Section VII.C.[112]
        7. Calculate[116] a set {circumflex over (D)}(ID) as a diagonal spherical average of all entries Dl corresponding to the same[114] index ID.

D System Operation

    
    


The matrices {circumflex over (B)} and {circumflex over (D)} are used in the actual system in the following way:

    
    
        1. The K mobile receivers[24] estimate[30],[30A] their channels and send the indices ik[34] and nk[34A] of the corresponding receiver quantizer entries {circumflex over (v)}(ik)[32] and ŝ(nk)[32A] to the base station.
        2. The transmitter forms l sets of users corresponding to all combinations of nT users out of K. Within each set l, the indices ik[58] and nk[63] are sorted in the ascending order and mapped to their respective indices IB (l)[60] and ID(l)[64];
        3. Within each set l, the matrices {circumflex over (B)}[IB(l)][52],[62] and {circumflex over (D)}[ID(l)][54],[38A] are used to estimate[56],[66] instantaneous sum-rate R(l).
        4. The base station flags the set of users providing highest R(l) as active for the next transmission epoch.
        5. The transmitter uses the selected matrices to transmit information.

E Nested Quantization of Channel Eigenmodes

    
    


The above algorithm does not assume any previous knowledge of the channel and the feedback rate required to initially acquire the channel may be high. In order to reduce it on slowly varying channels, we propose a nested quantization method shown in FIG. 16. In this example, an initial coarse quantization of the CSI is performed[88] using only 2 bits. Assuming[98] that the actual channel vector lies in region υ3 and that it stays within this region during the transmission of subsequent frames[90],[92],[94], it is possible to further quantize υ3 using nested, precise quantization[96]. In this way, the effective feedback rate is still 2 bits, but the resolution corresponds to a 4-bit quantizer. In order to quantify the possibility of such a solution, we introduce eigenmode coherence time τeig (Nυ), which, related to the frame duration Tframe, shows for how long the channel realization stays within the same region υi of the Nυ-bit quantizer. Notice that eigenmode coherence time depends on the number of bits Nυ: the higher the initial VQ resolution, the faster the channel vector will move to another region and the benefits of nested quantization will vanish.
X Simulation Results
We have implemented our system using a base station with nT=2 and a set of K mobile receivers[24] with identical statistical properties and nR(k)=nT=2. We have varied the number of users from 2 to 10 and optimized vector quantizers using methods presented above. Each system setup has been simulated using 10,000 independent channel realizations.
FIGS. 17 and 18 show the results of the simulations for varying feedback rates. Except for very high transmit power values P>15 dB, it is possible to closely approach the sum-rate of the full CSI system with 8 bits (Nυ=7, Ns=1) in the feedback link. The required feedback rate Nυ, is much higher than Ns, which shows the importance of high quality eigenmode representation in multi-user systems. In high power region, increasing Nυ by 1 bit increases the spectral efficiency by approximately 1 bit/channel use.
FIG. 19 shows the results of nested quantization with low feedback rates when the channel's eigenmode coherence time is longer than frame duration. If such a situation occurs, the considered system may approach the theoretical full CSIT sum-rate using only 5 bits per channel use in the feedback link.
Note that further feedback rate reduction can be achieved with the algorithm presented by Jindal. However, we will not present these results here.
XI Additional Matter
In case of multiple user systems, multi-user diversity may be achieved by a simple time-division multiplexing mode (when only one user at a time is given the full bandwidth of the channel) or scheduling the transmission to multiple users[24] at a time. Here we analyze the former approach and assume that the base station will schedule only one user[24] for transmission.
If the system throughput maximization is the main objective of the system design, the transmitter must be able to estimate[56] the throughput of each of the users, given the codebook indices it received from each of them. Assuming that the kth user returned indices requesting the eigenmode codeword {circumflex over (V)}k and power allocation codeword Ŝk, the user's actual throughput is given as

Rksingle=log2det[IInR(k)+Hk{circumflex over (V)}kŜk{circumflex over (V)}kHHkH].  (21)

Using singular value decomposition of channel matrix Hk and equality det[IInR(k)+Hk{circumflex over (Q)}kHkH]d=det[IInT+{circumflex over (Q)}kHkHHk], it can be shown that

Rksingle=log2det[IInT+{circumflex over (V)}kŜk{circumflex over (V)}kHHkHHk]=log2det[IInR(k)+ŜkEkHDkHEk]  (22)

where Ek=VkH{circumflex over (V)}k is a matrix representing the match between the actual eigenmode matrix of the channel and its quantized representation (with perfect match Ek=IInT).

In practice, the actual realization of Ek will not be known at the transmitter, and its mean quantized value Êk, matched to {circumflex over (V)}k, must be used instead. Similarly, the transmitter must use a quantized mean value {circumflex over (D)}k, which is matched to the reported waterfilling matrix Ŝk. This leads to the selection criterion for the optimum user[24]kopt




  
    
      
        
          k
          opt
        
        =
        
          arg
          ⁢
          
            
          
          ⁢
          
            
              max
              
                
                  k
                  =
                  1
                
                ,
                2
                ,
                
                  ...
                  ⁢
                  
                    
                  
                  ⁢
                  K
                
              
            
            ⁢
            
              
                log
                2
              
              ⁢
              
                
                  det
                  ⁡
                  
                    [
                    
                      
                        I
                        
                          
                            n
                            R
                          
                          ⁡
                          
                            (
                            k
                            )
                          
                        
                      
                      +
                      
                        
                          
                            S
                            ^
                          
                          k
                        
                        ⁢
                        
                          
                            E
                            ^
                          
                          k
                          H
                        
                        ⁢
                        
                          
                            D
                            ^
                          
                          k
                          2
                        
                        ⁢
                        
                          
                            E
                            ^
                          
                          k
                        
                      
                    
                    ]
                  
                
                .
              
            
          
        
      
    
    
      
        (
        23
        )
      
    
  




Similarly to single-user selection, also in the case of multi-user selection the choice of active users must be made based on incomplete CSIT. The quantized CSI will result in appearance of multi-user interference. We represent this situation using variable Êk,l={circumflex over (v)}kH[{circumflex over (B)}S].,l, which models the dot product of the quantized eigenmode {circumflex over (v)}kH reported by the kth user in the set S, and the lth vector in the selected modulation matrix[52] {circumflex over (B)}S.
Moreover, assuming that the quantized singular value of the kth user in the set S is given by {circumflex over (d)}k, and the transmitter uses power allocation matrix[54] ŜS, the estimated sum-rate of the subset S is given as[56]




  
    
      
        
          
            R
            multi
          
          ⁡
          
            (
            S
            )
          
        
        =
        
          
            ∑
            
              k
              ∈
              S
            
          
          ⁢
          
            
              
                log
                2
              
              (
              
                1
                +
                
                  
                    P
                    ⁢
                    
                      
                        
                          
                            d
                            ^
                          
                          k
                          2
                        
                        ⁡
                        
                          [
                          
                            
                              S
                              ^
                            
                            S
                          
                          ]
                        
                      
                      
                        k
                        ,
                        k
                      
                    
                    ⁢
                    
                      
                        E
                        ^
                      
                      
                        k
                        ,
                        k
                      
                      2
                    
                  
                  
                    1
                    +
                    
                      P
                      ⁢
                      
                        
                          d
                          ^
                        
                        k
                        2
                      
                      ⁢
                      
                        
                          ∑
                          
                            l
                            ≠
                            k
                          
                        
                        ⁢
                        
                          
                            
                              [
                              
                                
                                  S
                                  ^
                                
                                S
                              
                              ]
                            
                            
                              l
                              ,
                              l
                            
                          
                          ⁢
                          
                            
                              E
                              ^
                            
                            
                              k
                              ,
                              l
                            
                            2
                          
                        
                      
                    
                  
                
              
              )
            
            .
          
        
      
    
    
      
        (
        24
        )
      
    
  




Note that, due to the finite resolution of the vector quantizer, the multi-user interference will lower the max sum-rate Rmulti(S)<Rmax for all S.

Based on (24) the choice of the active set of users is then performed as




  
    
      
        
          S
          opt
        
        =
        
          
            
              arg
              ⁢
              
                
              
            
            S
          
          ⁢
          max
          ⁢
          
            
          
          ⁢
          
            
              
                R
                vq
              
              ⁡
              
                (
                S
                )
              
            
            .
          
        
      
    
    
      
        (
        25
        )
      
    
  




One can also modify the algorithm presented in section II.A as follows: we use a simple iterative heuristic based on a modified form of the Lloyd algorithm, which has very good convergence properties. The algorithm starts by creating a random codebook of centroids {circumflex over (V)} and iteratively updates it until the mean distortion metric changes become smaller than a given threshold.
The algorithm works as follows:

    
    
        1. Create a large training set of L random matrices Hl.[46]
        2. For each random matrix Hl, perform singular value decomposition to obtain Vl as in (3).
        3. Align orientation of each vector in Vl to lie within the same 2nT-dimensional hemisphere.
        4. Set iteration counter i=0. Create a set of 2Nv random matrices Ĥ(n).
        5. For each matrix Ĥ(n), calculate corresponding {circumflex over (V)}(i) (n) using singular value decomposition.
        6. Align orientation of each vector in {circumflex over (V)}(i)(n) to lie within the same 2nT-dimensional hemisphere.
        7. For each training element Hl and codebook entry {circumflex over (V)}(i) (n), calculate the metric in (4). For every l, choose the index nopt(l) corresponding to the lowest value of γV(n; Hl). Calculate the subsets L(n)={l: nopt (l)=n} for all n.
        8. Calculate new matrix if {circumflex over (V)}(i+1)(n) as a constrained spherical average Vl◯ of all entries Vl corresponding to the same index n

{circumflex over (V)}(i+1)(n)= Vl◯|lεL(n).  (26)

        9. For each region n, where cardinality |L(n)|≠0, calculate the mean eigenmode match matrix
    
    






  
    
      
        
          
            
              E
              ^
            
            
              (
              
                i
                +
                1
              
              )
            
          
          ⁡
          
            (
            n
            )
          
        
        =
        
          
            1
            
              
              
                L
                ⁡
                
                  (
                  n
                  )
                
              
              
            
          
          ⁢
          
            
              ∑
              
                l
                ∈
                
                  L
                  ⁡
                  
                    (
                    n
                    )
                  
                
              
            
            ⁢
            
              
                V
                l
                H
              
              ⁢
              
                
                  
                    
                      V
                      ^
                    
                    
                      (
                      
                        i
                        +
                        1
                      
                      )
                    
                  
                  ⁡
                  
                    (
                    n
                    )
                  
                
                .
              
            
          
        
      
    
    
      
        (
        27
        )
      
    
  




    
    
        10. Calculate the average distortion metric γV(i+1)=1/LΣlγV(nopt(l); Hl).
        11. If the distortion metric fulfills | γV(i+1)− γV(i))|/ γV(i)<Θ, where Θ is a design parameter, stop. Otherwise increase i by 1 and go to 7).
    
    


Upon completion of the above algorithm, the final set of vectors {circumflex over (V)} can be used to calculate the regions Vi in (5).
The design of the transmitter modulation matrices presented in section IX.C can be modified as follows: we propose the following algorithm to optimize the set of matrices {circumflex over (B)}(i1, i2 . . . inT):

    
    
        1. Create a large set of LnT random matrices Hl, where L is the number of training sets with nT users each.
        2. For each random matrix Hl, perform singular value decomposition[68] and obtain hl[70] as in (15).
        3. Align orientation of each vector hl to lie within the same 2nT-dimensional hemisphere.
        4. For each vector hl, store[74] the index il of the corresponding entry {circumflex over (v)}(il).
        5. Divide[76] the entire set of matrices Hl into L sets with nT elements each.
        6. Sort[78] the indices il within each set in the ascending order. Map[78] all unique sets of sorted eigenmode indices il to a set of unique modulation matrix indices IB (for example, if nT=2: (1, 1)→IB=1; (1, 2)→IB=2; (2, 2)→IB=3 . . . ).
        7. In each set L(IB)={l: (i1, i2, . . . inT)→IB}, reorder the channel vectors hl according to the indices il and calculate[80] the optimum Bl using the method from Section VII.C.
        8. Calculate[84] the set {circumflex over (B)}(IB) as a column-wise spherical average of all entries Bl corresponding to the same[82] index IB as

∀n=1,2, . . . nT[{circumflex over (B)}(IB)]·,n= [Bl]·,n◯|L(IB).  (28)

    
    


After completion of the above algorithm, the transmitter will have the set of |IB| modulation matrices {circumflex over (B)}(IB) corresponding to all sorted combinations of the channel eigenmode indices that can be reported by the receivers.
To clarify our notation for spherical average used in (26) and (28), we outline a method to calculate a spherical average of a set of unit-length vectors, and a spherical average of a set of unitary matrices, preserving the mutual perpendicularity of the component vectors. We use the notation vl◯|lεL to represent a spherical average of all unit-length vectors vl contained in a set L. Based on Statistical Analysis of Spherical Data by Fisher et al, we define the spherical average as




  
    
      
        
          
            
              
                
                  v
                  l
                
                _
              
              ◯
            
            
          
          
            l
            ∈
            L
          
        
        =
        
          
            min
            x
          
          ⁢
          
            
              ∑
              
                l
                ∈
                L
              
            
            ⁢
            
              
                cos
                
                  -
                  1
                
              
              ⁡
              
                (
                
                  
                    v
                    l
                  
                  ·
                  x
                
                )
              
            
          
        
      
    
    
      
        (
        29
        )
      
    
  




where the unit-length vector x is found using one of the constrained non-linear optimization algorithms.

In case of the spherical average of a set of unitary matrices, denoted as Vl◯|lεL, the averaging of the unit-length column vectors must be performed in a way that the resulting matrix is also unitary. We represent the spherical matrix average as a collection of unit-length vectors xl as V◯=[x1, x2, x3, . . . ] and jointly optimize them as




  
    
      
        {
        
          
            
              
                
                  
                    x
                    k
                  
                  =
                  
                    
                      min
                      x
                    
                    ⁢
                    
                      
                        ∑
                        
                          l
                          ∈
                          L
                        
                      
                      ⁢
                      
                        
                          cos
                          
                            -
                            1
                          
                        
                        ⁡
                        
                          (
                          
                            
                              
                                [
                                
                                  V
                                  l
                                
                                ]
                              
                              
                                ·
                                
                                  ,
                                  k
                                
                              
                            
                            ·
                            x
                          
                          )
                        
                      
                    
                  
                
                ,
                
                  k
                  =
                  1
                
                ,
                2
                ,
                
                  3
                  ⁢
                  
                    
                  
                  ⁢
                  ...
                
              
            
          
          
            
              
                
                  
                    
                      x
                      k
                    
                    ·
                    
                      x
                      l
                    
                  
                  =
                  0
                
                ,
                
                  k
                  ≠
                  
                    l
                    .
                  
                
              
            
          
        
      
    
    
      
        (
        30
        )
      
    
  




Immaterial modifications may be made to the embodiments described here without departing from what is covered by the claims.

## Claims

1. A method of transmission between a transmitter and a plurality of receivers in a wireless multiple channel system where the transmitter transmits on at least n>1 antennas, the method comprising the steps of:
each of the plurality of receivers identifying orthogonal modes of the respective channels between the transmitter and the respective receiver by estimating channel coefficients, storing the channel coefficients in a channel matrix and performing a transformation of the channel matrix;
each receiver quantizing the orthogonal modes of the channel by selecting a codebook index of a set of codebook indices of orthogonal mode vectors;
each receiver transmitting the codebook indices to the transmitter; and
upon receiving the codebook indices from the receivers, the transmitter selecting a group of k receivers, where k is selected from 1 up to and including n, and transmitting to the group of k receivers using a stored channel modulation matrix that is selected based upon the codebook indices received by the transmitter, in which
if the transmitter receives a codebook index corresponding to a full orthogonal mode matrix, the transmitter selects a stored channel modulation matrix based upon the received codebook index, selects a corresponding eigenmode distortion matrix and calculates estimated throughput for the receiver, and
if the transmitter receives codebook indexes corresponding to orthogonal mode vectors, the transmitter maps the indices to a composite modulation index, uses the composite modulation index to select a corresponding stored channel modulation matrix, selects a corresponding distortion matrix and calculates estimated throughput for the k receivers.

2. The method of claim 1 in which the stored channel modulation matrix comprises a full matrix of orthogonal modes or a matrix of non-orthogonal modes.

3. The method of claim 2 in which, if a receiver of the one or more receivers receives a signal modulated using the full orthogonal mode matrix, the received signal is demodulated using a complementary full orthogonal mode matrix, and, if a receiver of the one or more receivers receives a signal modulated using the matrix of non-orthogonal modes, the received signal is demodulated using corresponding complementary orthogonal mode vectors.

4. The method of claim 1 in which at least one of condition A and condition B occurs where:
A is the condition that each receiver stores a set of orthogonal mode matrices that have been created by creating a list of possible orthogonal mode matrices, and by selecting a capacity enhancing set of orthogonal mode matrices, for a given quantization resolution, from the possible orthogonal mode matrices; and
B is the condition that each receiver stores a set of orthogonal mode vectors that have been created by creating a list of possible orthogonal mode matrices, separating the orthogonal mode matrices into component orthogonal mode vectors, and by selecting a distortion reducing set of orthogonal mode vectors, for a given quantization resolution, from the component orthogonal mode vectors.

5. The method of claim 1 in which, if the transmitter receives codebook indexes corresponding to orthogonal mode vectors, the choice of composite modulation index is independent of the order of the list of codebook indices.

6. The method of 5 in which the independence is ensured by ordering the indices and assigning a composite modulation index to each such ordered list of indices.

7. The method of claim 4 in which each receiver has codebook indexes of orthogonal mode matrices and the stored channel modulation matrices at the transmitter are the same as the orthogonal mode matrices.

8. The method of claim 4, in which each receiver has codebook indexes of orthogonal mode vectors, and the stored channel modulation matrices at the transmitter are constructed by:
create a large list of possible orthogonal mode matrices;
separating the orthogonal mode matrices into component orthogonal mode vectors;
for each orthogonal mode vector, storing the codebook index of a matching pre-quantized mode vector from the codebook of orthogonal mode vectors at the receiver;
forming all possible subsets of the stored codebook indices;
within each subset mapping the stored codebook indices as a composite modulation index;
for each subset, calculating the optimum channel modulation matrix based on the corresponding orthogonal mode vectors;
grouping all the calculated optimum channel modulation matrices according to the corresponding composite modulation indices; and
calculating the spherical average of all orthogonal mode vectors within channel modulation matrices in each group and store the spherical averages in a channel modulation matrix that is mapped to the selected composite modulation index.

9. The method of claim 8 in which the choice of composite modulation index is independent of the order of the stored codebook indices.

10. The method of claim 9 in which this independence is obtained by ordering the indices and mapping the ordered set of indices to a composite modulation index.

11. The method of claim 1 in which the transmitter adjusts power applied to the antennas at the transmitter based on received mode gain information from one or more receivers.

12. The method of claim 11 further comprising each of the one or more receivers:
selecting a transformed component of the channel matrix that contains mode gains of the channels, the transformed component being either treated as a matrix or an ensemble of scalar gain values;
quantizing the transformed component by selecting from a stored codebook of gain matrices or gain values; and
forwarding the quantized gain matrix or gain values to the transmitter as mode gain information.

13. The method of claim 12 in which the transmitter adjusts power applied to the antennas at the transmitter based upon improving system throughput performance.

14. The method of claim 13 in which system throughput performance is calculated by the transmitter:
forming subsets of receivers;
within each subset of receivers, mapping the mode gain values as a composite power allocation index;
using the composite power allocation index to select a corresponding power allocation matrix from a set of stored power allocation matrices;
based on the selected power allocation matrix, choose a corresponding average gain matrix; and
based on the average gain matrices and knowledge of transmit power level at the receivers, calculate estimated throughput for the subset of receivers.

15. The method of claim 14 in which the choice of composite power allocation index is independent of the order of the mode gain values.

16. The method of 15 in which this independence is obtained by ordering the mode gain values and mapping the ordered set of values to a composite index.

17. The method of claim 14 in which the stored codebook of gain matrices or gain values is formed by:
if the full mode gain matrix is to be quantized, creating a large list of possible mode gain matrices and selecting a set of mode gain matrices; and
if gain values are to be quantized, creating a large list of possible mode gain matrices, separating the mode gain matrices into their component scalar values and performing probabilistic scalar quantization with a selected resolution to select a set of mode gain values.

18. The method of claim 17 in which stored power allocation matrices at the transmitter are created by:
creating a large list of possible scalar mode gains;
for each possible scalar mode gain, storing the codebook gain index of a matching pre-quantized mode gain value;
forming all possible subsets of the stored codebook gain indexes;
within each subset, mapping the stored codebook gain indexes as a composite power allocation index;
for each subset, calculating the power allocation matrix based on the corresponding mode gains;
grouping all the calculated power allocation matrices according to the corresponding composite power allocation indexes; and
calculating the average of all gain values within matrices in each group and storing the gain values in a power allocation matrix that is mapped to the selected composite power allocation index.

19. The method of claim 18 in which the choice of composite power allocation index is independent of the order of the gain indexes.

20. The method of 19 in which this independence is obtained by ordering the gain indexes and mapping the ordered set to a composite index.

21. The method of claim 1 comprising the further step of using a more detailed codebook in addition to the ordinary codebook, with each entry in the original codebook corresponding to multiple entries in the more detailed codebook, such that if the channel is expected to stay sufficiently close to its previous state over the time period between sendings of feedback that the entry from the coarse codebook will not change, the receiver, instead of sending a new index from the coarse codebook, sends the index of an entry of the fine codebook in the subset of the codebook corresponding to the previously sent entry of the coarse codebook.

22. The method of claim 1 in which the system transmits using OFDM, and the method is applied to sets of subcarriers jointly.

23. The method of claim 3 in which, after processing of the received signal, each receiver re-aligns recovered values of the received signal by reversing the signs of the recovered values when the orthogonal modes of the channel have been quantized to opposite mode vectors.

24. The method of claim 4 further comprising the step of aligning the orthogonal mode vectors of the orthogonal mode matrices in a single hemisphere by reversing the sign of any vectors that are not in that hemisphere.

25. The method of claim 8 further comprising the step of aligning the component orthogonal mode vectors in a hemisphere by reversing the sign of any vectors that are not in that hemisphere.

26. The method of claim 17 in which the stored power allocation matrices are the same as the mode gain matrices at the receiver.

27. The method of claim 1 in which the codebook modulation matrices is created by the steps of:
creating plural random channel states with a channel matrix for each simulated user;
selecting one or more eigenmode from each channel matrix;
quantizing the modulation vectors associated with each eigenmode by selecting indices from the codebook of modulation vectors;
mapping each set, unique up to ordering, of indices thus obtained to a unique index of the set;
creating a modulation matrix for each of the channel states; and
for each index of a set, averaging the corresponding modulation matrices to obtain the entry in the codebook corresponding to that index.

28. The method of claim 1 in which the subset of receivers chosen is chosen on the basis of performance.

29. The method of claim 1 in which the set of codebook indices comprises at least a first set of coarse codebook indexes, and a second set of fine codebook indexes, and the method further comprising:
selecting at least a first codebook index from the coarse codebook indexes and transmitting the first codebook index to the transmitter;
the transmitter transmitting to the receiver using a modulation matrix based upon the first codebook index;
the receiver, upon receiving a transmission using a modulation matrix based upon the first codebook index, selecting a second codebook index from the fine codebook indexes and transmitting the second codebook index to the transmitter.

30. The method of claim 29 in which the receiver, upon receiving a transmission using a modulation matrix based upon a coarse codebook index, selecting whether to send a fine codebook index based upon an estimate of the rate of change of the multiple wireless channels.