# Patent

## Title
Method and system for subspace beamforming for near capacity multiple input multiple output (MIMO) performance

## Abstract

Aspects of a system for subspace beamforming for near capacity MIMO performance may include a MIMO transmitter that computes one or more rotation angle values (θf) based on a channel estimate matrix (H). In instances when each rotation angle is computed based on a Euclidean distance criterion, each value θf may also be computed based on a computed Euclidean distance. Alternatively, in instances when each rotation angle is computed based on a bit error rate (BER) criterion, each value θf may also be computed based on a signal noise power level (N0). A plurality of spatial stream signals (xi) may be generated utilizing one or more constellation types. The constellation map for each constellation type may be rotated based on a corresponding value θf. A plurality of transmit chain signals (txi) may be generated based on the signals xi and transmitted via a communication medium characterized by matrix H.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS/INCORPORATION BY REFERENCE
This application makes reference, claims priority to, and claims the benefit of U.S. Application Ser. No. 61/023,732 filed Jan. 25, 2008 and U.S. Application Ser. No. 61/096,405 filed Sep. 12, 2008, which is hereby incorporated herein by reference in its entirety.
This application makes reference to U.S. application Ser. No. 11/494,962 filed on Jul. 28, 2006, which is hereby incorporated herein by reference in its entirety.


FIELD OF THE INVENTION
Certain embodiments of the invention relate to wireless communications. More specifically, certain embodiments of the invention relate to a method and system for subspace beamforming for near capacity multiple input multiple output (MIMO) performance.
BACKGROUND OF THE INVENTION
In multiple input multiple output (MIMO) wireless systems, multiple data streams may be transmitted simultaneously using a plurality of transmitting antennas. A MIMO receiver may utilize a plurality of receiving antennas to decouple, and detect individual data streams. Two predominant methods for MIMO transmission include singular value decomposition (SVD), and layered space-time (LST) processing, also known as successive interference cancellation (SIC).
SVD may use beamforming in conjunction with a transmitter antenna array and receiver antenna array to create virtual channels, or eigen-channels, through which multiple data streams may be sent without interfering with one another. LST/SIC may use receiver antennal array processing to detect the multiple data streams, one stream at a time. For each detection “layer,” the interference from yet undetected streams may be nulled out, while the interference from already detected streams may be cancelled, or subtracted, out.
The eigen-channels in SVD may have highly unequal signal to noise ratios (SNR), depending on the eigen-spread of the MIMO channel matrix. SVD may also rely upon adaptive modulation, or adaptive bit loading, to achieve greater data transfer rates for eigen-channels associated with higher SNR values, while simultaneously supporting lower data transfer rates for eigen-channels associated with lower SNR values. SVD may also suffer performance loss, by not achieving the peak theoretical data transfer rate aggregated among the eigen-channels when a broad range of modulation types are not available. For example, if a maximum data transfer rate associated with an eigen-channel requires a 1024 QAM modulation type, the maximum data transfer rate may not be achievable if the required modulation type is not available to be utilized.
LST/SIC approaches may suffer performance losses as a result of error propagation. For example, if a current layer is detected in error, the error may propagate to other layers increasing the probability that subsequent layers may also be detected in error. LST/SIC may require stream re-ordering to detect data streams with higher SNR values first to minimize error propagation. Some methods, such as vertical LST (VLST) may provide error protection through coding of each data stream. Based on the coding, decisions may be made subsequent to decoding to subtract out interference.
Alternatively, preceding based on dirty paper theory, for example Tomlinson-Harashima precoding (THP), may be utilized to pre-cancel interference at the transmitter without requiring the signals to be transmitted with greater levels of transmitted radiated power. The THP approach may require channel knowledge at the transmitter.
Geometric mean decomposition (GMD) may be based on beamforming and LST/SIC at a transmitter, by utilizing THP for example, or based on LST/SIC at a receiver, by utilizing VLST for example. SNRs for each of a transmitted plurality of data streams may be about equal when utilizing GMD. Consequently, adaptive bit loading may not be required as may be the case with SVD. GMD may also not require reordering of data streams as may be the case with LST/SIC.
While a combination of GMD beamforming at a MIMO transmitter and VLST at a MIMO receiver may be utilized to achieve desirable performance levels within theoretical limitations, the latency and/or complexity associated with implementation of successive interference cancellation (SIC) methods may impose limitations on the design of MIMO receivers. IEEE 802.11 specifications may comprise requirements for structures utilized for coding data transmitted via a wireless communication channel, and for packet detection delay limits that establish a time duration between a time instant when one or more signals are received by a MIMO receiver, and a subsequent time instant when data transmitted via the one or more signals is detected at the MIMO receiver.
A MIMO transmitter may concurrently transmit a plurality of NTX signals, xi, from a plurality of NTX transmitting antennas. The plurality of transmitted signals (xi) may propagate across a communication medium, which is characterized by a channel estimate matrix (H), and be received at a MIMO receiver as a plurality of NRX signals, (yi) via a plurality of NRX receiving antennas. Each signal xi may be generated based on data from a corresponding spatial stream or space-time stream. Each of the transmitted signals xi may comprise a sequence of symbols from the corresponding spatial stream (or space-time stream), each of which represents one or more data bits (the data may be encoded by utilizing an error detection and/or correction coding technique such as binary convolutional coding (BCC)). The number of bits represented by each symbol is determined based on a modulation type. The symbol may be generated by selecting a constellation point within a constellation map. The number of constellation points in the constellation map is also determined based on the constellation map. Typically the number of constellation points in the constellation map is equal to 2b(sym), where b(sym) represents the number of bits represented by each symbol. For example, in a 64-QAM (quadrature amplitude modulation) constellation map, there are 64 constellation points, where each constellation point represents a distinct combination of 6 bit values (with binary values ranging from 000000 to 111111). The variable xi may represent the value of each signal transmitted from the ith transmitting antenna at a given time instant. Each transmitting antenna may utilize a distinct modulation type when transmitting signals xi or one or more transmitting antenna may utilize the same modulation type. Symbol values xi transmitted by each transmitting antenna may be determined independently from symbol values concurrently transmitted by other transmitting antennas.
The received signals yi may also include noise components (ni) which reflects signal noise induced during signal propagation across the communication medium. The relationship between the vector of signals xi transmitted by the MIMO transmitter (X) and the vector of signals yi received by the MIMO receiver (Y) may be represented as follows:

Y=H X+N   [1]

The MIMO receiver computes the channel estimate matrix H, either based on preamble information received in conjunction with the received signals xi or based on information received from the MIMO transmitter. The MIMO receiver then attempts to determine estimated values ({circumflex over (x)}i), which likely reflect the values xi transmitted by the MIMO transmitter. A detector in a MIMO receiver determines the estimated values {circumflex over (x)}i by selecting constellation points from among the 2b(sym) constellation points in the constellation map for xi (CM), which provide the greatest probability that xi={circumflex over (x)}i. The relationship may be represented as follows:




  
    
      
        
          
            x
            ^
          
          i
        
        =
        
          
            
              arg
              ⁢
              
                
              
              ⁢
              max
            
            
              
                
                  x
                  ^
                
                i
              
              ∈
              
                C
                M
              
            
          
          ⁢
          
            P
            ⁡
            
              (
              
                
                  
                    
                      x
                      ^
                    
                    i
                  
                  ⁢
                  
                    
                  
                  ⁢
                  is
                  ⁢
                  
                    
                  
                  ⁢
                  observed
                
                ❘
                
                  
                    x
                    i
                  
                  ⁢
                  
                    
                  
                  ⁢
                  was
                  ⁢
                  
                    
                  
                  ⁢
                  sent
                
              
              )
            
          
        
      
    
    
      
        [
        2
        ]
      
    
  




A detector at a MIMO receiver, which determines values {circumflex over (x)}i that satisfy equation [2], is referred to as a maximum likelihood (ML) detector.

The computational complexity of ML detection may grow exponentially with the number of spatial streams (NSS) and may be represented as




  
    
      ∏
      
        i
        =
        1
      
      NSS
    
    ⁢
    
      2
      
        b
        ⁡
        
          (
          
            sym
            i
          
          )
        
      
    
  
  ,




where





  
    ∏
    
      i
      =
      1
    
    NSS
  
  ⁢
  
    j
    ⁡
    
      (
      i
      )
    
  




represents the multiplicative product of values j(i) for values of i from 1 to NSS and b(symi) represents the number of bits represented by symbols in the ith spatial stream. Due to computational complexity, it may be impractical to implement ML detection in some conventional systems for values NSS>2 for 64-QAM. Furthermore, the computational task of computing beamforming factors at a MIMO transmitter to be utilized with ML detection at a MIMO receiver may be non-deterministic polynomial-time hard (NP-hard).

Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.
BRIEF SUMMARY OF THE INVENTION
A system and/or method for subspace beamforming for near capacity multiple input multiple output (MIMO) performance, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings.



BRIEF DESCRIPTION OF SEVERAL VIEWS OF THE DRAWINGS
FIG. 1 is a diagram illustrating an exemplary MIMO transceiver system, which may be utilized in connection with an embodiment of the invention.
FIG. 2 is a diagram illustrating an exemplary MIMO communication system, in accordance with an embodiment of the invention.
FIG. 3 is a graph that shows exemplary rotation angle values computed based on a Euclidean distance criterion as a function of the condition number, in accordance with an embodiment of the invention.
FIG. 4A presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=0 dB for 4-QAM, in accordance with an embodiment of the invention.
FIG. 4B presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=2 dB for 4-QAM, in accordance with an embodiment of the invention.
FIG. 4C presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=4 dB for 4-QAM, in accordance with an embodiment of the invention.
FIG. 4D presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=6 dB for 4-QAM, in accordance with an embodiment of the invention.
FIG. 4E presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=8 dB for 4-QAM, in accordance with an embodiment of the invention.
FIG. 4F presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=10 dB for 4-QAM, in accordance with an embodiment of the invention.
FIG. 4G presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=12 dB for 4-QAM, in accordance with an embodiment of the invention.
FIG. 4H presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=14 dB for 4-QAM, in accordance with an embodiment of the invention.
FIG. 4I presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=16 dB for 4-QAM, in accordance with an embodiment of the invention.
FIG. 4J presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=18 dB for 4-QAM, in accordance with an embodiment of the invention.
FIG. 5A presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=6 dB for 16-QAM, in accordance with an embodiment of the invention.
FIG. 5B presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=8 dB for 16-QAM, in accordance with an embodiment of the invention.
FIG. 5C presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=10 dB for 16-QAM, in accordance with an embodiment of the invention.
FIG. 5D presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=12 dB for 16-QAM, in accordance with an embodiment of the invention.
FIG. 5E presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=14 dB for 16-QAM, in accordance with an embodiment of the invention.
FIG. 5F presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=16 dB for 16-QAM, in accordance with an embodiment of the invention.
FIG. 5G presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=18 dB for 16-QAM, in accordance with an embodiment of the invention.
FIG. 5H presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=20 dB for 16-QAM, in accordance with an embodiment of the invention.
FIG. 5I presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=22 dB for 16-QAM, in accordance with an embodiment of the invention.
FIG. 5J presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=24 dB for 16-QAM, in accordance with an embodiment of the invention.
FIG. 6A presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=12 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 6B presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=14 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 6C presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=16 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 6D presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=18 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 6E presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=20 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 6F presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=22 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 6G presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=24 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 6H presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=26 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 6I presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=28 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 6J presents a graph of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=30 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 7 is a flowchart of exemplary steps for lookup table (LUT) generation for minimum BER for ML detection, in accordance with an embodiment of the invention.
FIG. 8 is a flowchart of exemplary steps for lookup table (LUT) generation for minimum Euclidean distance for ML detection, in accordance with an embodiment of the invention.
FIG. 9 is a flowchart of exemplary steps for subspace beamforming for near capacity MIMO performance, in accordance with an embodiment of the invention.



DETAILED DESCRIPTION OF THE INVENTION
Certain embodiments of the invention relate to a method and system for subspace beamforming for near capacity multiple input multiple output (MIMO) performance. Subspace beamforming enables a MIMO transmitter to generate a vector of beamformed signals (xi) such that received signals (yi) may be processed at a MIMO receiver (using, for example, a filter) to generate signals (ri).
In one aspect of the invention, the beamformed signals (xi) may be generated based on Givens rotation angles (θf, where f is an index value), where the rotation angle θf is computed at the MIMO transmitter to maximize the Euclidean distance between the symbol values for signal pairs xj and xk (selected from the plurality of signals xi) within a given constellation map. Increasing the Euclidean distance between signal pairs xj and xk may increase the data-carrying capacity of RF channels (as measured in transmitted bits per second) in a MIMO communication system by increasing the probability that a ML detector in a MIMO receiver will decode filtered signals ri and generate estimated symbol values {circumflex over (x)}j and {circumflex over (x)}j such that {circumflex over (x)}j=xj and {circumflex over (x)}k=xk. The MIMO transmitter may communicate the computed rotation angle θf to the MIMO receiver.
In another aspect of the invention, the rotation angle θf may be computed at the MIMO transmitter to minimize a bit error rate (BER) for signals (yi) received at the MIMO receiver. The rotation angle may be computed as a function of the channel estimate matrix (H), the constellation type selected to generate symbol values for xj and xk and based on the noise power of the channel noise (N0). A singular value decomposition method may be utilized to compute a set of eigenvalues (si) based the matrix H. The ratio of eigenvalues sj and sk (which correspond to a pair of signals xj and xk) may enable computation of a condition number. The eigenvalues sj and sk and the noise power value N0 may enable the computation of a signal to noise ratio (SNR). In various embodiments of the invention, the rotation angle θf may be computed as a function of computed condition number and SNR values. The MIMO transmitter may communicate the computed rotation angle θf to the MIMO receiver.
FIG. 1 is a diagram illustrating an exemplary MIMO transceiver system, which may be utilized in connection with an embodiment of the invention. Referring to FIG. 1, there is shown a wireless transceiver station 302 and a plurality of antennas 332a . . . 332n. The wireless transceiver station 302 is an exemplary wireless communication device, which may be utilized as a MIMO transmitter and/or MIMO receiver. The plurality of antennas 332a . . . 332n may enable the wireless transceiver station 302 to transmit and/or receive signals, for example radio frequency (RF) signals, via a wireless communication medium. The wireless transceiver station 302 shown in FIG. 1 may also be depicted as comprising one or more transmitting antennas, which are coupled to the transmitter 316 and one or more receiving antennas, which may be coupled to the receiver 318 without loss of generality.
The exemplary wireless transceiver station 302 comprises a processor 312, a memory 314, an encoder 313 a modulator 315 a transmitter 316, a demodulator 317, a decoder 319, a receiver 318, a transmit and receive (T/R) switch 320 and an antenna matrix 322. The antenna matrix 322 may enable selection of one or more of the antennas 332a . . . 332n for transmitting and/or receiving signals at the wireless transceiver station 302. The T/R switch 320 may enable the antenna matrix 322 to be communicatively coupled to the transmitter 316 or receiver 318.
The transmitter 316 may enable the generation of signals, which may be transmitted via the selected antennas 332a . . . 332n. The encoder 313 may receive uncoded (or raw) data from the processor and/or memory and encode the data (for example, using binary convolutional coding (bcc)). The modulator 315 may receive encoded data from the encoder 313 and convert binary data to a data symbol representation based on one or more selected modulation types. The modulator 315 may generate one or more spatial streams to transmit the data symbols to the transmitter 316.
The receiver 318 may enable the processing of signals received via the selected antennas 332a . . . 332n. The demodulator 317 may receive data symbols from the receiver 318 and generate a binary representation of the received symbols based on one or more selected modulation types. The binary data may be sent to a decoder 319, which may decode the binary data to generate uncoded data. The uncoded binary data may be sent from the decoder 319 to the processor 312 and/or memory 314.
FIG. 2 is a diagram illustrating an exemplary MIMO communication system, in accordance with an embodiment of the invention. Referring to FIG. 2, there is shown a MIMO transmitter 102, a MIMO receiver 106, and a communications medium 104. The communications medium 104 may represent a wireless communications medium, for example. The MIMO transmitter 102 may comprise a beamforming block 108 and a plurality of antennas 112a, 112b, . . . , and 112n. The MIMO receiver 106 may comprise a plurality of antennas 126a, 126b, . . . , and 126n, a filter block 124 and a detector and decoder block 122.
The beamforming block 108 may receive a plurality of Nss spatial streams, x1, x2, . . . , and xNss and output a plurality of Ntx transmit chain signals tx1, tx2, . . . , and txNtx. Each of the spatial streams may be generated by a modulator block 315 shown in FIG. 1, which is commonly present in transmitter and/or transceiver systems. Such circuitry may include, for example, parsing circuitry, which distributes bits from a single input bit stream among the plurality of spatial streams, and modulator 315 circuitry, which utilizes a constellation associated with a modulation type to convert groups of bits within a given spatial stream into one of a plurality of signal levels. Each of the transmit chain signals may be generated by computing a weighted sum from the plurality of spatial streams, where the weights may be determined by the beamforming block 108. A time domain version of the signals tx1, tx2, . . . , and txNtx may be transmitted by a corresponding one of antennas 110a, 110b, . . . , and 110n. The transmitted signals may be represented by a column vector XT.
The antennas 126a, 126b, . . . , and 126n may receive signals, y1, t2, . . . , and yNrx, respectively, which propagate via the communication medium 104. The transmitted signal vector XT may be altered as it propagates through the communication medium 104. The altered signals may be received at the MIMO receiver as a received signal vector Y. The alteration of the transmitted signals may be represented by channel estimates h[i,j]. As shown in FIG. 2, the signal tx1 which is transmitted by antenna 112a and received at antenna 126a may be altered based on a channel estimate h[1,1]. The signal, tx2, which is transmitted by antenna 112b and received at antenna 126a may be altered based on a channel estimate h[1,2]. The signal, txNtx, which is transmitted by antenna 112n and received at antenna 126a may be altered based on a channel estimate h[1,Ntx].
The signal, tx1, which is transmitted by antenna 112a and received at antenna 126b may be altered based on a channel estimate h[2,1]. The signal, tx2, which is transmitted by antenna 112b and received at antenna 126b may be altered based on a channel estimate h[2,2]. The signal, txNtx, which is transmitted by antenna 112n and received at antenna 126b may be altered based on a channel estimate h[2,Ntx].
The signal tx1 which is transmitted by antenna 112a and received at antenna 126n may be altered based on a channel estimate h[Nrx,1]. The signal tx2 which is transmitted by antenna 112b and received at antenna 126n may be altered based on a channel estimate h[Nrx,2]. The signal txNtx which is transmitted by antenna 112n and received at antenna 126n may be altered based on a channel estimate h[Nrx,Ntx].
At the MIMO receiver 106, a plurality of signals, y1, y2, . . . , and yNrx, may be received by antennas 126a, 126b, . . . , and 126n. The signals received at each antenna may be represented by the following system of equations:

y1=h[1,1]·tx1+h[1,2]·tx2+ . . . +h [1,Ntx]·txNtx+n1 

y2=h[2,1]·tx1+h[2,2]·tx2+ . . . +h[2,Ntx]·txNtx+n2 

. . .

yNtx=h[Nrx, 1]·tx1+h[Nrx,2]·tx2+ . . . +h[Nrx,Ntx]·txNtx+nNrx   [3]

The received signals may be represented by a column vector Y.

The filter block 124 may process the received signals y1, y2, . . . , and yNrx and generate filtered signals r1, r2, . . . , and rNrx. The decoder block may enable the MIMO receiver 106 to generate a plurality of estimated signal values {circumflex over (x)}1, {circumflex over (x)}2, and {circumflex over (x)}Nss based on the filtered signals r1, r2, . . . , and rNrx. Each of the estimated symbol values {circumflex over (x)}i may be represented by one or more bits b1, b2, . . . , and bsym(i), wherein each binary bit value may be determined by the detector and decoder block 122.
The decoder 106 may comprise functionality not shown in FIG. 2, which is commonly present in receiver and/or transceiver systems. Such circuitry may include, for example, equalizer circuitry, which adjusts signal levels for received signals based on the plurality of channel estimate values h[i,j], demodulator 317 circuitry, which utilizes a constellation associated with a modulation type to convert signal levels into one or more bit values, and interleaver circuitry, which merges bits from a plurality of spatial streams and/or received RF chains, into a single bit stream.
In various embodiments of the invention, the transmitter 102 shown in FIG. 2 may be a component in a transceiver station (such as shown in FIG. 1). The receiver portion of the transceiver may enable the reception of signals (from the receiver 106 shown in FIG. 2) from which a channel estimate matrix (H) may be computed. The beamforming block 108 may utilize coefficient values h[i,j] from the channel estimate matrix when generating the signals tx1, tx2, . . . , and txNtx.
The receiver 106 shown in FIG. 2 may also be a component in a transceiver station. The receiver 106 may enable the reception of signals y1, y2, . . . , and yNrx from which a channel estimate matrix (H) may be computed. The filter 124 and detector and decoder block 122 may utilize the channel estimate matrix when processing received signals y1, y2, . . . , and yNrx and/or filtered signals r1, r2, . . . , and rNrx. The transmitter portion of the transceiver station may enable transmission of signals (to the transmitter 102 shown in FIG. 2).
In various embodiments of the invention, an SVD representation of the channel estimate matrix may be generated as follows:

H=U S V1H   [4]

where S is a diagonal singular matrix of eigenvalues of H, U a matrix of “output” basis vectors of H and V1 is a matrix of “input” basis vectors of H. V1H represents a complex conjugate transform version of the matrix V1. In an exemplary 4×4 MIMO communication system, in which Ntx=4 at the MIMO transmitter and Nrx=4 at the MIMO receiver, the matrix S may comprise a set of four (4) eigenvalues: s1, s2, s3 and s4 (where si≧sj for i<j). An eigenvalue si may be located at the ith row in the matrix S.

In various embodiments of the invention, the eigenvalues may be rearranged in the matrix S such that eigenvalues s1 and s4 are located at adjacent rows in the matrix S and s2 and s3 located at adjacent rows in S. The rearranged matrix may be referred to as SR. Furthermore, the matrix SR may be represented as a block diagonal matrix, which comprises two (2) matrices s1 and s2 as shown below:




  
    
      
        
          S
          R
        
        =
        
          [
          
            
              
                
                  S
                  1
                
              
              
                0
              
            
            
              
                0
              
              
                
                  S
                  2
                
              
            
          
          ]
        
      
    
    
      
        [
        5
        ]
      
    
  




where:





  
    
      
        
          S
          1
        
        =
        
          [
          
            
              
                
                  s
                  1
                
              
              
                0
              
            
            
              
                0
              
              
                
                  s
                  4
                
              
            
          
          ]
        
      
    
    
      
        [
        
          6
          ⁢
          a
        
        ]
      
    
  
  
    
      
        
          S
          2
        
        =
        
          [
          
            
              
                
                  s
                  2
                
              
              
                0
              
            
            
              
                0
              
              
                
                  s
                  3
                
              
            
          
          ]
        
      
    
    
      
        [
        
          6
          ⁢
          b
        
        ]
      
    
  




In various embodiments of the invention, a beamforming block 108 may generate transmitted signals tx1, tx2, . . . , and txNtx by utilizing Givens rotation. Givens rotation enables rotation of the constellation maps utilized for generating symbol values x1, x2, . . . , and xNss. In various embodiments of the invention, one or more rotation angles (θf) may be computed at a MIMO transmitter that increase the probability that xi={circumflex over (x)}i at a MIMO receiver.
In an exemplary embodiment of the invention, the beamforming block 108 may generate transmitted signals (txi) based on spatial stream signals (xi) as shown below:

XT=V1 G(θ)X   [7]

where XT represents the vector of transmitted signals txi, X represents the vector of spatial stream signals xi and G(θ) represents a Givens rotation matrix. The Givens rotation matrix is defined as a function of the rotation angle θ. The signal vector received signal vector at the MIMO receiver may be represented as follows:

Y=H XT+N   [8]

Using the definition of XT from equation [7], equation [8] may be represented as follows:

Y=H V1 G(θ)X+N   [9]

Using an SVD representation of H, equation [9] may be represented as follows:

Y=U SR V1H V1 G(θ)X+N   [10]

where SR represents a rotated version of S (as presented in equation [5]). Based on the unitary property of V1, V1H=V1−1. Consequently, equation [10] may be represented as follows:

Y=U SR G(θ)X+N   [11]

The MIMO receiver may utilize the filter block 124 to filter the received signal vector Y. The filtered signal vector (R) may be represented as follows:

R=UH Y=UH U SR G(θ)X+UH N   [12]

where the filtering function of the filter block 124 may be represented by the matrix UH. Based on the unitary property of H, equation [12] may be represented as follows:

R=SR G(θ)X+UH N   [13]

The matrix G(θ) can be represented as a block diagonal matrix as follows:




  
    
      
        
          G
          ⁡
          
            (
            θ
            )
          
        
        =
        
          [
          
            
              
                
                  G
                  ⁡
                  
                    (
                    
                      θ
                      1
                    
                    )
                  
                
              
              
                0
              
            
            
              
                0
              
              
                
                  G
                  ⁡
                  
                    (
                    
                      θ
                      2
                    
                    )
                  
                
              
            
          
          ]
        
      
    
    
      
        [
        14
        ]
      
    
  




where:





  
    
      
        
          G
          ⁡
          
            (
            
              θ
              1
            
            )
          
        
        =
        
          [
          
            
              
                
                  cos
                  ⁡
                  
                    (
                    
                      θ
                      1
                    
                    )
                  
                
              
              
                
                  -
                  
                    sin
                    ⁡
                    
                      (
                      
                        θ
                        1
                      
                      )
                    
                  
                
              
            
            
              
                
                  sin
                  ⁡
                  
                    (
                    
                      θ
                      1
                    
                    )
                  
                
              
              
                
                  cos
                  ⁡
                  
                    (
                    
                      θ
                      1
                    
                    )
                  
                
              
            
          
          ]
        
      
    
    
      
        [
        
          15
          ⁢
          a
        
        ]
      
    
  
  
    
      
        
          G
          ⁡
          
            (
            
              θ
              2
            
            )
          
        
        =
        
          [
          
            
              
                
                  cos
                  ⁡
                  
                    (
                    
                      θ
                      2
                    
                    )
                  
                
              
              
                
                  -
                  
                    sin
                    ⁡
                    
                      (
                      
                        θ
                        2
                      
                      )
                    
                  
                
              
            
            
              
                
                  sin
                  ⁡
                  
                    (
                    
                      θ
                      2
                    
                    )
                  
                
              
              
                
                  cos
                  ⁡
                  
                    (
                    
                      θ
                      2
                    
                    )
                  
                
              
            
          
          ]
        
      
    
    
      
        [
        
          15
          ⁢
          b
        
        ]
      
    
  




Based on equations [6] and [14], equation [13] may be represented as follows:





  
    
      
        
          [
          
            
              
                
                  r
                  1
                
              
            
            
              
                
                  r
                  2
                
              
            
            
              
                
                  r
                  3
                
              
            
            
              
                
                  r
                  4
                
              
            
          
          ]
        
        =
        
          
            
              [
              
                
                  
                    
                      
                        S
                        1
                      
                      ⁢
                      
                        G
                        ⁡
                        
                          (
                          
                            θ
                            1
                          
                          )
                        
                      
                    
                  
                  
                    0
                  
                
                
                  
                    0
                  
                  
                    
                      
                        S
                        2
                      
                      ⁢
                      
                        G
                        ⁡
                        
                          (
                          
                            θ
                            2
                          
                          )
                        
                      
                    
                  
                
              
              ]
            
            ⁡
            
              [
              
                
                  
                    
                      x
                      1
                    
                  
                
                
                  
                    
                      x
                      2
                    
                  
                
                
                  
                    
                      x
                      3
                    
                  
                
                
                  
                    
                      x
                      4
                    
                  
                
              
              ]
            
          
          +
          
            
              U
              H
            
            ⁢
            N
          
        
      
    
    
      
        [
        16
        ]
      
    
  
  
    
      
        
          [
          
            
              
                
                  r
                  1
                
              
            
            
              
                
                  r
                  2
                
              
            
            
              
                
                  r
                  3
                
              
            
            
              
                
                  r
                  4
                
              
            
          
          ]
        
        =
        
          
            
              [
              
                
                  
                    
                      
                        S
                        1
                      
                      ⁢
                      
                        G
                        ⁡
                        
                          (
                          
                            θ
                            1
                          
                          )
                        
                      
                    
                  
                  
                    0
                  
                
                
                  
                    0
                  
                  
                    
                      
                        S
                        2
                      
                      ⁢
                      
                        G
                        ⁡
                        
                          (
                          
                            θ
                            2
                          
                          )
                        
                      
                    
                  
                
              
              ]
            
            ⁡
            
              [
              
                
                  
                    
                      x
                      1
                    
                  
                
                
                  
                    
                      x
                      2
                    
                  
                
                
                  
                    
                      x
                      3
                    
                  
                
                
                  
                    
                      x
                      4
                    
                  
                
              
              ]
            
          
          +
          
            N
            ~
          
        
      
    
    
      
        [
        17
        ]
      
    
  
  
    
      
        
          [
          
            
              
                
                  r
                  1
                
              
            
            
              
                
                  r
                  2
                
              
            
            
              
                
                  r
                  3
                
              
            
            
              
                
                  r
                  4
                
              
            
          
          ]
        
        =
        
          
            [
            
              
                
                  
                    
                      S
                      1
                    
                    ⁢
                    
                      G
                      ⁡
                      
                        (
                        
                          θ
                          1
                        
                        )
                      
                    
                  
                
                
                  
                    [
                    
                      
                        
                          
                            x
                            1
                          
                        
                      
                      
                        
                          
                            x
                            2
                          
                        
                      
                    
                    ]
                  
                
              
              
                
                  
                    
                      S
                      2
                    
                    ⁢
                    
                      G
                      ⁡
                      
                        (
                        
                          θ
                          2
                        
                        )
                      
                    
                  
                
                
                  
                    [
                    
                      
                        
                          
                            x
                            3
                          
                        
                      
                      
                        
                          
                            x
                            4
                          
                        
                      
                    
                    ]
                  
                
              
            
            ]
          
          +
          
            N
            ~
          
        
      
    
    
      
        [
        18
        ]
      
    
  




In one aspect of the invention, the rotation angle θf may be computed such to maximize the minimum Euclidean distance between pairs of symbol values xj and xk as represented in the following equation:





  
    
      
        
          max
          
            θ
            f
          
        
        ⁢
        
          min
          ⁢
          
            
          
          ⁢
          
            d
            ⁡
            
              (
              
                
                  x
                  j
                
                ,
                
                  x
                  k
                
              
              )
            
          
        
      
    
    
      
        [
        19
        ]
      
    
  




Based on equation [18], rotation angles θ1 and θ2 may be computed as represented in the following equations:

θ1=max min ∥S1 G(θ1)(x1−x2)∥  [20a]

θ2=max min ∥S2 G(θ2)(x3−x4)∥  [20b]

where ∥X∥represents the Frobenius norm of X.

The rotation angle θf as represented in equations [20a] and [20b] may be computed as a function of the eigenvalues si in the matrix Si. The eigenvalues si may be determined based on the channel estimate matrix H. In this regard, the rotation angle θf may be computed as a function of H. The computed value of the rotation angle θf may also be influenced by the constellation size. For example, increasing the constellation size typically results in each constellation point being closer to adjacent constellation points. The changing proximity of constellation points in the constellation maps of different modulation types may result in adjustments to the computed rotation angle θf as computed in equations [20a] and [20b].
In another aspect of the invention, the rotation angle may be computed to minimize the uncoded BER for uncoded bits represented by pairs of symbol values xj and xk. The rotation angle θf may be computed as a function of a condition number for matrix Sf and an SNRf. Rotation angles θ1 and θ2 may be computed as represented in the following equations:




  
    
      
        
          θ
          1
        
        =
        
          
            min
            BER
          
          ⁢
          
            
              θ
              1
            
            (
            
              
                
                  s
                  1
                
                
                  s
                  4
                
              
              ,
              
                
                  
                    s
                    1
                    2
                  
                  +
                  
                    s
                    4
                    2
                  
                
                
                  N
                  0
                
              
            
            )
          
        
      
    
    
      
        [
        
          21
          ⁢
          a
        
        ]
      
    
  
  
    
      
        
          θ
          2
        
        =
        
          
            min
            BER
          
          ⁢
          
            
              θ
              2
            
            (
            
              
                
                  s
                  2
                
                
                  s
                  3
                
              
              ,
              
                
                  
                    s
                    2
                    2
                  
                  +
                  
                    s
                    3
                    2
                  
                
                
                  N
                  0
                
              
            
            )
          
        
      
    
    
      
        [
        
          21
          ⁢
          b
        
        ]
      
    
  




where the condition number is represented by the ratio of eigenvalues





  
    
       
      j
    
    ⁢
    s
  
  
    s
    k
  




and the SNR is represented by the ratio





  
    
      s
      j
      2
    
    +
    
      s
      k
      2
    
  
  
    N
    0
  




and N0 represents noise power for channel noise (represented by the vector N in equation [16]). The eigenvalues si may be determined based on the channel estimate matrix H. In this regard, the rotation angle θf is computed as a function of H.

The value for the rotation angle θf computed in equations [21a] and [21b] may also be influenced by the constellation size of the modulation type utilized for generating symbol values xj and xk. For example, increasing constellation size typically corresponds to an increasing number of uncoded bits that are represented in each symbol, which in turn may increase the BER. Consequently, the value of the rotation angle θf may be adjusted to minimize the expected BER at the MIMO receiver.
In various embodiments of the invention, rotation angle values may be computed by a processor 312 for a range of condition number values and/or modulation types and stored as lookup tables (LUT) in memory 314.
FIG. 3 shows rotation angle values computed as shown in equations [20] as a function of the condition number. FIG. 3 presents rotation angle values, represented in units of π radians (or 180 degrees), along the vertical axis and a logarithmic representation of the condition number value, represented in units of decibels (dB) along the horizontal axis. The graph 302 presents rotation angle values computed as a function of condition number for a 16 QAM modulation type. The values (θ) shown in graph 302 represent rotation angle values for which the minimum distance between received vectors xj and xk may be maximized for 16 QAM based on the ratio of eigenvalues sj and sk, for an exemplary MIMO communication system. The rotation angle values from graph 302 may be stored in an LUT. For example, when 20 log(s1/s4)=10, a value θ1≅0.17π radians, or about 30 degrees, may be retrieved from an LUT.
FIGS. 4A-4J present a series of graphs of rotation angle values computed as shown in equations [21], as a function of the condition number, for a range of SNR values and for a modulation type 4-QAM. FIGS. 4A-4J present rotation angle values, represented in units of degrees, along the vertical axis and a logarithmic representation of the condition number value, represented in units of decibels (dB), along the horizontal axis. The graphs shown in FIGS. 4A-4J present rotation angle values computed as a function of condition number and SNR for a 4-QAM modulation type. The values (θ) shown in the graphs in FIGS. 4A-4J represent rotation angle values for which the uncoded bit BER may be minimized for 4-QAM based on the condition number (which is computed in equations [21] based on the ratio of eigenvalues sj and sk) and the SNR (which is computed in equations [21] based on the ratio of the sum of squares of eigenvalues sj and sk and the channel noise power N0). A set of rotation angle values across a range of condition number values may be sorted by SNR value and stored in an LUT. A rotation angle value θf may be retrieved from the LUT based on the SNR and the condition number.
FIG. 4A presents a graph 402a of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=0 dB for 4-QAM, in accordance with an embodiment of the invention. FIG. 4B presents a graph 402b of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=2 dB for 4-QAM, in accordance with an embodiment of the invention. FIG. 4C presents a graph 402c of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=4 dB for 4-QAM, in accordance with an embodiment of the invention. FIG. 4D presents a graph 402d of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=6 dB for 4-QAM, in accordance with an embodiment of the invention. FIG. 4E presents a graph 402e of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=8 dB for 4-QAM, in accordance with an embodiment of the invention. FIG. 4F presents a graph 402f of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=10 dB for 4-QAM, in accordance with an embodiment of the invention. FIG. 4G presents a graph 402g of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=12 dB for 4-QAM, in accordance with an embodiment of the invention. FIG. 4H presents a graph 402h of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=14 dB for 4-QAM, in accordance with an embodiment of the invention. FIG. 4I presents a graph 402i of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=16 dB for 4-QAM, in accordance with an embodiment of the invention. FIG. 4J presents a graph 402j of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=18 dB for 4-QAM, in accordance with an embodiment of the invention.
FIGS. 5A-5J present rotation angle values for minimum uncoded bit BER criterion based on condition number and SNR for 16-QAM. FIG. 5A presents a graph 502a of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=6 dB for 16-QAM, in accordance with an embodiment of the invention. FIG. 5B presents a graph 502b of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=8 dB for 16-QAM, in accordance with an embodiment of the invention. FIG. 5C presents a graph 502c of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=10 dB for 16-QAM, in accordance with an embodiment of the invention. FIG. 5D presents a graph 502d of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=12 dB for 16-QAM, in accordance with an embodiment of the invention. FIG. 5E presents a graph 502e of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=14 dB for 16-QAM, in accordance with an embodiment of the invention. FIG. 5F presents a graph 502f of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=16 dB for 16-QAM, in accordance with an embodiment of the invention. FIG. 5G presents a graph 502g of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=18 dB for 16-QAM, in accordance with an embodiment of the invention. FIG. 5H presents a graph 502h of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=20 dB for 16-QAM, in accordance with an embodiment of the invention. FIG. 5I presents a graph 502i of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=22 dB for 16-QAM, in accordance with an embodiment of the invention. FIG. 5J presents a graph 502j of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=24 dB for 16-QAM, in accordance with an embodiment of the invention.
FIGS. 6A-6J presents rotation angle values for minimum uncoded bit BER criterion based on condition number and SNR for 64-QAM. FIG. 6A presents a graph 602a of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=12 dB for 64-QAM, in accordance with an embodiment of the invention. FIG. 6B presents a graph 602b of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=14 dB for 64-QAM, in accordance with an embodiment of the invention. FIG. 6C presents a graph 602c of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=16 dB for 64-QAM, in accordance with an embodiment of the invention. FIG. 6D presents a graph 602d of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=18 dB for 64-QAM, in accordance with an embodiment of the invention. FIG. 6E presents a graph 602e of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=20 dB for 64-QAM, in accordance with an embodiment of the invention. FIG. 6F presents a graph 602f of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=22 dB for 64-QAM, in accordance with an embodiment of the invention. FIG. 6G presents a graph 602g of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=24 dB for 64-QAM, in accordance with an embodiment of the invention. FIG. 6H presents a graph 602h of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=26 dB for 64-QAM, in accordance with an embodiment of the invention. FIG. 6I presents a graph 602i of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=28 dB for 64-QAM, in accordance with an embodiment of the invention. FIG. 6J presents a graph 602j of exemplary rotation angle values computed based on a BER criterion as a function of the condition number and SNR=30 dB for 64-QAM, in accordance with an embodiment of the invention.
FIG. 7 is a flowchart of exemplary steps for lookup table (LUT) generation for minimum BER for ML detection, in accordance with an embodiment of the invention. Referring to FIG. 7, in step 702, minimum and maximum condition number values (cmin,cmax) for rotation angle computation may be determined. In step 704, the number of modulation types (N_Mod) may be determined. In step 706, a modulation index (j) may be initialized (j=1). In step 708, a current modulation type (Mod(j)) may be selected based on the current modulation index value j. In step 710, a set of rotation angle values (θj) may be computed for the current modulation type (Mod(j)) for condition number values across the range of condition number values from cmin to cmax. The criterion for rotation angle computation at a MIMO transmitter is to select rotation angles, which may enable a minimum BER ML detection at a MIMO receiver. The computed rotation angle values θj may be computed as a function of the condition number value and an SNR value. In step 712, the set of rotation angle values θj computed in step 710 may be stored in an LUT. The locations at which the rotation angle values is stored in the LUT may be indexed based on the modulation index value j.
In instances when j=N_mod, step 714 may determine that the current modulation type is the last modulation type for which rotation angle values is to be computed for the LUT, in which case the rotation angle computation may end. In instance where j≠N_mod at step 714, in step 716, the modulation index value may be incremented. Step 708 may follow step 716 where the next modulation type may be selected.
FIG. 8 is a flowchart of exemplary steps for lookup table (LUT) generation for minimum Euclidean distance for ML detection, in accordance with an embodiment of the invention. Referring to FIG. 8, in step 802, minimum and maximum condition number values (cmin,cmax) for rotation angle computation may be determined. In step 804, the number of modulation types (N_Mod) may be determined. In step 806, a modulation index (j) may be initialized (j=1). In step 808, a current modulation type (Mod(j)) may be selected based on the current modulation index value j. In step 810, constellation points xk and xl may be selected from the constellation map for modulation type Mod(j). In step 812, the Euclidean distance between the constellation points d(xk,xl) may be computed. In step 814, a set of rotation angle values (θj) may be computed for the current modulation type (Mod(j)) for condition number values across the range of condition number values from cmin to cmax. The criterion for rotation angle computation at a MIMO transmitter is to select rotation angles, which may maximize the minimum Euclidean distance d(xk,xl). The computed rotation angle values θj may be computed as a function of the condition number value. In step 816, the set of rotation angle values θj computed in step 814 may be stored in an LUT. The locations at which the rotation angle values is stored in the LUT may be indexed based on the modulation index value j.
In instances when j=N_mod, step 818 may determine that the current modulation type is the last modulation type for which rotation angle values is to be computed for the LUT, in which case the rotation angle computation may end. In instance where j≠N_mod at step 818, in step 820, the modulation index value may be incremented. Step 808 may follow step 820 where the next modulation type may be selected.
FIG. 9 is a flowchart of exemplary steps for subspace beamforming for near capacity MIMO performance, in accordance with an embodiment of the invention. Referring to FIG. 9, in step 902, a modulation type (Mod) may be determined. The modulation type may be utilized to enable the generation of symbol values in spatial streams. In step 904, a plurality of spatial stream signals (xi) may be generated. The plurality of spatial stream vectors may be represented by a vector (X). In step 906, a channel estimate matrix (H) may be computed. The channel estimate matrix may characterize the communication medium into which the MIMO transmitter may transmit signals. In step 908, a plurality of eigenvalues (sj) may be computed based on the matrix H. In step 910, pairs of eigenvalues may be groups such that for each such eigenvector pair sjsk≈slsm. In step 912, rotation angles θf may be determined for each eigenvalue pair by LUT lookup (where f represents an index for an eigenvalue pair). The referenced address within the LUT may be determined based on the modulation type (Mod) and based on the ratio of eigenvalues in the eigenvalue pair (the condition number). In instances when the rotation angle values were generated based on a minimum BER criterion, the LUT reference address may also be determined based on an SNR value (which may be determined based on the eigenvalues and on estimated noise power). In step 914, a Givens rotation matrix G(θf) may be generated for each eigenvalue pair (as shown in equations [15]). In step 916, a plurality of transmit chain signals (txi) may be generated based on the Givens rotation matrix (as shown in equation [7]). The plurality of transmit chain signals may be represented by a vector XT. In step 918, a MIMO transmitter may transmit the rotation angles θf and signal vector XT. The rotation angles θf may enable the MIMO transmitter to transmit the signal vector XT via a wireless communication medium at data communication rates (as measured in bits per second), which approach the Shannon limit for an RF channel.
In various embodiments of the invention, subspace beamforming for near capacity MIMO performance is not limited to MIMO systems, which utilize singular value decomposition (SVD). Various embodiments of the invention may also be practiced in MIMO systems, which utilize other matrix decomposition methods such as geometric mean decomposition (GMD), for example.
Aspects of a system for subspace beamforming for near capacity MIMO performance may include a MIMO transmitter 102 that computes one or more rotation angle values (θf) based on a channel estimate matrix (H). In instances when each rotation angle is computed based on a Euclidean distance criterion, each value θf may also be computed based on a computed Euclidean distance. Alternatively, in instances when each rotation angle is computed based on a bit error rate (BER) criterion, each value θf may also be computed based on a signal noise power level (N0). A plurality of spatial stream signals (xi) may be generated utilizing one or more constellation types. The constellation map for each constellation type may be rotated based on a corresponding value θf. A plurality of transmit chain signals (txi) may be generated based on the signals xi and transmitted via a communication medium characterized by the matrix H. A plurality of eigenvalues (sj) may be computed based on the matrix H. Pairs of eigenvalues (sj and sk) may be grouped such that the multiplicative product for each eigenvalue pair is approximately equal.
When each rotation angle value is computed based on a Euclidean distance criterion, a pair of spatial stream signals (xi and xl), corresponding to each eigenvalue pair, may be identified. The Euclidean distance value may be computed based on the constellation map for the identified pair of spatial streams signals xi and xl.
When each rotation angle value is computed based on a BER criterion, each rotation angle may be computed based on the ratio




  
    s
    j
  
  
    s
    k
  




(from which a condition number may be computed) and on the ratio





  
    
      s
      j
      2
    
    +
    
      s
      k
      2
    
  
  
    N
    0
  




(from which a signal to noise ratio (SNR) may be computed). A value for N0 may be estimated based on the communication medium. Each value θf may be determined based on an estimated BER for reception at a MIMO receiver 106 of the transmitted signals txi. Each of the received signals may be represented by yi. The estimated BER may be computed based on maximum likelihood (ML) detection at the MIMO receiver 106.

The computed values θf may be retrieved from a lookup table (LUT). The address at which a selected value θf is located may be determined based on a modulation type utilized for generating one or more spatial stream signals xi. When each value θf is computed based on a Euclidean distance criterion, the LUT address may also be determined based on a condition number. The condition number may be computed based on the eigenvalues that correspond to an identified pair of spatial stream signals. When each value θf is computed based on a BER criterion, the LUT address may be determined based on the condition number and on an SNR value. The SNR value may be computed based on the eigenvalues and on N0.
Another embodiment of the invention may provide a machine and/or computer readable storage and/or medium, having stored thereon, a machine code and/or a computer program having at least one code section executable by a machine and/or a computer, thereby causing the machine and/or computer to perform the steps as described herein for subspace beamforming for near capacity multiple input multiple output (MIMO) performance
Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in at least one computer system, or in a distributed fashion where different elements are spread across several interconnected computer systems. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.

## Claims

1. A system for processing signals in a communication system, the system comprising:
a transmitter comprising one or more circuits;
said one or more circuits being configured to compute a plurality of eigenvalues based on a channel estimate matrix;
said one or more circuits being configured to compute one or more rotation angle values based on said plurality of eigenvalues and one or both of: one or more computed Euclidean distance values and a signal noise power level;
said one or more circuits being configured to generate a plurality of spatial stream signals by utilizing one or more constellation types, wherein each constellation map for said one or more constellation types is rotated based on a corresponding one of said computed one or more rotation angle values; and
said one or more circuits being configured to transmit a plurality of transmit chain signals based on said generated plurality of spatial stream signals via a communication medium that is characterized by said channel estimate matrix.

2. The system according to claim 1, said one or more circuits enable grouping of pairs of individual eigenvalues selected from said plurality of eigenvalues such that a multiplicative product of each said grouped pair of said individual eigenvalues is approximately equal.

3. The system according to claim 2, said one or more circuits enable identification of a pair spatial stream signals selected from said plurality of spatial stream signals corresponding to said each said grouped pair of said individual eigenvalues.

4. The system according to claim 3, said one or more circuits enable computation of said Euclidean distance value based on said constellation map for each spatial stream signal in said identified pair of spatial stream signals.

5. The system according to claim 2, said one or more circuits enable computation of each of said one or more rotation angle values based on a ratio of said individual eigenvalues in a corresponding one of said grouped pairs.

6. The system according to claim 5, said one or more circuits enable computation of said each of said one or more rotation angle values based on a ratio of a sum of squared values for said individual eigenvalues in said corresponding one of said grouped pairs and a value for said signal noise power level.

7. The system according to claim 6, said one or more circuits enable estimation of said value for said signal noise power level based on said communication medium.

8. The system according to claim 6, said one or more circuits enable determination of said each of said one or more rotation angle values based on an estimated bit error rate for reception of said transmitted plurality of transmit chain signals.

9. The system according to claim 1, said one or more circuits enable retrieval of said corresponding one of said computed one or more rotation angle values from a lookup table based on said utilized one or more modulation types and one or both of: a condition number and a signal to noise ratio.

10. The system according to claim 9, wherein said condition number is computed based on a ratio of eigenvalues.

11. The system according to claim 10, wherein said signal to noise ratio is computed based on a ratio of a sum of squared values for said eigenvalues and a value for said signal noise power level.

12. A method for processing signals in a communication system, the method comprising:
in a transmitter:
computing a plurality of eigenvalues based on a channel estimate matrix;
computing one or more rotation angle values based on said plurality of eigenvalues and one or both of: one or more computed Euclidean distance values and a signal noise power level;
generating a plurality of spatial stream signals by utilizing one or more constellation types, wherein each constellation map for said one or more constellation types is rotated based on a corresponding one of said computed one or more rotation angle values; and
transmitting a plurality of transmit chain signals based on said generated plurality of spatial stream signals via a communication medium that is characterized by said channel estimate matrix.

13. The method according to claim 12, comprising grouping pairs of individual eigenvalues selected from said plurality of eigenvalues such that a multiplicative product of each said grouped pair of said individual eigenvalues is approximately equal.

14. The method according to claim 13, comprising identifying a pair spatial stream signals selected from said plurality of spatial stream signals corresponding to said each said grouped pair of said individual eigenvalues.

15. The method according to claim 14, comprising computing said Euclidean distance value based on said constellation map for each spatial stream signal in said identified pair of spatial stream signals.

16. The method according to claim 13, comprising computing each of said one or more rotation angle values based on a ratio of a said individual eigenvalues in a corresponding one of said grouped pairs.

17. The method according to claim 16, comprising computing said each of said one or more rotation angle values based on a ratio of a sum of squared values for said individual eigenvalues in said corresponding one of said grouped pairs and a value for said signal noise power level.

18. The method according to claim 17, comprising estimating said value for said signal noise power level based on said communication medium.

19. The method according to claim 17, comprising determining said each of said one or more rotation angle values based on an estimated bit error rate for reception of said transmitted plurality of transmit chain signals.

20. The method according to claim 19, comprising computing said estimated bit error rate for said reception based on a maximum likelihood detector.

21. The method according to claim 12, comprising retrieving said corresponding one of said computed one or more rotation angle values from a lookup table based on said utilized one or more modulation types and one or both of: a condition number and a signal to noise ratio.

22. The method according to claim 21, wherein said condition number is computed based on a ratio of eigenvalues.

23. The method according to claim 22, wherein said signal to noise ratio is computed based on a ratio of a sum of squared values for said eigenvalues and a value for said signal noise power level.

24. A system for processing signals in a communication system, the system comprising:
a transmitting device for use in a multiple-input-multiple-output (MIMO) wireless system, said transmitting device being configured to:
compute a plurality of eigenvalues based on a channel estimate matrix;
compute one or more rotation angle values based on said plurality of eigenvalues and based on one or both of computed Euclidean distance values and computed signal noise power levels;
generate a plurality of spatial stream signals based on said computed rotation angle values and one or more constellation types, wherein said computed Euclidean distance values and said computed signal noise power levels are based a size of a constellation map for said one or more constellation types; and
transmit a plurality of transmit chain signals based on said generated plurality of spatial stream signals via a communication medium that is characterized by said channel estimate matrix.