Abstract:
A method for wireless encoding includes encoding wireless multiple input and multiple output signals in accordance with a codebook being one of a discrete codebook restricting elements of codebook entries to be within a predetermined finite set of complex numbers and a constant amplitude codebook including each entry in its codebook having equal column norm and equal row norm. In a preferred embodiment the digital codebook further includes restricting elements of a finite set in the discrete codebook to be in the form of k a +jk b  for a base-k computer and the constant amplitude codebook further includes being obtained through a series of successive householder transformations. In a preferred embodiment the codebook is configured as one of a constrained codebook in which the codebook is configured for multiple scenarios and a discrete codebook.

Description:
This application claims the benefit of U.S. Provisional Application No. 60/915,239, entitled “Constrained and discrete precoding codebook design for MIMO systems”, filed on May 1, 2007. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention relates generally to wireless communications and, more particularly, to a method for generating a codebook for multiple input multiple output MIMO wireless systems. 
     We consider a MIMO system with m transmit antennas at the base station and a user each with n receive antennas. The complex baseband signal model is given by
 
 y=Hx+w,   (1)
 
where x is the m×1 transmitted signal vector, H is the n×m channel matrix, w˜N c (0, I) is a circularly symmetric complex additive white Gaussian noise vector, and y is the n×1 received signal vector. We consider a block fading channel model in which the channel remains constant during the transmission of each packet (or codeword of length T) and it changes independently from one block to another, where the distribution of the channel state is known a priori. The average power constraint is given by E[x H x]≦P.
 
     We consider maximizing the throughput in single user (SU-) MIMO systems (or sum-rate throughput for multiple user (MU-) MIMO systems) which is usually the primary goal in downlink transmissions. We make the following assumptions: (1) the user feeds back the quantized channel state via a limited feedback link; (2) based on the feedback information, the base station performs a linear precoding (and only linear precoding is allowed) of the transmitted streams. 
     Let UDV* be the singular value decomposition (SVD) of the channel matrix H. With B bits of feedback, the user quantizes the first k column of V (where k≦min(n, m) is a fixed number predetermined by the base station) using a quantization codebook Q={Q 1 , Q 2 , . . . , Q 2   B }, Q i εC m×n , as follows 
                       V   ⋒     ⁡     (     1   ⁢     :     ⁢   k     )       =     arg   ⁢           ⁢     arg     Q   ∈   Q       ⁢           ⁢     d   ⁡     (       V   ⁡     (     1   ⁢     :     ⁢   k     )       ,   Q     )                 (   2   )               
where d(.,.) is some distance metric. The codebook design problem and the appropriate choice of the distance metric have been considered in prior art. The columns of the quantized precoding matrix            (1:k) correspond to possible different streams for this user.

     The transmitted signal x from the base station then consists of L data streams, u 1 , u 2 , . . . u L , sent through column vectors g 1 , g 2 , . . . g L  of a linear precoder G. We have 
                   x   =     Gu   =       ∑     i   =   1       ⁢       u   i     ⁢     g   i                   (   3   )               
In SU-MIMO systems, we have L=k while in MU-MIMO systems we have L≧k, where one or more than one stream may be intended for each user.
 
     Conventionally, the quantized precoding codebook design for a m×n MIMO system deals with a packing of the n dimensional subspaces of an m dimensional vector space over the grassmanian manifold G(m, n). Different performance measures for such a design has been derived based on different distance metric over grassmanian manifolds. As a result, the element of each codebook entry is generally an arbitrary complex number. 
     Accordingly, there is a need for a method for codebook design that utilizes vector codebooks to generate the corresponding matrix codebooks for different transmission ranks, allow efficient precoder selection and the codebooks can be optimized for different scenarios (propagation environments/antenna configurations), In addition, the vector codebooks can also be designed to obtain a single codebook offering a robust performance across different scenarios. 
     SUMMARY OF THE INVENTION 
     In accordance with the invention, a method for wireless encoding includes encoding wireless multiple input and multiple output signals in accordance with a codebook being one of a discrete codebook restricting elements of codebook entries to be within a predetermined finite set of complex numbers and a constant amplitude codebook including each entry in its codebook having equal column norm and equal row norm. 
     In a preferred embodiment the digital codebook further includes restricting elements of a finite set in the discrete codebook to be in the form of k a +jk b  for a base-k computer and the constant amplitude codebook further includes being obtained through a series of successive householder transformations. In a preferred embodiment the codebook is configured as one of a constrained codebook in which the codebook is configured for multiple scenarios and a discrete codebook. 
     The constrained codebook includes a union set configuration wherein a union of the set of all channel realizations is taken for all scenarios and the codebook is configured for such union set and a successive approach wherein the codebook is configured of a smaller size for one scenario. With the successive approach the codebook is configured with fixing the designed entries and expanding the codebook by adding more entries to the codebook, then configuring new entries responsive to a new scenario and considering a constraint on fixed entries, then again fixing all configured entries and adding more entries and configuring the more entries responsive to a next scenario until all scenarios are accounted for. 
     The discrete codebook configuration includes finding a codebook with minimum distance of at least r which includes picking a random entry at the beginning and then trying to add other entries to the codebook, at each step finding the set of all possible entries of M such that their distances to all of the already picked entries of the codebook are greater than r, then picking the one entry which is closest to the current entries of the codebook, repeating this process until finding K elements which give a solution or to get to the point that the process cannot pick enough elements to form a codebook of size K. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       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. 
         FIG. 1  is a block diagram of codebook classes in accordance with the invention; and 
         FIG. 2  Is a block diagram of codebook designs in accordance with the invention. 
     
    
    
     DETAILED DESCRIPTION 
     Multi-rank beamforming MRBF is an attractive low-complexity precoding scheme which adapts the transmission rank on a fast basis (i.e. once per coherent feedback) and employs a precoding codebook having a nested structure. The nested structure allows efficient SVD based selection to pick the best precoder codeword from the codebook for the given channel state. It also allows a low complexity channel quality information (CQI)-metric based precoder selection. Moreover, the nested codebook structure itself imposes no performance penalty when compared to the optimal unstructured codebook. The inventive codebook accommodates antenna selection and the rest of the codebook has its elements from a multiplicative group of size 16 GF(16). 
     Referring to the diagram  10  of  FIG. 1 , initially a codebook is partitioned into classes  11  as one of a discrete codebook  12  or a constant amplitude codebook  13 . A discrete codebook includes a digital codebook  14  structure and a constant amplitude codebook includes a constant amplitude householder codebook  15  structure. 
     With a Discrete Codebook  12  we restrict the elements of the codebook entries to be within a predetermined finite set of complex numbers, for example: {1, −1, j, −j}, or {1, 1, −1, j, −j, 1+j, 1−j, −1+j, −1−j}, or {±1, ±2, ±j, ±2j, ±1±j, ±1±2j, ±2, ±j, ±2±2j}, or {e 2πjα     1   , e 2πjα     2   , e 2πjα     3   , e 2πjα     4   }, or {1, 9−1, j, −j, a(1+j), a(1−j), a(−1+j), a(−1−j)} where 
             a   =       1     2       .           
The advantage of a discrete codebook is a reduction in the complexity of the precoder selection algorithm.
 
     With a Digital Codebook  14  we further restrict the elements of the finite set in the discrete codebook to be in the form of 2 a +j2 b . For examples, any of the first three sets in the above example can be used to generate a digital codebook while the last two sets do not satisfy the condition. The advantage of the digital codebook is a reduction of the code complexity. Digital codebooks can practically avoid most of the multiplications by replacing the multiplication by doing a shift operation. It is well known that for the binary computers the multiplication in the form of 2 a x can be efficiently performed by using a shift operation. Today&#39;s computers are all binary based, thus we use the elements of the form 2 a +j2 b , otherwise, we can use the general form k a +jk b  for the elements considering a possible base-k computer. 
     With a Constant Amplitude Codebook  13  each entry of the codebook has equal column norm and also equal row norm. The advantage of such a codebook is that the average transmit power across all antennas is equal. Therefore, for the system for which we use one power amplifier per each transmit antenna, the constant amplitude codebook structure is very essential and useful. 
     If the codebook has a constant amplitude property and is furthermore obtained through a series of successive householder transformation it is called a Constant Amplitude Householder Codebook  15 . In particular for a system with  4  transmit antenna we use the following. Consider a set of 4 by 1 vectors where each elements of the vector is taken from a set of complex number in the form {1, e 2πjα     1   , e 2πjα     2   , . . . , e 2πjα     g   } which has g+1 elements, and the first element of each vector is 1. Then the householder transformation of any such 4 by 1 vector has the property that all elements of such matrix are also phase elements in the form e 2πjα     k   . 
     Referring now to the block diagram  20  of  FIG. 2 , codebook designs  21  in accordance with the invention include a discrete codebook design  22 , and a constrained codebook design  23 . The constrained codebook design  23  is further broken down into a union set approach  24  and a successive approach  25 . 
     With respect to the Constrained Codebook Design  23 , traditionally, the codebook is optimized for given channel statistics. If we design a codebook for multiple scenarios, i.e., different set of channel statistics the procedure is called constrained codebook design. Two approaches are considered, the union approach  24  and a successive approach  25 . 
     In the Union Approach  24  we take the union of the set of all channel realizations for all scenarios and design a codebook for such union set. 
     In the Successive Approach  25  we design a codebook of smaller size for one scenario. We fixed the designed entries and expand the codebook by adding more entries to the codebook. We then design the new entries by considering the new scenario and considering the constraint on the fixed entries. Again, we fix all the designed entries and add more entry and design for the next scenario till all scenarios are treated. Note that this second approach requires the optimization of the number of codebook entries that are added in each step, also depends on the order in which the scenarios are treated. Intuitively, at each step we pick the scenario which requires smaller codebook for a given performance with respect to other remaining scenarios. 
     With respect to the Discrete Codebook Design  22 , the approach to design a discrete codebook is to pick a set of entries that have maximum minimum distance. Different distance metric has been considered in the prior art. Since it is a discrete optimization problem, the solution is usually very hard to find. Let M denote all possible entry of a codebook where its elements are taken from the finite set G. Define a weighted graph where each node correspond to a possible entry of the codebook in the set M and each link between two node a and b is weighted by the distance between the two entry a and b, e.g., d(a,b). Finding the codebook of size K is equivalent to finding a clique of size K where the minimum of all the gains in this clique is maximized. Such problem is NP-hard, and thus hard to solve. In the following we propose an algorithm that can solve this problem within reasonable time for most practical cases. 
     Instead of trying to find a codebook with maximum minimum distance, we take the following approach to find a codebook with minimum distance of at least r. To do so, we pick a random entry at the beginning and then try to add other entries to the codebook. At each step, we find the set of all possible entries of M such that their distances to all of the already picked entries of the codebook are greater than r. Then, we pick the one which is closest to the current entries of the codebook. We repeat this process until we find K elements which gives a solution, or to get to the point that we cannot pick enough elements to form a codebook of size K. The detailed algorithm is given in Algorithm 1 in the IR form. By changing the value of r, we can optimize the designed codebook. Example of such optimized codebook is given as follows. 
     The following example gives a codebook which is a ‘discrete codebook’ and has ‘householder structure’ and ‘constant amplitude property’. We consider the case when 16 possibilities are allowed per-rank and suggest the following constituent vector codebooks: V 1 ={v i   1 εC 4 } i=1   16 , V 2 =[1,0,0] T εC 3 , V 3 =[1,0] T εC 2 , where C N  denotes the N-dimensional complex space and all the vectors have their first elements to be real-valued. Matrix code-words are formed using these vectors along with the unitary Householder matrices of the form, 
               HH   ⁡     (   w   )       =     I   -     2   ⁢       ww   *            w        2                 
(which is completely determined by the vector w).
 
     Let e 1   N =[1, 0, . . . , 0] T εC N . Since householder formula is not defined for e 1   N =[1, 0, . . . , 0] T εC N , we define HH(e 1   N )=I N×N . The matrix codebook for 4×4 cases is obtained using the householder formula defined as 
     
       
         
           
               
             
               
                 A 
                 ⁡ 
                 
                   ( 
                   
                     
                       v 
                       i 
                       1 
                     
                     , 
                     
                       v 
                       j 
                       2 
                     
                     , 
                     
                       v 
                       j 
                       2 
                     
                     , 
                     ... 
                   
                   ) 
                 
               
               = 
               
                   
                 
                   
                     [ 
                     
                       
                         v 
                         i 
                         1 
                       
                       , 
                       
                           
                       
                       ⁢ 
                       
                         
                           
                             HH 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   v 
                                   i 
                                   1 
                                 
                                 - 
                                 
                                   e 
                                   1 
                                   4 
                                 
                               
                               ) 
                             
                           
                           ⁡ 
                           
                             [ 
                             
                               
                                 
                                   0 
                                 
                               
                               
                                 
                                   
                                     v 
                                     j 
                                     2 
                                   
                                 
                               
                             
                             ] 
                           
                         
                         ⁢ 
                         
                           
                             HH 
                             ⁡ 
                             
                               ( 
                               
                                 
                                   v 
                                   i 
                                   1 
                                 
                                 - 
                                 
                                   e 
                                   1 
                                   4 
                                 
                               
                               ) 
                             
                           
                           ⁡ 
                           
                             [ 
                             
                               
                                 
                                   0 
                                 
                               
                               
                                 
                                   
                                     
                                       HH 
                                       ⁡ 
                                       
                                         ( 
                                         
                                           
                                             v 
                                             j 
                                             2 
                                           
                                           - 
                                           
                                             e 
                                             1 
                                             4 
                                           
                                         
                                         ) 
                                       
                                     
                                     ⁡ 
                                     
                                       [ 
                                       
                                         
                                           
                                             0 
                                           
                                         
                                         
                                           
                                             
                                               v 
                                               k 
                                               3 
                                             
                                           
                                         
                                       
                                       ] 
                                     
                                   
                                 
                               
                             
                             ] 
                           
                         
                       
                       , 
                       ... 
                     
                     ] 
                   
                   , 
                   
                     1 
                     ≤ 
                     i 
                     ≤ 
                     16 
                   
                   , 
                   
                     1 
                     ≤ 
                     j 
                   
                   , 
                   
                     k 
                     ≤ 
                     1. 
                   
                 
               
             
           
         
       
     
     In the special case of the vector codebook defined in Appendix 1 below, we can simplify the above matrix codebook as a formula as A(v i   1 , v j   2 , v j   2 , . . . )=HH(v i   1 −e 1   4 ), 1≦i≦16, which is the codebook of size 16 for rank 4 transmission. The codebook for rank one is obtained by collecting the first columns of these 16 matrices. The codebook of rank 3 is the collection of matrices obtained by choosing the last 3 columns of each matrix, and the codebook of rank 2 is optimized by selecting 4×2 matrices by choosing the columns as defined in appendix 1 below. For the CQI-metric based precoder selection with a linear minimum mean square error (LMMSE) receiver it has been shown that due to the nested structure of the codebook, significant complexity savings can be accrued by avoiding the redundant computations. 
     Moreover, the elements of the codeword matrices also belong to a multiplicative group of complex numbers, defined as GF(16) where the 16 elements of the group are defined as exp(j2πk/16), 1≦k≦16. It can be shown that for a 4TX antenna system, if all elements of the vector codebook belong to a multiplicative group of GF(N) then all the elements of the matrix codebook belong to the same group. Considering the above property, the number of multiplications is much less than the case where the codebook elements are arbitrary complex numbers. 
     APPENDIX 1 
     MRBF Vector Codebooks 
     
       
         
               
             
               
               
               
               
               
             
               
               
               
               
               
             
           
               
                   
               
               
                 MRBF- Vector codebook in C with elements from GF(16) 
               
             
          
           
               
                 Vector index 
                 First element 
                 Second element 
                 Third element 
                 Fourth element 
               
               
                   
               
             
          
           
               
                 1 
                 1 
                 1 
                 1 
                   1 
               
               
                 2 
                 1 
                 −i 
                 −i 
                 −1 
               
               
                 3 
                 1 
                 i 
                 I 
                 −1 
               
               
                 4 
                 1 
                 −0.3826 + 0.9239i 
                 −0.7070 − 0.7071i 
                   0.9239 − 0.3826i 
               
               
                 5 
                 1 
                   0.3826 − 0.9239i 
                 −0.7070 − 0.7071i 
                 −0.9239 + 0.3826i 
               
               
                 6 
                 1 
                 −0.7071 + 0.7071i 
                 −i 
                   0.7071 + 0.7071i 
               
               
                 7 
                 1 
                 −0.7071 + 0.7071i 
                 I 
                 −0.7071 + 0.7071i 
               
               
                 8 
                 1 
                 −0.9239 − 0.3826i 
                   0.7071 + 0.7071i 
                 −0.3826 − 0.9239i 
               
               
                 9 
                 1 
                   0.7071 − 0.7071i 
                 −i 
                 −0.7071 − 0.7071i 
               
               
                 10 
                 1 
                 0 
                 0 
                 0 
               
               
                 11 
                 0 
                 1 
                 0 
                 0 
               
               
                 12 
                 0 
                 0 
                 1 
                 0 
               
               
                 13 
                 0 
                 0 
                 0 
                 1 
               
               
                 14 
                 1 
                 i 
                 −i 
                 −0.7071 − 0.7071i 
               
               
                 15 
                 1 
                 −i 
                 −i 
                   0.7071 + 0.7071i 
               
               
                 16 
                 1 
                 1 
                 −0.7071 + 0.7071i 
                 1 
               
               
                   
               
             
          
         
       
     
     
       
         
               
             
               
               
               
               
               
             
           
               
                   
               
               
                 MRBF-Vector codebook in C 
               
             
          
           
               
                   
                   
                   
                 Second 
                 Third 
               
               
                   
                 Vector index 
                 First element 
                 element 
                 element 
               
               
                   
                   
               
               
                   
                 1 
                 1 
                 0 
                 0 
               
               
                   
                   
               
             
          
         
       
     
     
       
         
               
             
               
               
               
             
           
               
                   
               
               
                 MRBF-Vector codebook in C 2   
               
             
          
           
               
                 Vector index 
                 First element 
                 Second element 
               
               
                   
               
               
                 1 
                 1 
                 0 
               
               
                   
               
             
          
         
       
     
     
       
         
               
             
               
               
               
               
               
             
               
               
               
               
               
             
           
               
                   
               
               
                 MRBF-rank 2 codebook index 
               
             
          
           
               
                   
                 Codebook 
                 4x4 matrix 
                 First 
                 Second 
               
               
                   
                 index 
                 index 
                 column 
                 column 
               
               
                   
                   
               
             
          
           
               
                   
                 1 
                 1 
                 1 
                 2 
               
               
                   
                 2 
                 2 
                 1 
                 2 
               
               
                   
                 3 
                 3 
                 1 
                 2 
               
               
                   
                 4 
                 7 
                 1 
                 3 
               
               
                   
                 5 
                 8 
                 1 
                 3 
               
               
                   
                 6 
                 10 
                 2 
                 3 
               
               
                   
                 7 
                 13 
                 1 
                 3 
               
               
                   
                 8 
                 10 
                 3 
                 4 
               
               
                   
                 9 
                 10 
                 1 
                 4 
               
               
                   
                 10 
                 10 
                 2 
                 4 
               
               
                   
                 11 
                 9 
                 1 
                 3 
               
               
                   
                 12 
                 14 
                 3 
                 4 
               
               
                   
                 13 
                 10 
                 1 
                 2 
               
               
                   
                 14 
                 10 
                 1 
                 3 
               
               
                   
                 15 
                 11 
                 3 
                 4 
               
               
                   
                 16 
                 12 
                 1 
                 2 
               
               
                   
                   
               
             
          
         
       
     
     Simulation results for the inventive codebook technique show that for both link level and the improved link level that the MRBF scheme employing the inventive codebook design provides gains over the discrete fourier transform DFT-codebook based schemes at low geometries, hence benefiting cell-edge users. Moreover, the MRBF scheme with the inventive codebook design also results in lower complexity than the DFT-codebook due to its codebook structure as well as its simple vector codebooks. 
     The proposed MRBF codebook structure in accordance with the invention utilizes vector codebooks to generate the corresponding matrix codebooks for different transmission rank and allows efficient precoder selection via either the singular value decomposition SVD or continuous quality improvement CQI metric. The constituent vector codebooks can be optimized for different scenarios (propagation environments/antenna configurations), which allows us to leverage the flexibility offered by multiple codebooks. In addition the vector codebooks can also be designed to obtain a single codebook offering a robust performance across different scenarios. Simulation results demonstrate that the MRBF scheme outperforms the DFT codebook based scheme as well as the conventional Householder codebook based scheme. 
     The present invention has been shown and described in what are considered to be the most practical and preferred embodiments. It is anticipated, however, that departures may be made therefrom and that obvious modifications will be implemented by those skilled in the art. It will be appreciated that those skilled in the art will be able to devise numerous arrangements and variations which, not explicitly shown or described herein, embody the principles of the invention and are within their spirit and scope.