Title of Invention

"A METHOD OF RECEIVING AND TRANSMITTING DATA IN A MULTIPLE-INPUT MULTIPLE-OUTPUT COMMUNICATION SYSTEM AND AN APPARATUS THEREOF"

Abstract A method of receiving data in a multiple-input multiple-output (MIMO) communication system,, comprising-: obtaining, from a plurality of receive antennas at a receiving entity, a plurality of received symbol streams for a plurality of data symbol streams sent by a plurality of transmitting entitles, one data symbol stream for each transmitting entity characterized in that the data symbol stream for each transmitting entity is spatially processed with a steering vector for the transmitting entity and sent from a plurality of transmit antennas at the transmitting entity; and processing the plurality of received symbol streams in accordance with a receiver spatial processing technique to obtain a plurality of recovered data symbol streams, which are estimates of the plurality of data symbol streams.
Full Text The present invention relates to a method of receiving and transmitting data in a multiple-input multiple-output communication system and an apparatus thereof.
[0001] The present invention relates generally to data communication, and more
specifically to multi-antenna transmission for spatial division multiple access (SDMA) in a multiple-input multiple-output (MIMO) communication system.
II. Background
[00021 A MIMO system employs multiple (NT) transmit antennas and multiple (NR)
receive antennas for data transmission. 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.
[0003] In a multiple-access MIMO system, an access point can communicate with one
or more user terminals at any given moment. If the access point communicates with a single user terminal, then the NT transmit antennas are associated with one transmitting entity (either the access point or the user terminal), and the NR receive antennas are associated with one receiving entity (either the user terminal or the access point). The access point can also communicate with multiple user terminals simultaneously via SDMA. For SDMA, the access point utilizes multiple antennas for data transmission and reception, and each, of the user terminals typically utilizes one antenna for data transmission and multiple antennas for data reception.,
[0004] Some key challenges for SDMA in a multiple-access.MIMO system are (1)
selecting the proper set of user terminals for simultaneous transmission and (2) transmitting data to and/or from each selected user terminal in a manner to achieve good system performance. There is therefore a need in the art for techniques to efficiently support SDMA for a multiple-access MIMO system.
SUMMARY
[0005] Techniques for performing multi-antenna transmission for SDMA in a MIMO
system are described herein. These techniques may be used in combination with various wireless technologies such as Code Division Multiple Access (CDMA), Orthogonal Frequency Division Multiplexing (OFDM), Time Division Multiple Access (TDMA), and so on. For uplink transmission by multiple user terminals to a single access point, an uplink channel response matrix is obtained for each active user terminal (e.g., a terminal desiring to transmit on the uplink) and decomposed to obtain a steering vector for the user terminal. Each user terminal uses its steering vector for spatial processing to transmit on the uplink, if selected for uplink transmission. An "effective" uplink channel response vector is formed for each user terminal based on the steering vector and the uplink channel response matrix for the user terminal.
(0006] For each scheduling interval (e.g., each time slot), multiple sets of active user
terminals are formed and evaluated based on their effective channel response vectors (or their channel response matrices) to determine the best set of Nup user terminals for uplink transmission in that scheduling interval. For example, the user set with the highest overall throughput may be selected, hi effect, the spatial signatures of the user terminals as well as multi-user diversity are exploited to select a set of "spatially compatible" user terminals for simultaneous transmission on the uplink, as described below. The same or different number of user terminals may be selected for uplink transmission in different scheduling intervals.
[0007] Each user terminal selected for uplink transmission processes its data stream in
accordance with the underlying wireless technology (e.g., CDMA, OFDM, or TDMA) to obtain a data symbol stream. Each user terminal further performs spatial processing on its data symbol stream with its steering vector to obtain a set of transmit symbol streams, one transmit symbol stream for each antenna at the user terminal. Each user terminal then transmits its transmit symbol streams from its multiple antennas and via its MIMO channel to the access point. The NU!> selected user terminals simultaneously transmit their Nup data symbol streams (e.g., one data symbol stream for each terminal) via their respective MIMO channels to the access point. The access point obtains multiple received symbol streams from its multiple antennas. The access point then performs receiver spatial processing on the received symbol streams in accordance with
a linear or non-linear receiver spatial processing technique to recover the Nup data
symbol streams transmitted by the Nup selected user terminals, as described below.
[0008] The techniques to support SDMA transmission on the downlink are also
described herein. Various aspects and embodiments of the invention are described in further detail below.
BRIEF DESCRIPTION OF THE DRAWINGS
[0009] FIG. 1 shows a multiple-access MIMO system;
[0010] FIG. 2 shows a process for performing multi-antenna transmission on the uplink
for SDMA;
[0011] FIG. 3 shows a process for evaluating and selecting user terminals for
simultaneous transmission on the uplink;
[0012] FIG. 4 shows a block diagram of an access point and two user terminals;
[0013] FIGS. 5A and 5B show block diagrams of transmit (TX) data processors for
CDMA and OFDM, respectively;
[0014] FIG. 6 shows the spatial processing at the access point and one user terminal for
downlink and uplink transmission;
[0015] FIG. 7 shows a receive spatial processor and a receive data processor; and
[0016] FIG. 8 shows a controller and a scheduler at the access point.
DETAILED DESCRIPTION
[0017] 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.
[0018] 'Hie multi-antenna transmission techniques described herein may be used in
combination with various wireless technologies such as CDMA, OFDM, TDMA, and so on. Multiple user terminals can concurrently transmit/receive data via different (1) orthogonal code channels for CDMA, (2) time slots for TDMA, or (3) subbands for OFDM. A CDMA system may implement IS-2000, IS-95, IS-856, Wideband-CDMA (W-CDMA), or some other standards. An OFDM system may implement IEEE 802.11 or some other standards. A TDMA system may implement GSM or some other standards. These various standards are known in the art. The spatial processing for multi-antenna transmission may be performed on top of (either before or after) the data processing for the underlying wireless technology, as described below.
[0019] FIG. 1 shows a multiple-access MIMO system 100 with access points and user
terminals. 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 user terminal may be fixed or mobile and may also be referred to as a mobile station, a wireless device, or some other terminology. Access point 110 may communicate with one or more user terminals 120 at any given moment on the downlink and uplink. The downlink (i.e., forward link) is the communication link from the access point to the user terminals, and the uplink (i.e., reverse link) is the communication link from the user terminals to the access point. A user terminal may also communicate peer-to-peer with another user terminal. A system controller 130 couples to and provides coordination and control for the access points.
[0020] System 100 employs multiple transmit and multiple receive antennas for data
transmission on the downlink and uplink. Access point 110 is equipped with N^ antennas and represents the multiple-input (MI) for downlink transmissions and the multiple-output (MO) for uplink transmissions. A set of Nu selected user terminals 120 collectively represents the multiple-output for downlink transmissions and the multiple-input for uplink transmissions. For pure SDMA, it is desired to have Nap >NU>1 if
the data symbol streams for the Nu user terminals are not multiplexed in code, frequency, or time by some means. Nu may be greater than Nap if the data symbol streams can be multiplexed using different code channels with CDMA, disjoint sets of subbands with OFDM, and so on. Each selected user terminal transmits user-specific data to and/or receives user-specific data from the access point. In general, each selected user terminal may be equipped with one or multiple antennas (i.e., Nu > 1).
The Nu selected user terminals can have the same or different number of antennas.
[0021] 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. MIMO system 100 may also utilize a single carrier or multiple carriers for transmission. For simplicity, the following description assumes that (I) system 100 is a single-carrier system and (2) each user terminal is equipped with multiple antennas. For clarity, data transmission on the uplink is described below.
[0022] An uplink M1MO channel formed by the Nap antennas at the access point and the
Nui.m antennas at a given user terminal m may be characterized by an Nap x NWfn channel
response matrix Huprm, which may be expressed as:
where entry h.., for i = 1 ... Nap and y = 1 ... Na m , is the coupling (i.e., complex gain)
between access point antenna / and user terminal antenna j. For simplicity, the MTMO channel is assumed to be non-dispersive (i.e., flat fading), and the coupling between each transmit and receive antenna pair is represented with a single complex gain htj. In
general, each user terminal is associated with a different uplink channel response matrix
having dimensions determined by the number of antennas at that user terminal.
[0023] The uplink channel response matrix Hup-ni for user terminal m may be
"diagonalized" using either singular value decomposition or eigenvalue decomposition to obtain Nm eigenmodes of H,fim . The singular value decomposition of Hujvn may be
l
expressed as:
where Uup m is an Nap x Ngp unitary matrix of left eigenvectors of Ha/) m ;
Eap >ni is an JV^ x Nvl^ diagonal matrix of singular values of HBA>W ;
Ytyj, is an Nultm *Nulm 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 identity
matrix. The columns of a unitary matrix are orthogonal to one another.
|0024] The eigenvalue decomposition of a correlation matrix of Hup m may be expressed
as:
where Rupim is the A^ul m x Nul_m correlation matrix of Hu/) ra ; and
A^,m 3S an Nalm x Nulm diagonal matrix of eigenvalues of Ru/>m .
Singular value decomposition and eigenvalue decomposition are known in the art and
described, for example, by Gilbert Strang in "Linear Algebra and Its Applications,"
Second Edition, Academic Press, 1980.
[0025J As shown in equations (2) and (3), the columns of Vk/1M are the right
eigenvectors of Hup m as well as the eigenvectors of R^ n . The right eigenvectors of Hup^, are a'so referred to as "steering" vectors and may be used for spatial processing by user terminal m to transmit data on the Nm eigenmodes of Haftm. The eigenmodes
may be viewed as orthogonal spatial channels obtained through decomposition.
[0026] The diagonal matrix Zup m contains non-negative real values along the diagonal
and zeros elsewhere. These diagonal entries are known as the singular values of Hupm and represent the channel gains for the Nm eigenmodes of HL;)im. The singular values in £u/>« are a^so *ne square roots of the eigenvalues in Au/)nl. The singular values in Zupm may be ordered from largest to smallest, and the eigenvectors in y_upwm may be ordered correspondingly. The principal (i.e., dominant) eigenmode is the eigenmode associated with the largest singular value in IB;, m, which is the first singular value after the
ordering. The eigenvector for the principal eigenmode of Hu/1(n is the first column of V.Up,m after tne ordering and is denoted as vup m.
[0027] In a practical system, only an estimate of Hupim can be obtained, and only
estimates of V^, Eup ra and U^ m can be derived. For simplicity, the description
herein assumes channel estimation and decomposition without errors.
[0028] With SDMA, Nup user terminals can transmit data concurrently on the uplink to
the access point. Each user terminal performs spatial processing on its data using a steering vector, which may be derived (1) based on the eigenvector vupm for the
principal eigenmode of the wireless channel for that terminal or (2) in some other manner. Each of the Nup user terminals can transmit data on the principal eigenmode of its uplink MIMO channel using either "beam-forming" or "beam-steering", as described below.
1. Beam-Forming
[0029] For beam-forming, each user terminal m spatially processes its data symbol
stream (sBp,m} with its steering vector Vupm to obtain Nui,m transmit symbol streams, as follows:
i.up,m ~ — ap,m ' ^up,m \ ^-"1 VV
where s m is a data symbol to be transmitted by user terminal m; and
$up,m is an ^u,,m x 1 vector with Nui ,m transmit symbols to be sent from the Nul.m
antennas at user terminal m.
As used herein, a "data symbol" refers to a modulation symbol for data, and a "pilot symbol" refers to a modulation symbol for pilot. Although not shown in equation (4) for simplicity, each user terminal m may further scale each of the Wulm transmit symbols in the vector xu;vn with a scaling factor Gm such that the total energy for the NMim transmit
symbols is unity or some other selected value. Each user terminal m transmits its Nulm
transmit symbol streams via its uplink MIMO channel to the access point.
[0030] At the access point, the received symbols obtained for each user terminal m may
be expressed as:
i
Eup.ra = Mup,m*up,M +flu;>,m = SLup fn—up ,mS up ,m "*" fiu/>,m ~~ S S where rupjn is an Nap x 1 vector with Nap received symbols obtained from the N^
access point antennas for user terminal m; h Up.eff,m ig an Nap x I "effective" uplink channel response vector for user
terminal m, which is hup,effjn - HViB v^^ ; and nu/) _m is an N^ x 1 noise vector for user terminal m.
The spatial processing by each user terminal m effectively transforms its MIMO channel with a channel response matrix of Hupm into a single-input multiple-output (SMO)
channel with a channel response vector of huj, cff _„ .
[0031] The received symbols at the access point for all Nup user terminals transmitting
simultaneously may be expressed as:
where sup is an Nup x 1 vector with Nup data symbols transmitted by the Nup user
terminals, which is su/, = |>U/J , s^ ... sup^]r ; Hup,^ is an Nop x Nu/, effective uplink channel response matrix for all Nup user
terminals, which is H^ = [hupeff , h,^,, ... h,,,,,^ J ; and nv is an ./Vap x 1 noise vector at the access point.
[0032J The access point can recover the Nup data symbol streams transmitted by the Nvp
user terminals using various receiver processing techniques such as a channel correlation matrix inversion (CCMI) technique (which is also commonly referred to as a zero- forcing technique), a minimum mean square error (MMSE) technique, a successive interference cancellation (SIC) technique, and so on. A. CCMI Spatial Processing
[0033] F°r the CCMI technique, the access point performs receiver spatial processing as
follows:
—ccmi
p + nv ) . Eq (7)
= « -+- n
Zup r Hccmi >
where MCC01, is an Nup x Naf spatial filter matrix for the CCMI technique, which is
Mrem( = E^^H J^ , where R^ = Hj^Hv^- 5 iccmi ls an N«p x 1 vector with Nup recovered data symbols for the Nup user
terminals with the CCMI technique; and Kami - M«m,fiup is me CCMI filtered noise.
[0034) For simplicity, the noise nup is assumed to be additive white Gaussian noise
(AWGN) with zero mean, a variance of a*, and an autocovariance matrix of

where E[x] is the expected value of x. In this case, the signal-to-noise-and-interference ratio (SNR) of the recovered data symbol stream {sccmim} for each user terminal m may be expressed as:
r«.,m=-^=T , formal... N^, Eq (8)
rmm°n
where Pulm is the transmit power used by user terminal m;

rm» ig the w-th diagonal element of Rup>5? ; and Ycemi,m 's me SNR for user terminal m with the CCMI technique. Due to the structure of R,^ , the CCMI technique may amplify the noise.
B. MMSE Spatial Processing
[0035) For the MMSE technique, a spatial filter matrix Mmmje is derived such that the
mean square error between the estimated data vector from the MMSE spatial filter and the data vector sup is minimized. This MMSE criterion may be expressed as:
frUf -*upf (Mmmerup -»„)] , Eq(9)
where Mmmse is the Nuf x Nap spatial filter matrix for the MMSE technique.
[0036] The solution to the optimization problem posed in equation (9) may be obtained
in various manners. In one exemplary method, the MMSE spatial filter matrix Mmast is derived as:
MMfi = Hi^[HVp^g;^ + all] - . Eq (10)
The spatial filter matrix MramK contains Nup rows for Nup MMSE spatial filter row
vectors for the Nup user terminals. The MMSE spatial filter row vector for each user
terminal may be expressed as mairjejn = h^_m G , where G = [JEJ^^ H^ + an2|] H .
[0037] The access point performs receiver spatial processing as follows:
s = D"1 M r
—mmse £~ minic ..", mmse i-uf '
where Dmmie is an N x N,^ diagonal matrix whose diagonal elements are the diagonal
elements of M^H^ , i.e., D,nra« =diag [MmaueHup^]; immje 's an ^ 'up x ^ recovered data symbol vector for the MMSE technique; and nram« =Mmmj,nv is the MMSE filtered noise.
In equation (11), the MMSE spatial filter provides an unnormalized estimate of sup , and
the scaling by the diagonal matrix Dm'mje provides a normalized estimate of suf> .
[0038] The SNR of the recovered data symbol stream {snmK^} for each user terminal m
may be expressed as:

rmmse,m = -~-p«» , for » = 1 ... N^ , Eq (12)
* /Tint
where «jmm is the m-th diagonal element of M^.H,,^, i.e., qmm = mmTOf,m hu;i^,m; and Yanatm 's *^e SNR for user terminal m with the MMSE technique.
C. Successive Interference Cancellation Spatial Processing
[0039] The access point can process the Nap received symbol streams using the SIC
technique to recover the Nup data symbol streams. For the SIC technique, the access point initially performs spatial processing on the Nap received symbol streams (e.g., using CCMI, MMSE, or some other technique) and obtains one recovered data symbol stream. The access point then processes (e.g., demodulates/symbol demaps, deinterleaves, and decodes) this recovered data symbol stream to obtain a decoded data stream. The access point next estimates the interference this stream causes to the other N -1 data symbol streams and cancels the estimated interference from the Nap
received symbol streams to obtain Nap modified symbol streams. The access point then repeats the same processing on the Nap modified symbol streams to recover another data symbol stream.
[0040] For the SIC technique, the input (i.e., received or modified) symbol streams for
stage t, where i - \ ... Nup, may be expressed as:
dW = H;,X,+IL, > Eq(13)
where resic is an N x 1 vector with Nap input symbols for stage i, and r';c = rup for
the first stage; s'up is an Nnr * 1 vector for Nnr data symbol streams not yet recovered at stage i,
where Nnr = Nup - ( +1; and
H^p ^ is an Naf x Nnr reduced effective channel response matrix for stage t.
[0041] Equation (13) assumes that the data symbol streams recovered in the (.-I prior
stages are canceled. The dimensionality of the effective channel response matrix Hupi(.^
successively reduces by one column for each stage as a data symbol stream is recovered and canceled. For stage i, the reduced effective channel response matrix K'upeff is obtained by removing ^-1 columns in the original matrix HUpqf corresponding to the t-\ data symbol streams already recovered in prior stages, i.e.,
Uirrf =[bup,effj, Jw.yltl - SW.;,.J. where IWj. isan A^,*1 effective channel response vector for user terminal /'„. For stage f, the ^-1 data symbol streams recovered in the prior stages are given indices of {_/, j2 ... ./,_,}, and the Nnr data symbol streams not yet recovered are given indices of {jt jM ... jN }.
[0042J For stage f , the access point derives an Nnr x Naf spatial filter matrix M',C
based on the reduced effective channel response matrix H^ ^ (instead of the original matrix H^^) using the CCMI, MMSE, or some other technique. Since }j*upeff is different for each stage, the spatial filter matrix M',-C is also different for each stage.
[0043J The access point multiplies the vector r'lc for the Nap modified symbol streams
with the spatial filter matrix M'C to obtain a vector ?'fc for Nnr detected symbol streams, as follows:

.
.sic

Eq(14)
where Q'C = MJ(<.h and n is the filtered noise for stage access> point then selects one of the Nnr detected symbol streams for recovery, where the selection criterion may be based on SNR and/or other factors. For example, the detected symbol stream with the highest SNR among the Nnr detected symbol streams may be selected for recovery. Since only one data symbol stream is recovered in each
stage, the access point can simply derive one 1 x Nap spatial filter row vector m^ for the data symbol stream (s^j } to be recovered in stage i . The row vector rn'( is one
row of the matrix M'IC . In this case, the spatial processing for stage i to recover the data symbol stream (JUP } } may be expressed as:
V,. = m'j, r L - q^. g^ + mj, aup , Eq (1 5)
where q' is the row of Q\c corresponding to data symbol stream [sup . } .
— j( -*—*
[0044J In any case, the access point scales the detected symbol stream {?"up it } to obtain
a recovered data symbol stream {s^} and further demodulates, deinterleaves, and
decodes this stream {supji} to obtain a decoded data stream {rfk .}. The access point
also forms an estimate of the interference this stream causes to the other data symbol streams not yet recovered. To estimate the interference, the access point re-encodes,
A
interleaves, and modulates the decoded data stream (du .} in the same manner as performed at user terminal jt and obtains a stream of "remodulated" symbols (sup h}, which is an estimate of the data symbol stream {s .} just recovered. The access point
then spatially processes the remodulated symbol stream with the effective channel response vector hup eg /( for user terminal jt to obtain a vector ij( with Nap interference
components caused by this stream. The Nap interference components ij are then subtracted from the Nap modified symbol streams r|fc for stage I to obtain Nap modified symbol streams r'*1 for the next stage £ + 1, i.e., r'*1 =r'lV. -\]t. The modified symbol
streams r'^ represent the streams that would have been received by the access point if the data symbol stream {s^j} had not been transmitted (i.e., assuming that the
interference cancellation was effectively performed).
[0045] The access point processes the Nap received symbol streams in Nup successive
stages. For each stage, the access point (1) performs receiver spatial processing on either the Nap received symbol streams or the Nap modified symbol streams from the preceding stage to obtain one recovered data symbol stream, (2) processes this recovered data symbol stream to obtain a corresponding decoded data stream, (3) estimates and cancels the interference due to this stream, and (4) obtains Nap modified symbol streams for the next stage. If the interference due to each data stream can be accurately estimated and canceled, then later recovered data streams experience less interference and may be able to achieve higher SNRs.
(0046) For the SIC technique, the SNR of each recovered data symbol stream is
dependent on (1) the spatial processing technique (e.g., CCMI or MMSE) used for each stage, (2) the specific stage in which the data symbol stream is recovered, and (3) the amount of interference due to data symbol streams recovered in subsequent stages. In general, the SNR progressively improves for data symbol streams recovered in later stages because the interference from data symbol streams recovered in prior stages is canceled. This then allows higher rates to be used for data symbol streams recovered later.
2. Beam-Steering
[0047J For beam-steering, each user terminal m performs spatial processing with a
normalized steering vector v^ )IB , which is derived using the phase information in the
steering vector \upm . The normalized steering vector vupiBI may be expressed as:
v^=[V9"' Aeie" ... Ae^Y , Eq (16)
where A is a constant (e.g., A = 1 / ^Nutm ) ; arid
0mj is the phase for antenna i at user terminal m, which is:
-
As shown in equation (16), the Nul,m elements of v^ have equal magnitude. As shown in equation (17), the phase of each element in v^^ is equal to the phase of a corresponding element in vupin (i.e., &mf is obtained from v^^j, where
V — f V V V 1 "^
— up,m L up,m,] up,r»i,2 *" u/»,m,A/wJ /*
[0048] Each user terminal m spatially processes its data symbol stream {supm} with its
normalized steering vector VW>M to obtain Nu,.m transmit symbol streams, as follows:
xup,«=vUIvn-.V™ • Eq(18)
The constant A in equation (16) may be selected such that the total energy of the Nut.m transmit symbols in the vector xup n is unity or some other selected value. The Nap x 1
effective uplink channel response vector hup ffffl for each user terminal m with beam-steering may be expressed as:
i».^=HVJ.v^ . Eq(19)
The Nap x Nup effective uplink channel response matrix H^ ^ for all Nup user terminals for beam-steering is then Hvejr=[haA,iejr?1 hupfff2 ... Sv.^,Vtf]-
(0049] The access point can perform receiver spatial processing using the CCMI,
MMSE, or SIC technique described above, or some other technique. However, the spatial filter matrix is derived with the matrix Hupiqj- instead of the matrix Hu
3. SUM A Transmission
[0050] FIG. 2 shows a process 200 for performing multi-antenna transmission on the
uplink for SDMA. Initially, an uplink channel response matrix Tlup m is obtained for
each active user terminal desiring to transmit on the uplink (block 210). The matrix Ha/>_„ for each user terminal is decomposed to obtain a steering vector vup m or v for
the user terminal (block 212). An effective uplink channel response vector h ^m is
formed for each user terminal based on the steering vector and the uplink channel response matrix for the user terminal (block 214). Blocks 210 through 214 are for channel estimation and decomposition and may be performed by the access point, the user terminals, or both.
[0051] Different sets of active user terminals are formed and evaluated based on their
effective uplink channel response vectors hvplfm or their uplink channel response
matrices H^ m (block 220). The evaluation may be performed as described below. The
best set of Nup user terminals is selected for transmission (also block 220). The rate to use by each selected user terminal (which is obtained from the evaluation in block 220) is sent to the user terminal (block 222). Blocks 220 and 222 are for user scheduling and are typically performed by the access point.
[00521 Each selected user terminal performs spatial processing on its data symbol
stream {su m} with its steering vector vup n or vup m and transmits Nu,jin transmit symbol
streams from its JVu(m antennas and via its MIMO channel to the access point (block 230). The Nup selected user terminals simultaneously transmit their Nup data symbol streams via their MMO channels to the access point. Block 230 is for data transmission and is performed by each selected user terminal.
[0053] The access point obtains Nap received symbol streams from its Nap antennas
(block 240). The access point then performs receiver spatial processing on the Nap received symbol streams in accordance with the CCMI, MMSE, SIC, or some other technique to obtain Nup recovered data symbol streams, which are estimates of the Nup data symbol streams transmitted by the Nup selected user terminals (block 242). Blocks 240 and 242 are for data reception and are performed by the access point.
[0054J Multiple user terminals can be selected for simultaneous transmission on the
uplink. The user selection may be based on various factors. Some factors may relate to system constraints and requirements such as quality of service, maximum latency,
average data rate, and so on. These factors may need to be satisfied for each user terminal. Other factors may relate to system performance, which may be quantified by overall system throughput or some other indication of performance. A scheduling scheme can evaluate user terminals for transmission based on one or more metrics and one or more factors. Different scheduling schemes may use different metrics, take into account different factors, and/or weigh the metrics and factors differently.
[0055] Regardless of the particular scheduling scheme selected for use, different sets of
user terminals can be evaluated in accordance with the scheduling scheme. The "spatial signatures" of the individual user terminals (e.g., their MMO channel responses) and multi-user diversity can be exploited to select the "best" set of "spatially compatible" user terminals for simultaneous transmission. Spatial compatibility may be quantified by a metric such as overall throughput or some other measure of performance. The best user set may be the one that achieves the highest score for the metric (e.g., the highest overall throughput) while conforming to the system constraints and requirements.
[0056] For clarity, a specific scheduling scheme that selects user terminals based on
overall throughput is described below, hi the following description, Nact user terminals are active and desire to transmit data on the uplink.
[0057J FIG. 3 shows a process 220a for evaluating and selecting user terminals for
transmission on the uplink. Process 220a represents a specific scheduling scheme and may be used for block 220 in FIG. 2. Initially, a variable Rmax for the highest overall throughput is set to zero (block 310).
[0058J A new set of user terminals is selected from among the Nact active user terminals
(block 312). This user set forms a hypothesis to be evaluated and is denoted as M, = {"„ i "„ i ••• un N }' where n denotes the n-th user set being evaluated and unj is
the j'-th user terminal in set n. An effective uplink channel response matrix H^^^, is formed for user set n with the effective uplink channel response vectors h^^,,^ through hup fffllH for the Nup user terminals in set n (block 314).
[0059] The SNR for each user terminal in set « is then computed based on the effective
uplink channel response matrix H,^.,, and using the CCMI, MMSE, SIC, or some
other technique employed by the access point (block 316). The SNRs for the user terminals with the CCMI and MMSE techniques can be computed as shown in equations (8) and (12), respectively. The SNRs for the user terminals with the SIC
technique are dependent on the order in whicn tiie user terminals are recovered. For the SIC technique, one or multiple orderings of user terminals may be evaluated. For example, a specific ordering may be evaluated whereby the user terminal with the highest SNR at each stage is processed by the access point. In any case, the SNRs for the Nup user terminals in set n are denoted as {yn , yn 2 ... yn N } .
(00601 The throughput for each user terminal in set n is then computed based on the
SNR for the user terminal (block 318), as follows:
( r r., = -log, 1+^- , for i = 1 ... //„„ , Eq (20)
v c". where cn , is a positive constant that reflects the fraction of the theoretical capacity achieved by the coding and modulation schemes to be used by user terminal un . (e.g., cHl-2 for a coding and modulation scheme that is 3 dB from Shannon capacity) and ra ; is the throughput or spectral efficiency for user terminal uni given in units of bits
per second per Hertz (bps/Hz). The overall throughput Rn achieved by user set n can be computed (block 320), as follows:
[00611 A. determination is then made whether or not the overall throughput Rn for user
set n is greater than the maximum overall throughput achieved thus far for all user sets that have been evaluated (block 330). If the answer is yes, then user set n and the overall throughput Rn for this set are saved (block 332). Otherwise, user set n is discarded.
[0062] A determination is then made whether or not all user sets have been evaluated
(block 340). If the answer is no, then the process returns to block 312 to select another set of user terminals for evaluation. Otherwise, the user terminals in the saved set are scheduled for transmission on the uplink (block 342).
[0063] For the embodiment described above, a metric based on theoretical capacity
(albeit with a compensation factor cni) is used to select the best user set for uplink
transmission. In another embodiment, a metric based on realizable throughput is used to select the best user set. For this embodiment, the user sets may be evaluated based on a set of "rates" supported by the system. These rates may be viewed as quantized values of the throughputs computed in equation (20). Each non-zero rate is associated
with specific coding and modulation schemes, a particular spectral efficiency (which is typically given in units of bps/Hz), and a particular required SNR. The required SNR for each rate may be determined by computer simulation, empirical measurement, and so on, and based on an assumption of an AWGN channel. A look-up table (LUT) can store the set of supported rates and their required SNRs. The SNR for each user terminal is mapped to a selected rate, which is the highest rate in the look-up table with a required SNR that is equal to or lower than the SNR for the user terminal. The selected rates for all user terminals in each set are accumulated to obtain an aggregate rate for the set. The user set with the highest aggregate rate is scheduled for transmission.
[0064] User sets of different sizes may be evaluated to determine the best user set for
transmission. For example, sets with one user terminal (i.e., N^ = 1) may be evaluated
first, then sets with two user terminals (i.e., N = 2) may be evaluated next, and so on, and sets with Nap user terminals (i.e., N^ = Nap) may be evaluated last.
[0065] Depending on the values for Nup, Naa and Nap, a large number of user sets may
need to be evaluated for an exhaustive search for the best user set. The number of user sets to evaluate may be reduced by prioritizing the active user terminals, considering other factors, and so on. The priority of each active user terminal may be determined based on various factors such as the service category for the user terminal (e.g., premium or normal), the average throughput achieved by the user terminal, the amount of data the user terminal has to send, the delay experienced by the user terminal, and so on. The priority of each user terminal may be updated over time to reflect the current status of the user terminal. As an example, only the Nap highest priority user terminals may be evaluated in each scheduling interval.
[0066] In the exemplary scheduling scheme described above for FIG. 3, the effective
uplink channel response vector hup,^,u., is derived independently (or "locally") for each
user terminal based only on the uplink channel response matrix HViB|i for the user terminal. The effective channel response matrix H^ ^ for each user set n is formed with the independently derived effective channel response vectors for the user terminals in the set. The vectors &„,.#>,,,, for i = 1 ... Nv, in the matrix H^^ may not yield
the highest possible overall throughput for user set n. Multiple sub-hypotheses may be evaluated for each user set, where the vectors in Hu;,,^in may be adjusted by different
amounts for each sub-hypothesis. For example, the phases of the steering vectors for
the user terminals in set n may be modified in a deterministic manner (e.g., by some ±
percentage) or in a pseudo-random manner for each sub-hypothesis while maintaining
the power of each steering vector at unity (i.e., a unit norm for each steering vector).
[0067] A scheduling scheme may also evaluate each user set n based on the uplink
MIMO channel response matrices Hupu>( instead of the effective uplink channel
response vectors h^^ for the user terminals in the set. A steering vector v|
may be derived ("globally") for each user terminal in set n in the presence of all user terminals in the set. The effective uplink channel response vector h^ ^ „ j for each
user terminal can be computed based on the (globally derived) steering vector v^
r> t j
and the uplink channel response matrix H^^. as follows: h^,,,^ ( = H^ v^,>u . An effective uplink channel response matrix H^^_„ is then formed for user set n based on the effective uplink channel response vectors h_'up,e0> for the user terminals in the set.
The performance (e.g., overall throughput) of user set n is then evaluated with the matrix fV_upiCffs, (instead of the matrix Hupeffin). As an example, multiple sub-hypotheses may be evaluated for user set n, where each sub-hypothesis corresponds to a different set of steering vectors for the user terminals in the set. The best sub-hypothesis is then selected for user set n. Multiple user sets may be evaluated in similar manner and the best user set is selected for uplink transmission.
[0068] Various other scheduling schemes may also be implemented and this is within
the scope of the invention. Different scheduling schemes may consider different factors in selecting the user terminals for each set, derive the steering vectors for the user terminals in different manners, use other metrics to quantify the performance of each user set, and so on.
[0069] The uplink channel response matrix Hupm for each user terminal m may be
estimated in various manners. Different channel estimation techniques may be used for TDD and FDD systems.
(0070] In an FDD system, the downlink and uplink use different frequency bands. The
channel response for one link may not be correlated with the channel response for the other link. In this case, the access point can estimate the uplink MIMO channel response for each user terminal based on a pilot transmitted by the user terminal. The
access point can perform decomposition of Hup m for each user terminal, derive the steering vector vupim or vu/>m, and send the steering vector to each user terminal selected for transmission.
[00711 For the FDD system, each user terminal m can transmit an unsteered pilot (or a
MEMO pilot) to allow the access point to estimate the uplink MIMO channel response and obtain the matrix H^.m. The unsteered pilot comprises Nu,im orthogonal pilot
transmissions sent from Wu/,« user terminal antennas, where orthogonality may be achieved in time, frequency, code, or a combination thereof. For code orthogonality, user terminal m sends Nui.m pilot transmissions simultaneously from its Nw,m antennas, with the pilot transmission from each antenna being "covered" with a different orthogonal (e.g., Walsh) sequence. The access point "decovers" the received pilot symbols from each access point antenna i with the same Nut.m orthogonal sequences used by user terminal m to obtain estimates of the complex channel gain between access point antenna i and each of the //H/,ra user terminal antennas. The covering at the user terminal and the decovering at the access point can be performed in similar manner as for a Code Division Multiple Access (CDMA) system. For frequency orthogonality, the Nut,m pilot transmissions for the JVtt/,m user terminal antennas can be sent simultaneously on different subbands of the overall system bandwidth. For time orthogonality, the Nut_m pilot transmissions for the Nvt,m user terminal antennas can be sent in different time slots. In any case, the orthogonality among the Nui.m pilot transmissions allows the access point to distinguish the pilot transmission from each user terminal antenna.
[0072J Multiple user terminals can simultaneously transmit unsteered pilots on the
uplink to the access point. The pilot transmissions for all user terminals are orthogonal in code, time, and/or frequency to allow the access point to estimate the uplink channel response for each user terminal.
[0073J In a TDD system, the downlink and uplink share the same frequency band. A
high degree of correlation normally exists between the downlink and uplink channel responses. However, the responses of the transmit/receive chains at the access point may not be the same as the responses of the transmit/receive chains at the user terminal. If the differences can be determined via calibration and accounted for by applying the proper correction matrices at the access point and/or user terminal, then the overall downlink and uplink channel responses may be assumed to be reciprocal (i.e., transpose) of each other.
[0074] For the TDD system, the access point can transmit an unsteered pilot from Nap
access point antennas. Each user terminal m can (1) process the downlink unsteered pilot to obtain its downlink MIMO channel response matrix Hdam, (2) estimate the uplink MIMO channel response as the transpose of the downlink MIMO channel response (i.e., Hupfll sH^,m), (3) derive the steering vector yu/>m or \_upjn based on HBp m, and (4) compute the effective uplink channel response vector h^,^-^. Each user terminal can send the vector bupe^m to the access point in a direct form (e.g., by sending the entries of bup [0075] For clarity, the SDMA transmission techniques have been described for uplink
transmission. These techniques may also be used for downlink transmission. A downlink MIMO channel response matrix Hrf/T m can be obtained for each user terminal
m and decomposed to obtain a downlink steering vector y_Hnm for the user terminal. The
access point can evaluate different sets of user terminals for downlink transmission (e.g., in similar manner as that described above for the uplink) and select the best set of Ndn user terminals for downlink transmission.
[0076J For downlink transmission, the access point spatially processes Njn data symbol
streams with Ndn downlink steering vectors for the Afo, selected user terminals to obtain Nap transmit symbol streams, as follows:
**=¥*•§* , Eq(22)
where sdn is an N^ x 1 vector with Ndn data symbols to be transmitted on the downlink to the Ndn selected user terminals;
V rfn is an Nap x jVrfn matrix with Ndn downlink steering vectors for the Ndn
selected user terminals, which is Vdn = [vrfn, vda 2 ... vrf)liW ]; and xrfll is an Nap x 1 vector with Nap transmit symbols to be sent from the Nap
access point antennas.
The access point may also spatially process the downlink data symbol stream for each
user terminal with a normalized downlink steering vector vrfn ra for beam-steering.
[0077J If"a user terminal is equipped with at least Nap antennas (i.e., Nul_m > Nap), then
the user terminal can perform receiver spatial processing using CCMI, MMSE, or some
other technique to isolate and recover its downlink data symbol stream. If a user terminal is equipped with less than Nap antennas (i.e., Nulm terminal can recover its downlink data symbol stream in the presence of crosstalk from the other data symbol streams.
[0078] For clarity, the SDMA transmission techniques have been described for a single-
carrier narrowband MIMO system with flat-fading. These techniques may also be used for a wideband MIMO system and a multi-carrier MIMO system. A wideband MIMO system may utilize CDMA as the underlying wireless technology. A multi-carrier MEMO system may utilize OFDM or some other multi-carrier modulation technique. OFDM effectively partitions the overall system bandwidth into multiple (Np) orthogonal subbands. Each subband is associated with a respective carrier that may be modulated with data.
[0079| For a MIMO OFDM system, for each user terminal, the channel estimation may
be performed for each of the NF subbands to obtain NF frequency-domain channel response matrices for the Nf subbands. The spatial processing may be performed in various manners. In one embodiment, each of the Nf channel response matrices is independently decomposed to obtain NF steering vectors for the NF subbands. Spatial processing is then performed for each subband with the steering vector obtained for that subband. In another embodiment, a single frequency-independent steering vector is derived for each user terminal based on the NF channel response matrices. Spatial processing is then performed for all NF subbands with this single steering vector. In any case, Np effective uplink channel response vectors ^^^(k), for k = \ ... NF, are
formed for each user terminal with either the single or NF steering vectors. The user terminals may be evaluated based on their frequency-dependent effective channel response vectors.
[0080] For a wideband MIMO system, for each user terminal, a time-domain channel
impulse response matrix may be obtained for each of multiple (Np) resolvable signal paths in the MIMO channel. In one embodiment, Np steering vectors are derived for each user terminal based on the Np channel impulse response matrices and used to account for the frequency-selective nature of the MIMO channel. In another embodiment, one steering vector is derived for each user terminal, for example, based on the channel impulse response matrix for the main signal path with the highest energy. In any case, the steering vectors) may be used to derive one or more effective
channel response vectors, which are in rum used to evaluate and select user terminals for transmission.
4. Exemplary MIMO System
[0081] FIG. 4 shows a block diagram of access point 110 and two user terminals 120m
and 120x in MIMO system 100. Access point 110 is equipped with Nap antennas 424a through 424ap. User terminal 120m is equipped with Nu,,m antennas 452ma through 452mu, and user terminal 120x is equipped with N^ antennas 452xa through 452xu. Access point 110 is a transmitting entity for the downlink and a receiving entity for the uplink. Each user terminal 120 is a transmitting entity for the uplink and a receiving entity for the downlink. As used herein, a "transmitting entity" is an independently operated apparatus or device capable of transmitting data via a wireless channel, and a "receiving entity" is an independently operated apparatus or device capable of receiving data via a wireless channel. In the following description, the subscript "dn" denotes the downlink, the subscript "up" denotes the uplink, Nup user terminals are selected for simultaneous transmission on the uplink, Njn user terminals are selected for simultaneous transmission on the downlink, Nup may or may not be equal to Ndn, and Nup and Njn may be static values or can change for each scheduling interval. For simplicity, beam-steering is used in the following description.
[0082] On the uplink, at each user terminal 120 selected for uplink transmission, a TX
data processor 488 receives traffic data from a data source 486 and control data from a controller 480. TX data processor 488 processes (e.g., encodes, interleaves, and modulates) the traffic data {dupm} for the user terminal based on the coding and
modulation schemes associated with the rate selected for the user terminal and provides a data symbol stream {sufm}. A TX spatial processor 490 performs spatial processing
on the data symbol stream {supm} with the steering vector yupm, multiplexes in pilot symbols as needed, and provides Nui]m transmit symbol streams for the Nut}m antennas. The steering vector \upm is derived based on the uplink channel response matrix H,^
for the user terminal, as described above. Each transmitter unit (TMTR) 454 receives and processes (e.g., converts to analog, amplifies, filters, and frequency upconverts) a respective transmit symbol stream to generate an uplink signal. Nulim transmitter units 454 provide Nu,>m uplink signals for transmission from Nut,m antennas 452 to the access point.
[0083J Nup user terminals may be scheduled for simultaneous transmission on the
uplink. Each of these user terminals performs spatial processing on its data symbol stream with its steering vector and transmits its set of transmit symbol streams on the uplink to the access point.
[0084] At access point 110, Nap antennas 424a through 424ap receive the uplink signals
from all Nup user terminals transmitting on the uplink. Each antenna 424 provides a received signal to a respective receiver unit (RCVR) 422. Each receiver unit 422 performs processing complementary to that performed by transmitter unit 454 and provides a received symbol stream. An RX spatial processor 440 performs receiver spatial processing on the Nap received symbol streams from Nap receiver units 422 and provides Nup recovered uplink data symbol streams. The receiver spatial processing is performed in accordance with the CCMI, MMSE, SIC, or some other technique. A spatial filter matrix Map for the access point is derived based on (1) the receiver spatial
processing technique used by the access point and (2) the effective uplink channel response matrix Huf>gf for the Nup user terminals. Each recovered uplink data symbol
stream {supm} is an estimate of a data symbol stream {supm} transmitted by a respective
user terminal. An RX data processor 442 processes (e.g., demodulates, deinterleaves, and decodes) each recovered uplink data symbol stream {supm} in accordance with the
rate used for that stream to obtain decoded data. The decoded data for each user terminal may be provided to a data sink 444 for storage and/or a controller 430 for further processing.
[0085] On the downlink, at access point 110, a TX data processor 410 receives traffic
data from a data source 408 for N stream to generate a downlink signal. Nap transmitter units 422 provide Nap downlink signals for transmission from Nap antennas 424 to the user terminals.
[0086] At each user terminal 120, Nut,m antennas 452 receive the Nap downlink signals
from access point 110. Each receiver unit 454 processes a received signal from an associated antenna 452 and provides a received symbol stream. An RX spatial processor 460 performs receiver spatial processing on Nut.m received symbol streams from Nu,_m receiver units 454 and provides a recovered downlink data symbol stream {•**.«) f°r me user terminal. The receiver spatial processing is performed in accordance with the CCMI, MMSE, or some other technique. A spatial filter matrix Mut m for each user terminal is derived based on (I) the receiver spatial processing technique used by the user terminal and (2) the downlink channel response matrix Hrfnm for the user
terminal. An RX data processor 470 processes (e.g., demodulates, deinterleaves, and decodes) the recovered downlink data symbol stream to obtain decoded data for the user terminal.
[0087] At each user terminal 120, a channel estimator 478 estimates the downlink
channel response and provides downlink channel estimates, which may include channel gain estimates, SNR estimates*, and so on. Similarly, a channel estimator 428 estimates the uplink channel response and provides uplink channel estimates. The steering vectors for downlink and uplink transmission may be derived in various manners depending on whether the MIMO system is a TDD system or an FDD system, as described above. If the steering vector is derived by one entity (e.g., the access point) and needed by another entity (e.g., the user terminal), then the one entity sends the steering vector to the other entity.
[0088] Controller 480 for each user terminal typically derives the spatial filter matrix
M« m f°r me user terminal based on the downlink channel response matrix Hrfn m for that user terminal. Controller 430 derives the spatial filter matrix M.ap for the access point based on the effective uplink channel response matrix Hu;) ^. Controller 480 for
each user terminal may send feedback information (e.g., the downlink and/or uplink steering vectors, SNR estimates, and so on) to the access point. Controllers 430 and 480 also control the operation of various processing units at access point 110 and user terminal 120, respectively.
[0089] FIG. 5A shows a block diagram of a TX data processor 410a that supports
CDMA. TX data processor 410a may be used for TX data processors 410 and 488 in FIG. 4. Within TX data processor 410a, an encoder 512 receives and codes a data stream {dm} for user terminal m based on the coding scheme for the selected rate and
provides code bits. The data stream may carry one or more data packets, and each data
packet is typically coded separately to obtain a coded data packet. The coding increases
the reliability of the data transmission. The coding scheme may include cyclic
redundancy check (CRC) coding, convolutional coding, turbo coding, block coding, and
so on, or a combination thereof. A channel interleaver 514 interleaves the code bits
based on an interleaving scheme. The interleaving provides time, frequency, and/or
spatial diversity for the code bits. A symbol mapping unit 516 maps the interleaved bits
based on the modulation scheme for the selected rate and provides data symbols. Unit
516 groups each set of B interleaved bits to form a B-bit binary value, where B 2:1, and
further mapk each B-bit value to a specific modulation symbol based on the modulation
scheme (e.g., QPSK, M-PSK, or M-QAM, where M = 2B). Each modulation symbol
is a complex value in a signal constellation defined by the modulation scheme.
[0090] A CDMA modulator 520 performs modulation for CDMA. Within CDMA
modulator 520, a channelizer 522 receives and channelizes the data symbols and pilot symbols onto different code channels. Each code channel is associated with a respective; orthogonal sequence, which may be a Walsh sequence, an orthogonal variable spreading factor (OVSF) sequence, and so on. The channelization is referred to as "covering" in IS-2000 and IS-95 and "spreading" in W-CDMA. A scrambler 524 receives and spectrally spreads the channelized data for multiple code channels with a pseudo-random number (PN) sequence and provides a stream of data chips, which for simplicity is denoted as a data symbol stream {sm}. The spectral spreading is referred
to as "spreading" in IS-2000 and IS-95 and "scrambling" in W-CDMA. The
channelization and spectral spreading are known in the art and not described herein.
[0091] For the uplink, each data symbol stream is transmitted on a respective code
channel, which is achieved by channelization with an orthogonal sequence. The Nup selected user terminals may concurrently transmit Nup or more data streams on different orthogonal code channels. Each user terminal performs spatial processing on all of its data symbol streams (or its data chip stream) with the same steering vector vup>n, or
vupjm . Similar processing occurs for the downlink.
[0092] FIG. 5B shows a block diagram of a TX data processor 41 Ob that supports
OFDM. TX data processor 410b may also be used for TX data processors 410 and 488 in FIG. 4. TX data processor 410b includes encoder 512, channel interleaver 514, and symbol mapping unit 516, which operate as described above for FIG. 5A. TX data processor 410b further includes an OFDM modulator 530 that performs modulation for OFDM. Within OFDM modulator 530, an inverse fast Fourier transform (IFFT) unit 532 receives the data symbols from symbol mapping unit 516 and pilot symbols, provides the data and pilot symbols on subbands designated for data and pilot transmission, and provides a signal value of zero (a "zero" symbol) for each subband not used for data/pilot transmission. For each OFDM symbol period, EFFT unit 532 transforms a set of NF data, pilot, and zero symbols to the time domain using an Jv> point inverse fast Fourier transform and provides a corresponding transformed symbol that contains A/> chips. A cyclic prefix generator 534 repeats a portion of each transformed symbol to obtain a corresponding OFDM symbol that contains NF + N^
chips. The repeated portion is referred to as a cyclic prefix, and Ncp is the number of chips being repeated. The cyclic prefix ensures that the OFDM symbol retains its orthogonal properties in the presence of multipart! delay spread caused by frequency selective fading (i.e., a frequency response that is not flat). Cyclic prefix generator 534 provides a stream of OFDM symbols, which for simplicity is also denoted as a data symbol stream {sm}.
[0093] For the uplink, each data symbol stream is transmitted on a respective set of
subbands assigned for that stream. The Nup selected user terminals may concurrently transmit Nup or more data streams on different disjoint sets of subbands, where each of the NF subbands is assigned to at most one set. Each user terminal performs spatial processing on all of its data symbol streams (or its OFDM symbol stream) with the same steering vector vuj> „ or v . Similar processing occurs for the downlink.
[0094] For simplicity, FIGS. 5A and 5B show the processing for one data stream {dm}
to obtain one data symbol steam {sm}. Multiple data steams (e.g., for multiple user terminals on the downlink) may be processed with multiple instances of the TX data processor to obtain multiple data symbol steams.
|009S] FIGS. 5A and 5B show specific implementations in which the processing for
CDMA and OFDM are performed prior to the spatial processing for multi-antenna transmission. In this case, the TX data processor includes the CDMA modulator or
OFDM modulator, as shown in FIGS. 5A and 5B. The processing for CDMA and
OFDM may also be performed after the spatial processing for multi-antenna
transmission. In this case, each transmitter unit (TMTR) would include a CDMA
modulator or an OFDM modulator that performs CDMA or OFDM processing on a
respective transmit symbol stream to generate a corresponding modulated signal.
[0096] FIG. 6 shows the spatial processing at access point 110 and one user terminal
120m for downlink and uplink transmission. For the uplink, at user terminal 120m, the data symbol stream {supm} is multiplied with the steering vector v_upm by TX spatial
processor 490m to obtain the transmit symbol vector xv^, for the uplink. At access point 110, the received symbol vector rup (for user terminal 120m as well as other user terminals) is multiplied with a spatial filter matrix Maf by a unit 640 and further scaled
with a diagonal matrix D^, by a unit 642 to obtain the recovered data symbol vector sup for the uplink. Units 640 and 642 are part of an RX spatial processor 440a. The matrices Map and D~j are derived based on the effective uplink channel response matrix Qup^ff and using the CCMI, MMSE, or some other technique.
[0097] For the downlink, at access point 110, the data symbol vector s^ (which
includes the downlink data symbol streams for user terminal 120m as well as other user terminals) is multiplied with the downlink steering matrix Vdn by TX spatial processor 420 to obtain the transmit symbol vector \dn for the downlink. At user terminal 120m, the received symbol vector r^ is multiplied with a spatial filter matrix Mu, m by a unit
660 and further scaled with a diagonal matrix D"1^ by a unit 662 to obtain a downlink recovered data symbol stream {sdnm} for user terminal 120m. Units 660 and 662 are
part of RX spatial processor 460m. The matrices MWjM and D~,^, are derived based on the downlink channel response matrix HrffliM for user terminal 120m and using the
CCMI, MMSE, or some other technique.
[0098] FIG. 7 shows a block diagram of an RX spatial processor 440b and an RX data
processor 442b, which implement the SIC technique and may be used for access point 110. RX spatial processor 440b and RX data processor 442b implement Nup successive (i.e., cascaded) receiver processing stages for Nvp data symbol streams transmitted by Nup user terminals. Each of stages 1 to Nxf-l includes a spatial processor 710, an
interference canceller 720, an RX data stream processor 730, and a TX data stream processor 740. The last stage includes only a spatial processor 710u and an RX data stream processor 730u.
[0099J for stage 1, spatial processor 710a performs receiver spatial processing on the
Nap received symbol streams and provides one recovered data symbol stream {su •} for
user terminal j\ being recovered in the first stage. RX data stream processor 730a demodulates, deinterleaves, and decodes the recovered data symbol stream {sapj} and
provides a decoded data stream {dupj{}. TX data stream processor 740a encodes,
interleaves, and modulates the decoded data stream {dupji} in the same manner performed by user terminaly'i for that stream and provides a remodulated symbol stream {?U/J h}. Interference canceller 720a performs transmitter spatial processing on the
remodulated symbol stream {supJt} with the effective channel response vector hlv^-,y1
for user terminal j\ to obtain Nap interference components due to the data symbol stream {suf j}. The Nap interference components are subtracted from the Nttp received symbol
streams to obtain Nap modified symbol streams, which are provided to stage 2.
[00100] Each of stages 2 through Nup -1 performs the same processing as stage I, albeit
on the Nap modified symbol streams from the preceding stage instead of the Nap received symbol streams. The last stage performs spatial processing and decoding on the Nap modified symbol streams from stage N -1 and does not perform interference
estimation and cancellation.
[00101] Spatial processors 710a through 710u may each implement the CCMI, MMSE,
or some other technique. Each spatial processor 710 multiplies an input (received or
modified) symbol vector r),c with a spatial filter matrix Meap to obtain a detected symbol vector s^, selects and scales one of the detected symbol streams, and provides the scaled symbol stream as the recovered data symbol stream for that stage. The matrix M'ep is derived based on a reduced effective channel response matrix Rup^ for
the stage.
[00102] FIG. 8 shows a block diagram of an embodiment of controller 430 and
scheduler 434 for evaluating and scheduling user terminals for transmission on the downlink and uplink. Within controller 430, a request processor 810 receives access
requests sent by user terminals 120 and possibly access requests from other sources. These access requests are for data transmission on the downlink and/or uplink. For clarity, scheduling for uplink transmission is described below.
[00103] Request processor 810 processes the received access requests and provides the
identities (IDs) and the status of all active user terminals. A user selector 820 selects different sets of user terminals from among all active user terminals for evaluation. The user terminals may be selected for evaluation based on various factors such as user priority, the amount of data to send, system requirements, and so on.
[00104] An evaluation unit 830 evaluates each set of user terminals and provides a value
for a metric for the set. For simplicity, the following description assumes that (1) overall throughput is used as the metric and (2) the effective uplink channel response vector is available for each active user terminal. Evaluation unit 830 includes a matrix computation unit 840 and a rate selector 850. Matrix computation unit 840 performs the SNR computation for each set of user terminals. For each set, unit 840 forms the effective uplink channel response matrix VLUf ^• „ for the set and computes the SNR for
each user terminal in the set based on H^^ „ and the receiver spatial processing
technique used by the access point. Rate selector 850 receives a set of SNRs for each user set and determines the rate for each user terminal in the set as well as the overall throughput Rn for the set. Rate selector 850 may access a look-up table (LUT) 852, which stores a set of rates supported by the system and their required SNRs. Rate selector 850 determines the highest rate that may be used for uplink transmission by each user terminal based on the SNR computed for the user terminal. Rate selector 850 also accumulates the rates or throughputs for all user terminals in each set to obtain the overall throughput Rn for the set.
[00105] Scheduler 434 receives (1) the different sets of user terminals from user selector
820 and (2) the rates for the user terminals and the overall throughput for each set from rate selector 850. Scheduler 434 selects the best set of user terminals among all sets evaluated for each scheduling interval and schedules the selected user terminals for transmission on the uplink. Scheduler 434 provides scheduling information, which includes the identities of the selected user terminals, their rates, the scheduled transmission time (e.g., the start and the duration of the transmission), and so on. The scheduling information is sent to the selected user terminals.
[00106] The scheduling for downlink transmission may be performed in similar manner.
[00107] The SDMA transmission techniques described herein may be implemented by
various means. For example, these techniques may be implemented in hardware, software, or a combination thereof. For a hardware implementation, the processing units used to support the underlying wireless technology (e.g., CDMA or OFDM) and the SDMA transmission on the downlink and uplink (e.g., the transmit and receive spatial processing at the access point and user terminal, the evaluation of different user sets, and so on) 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.
[00108] For a software implementation, the SDMA transmission 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 432 and 482 in FIG. 4) and executed by a processor (e.g.,
controllers 430 and 480). 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. '
[00109] 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.
[00110] 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.







WE CLAIM:
1. A method of receiving data in a multiple-input multiple-output (MIMO)
communication system, comprising:
obtaining, from a plurality of receive antennas at a receiving entity, a plurality of received symbol streams for a plurality of data symbol streams sent by a plurality of transmitting entitles, one data symbol stream for each transmitting entity characterized in that the data symbol stream for each transmitting entity is spatially processed with a steering vector for the transmitting entity and sent from a plurality of transmit antennas at the transmitting entity; and
processing the plurality of received symbol streams in accordance with a receiver spatial processing technique to obtain a plurality of recovered data symbol streams, which are estimates of the plurality of data symbol streams.
2. The method as claimed in claim 1, wherein the receiver spatial processing technique is a channel correlation matrix inversion (COMI) technique or a minimum mean square error (MMSE) technique.
3. The method as claimed in claim 1, wherein the receiver spatial processing technique is a successive interference cancellation (SIC) technique.
4. The method as claimed in claim 1, wherein the steering vector for each transmitting entity is derived by decomposing a channel response matrix for the transmitting entity to obtain a plurality of eigenvectors and a plurality of singular values, and
forming the steering vector for the transmitting entity based on an eigenvector corresponding to a largest singular value among the plurality of singular values.
5. The method as claimed in claim 4, wherein the steering vector for each transmitting entity is equal to the eigenvector corresponding to the largest singular value.
6. The method as claimed in claim 4, wherein the steering vector for each transmitting entity contains a plurality of elements having same magnitude and phases equal to phases of a plurality of elements of the eigenvector corresponding to the largest singular value.
7. The method as claimed in claim 1, further comprising:
evaluating each of a plurality of sets of transmitting entities for possible transmission based on a metric and steering vectors for the transmitting entities in the set; and
selecting a set of transmitting entities with a highest metric value for transmission.
8. The method as claimed in claim 1, wherein the data symbol stream for each
transmitting entity is spatially processed with a steering vector derived independently
for the transmitting entity and is sent from a plurality of transmit antennas at the
transmitting entity, and wherein the plurality of data symbol streams are transmitted
simultaneously by the plurality of transmitting entities.
9. The method as claimed in claim 8, wherein the steering vector for each transmitting entity is derived based on a channel estimate for a wireless channel for the transmitting entity.
10. An apparatus at a receiving entity in a multiple-input multiple-output (MlMO) communication system, comprising:
means for obtaining from a plurality of receive antennas a plurality of received symbol streams for a plurality of data symbol streams sent by a plurality of transmitting entities, one data symbol stream for each transmitting entity, characterised in that the data symbol stream for each transmitting entity is spatially processed with a steering vector for the transmitting entity and sent from a plurality of transmit antennas at the transmitting entity; and
means for processing the plurality of received symbol streams in accordance with a receiver spatial processing technique to obtain a plurality of recovered data symbol streams, which are estimates of the plurality of data symbol streams.
11. The apparatus as claimed in claim 10, wherein the receiver spatial processing technique is a channel correlation matrix inversion (CCMI) technique or a minimum mean square error (MMSE) technique.
12. The apparatus as claimed in claim 10, wherein the steering vector for each transmitting entity is derived by decomposing a channel response matrix for the transmitting entity to obtain a plurality of eigenvectors and a plurality of singular values, and
forming the steering vector for the transmitting entity based on an eigenvector corresponding to a largest singular value among the plurality of singular values.
13. A method of transmitting data from a transmitting entity in a multiple-input
multiple-output (MIMO) communication system, comprising:
obtaining a plurality of steering vectors for a plurality of receiving entities, one steering vector for each receiving entity, characterised in that the steering vector for each receiving entity is derived based on a channel response matrix indicative of a response of a MIMO channel between the transmitting entity and the receiving entity; and
performing spatial processing on a plurality of data symbol streams with the plurality of steering vectors to obtain a plurality of transmit symbol streams for transmission from a plurality of transmit antennas at the transmitting entity to the plurality of receiving entities.
14. The method as claimed in claim 13, wherein the steering vector for each
receiving entity is derived by decomposing a channel response matrix for the
receiving entity to obtain a plurality of eigenvectors and a plurality of singular values,
and
forming the steering vector for the receiving entity based on an eigenvector corresponding to a largest singular value among the plurality of singular values.
15. The method as claimed in claim 13, further comprising: processing a plurality
of data streams in accordance with Code Division Multiple Access (CDMA) to obtain
the plurality of data symbol streams, wherein each data symbol stream is sent on a
respective code channel and spectrally spread with a pseudo-random number (PN) sequence.
16. The method as claimed in claim 13, further comprising: processing a plurality of data streams in accordance with Orthogonal Frequency Division Multiplexing (OFDM) to obtain the plurality of data symbol streams, wherein each data symbol stream is sent on a respective set of subbands.
17. The method as claimed in claim 13, wherein a plurality of steering vectors are obtained and used for spatial processing by a plurality of transmitting entities, including the transmitting entity, to concurrently transmit a plurality of data symbol streams to the receiving entity.
18. The method as claimed in claim 17, further comprising: processing a data stream in accordance with Code Division Multiple Access (CDMA) to obtain the data symbol stream, wherein the data symbol stream is sent on a code channel and spectrally spread with a pseudo-random number (PN) sequence.
19. The method as claimed in claim 17, further comprising: processing a data stream in accordance with Orthogonal Frequency Division Multiplexing (OFDM) to obtain the data symbol stream, wherein the data symbol stream is sent on an assigned set of subbands.
20. The method as claimed in claim 17, further comprising: receiving a pilot from the receiving entity; processing the received pilot to obtain the channel response matrix;
decomposing the channel response matrix to obtain a plurality of eigenvectors and a plurality of singular values, one eigenvector for each singular value; and deriving the steering vector based on an eigenvector corresponding to a largest singular value among the plurality of singular values.
21. The method as claimed in claim 17, further comprising: sending a pilot to the receiving entity; and receiving the steering vector from the receiving entity.
22. An apparatus at a transmitting entity in a multiple-input multiple-output (MIMO) communication system, comprising:
means for obtaining a plurality of steering vectors for a plurality of receiving entities, one steering vector for each receiving entity, characterised in that the steering vector for each receiving entity is derived based on a channel response matrix indicative of a response of a MIMO channel between the transmitting entity and the receiving entity; and
means for performing spatial processing on a plurality of data symbol streams with the plurality of steering vectors to obtain a plurality of transmit symbol streams for transmission from a plurality of transmit antennas at the transmitting entity to the plurality of receiving entities.
23. The apparatus as claimed in claim 22, further comprising: means for
decomposing a channel response matrix for each receiving entity to obtain a plurality
of eigenvectors and a plurality of singular values, and
means for forming the steering vector for the receiving entity based on an eigenvector corresponding to a largest singular value among the plurality of singular values.
24. The apparatus as claimed in claim 22, wherein a plurality of steering vectors are obtained and used for spatial processing by a plurality of transmitting entities, including the transmitting entity, to concurrently transmit a plurality of data symbol streams to the receiving entity.
25. The apparatus as claimed in claim 24, further comprising: means for receiving a pilot from the receiving entity;
means for processing the received pilot to obtain the channel response matrix;
means for decomposing the channel response matrix to obtain a plurality of
eigenvectors and a plurality of singular values, one eigenvector for each singular
value, and
means for deriving the steering vector based on an eigenvector corresponding to a
largest singular value among the plurality of singular values.


Documents:

2910-DELNP-2006-Abstract-(10-02-2011).pdf

2910-delnp-2006-abstract.pdf

2910-DELNP-2006-Claims-(10-02-2011).pdf

2910-delnp-2006-claims.pdf

2910-DELNP-2006-Correspondence-Others-(08-10-2010).pdf

2910-DELNP-2006-Correspondence-Others-(10-02-2011).pdf

2910-DELNP-2006-Description (Complete)-(10-02-2011).pdf

2910-delnp-2006-description (complete).pdf

2910-DELNP-2006-Drawings-(10-02-2011).pdf

2910-delnp-2006-drawings.pdf

2910-DELNP-2006-Form-1-(10-02-2011).pdf

2910-delnp-2006-form-1.pdf

2910-delnp-2006-form-18.pdf

2910-DELNP-2006-Form-2-(10-02-2011).pdf

2910-delnp-2006-form-2.pdf

2910-DELNP-2006-Form-3-(08-10-2010).pdf

2910-delnp-2006-form-3.pdf

2910-delnp-2006-form-5.pdf

2910-DELNP-2006-GPA-(10-02-2011).pdf

2910-delnp-2006-gpa.pdf

2910-delnp-2006-pct-search report.pdf

2910-DELNP-2006-Petition-137-(08-10-2010).pdf


Patent Number 246545
Indian Patent Application Number 2910/DELNP/2006
PG Journal Number 10/2011
Publication Date 11-Mar-2011
Grant Date 03-Mar-2011
Date of Filing 22-May-2006
Name of Patentee QUALCOMM INCORPORATED
Applicant Address 5775 MOREHOUSE DRIVE, SAN DIEGO, CALIFORNIA 92121-1714, U.S.A.
Inventors:
# Inventor's Name Inventor's Address
1 JOHN W. KETCHUM 37 CANDLEBERRY LANE, HARVARD, MA 01451, USA;
2 MARK S. WALLACE 4 MADEL LANE, BEDFORD, MA 01730, USA;
3 STEVEN J. HOWARD 75 HERITAGE AVENUE, ASHLAND, MA 01721, USA,
4 RODNEY J. WALTON 85 HIGHWOODS LANE, CARLISLE, MA 01741, USA;
5 JOHN EDWARD SMEE 5340 TOSCANA WAY APT., F-406 SAN DIEGO, CA 92122, USA;
PCT International Classification Number H04B 7/04
PCT International Application Number PCT/US2004/037855
PCT International Filing date 2004-11-12
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 10/719,802 2003-11-21 U.S.A.