# Patent

## Title
MIMO beamforming method and method of constructing a differential codebook for a wireless network

## Abstract

A MIMO beamforming method comprises receiving at a base station information regarding a difference between an ideal beamforming matrix and an averaged beamforming direction, using the information to construct a beamforming matrix at the base station, and performing a beamforming operation using the reconstructed beamforming matrix. Alternatively, the method comprises computing at a subscriber station an averaged beamforming direction, computing at the subscriber station a quantization index corresponding to a differential matrix in a differential codebook, and transmitting the quantization index across a wireless channel of the wireless network. The differential codebook may be constructed by identifying a codebook center and transforming a predefined codebook that is stored in a memory of a component of the wireless network.

## Background
PRIORITY CLAIM
This application claims the benefit of priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application Ser. No. 61/093,699, filed Sep. 2, 2008, which is incorporated herein by reference in its entirety.


FIELD OF THE INVENTION
The disclosed embodiments of the invention relate generally to wireless communications, and relate more particularly to beamforming in wireless communication networks.
BACKGROUND OF THE INVENTION
In closed-loop multiple input, multiple output (MIMO) beamforming in a wireless network comprising a subscriber station and a base station, the subscriber station (also referred to at times herein as a mobile device) quantizes the ideal beamforming matrix and sends a quantization index corresponding to the ideal beamforming matrix back to the base station. The base station reconstructs the beamforming matrix according to the fed-back index and conducts the beamforming. It is well known that beamforming increases the link performance and system throughput.
Embodiments of the invention may find application in a wireless local area network (WLAN) or a wireless Metropolitan area network (WMAN) including a WiMAX (Worldwide Interoperability for Microwave Access) network or the like. WiMAX technology is based on the IEEE 802.16 family of standards, including IEEE 802.16e and others.



BRIEF DESCRIPTION OF THE DRAWINGS
The disclosed embodiments will be better understood from a reading of the following detailed description, taken in conjunction with the accompanying figures in the drawings in which:
FIG. 1 is a schematic illustration of quantizer input distribution and codeword distribution according to an embodiment of the invention;
FIG. 2 is a schematic representation of a quantization space with polar cap according to an embodiment of the invention;
FIG. 3 is an illustration of the decomposition of a unitary matrix into unit vectors according to an embodiment of the invention;
FIGS. 4-7 are flowcharts illustrating MIMO beamforming methods according to various embodiments of the invention;
FIG. 8 is an illustration of the generation of a polar cap codebook by codeword concentration according to an embodiment of the invention;
FIG. 9 in an illustration of the reduced chordal distance between vectors or subspaces according to an embodiment of the invention;
FIG. 10 is a flowchart illustrating a method of constructing a differential codebook for a wireless network according to an embodiment of the invention; and
FIGS. 11-13 illustrate link level simulation results according to embodiments of the invention.



For simplicity and clarity of illustration, the drawing figures illustrate the general manner of construction, and descriptions and details of well-known features and techniques may be omitted to avoid unnecessarily obscuring the discussion of the described embodiments of the invention. Additionally, elements in the drawing figures are not necessarily drawn to scale. For example, the dimensions of some of the elements in the figures may be exaggerated relative to other elements to help improve understanding of embodiments of the present invention. The same reference numerals in different figures denote the same elements, while similar reference numerals may, but do not necessarily, denote similar elements.
The terms “first,” “second,” “third,” “fourth,” and the like in the description and in the claims, if any, are used for distinguishing between similar elements and not necessarily for describing a particular sequential or chronological order. It is to be understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the invention described herein are, for example, capable of operation in sequences other than those illustrated or otherwise described herein. Similarly, if a method is described herein as comprising a series of steps, the order of such steps as presented herein is not necessarily the only order in which such steps may be performed, and certain of the stated steps may possibly be omitted and/or certain other steps not described herein may possibly be added to the method. Furthermore, the terms “comprise,” “include,” “have,” and any variations thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to those elements, but may include other elements not expressly listed or inherent to such process, method, article, or apparatus.
The terms “left,” “right,” “front,” “back,” “top,” “bottom,” “over,” “under,” and the like in the description and in the claims, if any, are used for descriptive purposes and not necessarily for describing permanent relative positions. It is to be understood that the terms so used are interchangeable under appropriate circumstances such that the embodiments of the invention described herein are, for example, capable of operation in other orientations than those illustrated or otherwise described herein. The term “coupled,” as used herein, is defined as directly or indirectly connected in an electrical or non-electrical manner. Objects described herein as being “adjacent to” each other may be in physical contact with each other, in close proximity to each other, or in the same general region or area as each other, as appropriate for the context in which the phrase is used. Occurrences of the phrase “in one embodiment” herein do not necessarily all refer to the same embodiment.
DETAILED DESCRIPTION OF THE DRAWINGS
In one embodiment of the invention, a MIMO beamforming method is performed at a base station of a wireless network. The base station comprises a transmitting antenna. In one embodiment, the method comprises receiving at the base station information regarding a difference between an ideal beamforming matrix and an averaged beamforming direction, using the information to construct a reconstructed beamforming matrix at the base station, and performing a beamforming operation on the transmitting antenna using the reconstructed beamforming matrix. In other embodiments, the MIMO beamforming method is performed at a subscriber station of the wireless network. In one such embodiment, the method comprises computing at the subscriber station an averaged beamforming direction, computing at the subscriber station a quantization index corresponding to a differential matrix in a differential codebook, wherein the differential matrix rotates the averaged beamforming direction, and transmitting the quantization index across a wireless channel of the wireless network. In either embodiment, or in other embodiments, the differential codebook may be constructed by identifying a codebook center and transforming a predefined codebook that is stored in a memory of a component of the wireless network.
Embodiments of the invention make use of a differential feedback scheme in order to reduce the feedback overhead and increase beamforming accuracy. There exists correlation in the beamforming matrixes across space, frequency, and time, and the correlation implies overlapping or redundancy in the feedback. The differential feedback scheme exploits this correlation by only feeding back the difference with respect to some reference—the averaged beamforming direction, for example—which is computed from long term channel state information, wideband channel state information, the previous short term feedback, or the like.
It should be understood that the averaged beamforming direction may slowly vary. The averaging computation may, for example, be performed over a window of samples (of quantized beamforming direction). In addition, a weight vector may be applied over the samples in order to compute the average. For example, the previously quantized and fed-back L beamforming directions are {circumflex over (v)}(k+1) . . . v(k+L). The weight vector is w1 . . . wL. The averaged beamforming direction for time k+L+1 is computed as v(k+L+1)=orth(w1{circumflex over (v)}(k+1)+ . . . wL{circumflex over (v)}(k+L)) or v(k+L+1)=w1{circumflex over (v)}(k+1)+ . . . wL{circumflex over (v)}(k+L), where the orthogonalization and normalization operation, orth(X), converts matrix (or vector) X to a unitary or orthogonal matrix Y whose columns span the same subspace as X's columns do. As an example, the operation orth(X) can be implemented by Grant-Schmidt orthogonalization. A unitary matrix consists of columns that are orthogonal to each other and have unit norm. In addition, the number of rows can be different from the number of columns in a unitary matrix. The averaged beamforming direction can also be computed recursively using the previous averaged beamforming directions and the previous fed-back beamforming directions. For example, one more term, w0 v(k+L), can be added to the previous two equations, yielding v(k+L+1)=orth(w0 v(k+L)+w1{circumflex over (v)}(k+1)+ . . . wL{circumflex over (v)}(k+L) or v(k+L+1)=w0{circumflex over (v)}(k+L)+w1{circumflex over (v)}(k+1)+ . . . wL{circumflex over (v)}(k+L). Since the previously fed-back beamforming directions {circumflex over (v)}(k+1) . . . {circumflex over (v)}(k+L) instead of the un-quantized, ideal beamforming directions are known at both the transmitter and receiver, the (moving) average can be computed at both sides simultaneously. The weight vector can be updated according to the previously fed-back beamforming directions or can just be a set of constant coefficients. The magnitudes of the coefficients can be the same, for simplicity, or can decrease as the index l=1, . . . , L for w1. Furthermore, the moving average v(k+l+1) can be treated as the prediction of the ideal beamforming direction for time k+L+1 using all the previous feedbacks, i.e., {circumflex over (v)}(t)s, t<k+L+1. The difference between the ideal beamforming direction and the prediction, i.e., v(k+L+1)− v(k+L+1), is unknown to the transmitter and needs to be fed back. In such a case, the weight vector is the prediction filter that may be a Wiener filter. Note that in the special case of L=w1=1, the scheme falls back to the conventional differential feedback that uses only the previous feedback as a reference.
Embodiments of the invention construct a differential codebook through the transformation of an 802.16e codebook. The transformation provides backward compatibility to 802.16e and enables the codebook to adapt to various channel scenarios. Additionally, embodiments of the invention adapt the differential codebook to MIMO configuration and mobile speed.
The differential feedback scheme according to an embodiment of the invention is illustrated in FIG. 1. The input to the quantizer is the ideal beamforming matrix. If there is no correlation, the input is widely spread in the entire quantization space, as shown on the left-hand side of FIG. 1. In contrast, if there is high correlation the input is limited to a small subspace and a few quantization codewords are sufficient, as shown on the right-hand side of FIG. 1.
In a high-correlation case such as that described above, the center of the subspace needs to be identified and fed back to the transmitter and a small codebook with a suitable size (in terms of codeword number and effective coverage range) needs to be constructed to cover the subspace. These activities will be described in more detail below.
System Model
The assumed system model is

y=H{circumflex over (V)}s+n,  (1)

where n is the complex additive white Gaussian noise (AWGN) with variance N0, s is the Ns by 1 transmitted vector with unit power, Ns is the number of spatial streams, y is the received vector, H is the channel vector of size Nr by Nt, and {circumflex over (V)} is the beamforming matrix (or vector) of size Nt by Ns. The correlated channel matrix H is generated from the channel matrix Hw with independent, identically distributed (i.i.d.) entries as

H=Rr1/2HwRt1/2,  (2)

where Rr is the Nr by N, receive covariance matrix and Rt is the Nt by Nt transmit covariance matrix measured at the subscriber station. The covariance (or correlation) matrix Rt contains the averaged directions for beamforming.

Denote the eigenvalue decomposition of Rt as Rt=QΣ2QH, where Q is an Nt by Nt unitary matrix (i.e., QHQ=I) and Σ is the diagonal matrix with the square roots of the eigenvalues σi for i=1, . . . , Nt in decreasing order σi≧σi+1.
Space Domain Differentiation
It may be noted here that the ideal beamforming matrix has its distribution peak at the principal subspace spanned by the columns of Q, where the principal subspace corresponds to the large eigenvalues of Σ. The ideal beamforming matrix concentrates on the principal subspace with a higher and higher probability as the correlation increases. This implies that a localized codebook around the principal subspace is enough for the quantization. The simplified codebook has two components: codebook center and polar cap. The codebook center is the principal subspace spanned by the columns of Q. The polar cap is a codebook that only covers a small portion of the quantization space of the 802.16e codebook as shown in FIG. 2 for the vector case. As illustrated in FIG. 2, a full quantization space 210 includes a polar cap 211 with a center vector codeword denoted as [1 0 . . . 0]T.
It should be noted that the concept of principal subspace may not be needed if the ideal beamforming matrix doesn't need to be square. Take, for example, an embodiment in which the system has four transmit antennas and two receive antennas. The ideal beamforming matrix may then be thought of as 4×4. However, the ideal beamforming matrix may alternatively be thought of as 4×1 or 4×2 if one or two spatial stream(s) is sent. The subspace of the latter 4×1 or 4×2 matrix that corresponds to the principal singular value of the channel matrix is referred to as the principal subspace of the former 4×4 matrix.
For quantization, the subscriber station first rotates the center of the polar cap to the principal subspace of Q and then computes and quantizes the difference (called a differential matrix (denoted herein by D)) between the ideal beamforming matrix and the principal subspace. Equivalently, the subscriber station may first remove the principal subspace from the ideal beamforming matrix and then quantize the remaining matrix using the polar cap codebook. The base station receives the quantization index and adds the differential matrix to the quantized principal subspace for reconstructing the beamforming matrix.
Let

{circumflex over (Q)}=[{circumflex over (Q)}1{circumflex over (Q)}2],  (3)

where {circumflex over (Q)} is the quantized Q, {circumflex over (Q)}1 is Nt×Ns and is the quantized, principal subspace for beamforming, Nt and Ns are, respectively, the number of transmit antennas and the number of spatial streams, and {circumflex over (Q)}2 is Nt×(Nt−Ns), with the complementary columns orthogonal to {circumflex over (Q)}1. It should be noted that {circumflex over (Q)}1 is the averaged beamforming direction in unitary or orthogonal matrix format, which is computed from the previous (quantized) feedbacks. In one embodiment, the operations of beamforming, quantization, and reconstruction are written as:

Differential at subscriber station:

D=[{circumflex over (Q)}1{circumflex over (Q)}3]HV.  (4)

Quantization at subscriber station:




  
    
      
        D
        =
        
          
            
              arg
              ⁢
              
                
              
              ⁢
              max
            
            
              
                D
                i
              
              ∈
              
                C
                p
              
            
          
          ⁢
          
            
              
                
                
                  
                    D
                    H
                  
                  ⁢
                  
                    D
                    i
                  
                
                
              
              F
            
            .
          
        
      
    
    
      
        (
        5
        )
      
    
  




Beamforming matrix reconstruction at base station:

{circumflex over (V)}=[{circumflex over (Q)}1{circumflex over (Q)}3]{circumflex over (D)}.  (6)

Beamforming at base station:

y=H{circumflex over (V)}s+n.  (7)

In (4), the Nt×Ns V is the ideal beamforming matrix and {circumflex over (Q)}3 consists of a set of complementary columns orthogonal to {circumflex over (Q)}1 and can be different from {circumflex over (Q)}2 by an Ns×Ns rotation. In other words, {circumflex over (Q)}2H{circumflex over (Q)}3 is an Ns×Ns unitary matrix. {circumflex over (Q)}3 can be computed from {circumflex over (Q)}1 using Householder reflection or the like so that the subscriber station doesn't need to estimate {circumflex over (Q)}2 hidden in the channel samples. {circumflex over (Q)}1 is the center of a rotated differential codebook, and is a cumulative quantity that is built up from all previous feedbacks sequentially (i.e., the {circumflex over (D)}s). {circumflex over (D)} is an Nt by Ns orthogonal matrix. This is a quantity that needs to be transmitted to the base station by the subscriber station.
Because the ideal D is a continuous quantity, the subscriber station needs a discrete codebook to quantize the continuous D and send back the index of the selected codeword in the codebook. The codewords, which spread in a small scope as shown in FIG. 2, comprise the quantization codebook. The codewords are indexed as 0, 1, 2, . . . , Ncw, for example. Each codeword is a different Nt by Ns orthogonal matrix. The subscriber station selects one of the Ncw matrices and sends back the index of the selected matrix. For example, suppose the first matrix is D1=[1 0 0 0; 0 1 0 0]T and the subscriber station believes this matrix gives the best performance for the next beamforming among all Ncw codewords in the codebook. In other words, substitution of D1 for {circumflex over (D)} in (6) gives the best performance for {circumflex over (V)} in the beamformed channel of (7). Then the subscriber station would send the index “1” through the feedback channel to the base station.
{circumflex over (Q)}1 is fed back by the subscriber station. Based on the same {circumflex over (Q)}1, both the subscriber station and the base station generate the same {circumflex over (Q)}3 using the same method. In (5), Di is the ith codeword matrix of the polar cap codebook denoted by Cp. In one embodiment, the quantization criterion may maximize the received signal power. In other embodiments, other criteria such as channel capacity or mean squared error (MSE) may be used. As an alternative, since D is unitary it may be decomposed first following which quantization may be conducted on the decomposed components (e.g., unit vectors). (An illustration of decomposing a unitary matrix into unit vectors is shown in FIG. 3.) In (7), {circumflex over (V)} is the Nt×Ns reconstructed beamforming matrix, s is the Ns×1 data vector, and H is the channel matrix with transmit antenna correlation Rt.
FIG. 4 is a flowchart illustrating a MIMO beamforming method 400 according to an embodiment of the invention.
A step 410 of method 400 is to receive information at a base station of a wireless network, wherein the base station comprises a transmitting antenna, the information regarding a difference between an ideal beamforming matrix and an averaged beamforming direction. In one embodiment, the difference between the ideal beamforming matrix and the averaged beamforming direction is represented by a differential matrix, and step 410 comprises receiving a quantization index corresponding to a quantized version of the differential matrix. In at least one embodiment, the quantized version of the differential matrix is an orthogonal matrix, and in a particular embodiment the quantized version of the differential matrix is an Nt×Ns orthogonal matrix.
A step 420 of method 400 is to use the information to construct a reconstructed beamforming matrix at the base station.
A step 430 of method 400 is to perform a beamforming operation on the transmitting antenna using the reconstructed beamforming matrix. In one embodiment, step 430 may comprise weighting an input to the transmitting antenna. In another embodiment, step 430 may comprise steering a beam transmitted by the transmitting antenna.
FIG. 5 is a flowchart illustrating a MIMO beamforming method 500 according to another embodiment of the invention.
A step 510 of method 500 is to receive at a base station of a wireless network quantized information about an averaged beamforming direction. A step 520 of method 500 is to compute the averaged beamforming direction using the received information.
A step 530 of method 500 is to receive a quantization index corresponding to a differential matrix representing a difference between an ideal beamforming matrix and the averaged beamforming direction.
A step 540 of method 500 is to retrieve the differential matrix. In one embodiment, step 540 comprises generating a differential codebook and then selecting the differential matrix from the generated differential codebook. As an example, generating the differential codebook can comprise performing a transform on a pre-defined non-differential or uniform codebook, such as the uniform 802.16e codebook, that is stored in a memory device at the base station.
A step 550 of method 500 is to combine the differential matrix with the averaged beamforming direction, thereby constructing a beamforming matrix. In one embodiment, step 550 comprises generating a second matrix (e.g., {circumflex over (Q)}3) comprising a set of complementary columns orthogonal to the averaged beamforming direction and combining the differential matrix with the second matrix as well as with the averaged beamforming direction. As an example, this may be equivalent to finding a value for {circumflex over (V)} according to (6).
A step 560 of method 500 is to transmit a data vector that has been weighted by the beamforming matrix.
FIG. 6 is a flowchart illustrating a MIMO beamforming method 600 according to yet another embodiment of the invention.
A step 610 of method 600 is to compute at a base station of a wireless network an averaged beamforming direction.
A step 620 of method 600 is to receive a quantization index.
A step 630 of method 600 is to compute a differential matrix according to the quantization index.
A step 640 of method 600 is to compute a beamforming matrix using the differential matrix and the averaged beamforming direction, the beamforming matrix comprising at least one vector. In one embodiment, step 640 comprises multiplying the differential matrix by a matrix that is computed from the averaged beamforming direction.
A step 650 of method 600 is to transmit a data stream using the at least one vector of the beamforming matrix. It should be noted that the beamforming matrix can be degraded to a beamforming vector for a single stream transmission. In this case, the feedback index may be referred to as a differential vector codebook.
FIG. 7 is a flowchart illustrating a MIMO beamforming method 700 according to still another embodiment of the invention.
A step 710 of method 700 is to compute at a subscriber station of a wireless network an averaged beamforming direction. As an example, the computation may be conducted using the previous fed back information so that both the transmitter and the receiver can generate the same averaged beamforming direction.
A step 720 of method 700 is to compute at the subscriber station a quantization index corresponding to a differential matrix (codeword) in a differential codebook, wherein the differential matrix rotates the averaged beamforming direction. In one embodiment, step 720 comprises computing a differential matrix representing a difference between an ideal beamforming matrix and the averaged beamforming direction and then quantizing the differential matrix. As an example, computing the differential matrix may be equivalent to finding a solution for D according to (4). As another example, quantizing the differential matrix may be equivalent to finding a value of Di that yields a maximum value of ∥DHDi∥F, where Di is a codeword matrix of the differential codebook—in other words, comprises solving (5).
The differential matrix represents the difference between the ideal beamforming matrix and the averaged beamforming direction. The differential matrix does not necessarily need to be explicitly computed at the subscriber station in order to arrive at the quantization index because the fed-back quantization index corresponds to a differential matrix in the quantization codebook. Each differential matrix can rotate the reference beamforming direction (i.e., the averaged or the previous beamforming direction) by some small amount.
In one embodiment, the subscriber station adaptively changes the differential codebook according to a state of the wireless channel. For instance, the span or range of the codebook can be smaller for slow fading and larger for fast fading. An example that uses an antenna correlation matrix to adaptively change the differential codebook is given below in the polar cap codebook discussion.
A step 730 of method 700 is to transmit the quantization index across a wireless channel of the wireless network.
The quantization of Q1 and the computation of {circumflex over (Q)}3 will now be illustrated by an example with a 4×2 Q1. Denote the two columns of Q1 as Q1=[p q]. Note that p can be quantized by the 4×1 6-bit codebook of 802.16e. Denote the quantized p as {circumflex over (p)}. The 4×1 q is converted to a 3×1 {tilde over (q)} by a Householder operation defined in the 802.16e standard as




  
    
      
        
          
            
              Φ
              
                p
                ^
              
            
            ⁢
            
              Q
              1
            
          
          =
          
            [
            
              
                
                  
                    0.9
                    ⁢
                    
                      
                    
                    ⁢
                    x
                  
                
                
                  0.0
                
              
              
                
                  
                    0.1
                    ⁢
                    
                      
                    
                    ⁢
                    x
                  
                
                
                  
                    
                  
                
              
              
                
                  0.0
                
                
                  
                    q
                    ~
                  
                
              
              
                
                  0.0
                
                
                  
                    
                  
                
              
            
            ]
          
        
        ,
      
    
    
      
        (
        8
        )
      
    
  




where




  
    
      Φ
      x
    
    =
    
      I
      -
      
        
          2
          
            
              
              w
              
            
            2
          
        
        ⁢
        
          ww
          H
        
        ⁢
        
          
        
        ⁢
        and
      
    
  




  
    w
    =
    
      
        x
        -
        
          e
          1
        
      
      =
      
        
          [
          
            
              
                
                  
                    x
                    1
                  
                  -
                  1
                
              
            
            
              
                
                  x
                  2
                
              
            
            
              
                
                  x
                  3
                
              
            
            
              
                
                  x
                  4
                
              
            
          
          ]
        
        .
      
    
  



Then {tilde over (q)} is quantized by the 3×1 6-bit codebook of 802.16e. Denote the quantized p and {tilde over (q)} as {circumflex over (p)} and {circumflex over (q)}. The quantized version of [Q1Q3], which is actually used by both the base station and the subscriber station for the beamforming computation, is computed as





  
    
      
        
          [
          
            
              
                
                  
                    Q
                    ^
                  
                  1
                
              
              
                
                  
                    Q
                    ^
                  
                  3
                
              
            
          
          ]
        
        =
        
          
            
              Φ
              
                p
                ^
              
            
            ⁡
            
              [
              
                
                  
                    1
                  
                  
                    0
                  
                  
                    0
                  
                  
                    0
                  
                
                
                  
                    0
                  
                  
                    
                      
                    
                  
                  
                    
                      
                    
                  
                  
                    
                      
                    
                  
                
                
                  
                    0
                  
                  
                    
                      
                    
                  
                  
                    
                      Φ
                      
                        q
                        ^
                      
                    
                  
                  
                    
                      
                    
                  
                
                
                  
                    0
                  
                  
                    
                      
                    
                  
                  
                    
                      
                    
                  
                  
                    
                      
                    
                  
                
              
              ]
            
          
          .
        
      
    
    
      
        (
        9
        )
      
    
  




Polar Cap Codebook
The polar cap concept has been used to generate hierarchical codebooks. For backward compatibility, the polar cap codebooks can be generated from a uniform 802.16e codebook. The transformation from the uniform 802.16e codebook to a polar cap codebook reduces the chordal distance between each codeword and the matrix




  
    [
    
      
        
          1
        
        
          
            
          
        
        
          
            
          
        
      
      
        
          
            
          
        
        
          ⋱
        
        
          
            
          
        
      
      
        
          
            
          
        
        
          
            
          
        
        
          1
        
      
    
    ]
  
   




as illustrated in FIG. 8. Note that each 3-bit vector codebook and some other codebooks of 802.16e have the codeword





  
    [
    
      
        
          1
        
        
          
            
          
        
        
          
            
          
        
      
      
        
          
            
          
        
        
          ⋱
        
        
          
            
          
        
      
      
        
          
            
          
        
        
          
            
          
        
        
          1
        
      
    
    ]
  
  ⁢
  
     
    .
  




The transformation is

{tilde over (V)}hd i=orth(ΛρVi),  (10)

where





  
    Λ
    ρ
  
  =
  
    [
    
      
        
          
            
              λ
              1
            
            ⁡
            
              (
              ρ
              )
            
          
        
        
          
            
          
        
        
          
            
          
        
      
      
        
          
            
          
        
        
          ⋱
        
        
          
            
          
        
      
      
        
          
            
          
        
        
          
            
          
        
        
          
            
              λ
              
                N
                s
              
            
            ⁡
            
              (
              ρ
              )
            
          
        
      
    
    ]
  




is the diagonal matrix for correlation scenario ρ and orth(X) converts the input matrix (or vector) X to an orthogonal matrix with orthonormal column(s) that span the same subspace as X's columns. Note that orth(X) is essentially the orthogonalization of X's columns and can be simply implemented by a Grant-Schmidt operation. We predefine Nρ, say 4, scenarios and pre-compute Λρ for each scenario. For example,





  
    Λ
    0.95
  
  =
  
    [
    
      
        
          1.94`
        
        
          
            
          
        
        
          
            
          
        
        
          
            
          
        
      
      
        
          
            
          
        
        
          0.40
        
        
          
            
          
        
        
          
            
          
        
      
      
        
          
            
          
        
        
          
            
          
        
        
          0.23
        
        
          
            
          
        
      
      
        
          
            
          
        
        
          
            
          
        
        
          
            
          
        
        
          0.17
        
      
    
    ]
  




for 0.5 wavelength antenna spacing. For another example, Λ0 is the identity matrix. Namely, the no transformation is conducted on the uniform (802.16e) codebook and the polar cap is opened to the maximum aperture. The subscriber station selects a suitable size of polar cap by sending the index of ρ according to MIMO configuration, e.g., Nr, Nt, Ns, antenna correlation, and mobile speed. After the subscriber station feeds back the index of the selected ρ, e.g., using two bits, both the base station and the subscriber station can generate the same polar cap codebook.

An alternative procedure for polar cap generation will now be described. Since the dedicated codebooks for quantizing the decomposed vectors require additional storage complexities it may be advantageous to generate the quantization codebooks from 802.16e vector codebooks. The codewords of the 802.16e vector codebooks uniformly distribute on a sphere and we would like to make them concentrate around one codeword, e.g., [1 0 . . . 0]T (as shown in FIG. 9) which indeed exists in each 802.16e 3-bit vector codebook. It turns out that the 3-bit codebooks are sufficient for differential applications. If [1 0 . . . 0]T doesn't exist in the 802.16e codebook, we can pick one codeword and rotate the entire codebook so that the selected codeword becomes [1 0 . . . 0]T using Householder reflection or other methods. For codeword concentration, a simple way is to reduce the angle between the center vector and any of the other vectors. Let e1=[1 0 . . . 0]T be the vector picked as codebook center and v be another vector codeword in the codebook. Then, the angle between e1 and v is θ=arccos(∥ν1∥), where ν1 is the first entry of v and ν1=e1Hv. We would like to change, or more precisely, reduce θ. The transformation may be

{tilde over (ν)}1=ρν1,





  
    
      
        v
        ~
      
      i
    
    =
    
      
        
          
            1
            -
            
              
                ρ
                2
              
              ⁢
              
                
                  
                  
                    v
                    1
                  
                  
                
                2
              
            
          
          
            1
            -
            
              
                
                
                  v
                  1
                
                
              
              2
            
          
        
      
      ⁢
      
        v
        i
      
    
  
  ,
  
    
      for
      ⁢
      
        
      
      ⁢
      i
    
    =
    2
  
  ,
  3
  ,
  ...




where ρ is some positive number greater than one and is dependent on the correlations and mobile speed, νi is the ith entry of v, and {tilde over (ν)}i is the ith entry of the transformed vector. Since ν1 is real and positive in the 3-bit codebooks of 802.16e, the norm operation in the three expressions above can be skipped for transforming 3-bit codebooks. To reduce implementation complexities, codebooks for several distinct values of ρ can be generated beforehand and stored at the mobile device. In operation mode, the mobile device selects the ρ and feeds back the index of the selected ρ. Additionally, the mobile device synthesizes the differential codebook from the stored vector codebook corresponding to the selected ρ. Since only the vector codebook is stored, the storage complexity is relatively low.

FIG. 10 is a flowchart illustrating a method 1000 of constructing a differential codebook for a wireless network according to an embodiment of the invention.
A step 1010 of method 1000 is to identify a codebook center. In one embodiment, step 1010 comprises defining a principal subspace spanned by columns of a unitary matrix, the principal subspace corresponding to an averaged beamforming direction. In a particular embodiment, the unitary matrix has a number of rows and a number of columns both equal to a number of transmit antennas of the wireless network. It should be mentioned here that equations (3)-(6) above (and equations (11)-(13) below) are for a differential codebook with the first Ns columns of identity matrix as the codebook center, where Ns is the number of data streams. If the differential codebook is already centered around the averaged beamforming direction then the operations in (3)-(6) and (11)-(13) are not needed. In that case, the receiver directly searches the differential codebook for the best {circumflex over (V)} in (7) and {circumflex over (V)}(t) in (14) for the transmitter.
A step 1020 of method 1000 is to transform a predefined codebook that is stored in a memory of a component of the wireless network. In one embodiment the predefined codebook is a vector codebook comprising a plurality of vector codewords uniformly distributed on a sphere, and step 1020 comprises selecting one of the vector codewords to be a center vector of the differential codebook and manipulating the predefined codebook such that the plurality of vector codewords concentrate around the center vector. As an example, manipulating the predefined codebook can comprise reducing an angle between the center vector and any other one of the plurality of vector codewords. In one embodiment, method 1000 further comprises rotating the predefined codebook, e.g., using Householder reflection or other methods.
Time/Frequency Domain Differentiation
As mentioned above, there exist strong correlations between beamforming matrixes in adjacent frequencies and frames, and this correlation can be exploited to reduce feedback overhead. We take the example of time domain correlation to depict the differential feedback scheme. It is the same as the polar cap scheme depicted above except that {circumflex over (Q)}1 is replaced by the fed back beamforming matrix for the previous frame.
Differential at subscriber station:

D=[{circumflex over (V)}(t−1){circumflex over (V)}⊥(t−1)]HV(t).  (11)

Quantization at subscriber station:




  
    
      
        D
        =
        
          
            
              arg
              ⁢
              
                
              
              ⁢
              max
            
            
              
                D
                i
              
              ∈
              
                C
                d
              
            
          
          ⁢
          
            
              
                
                
                  
                    D
                    H
                  
                  ⁢
                  
                    D
                    i
                  
                
                
              
              F
            
            .
          
        
      
    
    
      
        (
        12
        )
      
    
  




Beamforming matrix reconstruction at base station:

{circumflex over (V)}(t)=[{circumflex over (V)}(t−1){circumflex over (V)}⊥(t−1)]{circumflex over (D)}.  (13)

Beamforming at base station:

y=H{circumflex over (V)}(t)s+n.  (14)

In (11), the Nt×Ns V(t) and {circumflex over (V)}(t) are, respectively, the ideal and quantized beamforming matrixes for frame t and {circumflex over (V)}⊥(t−1) has the complementary columns orthogonal to {circumflex over (V)}(t−1) and can be computed from {circumflex over (V)}(t−1) by a Householder operation as in (9). In (12), Di is the codeword matrix of the differential codebook denoted by Cd and the quantization criterion maximizes the received signal power (although, as above, other criteria such as channel capacity or MSE can be also used).
The polar cap codebook can be used as the differential codebook for backward compatibility. An alternative to the transformation approach given in (10) is as follows. In order to lower the computational complexity, we concatenate polar cap vector codebook to build polar cap matrix codebook without the orth( ) operation. The concatenation operation is the Householder operation defined in the 802.16e standard. Let Cd(m,1) denote the polar cap codebook for m×1 whose codewords are vi for i=1, 2, . . . , Nm. The polar cap codebook for (m×1)×2 matrix denoted by Cd(m+1,2) is generated by




  
    
      
        
          
            V
            ⁡
            
              (
              
                i
                ,
                j
              
              )
            
          
          =
          
            
              [
              
                
                  
                    
                      
                    
                  
                  
                    
                      
                    
                  
                  
                    
                      
                    
                  
                  
                    0
                  
                
                
                  
                    
                      
                    
                  
                  
                    
                      Φ
                      
                        v
                        i
                      
                    
                  
                  
                    
                      
                    
                  
                  
                    0
                  
                
                
                  
                    
                      
                    
                  
                  
                    
                      
                    
                  
                  
                    
                      
                    
                  
                  
                    0
                  
                
                
                  
                    0
                  
                  
                    0
                  
                  
                    0
                  
                  
                    1
                  
                
              
              ]
            
            ⁡
            
              [
              
                
                  
                    1
                  
                  
                    0
                  
                
                
                  
                    0
                  
                  
                    
                      
                    
                  
                
                
                  
                    0
                  
                  
                    
                      v
                      j
                    
                  
                
                
                  
                    0
                  
                  
                    
                      
                    
                  
                
              
              ]
            
          
        
        ,
      
    
    
      
        (
        15
        )
      
    
  




where V(i, j) is the codeword of Cd(m+1,2) for i, j=1, 2, . . . , Nm and Φvi is the m×n Householder matrix of vi defined in the 802.16e standard. Note that if the system only has four transmit antennas, the 4×3 beamforming matrix may be represented by the complementary 4×1 vector orthogonal to the beamforming matrix and the polar cap vector codebook may be used directly without concatenation.

Simulation Results
FIGS. 11-13 illustrate link level results according to embodiments of the invention. FIG. 11 and FIG. 13 show results for a low correlation case and FIG. 12 shows results for a high correlation case. The channel model is ITU Pedestrian B. The base station has four transmit antennas and the subscriber station has two receive antennas. The antenna spacings of the base station transmit antennas are four wavelengths and 0.5 wavelength for practical mounting with low and high correlations. One data stream is transmitted. Modulation and code rate are 64QAM and 0.5. Test results for four codebooks are shown: (1) the conventional 802.16e codebook; (2) the DFT codebook; (3) Intel's transformed codebook; and (4) the differential codebook according to an embodiment of the invention. The DFT codebook is proposed by Samsung to 802.16m.
For both low and high correlation cases, the differential codebook according to embodiments of the invention achieves almost the same performance as the transformed codebook, which has the best quantization performance. For the same performance, the differential codebook uses 4-bit feedback while the other codebooks use 6-bit feedback. Therefore, the differential codebook according to embodiments of the invention reduces complexity by 50 percent and still achieves the same quantization performance. The overhead of the 4-bit differential is 50 percent less because (6 bits−4 bits)/6 bits=50 percent. The throughput comparison in FIG. 13 demonstrates that the differential codebook according to embodiments of the invention outperforms the legacy 802.16e codebook by 0.8 dB of signal to noise ratio (SNR) and 50 percent of overhead.
Although the invention has been described with reference to specific embodiments, it will be understood by those skilled in the art that various changes may be made without departing from the spirit or scope of the invention. Accordingly, the disclosure of embodiments of the invention is intended to be illustrative of the scope of the invention and is not intended to be limiting. It is intended that the scope of the invention shall be limited only to the extent required by the appended claims. For example, to one of ordinary skill in the art, it will be readily apparent that the MIMO beamforming methods and the related structures discussed herein may be implemented in a variety of embodiments, and that the foregoing discussion of certain of these embodiments does not necessarily represent a complete description of all possible embodiments.
Additionally, benefits, other advantages, and solutions to problems have been described with regard to specific embodiments. The benefits, advantages, solutions to problems, and any element or elements that may cause any benefit, advantage, or solution to occur or become more pronounced, however, are not to be construed as critical, required, or essential features or elements of any or all of the claims.
Moreover, embodiments and limitations disclosed herein are not dedicated to the public under the doctrine of dedication if the embodiments and/or limitations: (1) are not expressly claimed in the claims; and (2) are or are potentially equivalents of express elements and/or limitations in the claims under the doctrine of equivalents.

## Claims

1. A MIMO beamforming method comprising:
receiving at a base station of a wireless network quantized information about an averaged beamforming direction;
computing the averaged beamforming direction using the quantized information;
receiving a quantization index corresponding to a differential matrix representing a difference between an ideal beamforming matrix and the averaged beamforming direction;
retrieving the differential matrix;
combining the differential matrix with the computed averaged beamforming direction, thereby constructing a beamforming matrix; and
transmitting a data vector that has been weighted by the beamforming matrix.

2. The MIMO beamforming method of claim 1 wherein:
retrieving the differential matrix comprises:
generating a differential codebook; and
selecting the differential matrix from the differential codebook.

3. The MIMO beamforming method of claim 2 wherein:
generating the differential codebook comprises performing a transform on a non-differential codebook that is stored in a memory device at the base station.

4. The MIMO beamforming method of claim 1 wherein:
constructing the beamforming matrix comprises:
generating a second matrix comprising a set of complementary columns orthogonal to the averaged beamforming direction; and
combining the differential matrix with the second matrix as well as with the averaged beamforming direction.

5. The MIMO beamforming method of claim 4 wherein:
constructing the beamforming matrix comprises computing {circumflex over (V)}=[{circumflex over (Q)}1{circumflex over (Q)}3]{circumflex over (D)}, where {circumflex over (V)} is the beamforming matrix that is constructed, {circumflex over (Q)}1 is the computed averaged beamforming direction, {circumflex over (Q)}3 is the second matrix, and {circumflex over (D)} is the differential matrix.