# Patent

## Title
Multi-mode terminal in a wireless MIMO system

## Abstract

A user terminal supports multiple spatial multiplexing (SM) modes such as a steered mode and a non-steered mode. For data transmission, multiple data streams are coded and modulated in accordance with their selected rates to obtain multiple data symbol streams. These streams are then spatially processed in accordance with a selected SM mode (e.g., with a matrix of steering vectors for the steered mode and with the identity matrix for the non-steered mode) to obtain multiple transmit symbol streams for transmission from multiple antennas. For data reception, multiple received symbol streams are spatially processed in accordance with the selected SM mode (e.g., with a matrix of eigenvectors for the steered mode and with a spatial filter matrix for the non-steered mode) to obtain multiple recovered data symbol streams. These streams are demodulated and decoded in accordance with their selected rates to obtain multiple decoded data streams.

## Background
CLAIM OF PRIORITY UNDER 35 U.S.C. §119
The present Application for Patent claims priority to Provisional Application Ser. No. 60/421,309, entitled “MIMO WLAN System,” filed Oct. 25, 2002, assigned to the assignee hereof, and expressly incorporated by reference herein.


BACKGROUND
1. Field
The present invention relates generally to communication, and more specifically to a user terminal in a multiple-input multiple-output (MIMO) communication system.
2. Background
A MIMO system employs multiple (NT) transmit antennas and multiple (NR) receive antennas for data transmission and is denoted as an (NT, NR) system. A MIMO channel formed by the NT transmit and NR receive antennas may be decomposed into NS spatial channels, where Ns≦min{NT, NR}. The NS spatial channels may be used to transmit NS independent data streams to achieve greater overall throughput. In general, spatial processing may or may not be performed at a transmitter and is normally performed at a receiver to simultaneously transmit and recover multiple data streams.
A conventional MIMO system typically uses a specific transmission scheme to simultaneously transmit multiple data streams. This transmission scheme may be selected based on a trade-off of various factors such as the requirements of the system, the amount of feedback from the receiver to the transmitter, the capabilities of the transmitter and receiver, and so on. The transmitter, receiver, and system are then designed to support and operate in accordance with the selected transmission scheme. This transmission scheme typically has favorable features as well as unfavorable ones, which can impact system performance.
There is therefore a need in the art for a user terminal capable of achieving improved performance.
SUMMARY
A user terminal that supports multiple spatial multiplexing (SM) modes for improved performance and greater flexibility is described herein. Spatial multiplexing refers to the transmission of multiple data streams simultaneously via multiple spatial channels of a MIMO channel. The multiple SM modes may include (1) a steered mode that transmits multiple data streams on orthogonal spatial channels and (2) a non-steered mode that transmits multiple data streams from multiple antennas.
The terminal selects an SM mode to use for data transmission from among the multiple supported SM modes. The SM mode selection may be based on various factors such as the calibration status of the terminal, the amount of data to send, the channel conditions, the capability of the other communicating entity, and so on. For data transmission, multiple data streams are coded and modulated in accordance with their selected rates to obtain multiple data symbol streams. These data symbol streams are then spatially processed in accordance with the selected SM mode to obtain multiple transmit symbol streams. The transmit spatial processing is with a matrix of steering vectors for the steered mode and with an identity matrix for the non-steered mode. The transmit symbol streams are transmitted from multiple antennas and via a first communication link (e.g., uplink).
For data reception, multiple received symbol streams for a second communication link (e.g., downlink) are spatially processed in accordance with the selected SM mode to obtain multiple recovered data symbol streams. The receive spatial processing may be based on the channel eigenvectors for the steered mode and with a spatial filter matrix for the non-steered mode. The spatial filter matrix may be derived based on various receiver spatial processing techniques, as described below. The recovered data symbol streams are then demodulated and decoded in accordance with their selected rates to obtain multiple decoded data streams for the second link. The terminal also transmits/receives pilots and the selected rates for each link.
Various aspects, embodiments, and features of the invention are described in further detail below.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows a MIMO system;
FIG. 2 shows spatial processing at a transmitter and receiver for the steered and non-steered modes;
FIGS. 3 and 4 show spatial processing at an access point and a user terminal for the steered and non-steered modes, respectively;
FIG. 5 shows a block diagram of the access point and user terminal; and
FIG. 6 shows a process for transmitting and receiving data in the MIMO system.



DETAILED DESCRIPTION
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any embodiment described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other embodiments.
FIG. 1 shows a MIMO system 100 with access points (APs) and user terminals (UTs). For simplicity, only one access point 110 is shown in FIG. 1. An access point is generally a fixed station that communicates with the user terminals and may also be referred to as a base station or some other terminology. A system controller 130 couples to and provides coordination and control for the access points. A user terminal may be fixed or mobile and may also be referred to as a mobile station, a wireless device, or some other terminology. A user terminal may communicate with an access point, in which case the roles of access point and user terminal are established. A user terminal may also communicate peer-to-peer with another user terminal.
MIMO system 100 may be a time division duplex (TDD) system or a frequency division duplex (FDD) system. For a TDD system, the downlink and uplink share the same frequency band. For an FDD system, the downlink and uplink use different frequency bands. The downlink is the communication link from the access points to the user terminals, and the uplink is the communication link from the user terminals to the access points. MIMO system 100 may also utilize a single carrier or multiple carriers for data transmission.
Access point 110 and user terminal 120 each support multiple spatial multiplexing (SM) modes for improved performance and greater flexibility. A steered SM mode (or simply, a steered mode) can typically achieve better performance but can only be used if the transmitter has sufficient channel state information (CSI) to orthogonalize the spatial channels of a MIMO channel via decomposition or some other technique. A non-steered SM mode (or simply, a non-steered mode) requires very little information to simultaneously transmit multiple data streams via the MIMO channel, but performance may not be quite as good as the steered mode. A suitable SM mode may be selected for use based on various factors, as described below.
Table 1 summarizes some key aspects of the steered and non-steered modes. Each SM mode has different capabilities and requirements.
For the steered mode, the transmitter transmits a pilot to allow the receiver to estimate the MIMO channel, and the receiver sends back sufficient channel state information to allow the transmitter to derive steering vectors. Either the transmitter or receiver decomposes the MIMO channel into eigenmodes, which may be viewed as orthogonal spatial channels. The receiver also sends back the rate to use for each eigenmode. The transmitter and receiver both perform spatial processing in order to transmit data on the eigenmodes, as described below.
For the non-steered mode, the transmitter transmits a pilot to allow the receiver to estimate the MIMO channel. The receiver sends back the rate to use for each spatial channel. The transmitter transmits data (e.g., from its antennas) without any spatial processing, and the receiver performs spatial processing to recover the transmitted data. The pilot transmission and spatial processing at the transmitter and receiver for the steered and non-steered modes are described below.







TABLE 1







Requirements for Steered and Non-Steered Modes










Steered Mode
Non-Steered Mode





Pilot
Transmitter transmits a pilot
Transmitter transmits



Receiver sends back channel state
a pilot



information used by transmitter to



derive steering vectors


Rate
Receiver sends back the rate for
Receiver sends back


Feedback
each eigenmode
the rate for each spatial




channel (e.g., each




transmit antenna)


Spatial
Transmitter performs spatial
Transmitter transmits


Processing
processing with matrix V of
data from each



steering vectors
transmit antenna



Receiver performs spatial
Receiver performs spatial



processing with matrix U of
processing with CCMI,



eigenvectors
MMSE, SIC, and so




on (described below)









In the following description, a user terminal can be the transmitter and/or receiver, and an access point can likewise be the transmitter and/or receiver. Peer-to-peer communications can be supported using the same basic principles.
1. Steered Mode
A MIMO channel formed by NT transmit antennas and NR receive antennas may be characterized by an NR×NT channel response matrix H, which may be expressed as:




  
    
      
        
          
            H
            _
          
          =
          
            [
            
              
                
                  
                    h
                    
                      1
                      ,
                      1
                    
                  
                
                
                  
                    h
                    
                      1
                      ,
                      2
                    
                  
                
                
                  ⋯
                
                
                  
                    h
                    
                      1
                      ,
                      
                        N
                        T
                      
                    
                  
                
              
              
                
                  
                    h
                    
                      2
                      ,
                      1
                    
                  
                
                
                  
                    h
                    
                      2
                      ,
                      2
                    
                  
                
                
                  ⋯
                
                
                  
                    h
                    
                      2
                      ,
                      
                        N
                        T
                      
                    
                  
                
              
              
                
                  ⋮
                
                
                  ⋮
                
                
                  ⋰
                
                
                  ⋮
                
              
              
                
                  
                    h
                    
                      
                        N
                        R
                      
                      ,
                      1
                    
                  
                
                
                  
                    h
                    
                      
                        N
                        R
                      
                      ,
                      2
                    
                  
                
                
                  ⋯
                
                
                  
                    h
                    
                      
                        N
                        R
                      
                      ,
                      
                        N
                        T
                      
                    
                  
                
              
            
            ]
          
        
        ,
      
    
    
      
        Eq
        ⁢
        
          
        
        ⁢
        
          (
          1
          )
        
      
    
  




where entry hi,j, for i=1 . . . NR and j=1. NT, is the coupling (i.e., complex gain) between transmit antenna j and receive antenna i. For simplicity, the MIMO channel is assumed to be full rank with NS≦NT≦NR.

Singular value decomposition may be performed on H to obtain NS eigenmodes of H, as follows:

H=UΣVH,  Eq (2)

where U  is an (NR×NR) unitary matrix of left eigenvectors of H;

    
    
        Σ is an (NR×NT) diagonal matrix of singular values of H;
        V  is an (NT×NT) unitary matrix of right eigenvectors of H; and
        “H” denotes the conjugate transpose.

A unitary matrix M  is characterized by the property MHM =I, where I is the matrix. The columns of a unitary matrix are orthogonal to one another.

    
    


The right eigenvectors of H  are also referred to as steering vectors and may be used for spatial processing by the transmitter to transmit data on the NS eigenmodes of H. The left eigenvectors of H  may be used for spatial processing by the receiver to recover the data transmitted on the NS eigenmodes. The eigenmodes may be viewed as orthogonal spatial channels obtained through decomposition. The diagonal entries of Σ are the singular values of H, which represent the channel gains for the NS eigenmodes.
In a practical system, only an estimate of H  can be obtained, and only estimates of V, Σ and U  can be derived. The NS spatial channels are also typically not completely orthogonal to one another due to various reasons such as an imperfect channel estimate. For simplicity, the description herein assumes channel estimation and decomposition without errors. Furthermore, the term “eigenmode” covers the case where an attempt is made to orthogonalize the spatial channels using decomposition, even though the attempt may not be fully successful due to, for example, an imperfect channel estimate.
Table 2 summarizes the spatial processing at the transmitter and the receiver for the steered mode. In Table 2, s is a vector with NS data symbols to be transmitted on the NS eigenmodes of H, xst is a vector with NT transmit symbols to be sent from the NT transmit antennas, rst is a vector with NR received symbols obtained from the NR receive antennas, ŝst is a vector with NS recovered data symbols (i.e., ŝst is an estimate of s), and the subscript “st” denotes the steered mode. As used herein, a “data symbol” refers to a modulation symbol for data, and a “pilot symbol” refers to a modulation symbol for pilot.







TABLE 2







Spatial Processing for Steered Mode










Transmitter
Receiver







xst = Vs
ŝst = Σ−1UHrst










Eigenvalue decomposition may also be performed on a correlation matrix of H , which is R=HHH,as follows:

R=HHH=VΛVH,  Eq (3)

where Λ is a diagonal matrix of eigenvalues, which are the squares of the singular values in Σ. The transmitter can perform spatial processing with V to obtain xst, and the receiver can perform spatial processing with VH HH to obtain ŝst.

2. Non-Steered Mode

For the non-steered mode, the transmitter can transmit one data symbol stream from each transmit antenna. A spatial channel for this mode can correspond to one transmit antenna. The receiver performs spatial processing to separate out and recover the transmitted data symbol streams. The receiver can use various receiver processing techniques such as a channel correlation matrix inversion (CCMI) technique (which is also known as a zero-forcing technique), a minimum mean square error (MMSE) technique, a successive interference cancellation (SIC) technique, and so on
Table 3 summarizes the spatial processing at the transmitter and the receiver for the non-steered mode. In Table 3, xns is a vector with NT data symbols to be sent from the NT transmit antennas, rns is a vector with NR received symbols obtained from the NR receive antennas, Mccmi ccmi is a spatial filter matrix for the CCMI technique, Mmmse is a spatial filter matrix for the MMSE technique, Dmmse is a diagonal matrix for the MMSE technique (which contains the diagonal elements of MmmseH), and the subscript “ns” denotes the non-steered mode.







TABLE 3







Spatial Processing for Non-Steered Mode










Transmitter
Receiver
where






xns = s
ŝccmi = Mccmirns
Mccmi = [HHH]−1HH
CCMI



ŝmmse = D−1mmseMmmserns
Mmmse = HH[HHH + σ2I]−1 and
MMSE




Dmmse = diag [MmmseH]



ŝlsic = Mlsicrlsic
Mlsic = Mlccmi or (Dlmmse)−1Mlmmse
SIC









For simplicity, the MIMO channel noise n is assumed to be additive white Gaussian noise (AWGN) with zero mean, a variance of σ2, and an autocovariance matrix of φnn=E[nnH]=σ2I.

For the SIC technique, the receiver processes the NR received symbol streams in NS successive stages to recover one data symbol stream in each stage. For each stage l, where l=1 . . . NS, the receiver initially performs spatial processing on NR input symbol streams for stage l using the CCMI, MMSE, or some other technique and obtains one recovered data symbol stream. The NR received symbol streams are the NR input symbol streams for stage 1. The receiver further processes (e.g., demodulates, deinterleaves, and decodes) the recovered data symbol stream for stage l to obtain a decoded data stream, estimates the interference this stream causes to the other data symbol streams not yet recovered, and cancels the estimated interference from the NR input symbol streams for stage l to obtain NR input symbol streams for stage l+1. The receiver then repeats the same processing on the NR input symbol streams for stage l+1 to recover another data symbol stream.
For each stage l, the SIC receiver derives a spatial filter matrix Msicl for that stage based on a reduced channel response matrix Hl and using the CCMI, MMSE, or some other technique. The reduced matrix Hl is obtained by removing l−1 columns in the original matrix H corresponding to the l−1 data symbol streams already recovered. The matrix Msicl has dimensionality of (NT−l+1)×NR. Since Hl is different for each stage, Msicl is also different for each stage.
The receiver may also use other receiver spatial processing techniques to recover the transmitted data symbol streams.
FIG. 2 shows the spatial processing at the transmitter and receiver for the steered and non-steered modes. At the transmitter, the data vector s is multiplied with either the matrix V for the steered mode or the identity matrix I for the non-steered mode by a unit 220 to obtain the transmit symbol vector x. At the receiver, the received symbol vector r is multiplied with either the matrix UH for the steered mode or the spatial filter matrix M for the non-steered mode by a unit 260 to obtain a detected symbol vector {tilde over (s)}, which is an unnormalized estimate of s. The matrix M may be derived based on the CCMI, MMSE, or some other technique. The vector {tilde over (s)} is further scaled with either the diagonal matrix Σ−1 for the steered mode or a diagonal matrix D−1 for the non-steered mode to obtain the recovered data symbol vector ŝ, where D−1=I for the CCMI technique and D−1=Dmmse−1 for the MMSE technique.
3. Overhead for Steered and Non-Steered Nodes
The steered and non-steered modes have different pilot and overhead requirements, as shown in
Table 1 and described below.
A. Pilot Transmission
For both the steered and non-steered modes, the transmitter can transmit a MIMO pilot (which is an unsteered pilot) to allow the receiver to estimate the MIMO channel and obtain the matrix H. The MIMO pilot comprises NT orthogonal pilot transmissions sent from NT transmit antennas, where orthogonality may be achieved in time, frequency, code, or a combination thereof. For code orthogonality, the NT pilot transmissions can be sent simultaneously from the NT transmit antennas, with the pilot transmission from each antenna being “covered” with a different orthogonal (e.g., Walsh) sequence. The receiver “decovers” the received pilot symbols for each receive antenna i with the same NT orthogonal sequences used by the transmitter to obtain estimates of the complex channel gain between receive antenna i and each of the NT transmit antennas. The covering at the transmitter and the decovering at the receiver are performed in similar manner as for a Code Division Multiple Access (CDMA) system. For frequency orthogonality, the NT pilot transmissions for the NT transmit antennas can be sent simultaneously on different subbands of the overall system bandwidth. For time orthogonality, the NT pilot transmissions for the NT transmit antennas can be sent in different time slots. In any case, the orthogonality among the NT pilot transmissions allows the receiver to distinguish the pilot transmission from each transmit antenna.
For the steered mode, the receiver sends back sufficient channel state information to allow the transmitter to derive the steering vectors. The receiver may send this information in a direct form (e.g., by sending the entries of V) or in an indirect form (e.g., by transmitting a steered or unsteered pilot).
B. Rate Selection/Control
The receiver can estimate the received signal-to-noise-and-interference ratio (SNR) for each spatial channel, which can correspond to an eigenmode for the steered mode or a transmit antenna for the non-steered mode. The received SNR is dependent on the SM mode and spatial processing technique used by the transmitter and receiver.
Table 4 summarizes the received SNR for the steered and non-steered modes. In Table 4, Pm is the transmit power used for spatial channel m, σ2 is the noise variance, σm is the singular value for eigenmode m (i.e., the m-th diagonal element of Σ), rmm is the m-th diagonal element of R  (which is R=HHH), qmm is the m-th diagonal element of Q, and γm is the SNR for spatial channel m. The received SNRs for the SIC technique are dependent on the spatial processing technique (e.g., CCMI or MMSE) and the order in which the data streams are recovered. An operating SNR can be defined as being equal to the received SNR plus an SNR back-off factor. The SNR back-off factor can be set to a positive value to account for estimation error, SNR fluctuation over time, and so on, but may also be set to zero.







TABLE 4







Received SNR










Non-Steered Mode










Steered Mode
CCMI
MMSE









  
    γ
    
      st
      ,
      m
    
  
  =
  
    
      
        P
        m
      
      ·
      
        σ
        m
        2
      
    
    
      σ
      2
    
  








  
    γ
    
      ccmi
      ,
      m
    
  
  =
  
    
      P
      m
    
    
      
        r
        mm
      
      ·
      
        σ
        2
      
    
  








  
    γ
    
      mmse
      ,
      m
    
  
  =
  
    
      
        q
        mm
      
      
        1
        -
        
          q
          mm
        
      
    
    ⁢
    
      P
      m
    
  













The MIMO system may support a set of rates. Each non-zero rate is associated with a particular data rate or spectral efficiency, a particular coding scheme, a particular modulation scheme, and a particular SNR required to achieve a target level of performance (e.g., one percent packet error rate (PER)). The required SNR for each rate may be determined by computer simulation, empirical measurement, and so on, and with an assumption of an AWGN channel. A look-up table (LUT) can store the rates supported by the system and their required SNRs. For each spatial channel, the highest rate in the look-up table with a required SNR that is equal to or less than the operating SNR of the spatial channel is selected as the rate to use for the spatial channel.
Closed-loop rate control may be used for each spatial channel or a combination of spatial channels. The receiver can estimate the received SNR for each spatial channel, select the proper rate for the spatial channel, and send back the selected rate. The transmitter can transmit each data symbol stream at the selected rate.
C. Mode Selection
User terminal 120 can use either the steered or non-steered mode at any given moment for communication. The mode selection may be made based on various factors such as the following.
Overhead—The steered mode requires more overhead than the non-steered mode. For the steered mode, the receiver needs to send back sufficient channel state information as well as the rates for the NS eigenmodes. In some instances, the additional CSI overhead cannot be supported or is not justified. For the non-steered mode, the receiver only needs to send back the rates for the spatial channels, which is much less overhead.
Amount of Data—The steered mode is generally more efficient but also requires more setup steps (e.g., channel estimation, singular value decomposition, and CSI feedback). If only a small amount of data needs to be sent, then it may be quicker and more efficient to transmit this data using the non-steered mode.
Capability—A user terminal may communicate peer-to-peer with another user terminal that supports only one mode (e.g., either the steered or non-steered mode). In this case, the two terminals can communicate using a common mode supported by both user terminals.
Channel Conditions—The steered mode may be more easily supported for static channels, slow varying channels, and channels with a strong line-of-site component (e.g., a Rician channel).
Receiver SNR—The steered mode provides better performance in low SNR conditions. A user terminal may elect to use steered mode when the SNR drops below some threshold.
Calibration Status—The steered mode may be selected for use if the transmitter and receiver are “calibrated” such that the downlink and uplink channel responses are reciprocal of one another. Reciprocal downlink and uplink can simplify the pilot transmission and spatial processing for both the transmitter and receiver for the steered mode, as described below.
A user terminal that is not mobile and is communicating with the same access point may use the steered mode much of the time. A user terminal that is mobile and communicating with different entities (e.g., different access points and/or other user terminals) may use the non-steered mode, until such time that it is more advantageous to use the steered mode. A user terminal may also switch between the steered and non-steered modes, as appropriate. For example, a user terminal may use the non-steered mode for small data bursts (or short data sessions) and at the start of long data bursts (or long data sessions), and may use the steered mode for the remaining portion of the long data bursts. As another example, a user terminal may use the steered mode for relatively static channel conditions and may use the non-steered mode when the channel conditions change more rapidly.
4. TDD MIMO System
A multi-mode user terminal for an exemplary MIMO wireless local area network (WLAN) system is described below. The MIMO WLAN system utilizes orthogonal frequency division multiplexing (OFDM), which is a multi-carrier modulation technique that effectively partitions the overall system bandwidth into multiple (NF) orthogonal subbands. With OFDM, each subband is associated with a respective carrier that may be modulated with data.
The exemplary MIMO WLAN system is a TDD system. A high degree of correlation normally exists between the downlink and uplink channel responses for the TDD system since these links share the same frequency band. However, the responses of the transmit/receive chains at the access point are typically not the same as the responses of the transmit/receive chains at the user terminal. The differences can be determined and accounted for via calibration. The overall downlink and uplink channel responses may then be assumed to be reciprocal (i.e., transpose) of each other. The channel estimation and spatial processing for the steered mode can be simplified with reciprocal downlink and uplink.
FIG. 3 shows the transmit/receive chains at access point 110 and user terminal 120. At access point 110, transmit chain 324 and receive chain 334 are modeled by matrices Tap(k) and Rap(k), respectively, for each subband k. At user terminal 120, transmit chain 364 and receive chain 354 are modeled by matrices Tut(k) and Rut(k), respectively, for each subband k.
Table 5 summarizes the calibration and singular value decomposition for the downlink and uplink in the TDD MIMO WLAN system. The “effective” downlink and uplink channel responses, Hedn(k) and Heup(k), include the responses of the appropriate transmit and receive chains. Diagonal correction matrices Kap(k) and Kut(k) are obtained by performing calibration with MIMO pilots transmitted by both the access point and user terminal. The “calibrated” downlink and uplink channel responses, Hcdn(k) and Hcup(k), include the correction matrices and are reciprocal of one another (i.e., Hcup(k)=HcdnT(k), where “T” denotes the transpose).







TABLE 5







Channel Responses for TDD MIMO WLAN System










Downlink
Uplink





Effective
Hedn(k) = Rut(k)H(k)Tap(k)
Heup(k) = Rap(k)HT(k)Tut(k)


Channel


Response


Correction
Kap(k) = T−1ap(k)Rap(k)
Kut(k) = T−1ut(k)Rut(k)


Matrix


Calibrated
Hcdn(k) = Hedn(k)Kap(k)
Hcup(k) = Heup(k)Kut(k)


Channel


Response


Singular
Hcdn(k) = V*ut(k)Σ(k)UTap(k)
Hcup(k) = Uap(k)Σ(k)VHut(k)


Value


Decompo-


sition









Because Hcup(k) and Hcdn(k) are reciprocal, the matrices V*ut(k) and U*ap(k) of left and right eigenvectors of Hcdn(k) are the complex conjugate of the matrices Vut(k) and Uap(k) of right and left eigenvectors of Hcup(k). The matrix Uap(k) can be used by access point 110 for both transmit and receive spatial processing. The matrix Vut(k) can be used by user terminal 120 for both transmit and receive spatial processing.
Singular value decomposition may be performed independently for each of the NF subbands. For each subband, the singular values in Σ(k) may be ordered from largest to smallest, and the eigenvectors in V(k) and U(k) may be ordered correspondingly. A “wideband” eigenmode may be defined as the set of same-order eigenmodes for all NF subbands after the ordering. The decomposition only needs to be performed by either user terminal 120 or access point 110. If performed by user terminal 120, then the matrices Uap(k), for k=1. . . NF, may be provided to access point 110 in either a direct form (e.g., by sending entries of Uap(k)) or an indirect form (e.g., by transmitting a steered pilot).
Table 6 summarizes the spatial processing at access point 110 and user terminal 120 for data transmission and reception on the downlink and uplink in the TDD MIMO WLAN system for the steered mode. In Table 6, the subscript “up” denotes the uplink, and the subscript “dn” denotes the downlink.







TABLE 6







Spatial Processing for Steered Mode in


TDD MIMO WLAN System










Downlink
Uplink





Access
Transmit:
Receive:


Point
xdn(k) = Kap(k)U*ap(k)sdn(k)
ŝup(k) = Σ−1(k)UHap(k)rup(k)


User
Receive:
Transmit:


Terminal
ŝdn(k) = Σ−1(k)VTut(k)rdn(k)
xup(k) = Kut(k)Vut(k)sup(k)









For the steered mode, the access point can transmit a MIMO pilot on the downlink. The user terminal can estimate the calibrated downlink channel based on the MIMO pilot, perform singular value decomposition, and transmit a steered pilot on the uplink using the matrix Vut(k). A steered pilot is a pilot transmitted on the eigenmodes using the same steering vectors that are used for data transmission on the eigenmodes. The access point can directly estimate the matrix Uap(k) based on the uplink steered pilot. Pilots may also be transmitted in other manners for the steered mode. For example, the user terminal can transmit the MIMO pilot, and the access point can transmit the steered pilot. As another example, the access point and user terminal can both transmit MIMO pilots.
For the non-steered mode, the transmitter (either the access point or user terminal) can transmit a MIMO pilot along with the data transmission. The receiver performs spatial processing (e.g., with CCMI, MMSE, SIC, or some other technique) to recover the data symbol streams, as described above.
Table 7 summarizes an embodiment of the pilot transmission and spatial processing for the steered and non-steered modes for the TDD MIMO WLAN system.







TABLE 7







Data Transmission in TDD MIMO WLAN System










Steered Mode
Non-Steered Mode





Calibration
Calibration is performed
Calibration is not required


Downlink
AP transmits a MIMO pilot
AP transmits a MIMO pilot


Data
UT transmits a steered pilot


Transmission
UT sends the rate for each
UT sends the rate for each downlink



downlink wideband eigenmode
wideband spatial channel



AP transmits data with Uap(k)
AP transmits data from each antenna



UT receives data with Vut(k)
UT receives data with CCMI,




MMSE, SIC, and so on


Uplink
AP transmits a MIMO pilot
UT transmits a MIMO pilot


Data
UT transmits a steered pilot


Transmission
AP sends the rate for each
AP sends the rate for each uplink



uplink wideband eigenmode
wideband spatial channel



UT transmits data with Vut (k)
UT transmits data from each antenna



AP receives data with Uap (k)
AP receives data with CCMI, MMSE,




SIC, and so on









For both the steered and non-steered modes, the receiver (either the access point or user terminal) can estimate the average received SNR for each wideband spatial channel, for example, by averaging the received SNRs (in dB) for the NF subbands of the wideband spatial channel. A wideband spatial channel can correspond to a wideband eigenmode for the steered mode or a transmit antenna for the non-steered mode. The receiver then computes an operating SNR for each wideband spatial channel as the sum of the average received SNR plus the SNR back-off factor. The receiver then selects the rate for each wideband spatial channel based on the operating SNR and the look-up table of supported rates and their required SNRs.
FIG. 3 shows the spatial processing at access point 110 and user terminal 120 for downlink and uplink data transmission for the steered mode in the MIMO WLAN system. For the downlink, at access point 110, the data symbol vector sdn(k) is multiplied with the matrix U*ap(k) by a unit 320 and further scaled with the correction matrix Kap(k) by a unit 322 to obtain the transmit symbol vector xdn(k) for the downlink. At user terminal 120, the received symbol vector rdn(k) is multiplied with the matrix VutT (k) by a unit 360 and further scaled with the matrix Σ−1(k) by a unit 362 to obtain the recovered data symbol vector ŝdn(k) for the downlink.
For the uplink, at user terminal 120, the data symbol vector sup(k) is multiplied with the matrix Vut(k) by a unit 390 and further scaled with the correction matrix Kut(k) by a unit 392 to obtain the transmit symbol vector xup(k) for the uplink. At access point 110, the received symbol vector rup(k) is multiplied with the matrix UapH(k) by a unit 340 and further scaled with the matrix Σ−1(k) by a unit 342 to obtain the recovered data symbol vector ŝup(k) for the uplink.
FIG. 4 shows the spatial processing at access point 110 and user terminal 120 for downlink and uplink data transmission for the non-steered mode in the MIMO WLAN system. For the downlink, at access point 110, the data symbol vector sdn(k) is multiplied with the identity matrix I by a unit 420 to obtain the transmit symbol vector xdn(k) for the downlink. At user terminal 120, the received symbol vector rdn(k) is multiplied with a spatial filter matrix Mut(k) by a unit 460 and further scaled with a diagonal matrix Dut−1(k) by a unit 462 to obtain the recovered data symbol vector ŝdn(k) for the downlink. The matrices Mut(k) and Dut−1(k) are derived based on the effective downlink channel response matrix Hedn(k) and using the CCMI, MMSE, SIC, or some other technique.
For the uplink, at user terminal 120, the data symbol vector sup(k) is multiplied with the identity matrix I by a unit 490 to obtain the transmit symbol vector xup(k) for the uplink. At access point 110, the received symbol vector rup (k) is multiplied with a spatial filter matrix Map(k) by a unit 440 and further scaled with a diagonal matrix Dap−1(k) by a unit 442 to obtain the recovered data symbol vector ŝup(k) for the uplink. The matrices Map(k) and Dap−1(k) are derived based on the effective uplink channel response matrix Heup(k) and using the CCMI, MMSE, SIC, or some other technique.
FIG. 5 shows a block diagram of access point 110 and user terminal 120. On the downlink, at access point 110, a transmit (TX) data processor 514 receives traffic data from a data source 512 and control data from a controller 530. TX data processor 514 processes (e.g., encodes, interleaves, and symbol maps) each of NS data streams based on the coding and modulation schemes corresponding to the rate selected for the stream to obtain a data symbol stream. A TX spatial processor 520 receives NS data symbol streams from TX data processor 514, performs spatial processing (as required) on the data symbols, multiplexes in pilot symbols, and provides Nap transmit symbol streams for the Nap antennas. The processing by TX spatial processor 520 is dependent on whether the steered or non-steered mode is selected for use and may be performed as described above. Each transmitter unit (TMTR) 522 receives and processes (e.g., OFDM modulates and conditions) a respective transmit symbol stream to generate a downlink signal. Nap transmitter units 522a through 522ap provide Nap downlink signals for transmission from Nap antennas 524a through 524ap, respectively.
At user terminal 120, Nut antennas 552a through 552ut receive the Nap downlink signals, and each antenna provides a received signal to a respective receiver unit (RCVR) 554. Each receiver unit 554 performs processing (e.g., conditioning and OFDM demodulation) complementary to that performed by transmitter units 522 and provides a stream of received symbols. A receive (RX) spatial processor 560 performs spatial processing on Nut received symbol streams from Nut receiver units 554 and provides NS streams of recovered data symbols. The processing by RX spatial processor 560 is dependent on whether the steered or non-steered mode is selected for use and may be performed as described above. An RX data processor 570 processes (e.g., demaps, deinterleaves, and decodes) the NS recovered data symbol streams to obtain Ns decoded data streams, which may be provided to a data sink 572 for storage and/or a controller 580 for further processing.
A channel estimator 578 estimates the downlink channel response based on received pilot symbols and provides channel estimates, which may include channel gain estimates, SNR estimates, and so on. Controller 580 receives the channel estimates, derives the matrices used by RX spatial processor 560 and a TX spatial processor 590 for spatial processing, and determines a suitable rate for each data symbol stream sent on the downlink. The rates and uplink data are processed by a TX data processor 588, spatially processed (as required) by TX spatial processor 590, multiplexed with pilot symbols, conditioned by Nut transmitter units 554a through 554ut, and transmitted via antennas 552a through 552ut. 
At access point 110, the Nut transmitted uplink signals are received by antennas 524, conditioned and demodulated by receiver units 522, and processed by an RX spatial processor 540 and an RX data processor 542. The rates are provided to controller 530 and used to control data transmission on the downlink.
Access point 110 and user terminal 120 may perform similar or different processing for uplink data and pilot transmission.
Controllers 530 and 580 control the operation of various processing units at access point 110 and user terminal 120, respectively. SM mode selectors 534 and 584 select the appropriate spatial multiplexing mode to use for access point 110 and user terminal 120, respectively, based on various factors such as those described above. Memory units 532 and 582 store data and program codes used by controllers 530 and 580, respectively.
FIG. 6 shows a flow diagram of a process 600 for transmitting and receiving data in the MIMO system. Process 600 may be performed by a user terminal and an access point for data transmission on the downlink and uplink.
Initially, an SM mode is selected from among multiple supported SM modes, which may include the steered and non-steered modes described above (step 612). The mode selection may be based on the calibration status of the terminal, the amount of data to send, the SNR and/or channel conditions, the capability of the other communicating entity, and so on. The selected SM mode may also change during a data session.
For data transmission (block 620), multiple data streams for a first communication link (e.g., the uplink) are coded and modulated in accordance with their selected rates to obtain multiple data symbol streams for the first link (step 622). These data symbol streams are then spatially processed in accordance with the selected SM mode to obtain multiple transmit symbol streams for transmission from multiple antennas and via the first link (step 624). The transmit spatial processing is with a matrix of steering vectors for the steered mode and with the identity matrix for the non-steered mode.
For data reception (block 630), multiple received symbol streams, obtained from the multiple antennas for a second communication link (e.g., the downlink), are spatially processed in accordance with the selected SM mode to obtain multiple recovered data symbol streams (step 632). The receive spatial processing is with a matrix of eigenvectors for the steered mode and a spatial filter matrix for the non-steered mode. The spatial filter matrix may be derived based on the CCMI, MMSE, SIC, or some other technique. The recovered data symbol streams are then demodulated and decoded in accordance with their selected rates to obtain multiple decoded data streams for the second link (step 634).
The data transmission in block 620 and the data reception in block 630 may occur simultaneously or at different times. Pilots and rates are also transmitted and received in order to support data transmission and reception with the selected SM mode.
The multi-mode terminal and access point and the data transmission/reception techniques described herein may be implemented by various means. For example, these entities and techniques may be implemented in hardware, software, or a combination thereof. For a hardware implementation, the processing units for these entities and techniques may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, other electronic units designed to perform the functions described herein, or a combination thereof.
For a software implementation, the techniques described herein may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. The software codes may be stored in a memory unit (e.g., memory units 532 and 582 in FIG. 5) and executed by a processor (e.g., controllers 530 and 580). The memory unit may be implemented within the processor or external to the processor, in which case it can be communicatively coupled to the processor via various means as is known in the art.
Headings are included herein for reference and to aid in locating certain sections. These headings are not intended to limit the scope of the concepts described therein under, and these concepts may have applicability in other sections throughout the entire specification.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

## Claims

1. A terminal in a wireless multiple-input multiple-output (MIMO) communication system, comprising:
a mode selector operable to select a spatial multiplexing mode from among a plurality of spatial multiplexing modes supported by the terminal, wherein each of the plurality of spatial multiplexing modes supports simultaneous transmission of multiple data symbol streams via multiple spatial channels of a MIMO channel formed with a plurality of antennas at the terminal;
a transmit spatial processor operable to spatially process a first plurality of data symbol streams in accordance with the selected spatial multiplexing mode to obtain a plurality of transmit symbol streams for transmission from the plurality of antennas and via a first communication link; and
a receive spatial processor operable to spatially process a plurality of received symbol streams, obtained from the plurality of antennas, in accordance with the selected spatial multiplexing mode to obtain a plurality of recovered data symbol streams, which are estimates of a second plurality of data symbol streams sent via a second communication link.

2. The terminal of claim 1, wherein the plurality of spatial multiplexing modes include a steered mode and a non-steered mode.

3. The terminal of claim 2, wherein the steered mode supports simultaneous transmission of multiple data symbol streams via multiple orthogonal spatial channels of the MIMO channel, and wherein the non-steered mode supports simultaneous transmission of multiple data symbol streams from the plurality of antennas.

4. The terminal of claim 2, wherein
the transmit spatial processor is operable to multiply the first plurality of data symbol streams with a matrix of steering vectors for the steered mode and with an identity matrix for the non-steered mode, and
the receive spatial processor is operable to multiply the plurality of received symbol streams with a matrix of eigenvectors for the steered mode and with a spatial filter matrix for the non-steered mode.

5. The terminal of claim 4, further comprising:
a channel estimator operable to estimate a channel response of the second communication link; and
a controller operable to derive the spatial filter matrix based on the estimated channel response for the second communication link.

6. The terminal of claim 5, wherein the controller is operable to derive the spatial filter matrix based on a channel correlation matrix inversion (CCMI) technique or a minimum mean square error (MMSE) technique.

7. The terminal of claim 5, wherein the controller is operable to derive the spatial filter matrix based on a successive interference cancellation (SIC) technique and using a channel correlation matrix inversion (CCMI) technique or a minimum mean square error (MMSE) technique.

8. The terminal of claim 2, further comprising:
a transmit data processor operable to code and modulate a first plurality of data streams in accordance with a first plurality of rates to obtain the first plurality of data symbol streams for the first communication link; and
a receive data processor operable to demodulate and decode the plurality of recovered data symbol streams in accordance with a second plurality of rates to obtain a plurality of decoded data streams for the second communication link.

9. The terminal of claim 8, wherein the first plurality of rates are for a plurality of eigenmodes of the MIMO channel for the steered mode and are for the plurality of antennas for the non-steered mode.

10. The terminal of claim 2, wherein the mode selector is operable to select the steered mode if the terminal is calibrated and the non-steered mode if the terminal is not calibrated, and wherein channel response of the second communication link is reciprocal of channel response of the first communication link if the terminal is calibrated.

11. The terminal of claim 2, wherein the mode selector is operable to select the steered mode or the non-steered mode based on an amount of data to send, channel conditions, capability of an entity in communication with the terminal, or a combination thereof.

12. The terminal of claim 2, wherein the mode selector is operable to select the non-steered mode for a first portion of a data session and to select the steered mode for a remaining portion of the data session.

13. The terminal of claim 2, wherein the mode selector is operable to select the steered mode or the non-steered mode based on received signal-to-noise-and-interference ratio (SNR).

14. The terminal of claim 2, wherein the transmit spatial processor is further operable to multiplex a steered pilot for the steered mode and an unsteered pilot for the non-steered mode, wherein the steered pilot is transmitted on eigenmodes of the MIMO channel, and wherein the unsteered pilot comprises a plurality of orthogonal pilot transmissions from the plurality of antennas.

15. The terminal of claim 2, wherein the transmit spatial processor is further operable to multiplex an unsteered pilot for both the steered and non-steered modes, and wherein the unsteered pilot comprises a plurality of orthogonal pilot transmissions from the plurality of antennas.

16. The terminal of claim 1 and operable to communicate with an access point in the MIMO system.

17. The terminal of claim 1 and operable to communicate peer-to-peer with another terminal in the MIMO system.

18. The terminal of claim 1, wherein the MIMO system utilizes orthogonal frequency division multiplexing (OFDM), and wherein the transmit and receive spatial processors are operable to perform spatial processing for each of a plurality of subbands.

19. The terminal of claim 1, wherein the MIMO system is a time division duplex (TDD) system.

20. A method of processing data in a wireless multiple-input multiple-output (MIMO) communication system, comprising:
selecting a spatial multiplexing mode from among a plurality of spatial multiplexing modes, wherein each of the plurality of spatial multiplexing modes supports simultaneous transmission of multiple data symbol streams via multiple spatial channels of a MIMO channel;
spatially processing a first plurality of data symbol streams in accordance with the selected spatial multiplexing mode to obtain a plurality of transmit symbol streams for transmission from a plurality of antennas and via a first communication link; and
spatially processing a plurality of received symbol streams, obtained from the plurality of antennas, in accordance with the selected spatial multiplexing mode to obtain a plurality of recovered data symbol streams, which are estimates of a second plurality of data symbol streams sent via a second communication link.

21. The method of claim 20, wherein the plurality of spatial multiplexing modes include a steered mode and a non-steered mode, the steered mode supporting simultaneous transmission of multiple data symbol streams via multiple orthogonal spatial channels of the MIMO channel, and the non-steered mode supporting simultaneous transmission of multiple data symbol streams from the plurality of antennas.

22. The method of claim 21, wherein the first plurality of data symbol streams are multiplied with a matrix of steering vectors for the steered mode and with an identity matrix for the non-steered mode, and wherein the plurality of received symbol streams are multiplied with a matrix of eigenvectors for the steered mode and with a spatial filter matrix for the non-steered mode.

23. The method of claim 22, further comprising:
estimating a channel response of the second communication link; and
deriving the spatial filter matrix based on the estimated channel response for the second communication link.

24. The method of claim 23, wherein the spatial filter matrix is derived based on a channel correlation matrix inversion (CCMI) technique, a minimum mean square error (MMSE) technique, or a successive interference cancellation (SIC) technique.

25. An apparatus in a wireless multiple-input multiple-output (MIMO) communication system, comprising:
means for selecting a spatial multiplexing mode from among a plurality of spatial multiplexing modes, wherein each of the plurality of spatial multiplexing modes supports simultaneous transmission of multiple data symbol streams via multiple spatial channels of a MIMO channel;
means for spatially processing a first plurality of data symbol streams in accordance with the selected spatial multiplexing mode to obtain a plurality of transmit symbol streams;
means for transmitting the plurality of transmit symbol streams from a plurality of antennas and via a first communication link;
means for receiving a plurality of received symbol streams from the plurality of antennas for a second communication link; and
means for spatially processing the plurality of received symbol streams in accordance with the selected spatial multiplexing mode to obtain a plurality of recovered data symbol streams, which are estimates of a second plurality of data symbol streams sent via the second communication link.

26. The apparatus of claim 25, wherein the plurality of spatial multiplexing modes include a steered mode and a non-steered mode, the steered mode supporting simultaneous transmission of multiple data symbol streams via multiple orthogonal spatial channels of the MIMO channel, and the non-steered mode supporting simultaneous transmission of multiple data symbol streams from the plurality of antennas.

27. The apparatus of claim 26, wherein the first plurality of data symbol streams are multiplied with a matrix of steering vectors for the steered mode and with an identity matrix for the non-steered mode, and wherein the plurality of received symbol streams are multiplied with a matrix of eigenvectors for the steered mode and with a spatial filter matrix for the non-steered mode.

28. The apparatus of claim 27, further comprising:
means for estimating a channel response of the second communication link; and
means for deriving the spatial filter matrix based on the estimated channel response for the second communication link.

29. The apparatus of claim 28, wherein the spatial filter matrix is derived based on a channel correlation matrix inversion (CCMI) technique, a minimum mean square error (MMSE) technique, or a successive interference cancellation (SIC) technique.

30. An access point in a wireless multiple-input multiple-output (MIMO) communication system, comprising:
a mode selector operable to select a spatial multiplexing mode from among a plurality of spatial multiplexing modes supported by the access point, wherein each of the plurality of spatial multiplexing modes supports simultaneous transmission of multiple data symbol streams via multiple spatial channels of a MIMO channel formed with a plurality of antennas at the access point;
a transmit spatial processor operable to spatially process a first plurality of data symbol streams in accordance with the selected spatial multiplexing mode to obtain a plurality of transmit symbol streams for transmission from the plurality of antennas and via a first communication link; and
a receive spatial processor operable to spatially process a plurality of received symbol streams, obtained from the plurality of antennas, in accordance with the selected spatial multiplexing mode to obtain a plurality of recovered data symbol streams, which are estimates of a second plurality of data symbol streams sent via a second communication link.

31. The access point of claim 30, wherein the plurality of spatial multiplexing modes include a steered mode and a non-steered mode.

32. The access point of claim 31, wherein
the transmit spatial processor is operable to multiply the first plurality of data symbol streams with a matrix of steering vectors for the steered mode and with an identity matrix for the non-steered mode, and
the receive spatial processor is operable to multiply the plurality of received symbol streams with a matrix of eigenvectors for the steered mode and with a spatial filter matrix for the non-steered mode.