# Patent

## Title
Multiple-input, multiple-output telecommunications schemes

## Abstract

This disclosure concerns beam-forming vectors and beam-forming matrices for multiple-input, multiple-output (MIMO) communications systems. These systems, from the method perspective, provide, according to one embodiment, a method of feeding back, to a transmitter from a receiver in a MIMO communications system, at least part of a beam-forming vector of a beam-forming matrix, wherein: the vector relates to a spatial stream of the MIMO system; the vector comprises a series of elements; each element specifies a beam-forming weight for a respective transmit antenna of the transmitter; and the method comprises: calculating a scaling factor that would scale a first element of the vector to a value of one; scaling the other element or elements of the vector with the scaling factor; and feeding back the scaled other element or elements to the transmitter to inform a beam-forming process. These systems, from the method perspective, provide, according to another embodiment, a method of processing a beam-forming matrix, wherein: the beam-forming matrix is for adjusting signals that are to issue from the transmit antennae of a MIMO communications system; the MIMO communications system comprises a transmitter and a receiver; the beam-forming matrix is capable of being decomposed into a series of beam-forming vectors; each beam-forming vector relates to a spatial stream of the MIMO system; each beam-forming vector comprises a series of elements; each element specifies a beam-forming weight for a transmit antenna of the transmitter; and the method comprises: obtaining a beam-forming matrix in which the elements are quantized; and orthogonalizing the beam-forming vectors with respect to one another.

## Background
CROSS REFERENCE TO RELATED APPLICATION
This application is a continuation-in-part application of pending U.S. patent application Ser. No. 13/178,342, filed Jul. 7, 2011.


FIELD OF THE INVENTION
The invention relates to the field of digital telecommunications. More particularly, the invention relates to multiple-input, multiple output (MIMO) telecommunications systems.
BACKGROUND OF THE INVENTION
A MIMO system is one in which a transmitter employs multiple antennae for transmitting data to a receiver. The data may consist of multiple data streams. The signal transmitted at each transmitter antenna is a linear combination of data streams. The receiver that is intended to receive the data streams and recover the data may have more than one reception antenna such that there is receive diversity as well as transmit diversity. Generally speaking, a system can still be described as a special case of MIMO [also known as MISO] when there is in practice one reception antenna working with signals from multiple transmitter antennae.
MIMO is used in the IEEE 802.11 standards to enhance the data rate provided by the physical layer in a transmission link between a transmitter and a receiver. Beam-forming feedback is a critical step to enable the transmitter to optimise MIMO transmission to maximise the data rate of the transmission link to the receiver. In explicit beam-forming feedback, the receiver informs the transmitter about the preferred beam-forming matrix. The beam-forming matrix is sometimes known as the spatial mapping matrix. The beam-forming matrix has a number of columns equal to the number Ns of spatial streams in the MIMO scheme and a number Nt of rows equal to the number of transmit antennae in the MIMO scheme. More precisely, there is a row for each transmitter antenna and a column for each spatial stream. The columns are often referred to as beam-forming vectors since each column provides the set of complex-valued, beam-forming weights that are to be applied to the transmitter antennae for the spatial stream to which the column in question corresponds.
In MIMO schemes, consideration must be given to how to quantise the beam-forming matrix and represent the beam-forming matrix with a limited number of bits.
A natural solution to quantise the beam-forming matrix is to use Nb bits to quantise the real part and another Nb bits to quantise the imaginary part of each of its elements. Thus, for a beam-forming matrix with dimension Nt×Ns, the beam-forming feedback requires 2×Nb×Nt×Ns bits per matrix. This type of direct quantisation will be referred to hereinafter as “Cartesian quantisation”.
SUMMARY OF THE INVENTION
According to one embodiment of the invention there is provided, a method of feeding back, to a transmitter from a receiver in a MIMO communications system, at least part of a beam-forming vector of a beam-forming matrix The vector relates to a spatial stream of the MIMO system and the vector comprises a series of elements. Each element specifies a beam-forming weight for a respective transmit antenna of the transmitter. According to the method, a scaling factor is calculated that would scale a first element of the vector to a value of one. The other element or elements of the vector are scaled with the scaling factor. The scaled other element or elements are fed back to the transmitter to inform a beam-forming process.
In certain embodiments, element of the vector having the largest modulus is the element that is selected to be said first element.
In certain embodiments, the position that the first element occupies within the vector is fed back to the transmitter.
In certain embodiments, the position that the first element occupies within the vector is predetermined and known to the transmitter.
In certain embodiments, the scaled other element or elements are quantised prior to feeding them back to the transmitter.
According to another embodiment of the invention, there is provided a method of processing a beam-forming matrix. The beam-forming matrix is for adjusting signals that are to issue from the transmit antennae of a MIMO communications system. The MIMO communications system comprises a transmitter and a receiver. The beam-forming matrix is capable of being decomposed into a series of beam-forming vectors. Each beam-forming vector relates to a spatial stream of the MIMO system and each beam-forming vector comprises a series of elements. Each element specifies a beam-forming weight for a transmit antenna of the transmitter. According to the method, there is obtained a beam-forming matrix in which the elements are quantised. The beam-forming vectors in that matrix are then orthogonalised with respect to one another.
In certain embodiments, a Gram Schmidt process is used to orthogonalise the beam-forming vectors with respect to one another.
In certain embodiments, the transmitter of the MIMO system has multiple antennae but the receiver has a single antenna. In other embodiments, the both the transmitter and the receiver have multiple antennae, but not necessary the same number.
The invention can also be embodied as apparatus configured to perform one or more of the methods of the invention.



BRIEF DESCRIPTION OF THE FIGURES
By way of example only, certain embodiments of the invention will now be described by reference to the accompanying drawings, in which:
FIG. 1 is a block diagram schematically illustrating a MIMO communications system;
FIG. 2 is a flow chart illustrating a process for deriving beam-forming matrices; and
FIG. 3 is a flow chart illustrating a process for orthogonalising quantised beam-forming matrices.



DETAILED DESCRIPTION
FIG. 1 shows a transmitter 10 and a receiver 12 sustaining a MIMO data link. The transmitter 10 has three transmit antennae 14, 16, 18 and the receiver 12 has two receive antennae 20 and 22.
Amongst other parts, the transmitter 10 includes a digital data processor 24. The processor 24 is tasked with, amongst other things, the following:

    
    
        deriving from a data signal to be transmitted the spatial streams that are to be sent from each of the antennae 14, 16, 18.
        decompressing beam-forming matrices fed back by the receiver 12.
        orthogonalising beam-forming matrices fed back by the receiver 12.
        applying the weights specified in the beam-forming matrices to the spatial streams that are to be transmitted in order to implement the beam-forming requested by the receiver 12.
    
    


Amongst other parts, the receiver 12 includes a digital data processor 26. The processor 26 is tasked with, amongst other things, the following:
recovering from the signals received at the receive antennae 20 and 22 an estimate of the data that was used to generate the spatial streams in the transmitter.

    
    
        calculating the beam-forming weights that should be applied at the next update to the set of transmitter antennae 14, 16, 18 for each of the spatial streams that are being sent.
    
    


It will be readily apparent to the skilled person that the transmitter 10 and the receiver 12 include many more elements than those described above. Only those elements of the transmitter 10 and receiver 12 that are useful for describing embodiments of the invention appear in the discussions in this document.
The manner in which the processor 26 calculates the beam-forming weights will now be described.
In the MIMO approach currently employed with the existing 802.11 standards, a set of beam-forming weights is derived for each spatial stream that is to be transmitted by the transmitter 10. Each such set is conventionally known as a beam-forming vector. The elements in a beam-forming vector are the beam-forming weights that are to be applied to the transmit antennae for the transmission of the corresponding spatial stream. Each element in a beam-forming vector is a complex-valued beam-forming weight for a corresponding one of the transmit antennae. The beam forming vectors are column vectors by convention and in the case of the exemplary arrangement shown in FIG. 1, these vectors are three elements long (one element for each of antennae 14, 16 and 18). The beam-forming vectors for the set of spatial streams in use can be collected together to create a beam-forming matrix, in which the columns are the beam-forming vectors and each row relates to a respective one of the transmit antennae such that each row therefore contains the set of beam-forming weights that are used at a particular transmit antennae for the different spatial streams.
The processor 26 is arranged to recalculate the beam-forming matrix periodically and to feed the updated versions of that matrix back to the transmitter 10 so that the processor 24 can refresh the beam-forming weights that are used for the antennae 14, 16 and 18 for the different spatial streams that are presently in use.
We consider the applications where beam-forming performance is independent of the phase and magnitude of the beam-forming vectors relative to one another. To put it another way, it is only the relative—not the absolute—magnitudes and phases of the complex-valued elements within a beam-forming vector that are important. Therefore, it is possible and acceptable to add the same phase to the phases of all elements of a beam-forming vector. It is also possible and acceptable to multiply the magnitude of all elements of a beam-forming vector by the same factor. Using these transformations, it is possible to process a beam-forming vector to transform it such that one of its elements is the real number “+1”.
The raw beam forming matrix can be denoted V=[vi,j]εCNt×Ns. That is to say, a matrix of complex numbers, having Nt rows and Ns columns. Having derived a raw beam-forming matrix, the processor 26 can use the process outlined in FIG. 2 to transform the matrix such that each column contains an element that is the real number “+1”.
In step S1 of FIG. 2, the processor 26 calculates a diagonal matrix D, where:




  
    D
    =
    
      diag
      ⁡
      
        (
        
          [
          
            d
            j
          
          ]
        
        )
      
    
  
  ,
  
    j
    =
    
      1
      ⁢
      
        
      
      ⁢
      ...
      ⁢
      
        
      
      ⁢
      
        N
        s
      
    
  
  ,
  
    
      d
      j
    
    =
    
      
        v
        
          
            ma
            ⁢
            
              
            
            ⁢
            x
          
          ,
          j
        
        *
      
      
        
        
          v
          
            
              ma
              ⁢
              
                
              
              ⁢
              x
            
            ,
            j
          
        
        
      
    
  
  ,
  
    
      v
      
        
          ma
          ⁢
          
            
          
          ⁢
          x
        
        ,
        j
      
    
    =
    
      
        max
        
          i
          =
          
            1
            ⁢
            
              
            
            ⁢
            ...
            ⁢
            
              
            
            ⁢
            
              N
              i
            
          
        
      
      ⁢
      
        
        
          v
          
            i
            ,
            j
          
        
        
      
    
  




j is the column index of the matrix D.

vmax,j is the element in column j having the highest modulus out of the elements in that particular column.
In step S2, the processor 26 transforms V into Vscale by performing the operation:

Vscale=V·D 

Diagonal matrices are well understood. See, for example, Chapter 17 of “Mathematical Methods for Science Students”, Second Edition, Stephenson G, Longman Scientific & Technical.
After this transformation, one element in each column vector of the transformed beam-forming matrix Vscale will have the value of “+1”. In the jth column vector of Vscale, the “+1” appears at the position occupied by vmax,j in the jth column of V. These “+1” values do not need to be fed back to the transmitter 10 in an explicit way. Instead, an index is sent back to the transmitter for each column vector of Vscale to represent the position of this 1 inside that vector. As both the transmitter 10 and the receiver 12 know the number of transmit antennae 14, 16, 18, the minimum number Np of bits that needs to be used to represent this index is variable depending on the number Nt of transmit antennae, as tabulated in the following table.


















Nt
2
3, 4
5, 6, 7, 8



Np
1
2
3










Taking again the exemplary scheme of FIG. 1, it will be apparent that for that scenario Np=2 since Nt=3. If, in the jth column vector of the version of V describing the FIG. 1 scenario, the entry with the highest modulus appears at, for example, row i=2, then the index for that column of Vscale will be the binary number 10 (in the simple MSB to LSB convention, although other conventions could of course be used).
This indexing scheme is of course extensible to higher Np and Nt.
In step S3, the indices for the column vectors of Vscale are calculated by the processor 26 using the methodology described above.
In step S4, the processor 26 arranges for the receiver 12 to feed back to the transmitter over the air for each column vector of Vscale the index determined in step S3 and the elements of that vector other than the one specified by the index.
Thus, with the method explained by reference to FIG. 2, the number of bits needed to encode a beam-forming matrix is reduced from the 2×Nb×Nt×Ns of V to the (2×Nb×(Nt−1)×Ns)+(Np×Ns) of Vscale.
This transformation from V to Vscale effectively uses different scaling for each column vector, since vmax,j is calculated for each column j of V. In other words, in creating Vscale, the elements within any given column of V are scaled down by the modulus of the element in that column of V that has the highest modulus. By reducing the moduli of the matrix elements in this way, the quantisation accuracy for those elements is helpfully increased without altering the number of bits Nb that is used for the quantisation.
Optimally, a beam-forming matrix will have orthogonal column vectors. This is the case with beam-forming matrices obtained through Singular Value Decomposition [SVD]. However, the quantisation process performed in the receiver 12 (over Nb bits, it will be recalled) will destroy the orthogonality. The transmitter 10 can therefore re-orthogonalise the quantised beam-forming matrix. This can further improve the beam-forming feedback performance, which is useful when the number of column vectors in the beam-forming matrix is greater than one.
FIG. 3 shows a process that processor 24 employs to re-orthogonalise the matrices Vscale that it periodically receives.
In step S5 of FIG. 3, the processor 24 receives an updated version of Vscale from the receiver 12.
In step S6, the processor 24 executes a Gram-Schmidt process to re-othogonalise the version of Vscale received in step S5. This Gram-Schmidt algorithm is as follows.
It is assumed that the quantised beam-forming matrix is Vq and that Vq(:,k) denotes the kth column vector. We define U(:,1)=Vq(:,1), and the iterative Gram-Schmidt process can be expressed as:



  
    
      U
      ⁡
      
        (
        
          :
          
            ,
            k
          
        
        )
      
    
    -
    
      
        ∑
        
          n
          =
          1
        
        
          k
          -
          1
        
      
      ⁢
      
        
          
            
              
                V
                q
                H
              
              ⁡
              
                (
                
                  :
                  
                    ,
                    k
                  
                
                )
              
            
            ·
            
              U
              ⁡
              
                (
                
                  :
                  
                    ;
                    n
                  
                
                )
              
            
          
          
            
              
                U
                H
              
              ⁡
              
                (
                
                  :
                  
                    ,
                    k
                  
                
                )
              
            
            ·
            
              U
              ⁡
              
                (
                
                  :
                  
                    ,
                    n
                  
                
                )
              
            
          
        
        ·
        
          U
          ⁡
          
            (
            
              :
              
                ,
                n
              
            
            )
          
        
      
    
  




  
    
      
        V
        gs
      
      ⁡
      
        (
        
          :
          
            ,
            k
          
        
        )
      
    
    =
    
      
        U
        ⁡
        
          (
          
            :
            
              ,
              k
            
          
          )
        
      
      
        
          
            
              U
              H
            
            ⁡
            
              (
              
                :
                
                  ,
                  k
                
              
              )
            
          
          ·
          
            U
            ⁡
            
              (
              
                :
                
                  ,
                  k
                
              
              )
            
          
        
      
    
  



The matrix Vgs then becomes an orthogonal matrix.
More detail about the Gram-Schmidt process can be found in “Matrix Computations”, Third Edition, 1996, Golub G H et al, Johns Hopkins University Press. Other solutions to achieving this re-orthogonalisation will be apparent to the skilled person, for example Householder transformations and Givens rotations.
In the embodiment of a MIMO scheme described above with reference to FIGS. 1 to 3, the element with the largest modulus in each column of V is identified and is forced to become the real number “+1”. In a variation of that scheme, the index of the element that is to be forced to “+1” in each column of V is predetermined for each column. For example, the first element of each column could be forced to “+1”, in which case instead of




  
    D
    =
    
      diag
      ⁡
      
        (
        
          [
          
            d
            j
          
          ]
        
        )
      
    
  
  ,
  
    j
    =
    
      1
      ⁢
      
        
      
      ⁢
      ...
      ⁢
      
        
      
      ⁢
      
        N
        s
      
    
  
  ,
  
    
      d
      g
    
    =
    
      
        v
        
          
            ma
            ⁢
            
              
            
            ⁢
            x
          
          ,
          j
        
        *
      
      
        
        
          v
          
            
              ma
              ⁢
              
                
              
              ⁢
              x
            
            ,
            j
          
        
        
      
    
  
  ,
  
    
      v
      
        
          ma
          ⁢
          
            
          
          ⁢
          x
        
        ,
        j
      
    
    =
    
      
        max
        
          i
          =
          
            1
            ⁢
            
              
            
            ⁢
            ...
            ⁢
            
              
            
            ⁢
            
              N
              
                t
                ⁢
                
                  
                
              
            
          
        
      
      ⁢
      
        
        
          v
          
            i
            ,
            j
          
        
        
      
    
  




we would have:





  
    D
    =
    
      diag
      ⁡
      
        (
        
          [
          
            d
            j
          
          ]
        
        )
      
    
  
  ,
  
    j
    =
    
      1
      ⁢
      
        
      
      ⁢
      ...
      ⁢
      
        
      
      ⁢
      
        N
        s
      
    
  
  ,
  
    
      d
      j
    
    =
    
      
        v
        
          i
          ,
          j
        
        *
      
      
        
        
          v
          
            1
            ,
            j
          
        
        
      
    
  




In this alternative scenario, the indices would not need to be computed, nor sent back to the transmitter 10, since the transmitter would always know that it is the first element of each column vector of Vscale that has been forced to “+1”. Of course, in this embodiment, it could no longer be guaranteed that, within a given column vector of Vscale, the elements where i>1 have been scaled down by the largest modulus in that vector as it appears in V, with the result that the improvement in quantisation accuracy could not be guaranteed.
In yet another alternative scenario, each column vector would be scaled by the magnitude of its biggest element and rotated such that one of its elements (for example the first element of each vector) is real valued rather than complex.
The discussions above have followed the convention where the columns of the beam-forming matrix denote the spatial streams and the rows denote the transmit antennae. Of course, this could be reversed, with the rows representing the spatial streams and the columns representing the transmitters—in which case, the modifications required to render the foregoing techniques operational will be readily apparent to the skilled reader.

## Claims

1. A method of feeding back, to a transmitter from a receiver in a multiple-input, multiple output (MIMO) communications system, at least part of a beam-forming vector of a beam-forming matrix, wherein:
the vector relates to a spatial stream of the MIMO system;
the vector comprises a series of elements;
each element specifies a beam-forming weight for a respective transmit antenna of the transmitter;
and the method comprises:
calculating a scaling factor that would scale a selected element of the vector to a value of one;
scaling the other element or elements of the vector with the scaling factor;
feeding back the scaled other element or elements to the transmitter to inform a beam-forming process; and
feeding back to the transmitter the position that the selected element occupies within the vector.

2. A method of feeding back, to a transmitter from a receiver in a multiple-input, multiple output (MIMO) communications system, at least part of a beam-forming vector of a beam-forming matrix, wherein:
the vector relates to a spatial stream of the MIMO system;
the vector comprises a series of elements;
each element specifies a beam-forming weight for a respective transmit antenna of the transmitter;
and the method comprises:
selecting as a selected element of the vector that element of the vector having the largest modulus
calculating a scaling factor that would scale the selected element of the vector to a value of one;
scaling the other element or elements of the vector with the scaling factor; and
feeding back the scaled other element or elements to the transmitter to inform a beam-forming process.

3. The method of claim 2, further comprising feeding back to the transmitter the position that the selected element occupies within the vector.

4. The method of claim 1, further comprising quantising the scaled other element or elements prior to feeding them back to the transmitter.

5. A receiver for a MIMO communications system, the receiver configured to feed back, to a transmitter of the MIMO communications system, at least part of a beam-forming vector of a beam-forming matrix, wherein:
the vector relates to a spatial stream of the MIMO system;
the vector comprises a series of elements;
each element specifies a beam-forming weight for a respective transmit antenna of the transmitter;
and the receiver comprises a processor configured to:
calculate a scaling factor that would scale a selected element of the vector to a value of one;
scale the other element or elements of the vector with the scaling factor;
feed back the scaled other element or elements to the transmitter to inform a beam-forming process; and
feed back to the transmitter the position that the selected element occupies within the vector.

6. The apparatus of claim 5, wherein the processor is further configured to select to be said selected element that element of the vector having the largest modulus.

7. The apparatus of claim 5, wherein the processor is further configured to quantise the scaled other element or elements prior to feeding them back to the transmitter.