U.S. patent application number 11/869596 was filed with the patent office on 2008-02-14 for multi-antenna transmission for spatial division multiple access.
This patent application is currently assigned to QUALCOMM INCORPORATED. Invention is credited to Steven J. Howard, John W. Ketchum, John Edward Smee, Mark S. Wallace, J. Rodney Walton.
Application Number | 20080037681 11/869596 |
Document ID | / |
Family ID | 34591435 |
Filed Date | 2008-02-14 |
United States Patent
Application |
20080037681 |
Kind Code |
A1 |
Walton; J. Rodney ; et
al. |
February 14, 2008 |
MULTI-ANTENNA TRANSMISSION FOR SPATIAL DIVISION MULTIPLE ACCESS
Abstract
An uplink channel response matrix is obtained for each terminal
and decomposed to obtain a steering vector used by the terminal to
transmit on the uplink. An "effective" uplink channel response
vector is formed for each terminal based on its steering vector and
its channel response matrix. Multiple sets of terminals are
evaluated based on their effective channel response vectors to
determine the best set (e.g., with highest overall throughput) for
uplink transmission. Each selected terminal performs spatial
processing on its data symbol stream with its steering vector and
transmits its spatially processed data symbol stream to an access
point. The multiple selected terminals simultaneously transmit
their data symbol streams via their respective MIMO channels to the
access point. The access point performs receiver spatial processing
on its received symbol streams in accordance with a receiver
spatial processing technique to recover the data symbol streams
transmitted by the selected terminals.
Inventors: |
Walton; J. Rodney;
(Carlisle, MA) ; Ketchum; John W.; (Harvard,
MA) ; Smee; John Edward; (San Diego, CA) ;
Wallace; Mark S.; (Bedford, MA) ; Howard; Steven
J.; (Ashland, MA) |
Correspondence
Address: |
QUALCOMM INCORPORATED
5775 MOREHOUSE DR.
SAN DIEGO
CA
92121
US
|
Assignee: |
QUALCOMM INCORPORATED
5775 Morehouse Drive
San Diego
CA
92121-1714
|
Family ID: |
34591435 |
Appl. No.: |
11/869596 |
Filed: |
October 9, 2007 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10719802 |
Nov 21, 2003 |
7298805 |
|
|
11869596 |
Oct 9, 2007 |
|
|
|
Current U.S.
Class: |
375/267 ;
375/E1.03 |
Current CPC
Class: |
H04B 1/71072 20130101;
H04B 7/0619 20130101; H04B 17/309 20150115; H04W 16/28 20130101;
H04L 5/023 20130101; H04B 7/0408 20130101; H04B 7/0413 20130101;
H04B 7/0421 20130101; H04B 7/0617 20130101; H04B 7/043 20130101;
H04B 7/0697 20130101 |
Class at
Publication: |
375/267 |
International
Class: |
H04B 7/02 20060101
H04B007/02; H04L 23/02 20060101 H04L023/02 |
Claims
1. 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, wherein 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.
2. The method of claim 1, 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.
3. The method of claim 1, 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.
4. The method of claim 1, 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.
5. An apparatus at a transmitting entity in a multiple-input
multiple-output (MIMO) communication system, comprising: a
controller operative to obtain a plurality of steering vectors for
a plurality of receiving entities, one steering vector for each
receiving entity, wherein 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 a transmit spatial processor operative to
perform 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.
6. The apparatus of claim 5, wherein the controller is operative to
decompose a channel response matrix for each receiving entity to
obtain a plurality of eigenvectors and a plurality of singular
values and to form the steering vector for the receiving entity
based on an eigenvector corresponding to a largest singular value
among the plurality of singular values.
7. The apparatus of claim 5, wherein the controller is operative to
process 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.
8. The apparatus of claim 5, wherein the controller is operative to
process 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.
9. 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,
wherein 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.
10. The apparatus of claim 9, 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.
11. The apparatus of claim 9, further comprising: means for
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.
12. The apparatus of claim 9, further comprising: means for
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.
13. A computer-program product at a transmitting entity in a
multiple-input multiple-output (MIMO) communication system
comprising a computer readable medium having instructions thereon,
the instructions comprising: code for obtaining a plurality of
steering vectors for a plurality of receiving entities, one
steering vector for each receiving entity, wherein 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 code 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.
14. The computer-program product of claim 13, further comprising:
code for decomposing a channel response matrix for each receiving
entity to obtain a plurality of eigenvectors and a plurality of
singular values, and code 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.
15. The computer-program product of claim 13, further comprising:
code for 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 computer-program product of claim 13, further comprising:
code for 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. A method of transmitting data from a transmitting entity in a
multiple-input multiple-output (MIMO) communication system,
comprising: obtaining a steering vector for the transmitting
entity, wherein the steering vector is derived based on a channel
response matrix indicative of a response of a MIMO channel between
the transmitting entity and a receiving entity in the MIMO system;
and performing spatial processing on a data symbol stream with the
steering vector to obtain a plurality of transmit symbol streams
for transmission from a plurality of antennas at the transmitting
entity to the receiving entity, and 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 of 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 of 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 of 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 of 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: a
controller operative to obtain a steering vector for the
transmitting entity, wherein the steering vector is derived based
on a channel response matrix indicative of a response of a MIMO
channel between the transmitting entity and a receiving entity in
the MIMO system; and a transmit spatial processor operative to
perform spatial processing on a data symbol stream with the
steering vector to obtain a plurality of transmit symbol streams
for transmission from a plurality of antennas at the transmitting
entity to the receiving entity, and 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.
23. The apparatus of claim 22, further comprising: a channel
estimator operative to receive and process a pilot from the
receiving entity to obtain the channel response matrix, and wherein
the controller is further operative to decompose the channel
response matrix to obtain a plurality of eigenvectors and a
plurality of singular values, one eigenvector for each singular
value, and to derive the steering vector based on an eigenvector
corresponding to a largest singular value among the plurality of
singular values.
24. The apparatus of claim 22, further comprising: a transmit data
processor operative to process 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.
25. The apparatus of claim 22, further comprising: a transmit data
processor operative to process 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.
26. An apparatus at a transmitting entity in a multiple-input
multiple-output (MIMO) communication system, comprising: means for
obtaining a steering vector for the transmitting entity, wherein
the steering vector is derived based on a channel response matrix
indicative of a response of a MIMO channel between the transmitting
entity and a receiving entity in the MIMO system; and means for
performing spatial processing on a data symbol stream with the
steering vector to obtain a plurality of transmit symbol streams
for transmission from a plurality of antennas at the transmitting
entity to the receiving entity, and 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.
27. The apparatus of claim 26, further comprising: means for
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.
28. The apparatus of claim 26, further comprising: means for
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.
29. The apparatus of claim 26, 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.
30. The apparatus of claim 26, further comprising: means for
sending a pilot to the receiving entity; and means for receiving
the steering vector from the receiving entity.
31. A computer-program product at a transmitting entity in a
multiple-input multiple-output (MIMO) communication system
comprising a computer readable medium having instructions thereon,
the instructions comprising: code for obtaining a steering vector
for the transmitting entity, wherein the steering vector is derived
based on a channel response matrix indicative of a response of a
MIMO channel between the transmitting entity and a receiving entity
in the MIMO system; and code for performing spatial processing on a
data symbol stream with the steering vector to obtain a plurality
of transmit symbol streams for transmission from a plurality of
antennas at the transmitting entity to the receiving entity, and
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.
32. The computer-program product of claim 31, further comprising:
code for 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.
33. The computer-program product of claim 31, further comprising:
code for 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.
34. The computer-program product of claim 31, further comprising:
code for receiving a pilot from the receiving entity; code for
processing the received pilot to obtain the channel response
matrix; code 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 code for deriving the
steering vector based on an eigenvector corresponding to a largest
singular value among the plurality of singular values.
35. The computer-program product of claim 31, further comprising:
code for sending a pilot to the receiving entity; and code for
receiving the steering vector from the receiving entity.
Description
CLAIM OF PRIORITY
[0001] This application is a divisional application of, and claims
the benefit of priority from, U.S. patent application Ser. No.
10/719,802 to Walton, et al., filed on Nov. 21, 2003 and entitled
"Multi-Antenna Transmission for Spatial Division Multiple Access",
which is fully incorporated herein by reference for all
purposes.
BACKGROUND
[0002] I. Field
[0003] 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.
[0004] II. Background
[0005] 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 N.sub.S.ltoreq.min
{N.sub.T, N.sub.R}. The NS spatial channels may be used to transmit
NS independent data streams to achieve greater overall
throughput.
[0006] 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.
[0007] 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
[0008] 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.
[0009] 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 N.sub.up user
terminals for uplink transmission in that scheduling interval. For
example, the user set with the highest overall throughput may be
selected. In 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.
[0010] 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 N.sub.up selected
user terminals simultaneously transmit their N.sub.up 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 N.sub.up data symbol streams transmitted by the
N.sub.up selected user terminals, as described below.
[0011] 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
[0012] FIG. 1 shows a multiple-access MIMO system;
[0013] FIG. 2 shows a process for performing multi-antenna
transmission on the uplink for SDMA;
[0014] FIG. 3 shows a process for evaluating and selecting user
terminals for simultaneous transmission on the uplink;
[0015] FIG. 4 shows a block diagram of an access point and two user
terminals;
[0016] FIGS. 5A and 5B show block diagrams of transmit (TX) data
processors for CDMA and OFDM, respectively;
[0017] FIG. 6 shows the spatial processing at the access point and
one user terminal for downlink and uplink transmission;
[0018] FIG. 7 shows a receive spatial processor and a receive data
processor; and
[0019] FIG. 8 shows a controller and a scheduler at the access
point.
DETAILED DESCRIPTION
[0020] 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.
[0021] The 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.
[0022] 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.
[0023] System 100 employs multiple transmit and multiple receive
antennas for data transmission on the downlink and uplink. Access
point 110 is equipped with Nap antennas and represents the
multiple-input (MI) for downlink transmissions and the
multiple-output (MO) for uplink transmissions. A set of N.sub.u
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
N.sub.ap.gtoreq.N.sub.u.gtoreq.1 if the data symbol streams for the
N.sub.u user terminals are not multiplexed in code, frequency, or
time by some means. N.sub.u 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., N.sub.ut.gtoreq.1). The N.sub.u selected user
terminals can have the same or different number of antennas.
[0024] 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 (1) 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.
[0025] An uplink MIMO channel formed by the Nap antennas at the
access point and the N.sub.ut,m antennas at a given user terminal m
may be characterized by an N.sub.ap.times.N.sub.ut,m channel
response matrix H.sub.up,m, which may be expressed as: H _ up , m =
[ h 1 , 1 h 1 , 2 h 1 , N ut , m h 2 , 1 h 2 , 2 h 2 , N ut , m h N
ap , 1 h N ap , 2 h N ap , N ut , m ] , Eq .times. .times. ( 1 )
##EQU1## [0026] where entry h.sub.i,j, for i=1 . . . N.sub.ap and
j=1 . . . N.sub.ut,m, is the coupling (i.e., complex gain) between
access point antenna i and user terminal antenna j. For simplicity,
the MIMO 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 h.sub.i,j. 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.
[0027] The uplink channel response matrix H.sub.up,m for user
terminal m may be "diagonalized" using either singular value
decomposition or eigenvalue decomposition to obtain Nm eigenmodes
of H.sub.up,m. The singular value decomposition of H.sub.up,m may
be expressed as:
H.sub.up,m=U.sub.up,m.SIGMA..sub.up,mV.sub.up,m.sup.H, where
U.sub.up,m is an N.sub.ap.times.N.sub.ap unitary matrix of left
eigenvectors of H.sub.up,m;
[0028] .SIGMA..sub.up,m is an N.sub.ap.times.N.sub.ut,m diagonal
matrix of singular values of H.sub.up,m;
[0029] V.sub.up,m is an N.sub.ut,m.times.N.sub.ut,m unitary matrix
of right eigenvectors of H.sub.up,m; and
[0030] ".sup.H" denotes the conjugate transpose.
A unitary matrix M is characterized by the property M.sup.HM=I,
where I is the identity matrix. The columns of a unitary matrix are
orthogonal to one another.
[0031] The eigenvalue decomposition of a correlation matrix of
H.sub.up,m may be expressed as:
R.sub.up,m=H.sub.up,m.sup.HH.sub.up,m=V.sub.up,m.LAMBDA..sub.up,mV.sub.up-
,m.sup.H, Eq (3) where R.sub.up,m is the
N.sub.ut,m.times.N.sub.ut,m correlation matrix of H.sub.up,m;
and
[0032] .LAMBDA..sub.up,m is an N.sub.ut,m.times.N.sub.ut,m diagonal
matrix of eigenvalues of R.sub.up,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.
[0033] As shown in equations (2) and (3), the columns of V.sub.up,m
are the right eigenvectors of H.sub.up,m as well as the
eigenvectors of R.sub.up,m. The right eigenvectors of H.sub.up,m
are also referred to as "steering" vectors and may be used for
spatial processing by user terminal m to transmit data on the Nm
eigenmodes of H.sub.up,m. The eigenmodes may be viewed as
orthogonal spatial channels obtained through decomposition.
[0034] The diagonal matrix .SIGMA..sub.up,m contains non-negative
real values along the diagonal and zeros elsewhere. These diagonal
entries are known as the singular values of H.sub.up,m and
represent the channel gains for the Nm eigenmodes of H.sub.up,m.
The singular values in .SIGMA..sub.up,m are also the square roots
of the eigenvalues in .LAMBDA..sub.up,m. The singular values in
.SIGMA..sub.up,m may be ordered from largest to smallest, and the
eigenvectors in V.sub.up,m may be ordered correspondingly. The
principal (i.e., dominant) eigenmode is the eigenmode associated
with the largest singular value in .SIGMA..sub.up,m, which is the
first singular value after the ordering. The eigenvector for the
principal eigenmode of H.sub.up,m is the first column of V.sub.up,m
after the ordering and is denoted as v.sub.up,m.
[0035] In a practical system, only an estimate of H.sub.up,m can be
obtained, and only estimates of V.sub.up,m, .SIGMA..sub.up,m and
U.sub.up,m can be derived. For simplicity, the description herein
assumes channel estimation and decomposition without errors.
[0036] With SDMA, N.sub.up 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 v.sub.up,m for
the principal eigenmode of the wireless channel for that terminal
or (2) in some other manner. Each of the N.sub.up 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
[0037] For beam-forming, each user terminal m spatially processes
its data symbol stream {s.sub.up,m} with its steering vector
V.sub.up,m to obtain N.sub.ut,m transmit symbol streams, as
follows: x.sub.up,m=v.sub.up,ms.sub.up,m, Eq (4) where s.sub.up,m
is a data symbol to be transmitted by user terminal m; and [0038]
x.sub.up,m is an N.sub.ut,m.times.1 vector with N.sub.ut,m transmit
symbols to be sent from the N.sub.ut,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 N.sub.ut,m transmit
symbols in the vector x.sub.up,m with a scaling factor G.sub.m such
that the total energy for the N.sub.ut,m transmit symbols is unity
or some other selected value. Each user terminal m transmits its
N.sub.ut,m transmit symbol streams via its uplink MIMO channel to
the access point.
[0039] At the access point, the received symbols obtained for each
user terminal m may be expressed as:
r.sub.up,m=H.sub.up,mx.sub.up,m+n.sub.up,m=H.sub.up,mv.sub.up,ms.sub.up,m-
+n.sub.up,m=h.sub.up,eff,ms.sub.up,m+n.sub.up,m, Eq (5) [0040]
where r.sub.up,m is an N.sub.ap.times.1 vector with N.sub.ap
received symbols obtained from the N.sub.ap access point antennas
for user terminal m; [0041] h.sub.up,eff,m is an N.sub.ap.times.1
"effective" uplink channel response vector for user terminal m,
which is h.sub.up,eff,m=H.sub.up,mv.sub.up,m; and [0042] n.sub.up,m
is an N.sub.ap.times.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 H.sub.up,m into
a single-input multiple-output (SIMO) channel with a channel
response vector of h.sub.up,eff,m.
[0043] The received symbols at the access point for all N.sub.up
user terminals transmitting simultaneously may be expressed as: r _
up = H _ up , eff .times. s _ up + n _ up = m = 1 N up .times.
.times. r _ up , m = m = 1 N up .times. .times. h _ up , eff , m
.times. s up , m + n _ up , m , Eq .times. .times. ( 6 ) ##EQU2##
[0044] where s.sub.up is an N.sub.up.times.1 vector with N.sub.up
data symbols transmitted by the N.sub.up user terminals, which is
s.sub.up=[s.sub.up,1 s.sub.up,2 . . . s.sub.up,N.sub.up].sup.T;
[0045] H.sub.up,eff is an N.sub.ap.times.N.sub.up effective uplink
channel response matrix for all N.sub.up user terminals, which is
H.sub.up,eff=[h.sub.up,eff,1 h.sub.up,eff,2 . . .
h.sub.up,eff,N.sub.up]; and [0046] n.sub.up is an N.sub.ap.times.1
noise vector at the access point.
[0047] The access point can recover the N.sub.up data symbol
streams transmitted by the N.sub.up 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.
[0048] A. CCMI Spatial Processing
[0049] For the CCMI technique, the access point performs receiver
spatial processing as follows: s _ ^ ccmi = M _ ccmi .times. r _ up
, = R _ up , eff - 1 .times. H _ up , eff H .function. ( H _ up ,
eff .times. s _ up + n _ up ) , = s _ up + n _ ccmi , Eq .times.
.times. ( 7 ) ##EQU3## [0050] where M.sub.ccmi is an
N.sub.up.times.N.sub.ap spatial filter matrix for the CCMI
technique, which is
M.sub.ccmi=R.sub.up,eff.sup.-1H.sub.up,eff.sup.H, where
R.sub.up,eff=H.sub.up,eff.sup.HH.sub.up,eff; [0051] s.sub.ccmi is
an N.sub.up vector with N.sub.up recovered data symbols for the
N.sub.up user terminals with the CCMI technique; and [0052]
n.sub.ccmi=M.sub.ccmin.sub.up is the CCMI filtered noise.
[0053] For simplicity, the noise n.sub.up is assumed to be additive
white Gaussian noise (AWGN) with zero mean, a variance of
.sigma..sub.n.sup.2, and an autocovariance matrix of
.phi..sub.nn=E[n.sub.upn.sub.up.sup.H]=.sigma..sub.n.sup.2I, 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 {s.sub.ccmi,m} for each user terminal m may be
expressed as: .gamma. ccmi , m = P ut , m r m .times. .times. m
.times. .sigma. n 2 , for .times. .times. m = 1 .times. .times.
.times. .times. N up , Eq .times. .times. ( 8 ) ##EQU4## where
P.sub.ut,m is the transmit power used by user terminal m;
[0054] r.sub.mm is the m-th diagonal element of R.sub.up,eff;
and
[0055] .gamma..sub.ccmi,m is the SNR for user terminal m with the
CCMI technique.
Due to the structure of R.sub.up,eff, the CCMI technique may
amplify the noise.
[0056] B. MMSE Spatial Processing
[0057] For the MMSE technique, a spatial filter matrix M.sub.mmse
is derived such that the mean square error between the estimated
data vector from the MMSE spatial filter and the data vector
s.sub.up is minimized. This MMSE criterion may be expressed as: min
M _ mmse .times. E .function. [ ( M _ mmse .times. r _ up - s _ up
) H .times. ( M _ mmse .times. r _ up - s _ up ) ] , Eq .times.
.times. ( 9 ) ##EQU5## where M.sub.mmse is the
N.sub.up.times.N.sub.ap spatial filter matrix for the MMSE
technique.
[0058] 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 M.sub.mmse is derived as:
M.sub.mmse=H.sub.up,eff.sup.H[H.sub.up,effH.sub.up,eff.sup.H+.sigma..sub.-
n.sup.2I].sup.-1. (10) The spatial filter matrix M.sub.mmse
contains N.sub.up rows for N.sub.up MMSE spatial filter row vectors
for the N.sub.up user terminals. The MMSE spatial filter row vector
for each user terminal may be expressed as
m.sub.mmse,m=h.sub.up,eff,m.sup.HG, where
G=[H.sub.up,effH.sub.up,eff.sup.H+.sigma..sub.n.sup.2I].sup.-1.
[0059] The access point performs receiver spatial processing as
follows: s _ ^ mmse = D _ mmse - 1 .times. M _ mmse .times. r _ up
, = D _ mmse - 1 .times. M _ mmse .function. ( H _ up , eff .times.
s _ up + n _ up ) , = s _ up + n _ mmse , Eq .times. .times. ( 11 )
##EQU6## [0060] where D.sub.mmse is an N.sub.up.times.N.sub.up
diagonal matrix whose diagonal elements are the diagonal elements
of M.sub.mmseH.sub.up,eff, i.e., D.sub.mmse=diag
[M.sub.mmseH.sub.up,eff]; [0061] s.sub.mmse is an N.sub.up.times.1
recovered data symbol vector for the MMSE technique; and [0062]
n.sub.mmse=M.sub.mmsen.sub.up is the MMSE filtered noise. In
equation (11), the MMSE spatial filter provides an unnormalized
estimate of s.sub.up, and the scaling by the diagonal matrix
D.sub.mmse.sup.-1 provides a normalized estimate of s.sub.up.
[0063] The SNR of the recovered data symbol stream {s.sub.mmse,m}
for each user terminal m may be expressed as: .gamma. mmse , m = q
m .times. .times. m 1 - q m .times. .times. m .times. P ut , m ,
for .times. .times. m = 1 .times. .times. .times. .times. N up , Eq
.times. .times. ( 12 ) ##EQU7## where q.sub.mm is the m-th diagonal
element of M.sub.mmseH.sub.up,eff, i.e.,
q.sub.mm=m.sub.mmse,mh.sub.up,eff,m; and
[0064] .gamma..sub.mmse,m is the SNR for user terminal m with the
MMSE technique.
[0065] C. Successive Interference Cancellation Spatial
Processing
[0066] The access point can process the N.sub.ap received symbol
streams using the SIC technique to recover the N.sub.up data symbol
streams. For the SIC technique, the access point initially performs
spatial processing on the N.sub.ap 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.sub.up-1 data symbol streams and cancels the estimated
interference from the N.sub.ap received symbol streams to obtain
N.sub.ap modified symbol streams. The access point then repeats the
same processing on the N.sub.ap modified symbol streams to recover
another data symbol stream.
[0067] For the SIC technique, the input (i.e., received or
modified) symbol streams for stage l, where l=1 . . . N.sub.up, may
be expressed as:
r.sub.sic.sup.l(k)=H.sub.up,eff.sup.ls.sub.up.sup.l+n.sub.up.sup.l,
Eq (13) [0068] where r.sub.sic.sup.l is an N.sub.ap.times.1 vector
with N.sub.ap input symbols for stage l, and
r.sub.sic.sup.1=r.sub.up for the first stage; [0069] s.sub.up.sup.l
is an N.sub.nr.times.1 vector for N.sub.nr data symbol streams not
yet recovered at stage l, where N.sub.nr=N.sub.up-l+1; and [0070]
H.sub.up,eff.sup.l is an N.sub.ap.times.N.sub.nr reduced effective
channel response matrix for stage l.
[0071] Equation (13) assumes that the data symbol streams recovered
in the l-1 prior stages are canceled. The dimensionality of the
effective channel response matrix H.sub.up,eff successively reduces
by one column for each stage as a data symbol stream is recovered
and canceled. For stage l, the reduced effective channel response
matrix H.sub.up,eff.sup.l is obtained by removing l-1 columns in
the original matrix H.sub.up,eff corresponding to the l-1 data
symbol streams already recovered in prior stages, i.e.,
H.sub.up,eff.sup.l=[h.sub.up,eff,j.sub.l h.sub.up,eff,j.sub.l+1 . .
. h.sub.up,eff,j.sub.H.sup..lamda..sub.up,eff ], where
h.sub.up,eff,j.sub.n is an N.sub.ap.times.1 effective channel
response vector for user terminal j.sub.n. For stage l, the l-1
data symbol streams recovered in the prior stages are given indices
of {j.sub.1 j.sub.2 . . . j.sub.l-1}, and the N.sub.nr data symbol
streams not yet recovered are given indices of {j.sub.l j.sub.l+1 .
. . j.sub.N.sub.up}.
[0072] For stage l, the access point derives an
N.sub.nr.times.N.sub.ap spatial filter matrix M.sub.sic.sup.l based
on the reduced effective channel response matrix H.sub.up,eff.sup.l
(instead of the original matrix H.sub.up,eff) using the CCMI, MMSE,
or some other technique. Since H.sub.up,eff.sup.l is different for
each stage, the spatial filter matrix M.sub.sic.sup.l is also
different for each stage.
[0073] The access point multiplies the vector r.sub.sic.sup.l for
the N.sub.ap modified symbol streams with the spatial filter matrix
M.sub.sic.sup.l to obtain a vector {tilde over (s)}.sub.sic.sup.l
for N.sub.nr detected symbol streams, as follows: s _ ~ sic = M _
sic .times. r _ sic , = M _ sic .function. ( H _ up , eff .times. s
_ up + n _ up ) , = Q _ sic .times. s _ up , + n _ sic , Eq .times.
.times. ( 14 ) ##EQU8## where
Q.sub.sic.sup.l=M.sub.sic.sup.lH.sub.up,eff.sup.l and
n.sub.sic.sup.l=M.sub.sic.sup.ln is the filtered noise for stage l.
The access point then selects one of the N.sub.nr 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 N.sub.nr 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.times.N.sub.ap spatial filter row vector m.sub.j.sub.l.sup.l for
the data symbol stream {s.sub.up,j.sub.l} to be recovered in stage
l. The row vector m.sub.j.sub.l.sup.l is one row of the matrix
M.sub.sic.sup.l. In this case, the spatial processing for stage l
to recover the data symbol stream {s.sub.up,j.sub.l} may be
expressed as: {tilde over
(s)}.sub.up,j.sub.l=m.sub.j.sub.l.sup.lr.sub.sic.sup.l=q.sub.j.sub.l.sup.-
ls.sub.up.sup.l+m.sub.j.sub.l.sup.ln.sub.up, Eq (15) where
q.sub.j.sub.l.sup.l is the row of Q.sub.sic.sup.l corresponding to
data symbol stream {s.sub.up,j.sub.l}.
[0074] In any case, the access point scales the detected symbol
stream {{tilde over (s)}.sub.up,j.sub.l} to obtain a recovered data
symbol stream {s.sub.up,j.sub.l} and further demodulates,
deinterleaves, and decodes this stream {sup,j.sub.l} to obtain a
decoded data stream {{circumflex over (d)}.sub.up,j.sub.l}. 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,
interleaves, and modulates the decoded data stream {{circumflex
over (d)}.sub.up,j.sub.l} in the same manner as performed at user
terminal j.sub.l and obtains a stream of "remodulated" symbols
{{hacek over (s)}.sub.up,j.sub.l}, which is an estimate of the data
symbol stream {s.sub.up,j.sub.l} just recovered. The access point
then spatially processes the remodulated symbol stream with the
effective channel response vector h.sub.up,eff,j.sub.l for user
terminal j.sub.l to obtain a vector i.sub.j.sub.l with N.sub.ap
interference components caused by this stream. The N.sub.ap
interference components i.sub.j.sub.l are then subtracted from the
N.sub.ap modified symbol streams r.sub.sic.sup.l for stage l to
obtain N.sub.ap modified symbol streams r.sub.sic.sup.l+1 for the
next stage l+1, i.e.,
r.sub.sic.sup.l+1=r.sub.sic.sup.l-i.sub.j.sub.l. The modified
symbol streams r.sub.sic.sup.l+1 represent the streams that would
have been received by the access point if the data symbol stream
{s.sub.up,j.sub.l} had not been transmitted (i.e., assuming that
the interference cancellation was effectively performed).
[0075] The access point processes the N.sub.ap received symbol
streams in N.sub.up successive stages. For each stage, the access
point (1) performs receiver spatial processing on either the
N.sub.ap received symbol streams or the N.sub.ap 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
N.sub.ap 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.
[0076] 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
[0077] For beam-steering, each user terminal m performs spatial
processing with a normalized steering vector {tilde over
(v)}.sub.up,m, which is derived using the phase information in the
steering vector v.sub.up,m. The normalized steering vector {tilde
over (v)}.sub.up,m may be expressed as: v _ ~ up , m = [ A .times.
.times. e j .times. .times. .theta. m , 1 A .times. .times. e j
.times. .times. .theta. m , 2 A .times. .times. e j .times. .times.
.theta. m , N ut ] T , Eq .times. .times. ( 16 ) ##EQU9## where A
is a constant (e.g., A=1/ {square root over (N.sub.ut,m)}) ;
and
[0078] .theta..sub.m,i is the phase for antenna i at user terminal
m, which is: .theta. m , i = < v up , m , i = tan - 1 .function.
( Im .times. { v up , m , i } Re .times. { v up , m , i } ) . Eq
.times. .times. ( 17 ) ##EQU10## As shown in equation (16), the
N.sub.ut,m elements of {tilde over (v)}.sub.up,m have equal
magnitude. As shown in equation (17), the phase of each element in
{tilde over (v)}.sub.up,m is equal to the phase of a corresponding
element in v.sub.up,m (i.e., .theta..sub.m,i is obtained from
.nu..sub.up,m,i, where v _ up , m = [ v up , m , 1 v up , m , 2 v
up , m , N ut ] T ) . ##EQU11##
[0079] Each user terminal m spatially processes its data symbol
stream {s.sub.up,m} with its normalized steering vector {tilde over
(v)}.sub.up,m to obtain N.sub.ut,m transmit symbol streams, as
follows: {tilde over (x)}.sub.up,m={tilde over
(v)}.sub.up,ms.sub.up,m. Eq (18) The constant A in equation (16)
may be selected such that the total energy of the N.sub.ut,m
transmit symbols in the vector {tilde over (x)}.sub.up,m is unity
or some other selected value. The N.sub.ap.times.1 effective uplink
channel response vector {tilde over (h)}.sub.up,eff,m for each user
terminal m with beam-steering may be expressed as: {tilde over
(h)}.sub.up,eff,m=H.sub.up,m{tilde over (v)}.sub.up,m. Eq (19) The
N.sub.ap.times.N.sub.up effective uplink channel response matrix
{tilde over (H)}.sub.up,eff for all N.sub.up user terminals for
beam-steering is then {tilde over (H)}.sub.up,eff=[{tilde over
(h)}.sub.up,eff,1 {tilde over (h)}.sub.up,eff,2 . . . {tilde over
(h)}.sub.up,eff,N.sub.up].
[0080] 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 {tilde over (H)}.sub.up,eff instead of the matrix
H.sub.up,eff.
3. SDMA Transmission
[0081] FIG. 2 shows a process 200 for performing multi-antenna
transmission on the uplink for SDMA. Initially, an uplink channel
response matrix H.sub.up,m is obtained for each active user
terminal desiring to transmit on the uplink (block 210). The matrix
H.sub.up,m for each user terminal is decomposed to obtain a
steering vector v.sub.up,m or {tilde over (v)}.sub.up,m for the
user terminal (block 212). An effective uplink channel response
vector h.sub.up,eff,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.
[0082] Different sets of active user terminals are formed and
evaluated based on their effective uplink channel response vectors
h.sub.up,eff,m or their uplink channel response matrices H.sub.up,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.
[0083] Each selected user terminal performs spatial processing on
its data symbol stream {s.sub.up,m} with its steering vector
v.sub.up,m or {tilde over (v)}.sub.up,m and transmits N.sub.ut,m
transmit symbol streams from its N.sub.ut,m antennas and via its
MIMO channel to the access point (block 230). The N.sub.up selected
user terminals simultaneously transmit their N.sub.up data symbol
streams via their MIMO channels to the access point. Block 230 is
for data transmission and is performed by each selected user
terminal.
[0084] 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 N.sub.up recovered data symbol streams, which are estimates
of the N.sub.up data symbol streams transmitted by the N.sub.up
selected user terminals (block 242). Blocks 240 and 242 are for
data reception and are performed by the access point.
[0085] 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.
[0086] 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 MIMO 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.
[0087] For clarity, a specific scheduling scheme that selects user
terminals based on overall throughput is described below. In the
following description, N.sub.act user terminals are active and
desire to transmit data on the uplink.
[0088] 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 R.sub.max for the highest
overall throughput is set to zero (block 310).
[0089] A new set of user terminals is selected from among the
N.sub.act active user terminals (block 312). This user set forms a
hypothesis to be evaluated and is denoted as u.sub.n={u.sub.n,1
u.sub.n,2 . . . u.sub.n,N.sub.up}, where n denotes the n-th user
set being evaluated and u.sub.n,i is the i-th user terminal in set
n. An effective uplink channel response matrix H.sub.up,eff,n is
formed for user set n with the effective uplink channel response
vectors h.sub.up,eff,u.sub.n,1 through h _ up , eff , u n , N up
##EQU12## for the N.sub.up user terminals in set n (block 314).
[0090] The SNR for each user terminal in set n is then computed
based on the effective uplink channel response matrix
H.sub.up,eff,n 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 which the 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
N.sub.up user terminals in set n are denoted as {.gamma..sub.n,1
.gamma..sub.n,2 . . . .gamma..sub.n,N.sub.up}.
[0091] 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 n , i = log 2 .function. ( 1 + .gamma. n , i c n , i ) ,
for .times. .times. i = 1 .times. .times. .times. .times. N up , Eq
.times. .times. ( 20 ) ##EQU13## where c.sub.n,i 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 u.sub.n,i (e.g., c.sub.n,i=2 for a coding and modulation
scheme that is 3 dB from Shannon capacity) and r.sub.n,i is the
throughput or spectral efficiency for user terminal u.sub.n,i given
in units of bits per second per Hertz (bps/Hz). The overall
throughput R.sub.n achieved by user set n can be computed (block
320), as follows: R n = i = 1 N up .times. .times. r n , i . Eq
.times. .times. ( 21 ) ##EQU14##
[0092] A determination is then made whether or not the overall
throughput R.sub.n 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 R.sub.n for this set are saved (block
332). Otherwise, user set n is discarded.
[0093] 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).
[0094] For the embodiment described above, a metric based on
theoretical capacity (albeit with a compensation factor c.sub.n,i)
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.
[0095] 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.sub.up=1) may be evaluated first, then sets with
two user terminals (i.e., N.sub.up=2) may be evaluated next, and so
on, and sets with N.sub.ap user terminals (i.e., N.sub.up=N.sub.ap)
may be evaluated last.
[0096] Depending on the values for N.sub.up, N.sub.act and
N.sub.ap, 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 N.sub.ap
highest priority user terminals may be evaluated in each scheduling
interval.
[0097] In the exemplary scheduling scheme described above for FIG.
3, the effective uplink channel response vector
h.sub.up,eff,u.sub.n,i is derived independently (or "locally") for
each user terminal based only on the uplink channel response matrix
H.sub.up,u.sub.n,i for the user terminal. The effective channel
response matrix H.sub.up,eff,n for each user set n is formed with
the independently derived effective channel response vectors for
the user terminals in the set. The vectors h.sub.up,eff,u.sub.n,i,
for i=1 . . . N.sub.up, in the matrix H.sub.up,eff,n 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 H.sub.up,eff,n 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).
[0098] A scheduling scheme may also evaluate each user set n based
on the uplink MIMO channel response matrices H.sub.up,u.sub.n,i
instead of the effective uplink channel response vectors
h.sub.up,eff,u.sub.n,i for the user terminals in the set. A
steering vector v'.sub.up,n.sub.n,i 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'.sub.up,eff,u.sub.n,i for each user terminal can be computed
based on the (globally derived) steering vector v'.sub.up,u.sub.n,i
and the uplink channel response matrix H.sub.up,u.sub.n,i as
follows:
h'.sub.up,eff,u.sub.n,i=H.sub.up,u.sub.n,iv'.sub.up,u.sub.n,i. An
effective uplink channel response matrix H'.sub.up,eff,n is then
formed for user set n based on the effective uplink channel
response vectors h'.sub.up,eff,u.sub.n,i for the user terminals in
the set. The performance (e.g., overall throughput) of user set n
is then evaluated with the matrix H'.sub.up,eff,n (instead of the
matrix H.sub.up,eff,n). 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.
[0099] 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.
[0100] The uplink channel response matrix H.sub.up,m for each user
terminal m may be estimated in various manners. Different channel
estimation techniques may be used for TDD and FDD systems.
[0101] 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
H.sub.up,m for each user terminal, derive the steering vector
v.sub.up,m or {tilde over (v)}.sub.up,m, and send the steering
vector to each user terminal selected for transmission.
[0102] For the FDD system, each user terminal m can transmit an
unsteered pilot (or a MIMO pilot) to allow the access point to
estimate the uplink MIMO channel response and obtain the matrix
H.sub.up,m. The unsteered pilot comprises N.sub.ut,m orthogonal
pilot transmissions sent from N.sub.ut,m user terminal antennas,
where orthogonality may be achieved in time, frequency, code, or a
combination thereof. For code orthogonality, user terminal m sends
N.sub.ut,m pilot transmissions simultaneously from its N.sub.ut,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 N.sub.ut,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 N.sub.ut,m 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 N.sub.ut,m pilot transmissions for the
N.sub.ut,m user terminal antennas can be sent simultaneously on
different subbands of the overall system bandwidth. For time
orthogonality, the N.sub.ut,m pilot transmissions for the
N.sub.ut,m user terminal antennas can be sent in different time
slots. In any case, the orthogonality among the N.sub.ut,m pilot
transmissions allows the access point to distinguish the pilot
transmission from each user terminal antenna.
[0103] 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.
[0104] 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.
[0105] For the TDD system, the access point can transmit an
unsteered pilot from N.sub.ap access point antennas. Each user
terminal m can (1) process the downlink unsteered pilot to obtain
its downlink MIMO channel response matrix H.sub.dn,m, (2) estimate
the uplink MIMO channel response as the transpose of the downlink
MIMO channel response (i.e., H.sub.up,m.apprxeq.H.sub.dn,m.sup.T),
(3) derive the steering vector v.sub.up,m or {tilde over
(v)}.sub.up,m based on H.sub.up,m, and (4) compute the effective
uplink channel response vector h.sub.up,eff,m. Each user terminal
can send the vector h.sub.up,eff,m to the access point in a direct
form (e.g., by sending the entries of h.sub.up,eff,m) or an
indirect form (e.g., by transmitting a steered pilot that is
generated with the steering vector v.sub.up,m or {tilde over
(v)}.sub.up,m used for uplink transmission).
[0106] 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 H.sub.dn,m can be obtained for each user terminal m and
decomposed to obtain a downlink steering vector v.sub.dn,m 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
N.sub.dn user terminals for downlink transmission.
[0107] For downlink transmission, the access point spatially
processes N.sub.dn data symbol streams with N.sub.dn downlink
steering vectors for the N.sub.dn selected user terminals to obtain
N.sub.ap transmit symbol streams, as follows:
x.sub.dn=V.sub.dns.sub.dn, Eq (22) [0108] where s.sub.dn is an
N.sub.dn.times.1 vector with N.sub.dn data symbols to be
transmitted on the downlink to the N.sub.dn selected user
terminals; [0109] V.sub.dn is an N.sub.ap.times.N.sub.dn matrix
with N.sub.dn downlink steering vectors for the N.sub.dn selected
user terminals, which is V.sub.dn=[v.sub.dn,1 v.sub.dn,2 . . .
v.sub.dn,N.sub.dn]; and [0110] x.sub.dn is an N.sub.ap.times.1
vector with N.sub.ap transmit symbols to be sent from the N.sub.ap
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 {tilde over (v)}.sub.dn,m for
beam-steering.
[0111] If a user terminal is equipped with at least N.sub.ap
antennas (i.e., N.sub.ut,m.gtoreq.N.sub.ap), 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 N.sub.ap
antennas (i.e., N.sub.ut,m<N.sub.ap), then the user terminal can
recover its downlink data symbol stream in the presence of
crosstalk from the other data symbol streams.
[0112] 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
MIMO system may utilize OFDM or some other multi-carrier modulation
technique. OFDM effectively partitions the overall system bandwidth
into multiple (N.sub.F) orthogonal subbands. Each subband is
associated with a respective carrier that may be modulated with
data.
[0113] For a MIMO OFDM system, for each user terminal, the channel
estimation may be performed for each of the N.sub.F subbands to
obtain N.sub.F frequency-domain channel response matrices for the
N.sub.F subbands. The spatial processing may be performed in
various manners. In one embodiment, each of the N.sub.F channel
response matrices is independently decomposed to obtain N.sub.F
steering vectors for the N.sub.F 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 N.sub.F channel response matrices. Spatial
processing is then performed for all N.sub.F subbands with this
single steering vector. In any case, N.sub.F effective uplink
channel response vectors h.sub.up,eff,m(k), for k=1 . . . N.sub.F,
are formed for each user terminal with either the single or N.sub.F
steering vectors. The user terminals may be evaluated based on
their frequency-dependent effective channel response vectors.
[0114] For a wideband MIMO system, for each user terminal, a
time-domain channel impulse response matrix may be obtained for
each of multiple (N.sub.P) resolvable signal paths in the MIMO
channel. In one embodiment, N.sub.P steering vectors are derived
for each user terminal based on the N.sub.P 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 vector(s) may be used to
derive one or more effective channel response vectors, which are in
turn used to evaluate and select user terminals for
transmission.
4. Exemplary MIMO System
[0115] 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 N.sub.ut,m antennas 452ma through 452mu, and
user terminal 120x is equipped with N.sub.ut,m 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, N.sub.up user terminals are selected for simultaneous
transmission on the uplink, N.sub.dn user terminals are selected
for simultaneous transmission on the downlink, N.sub.up may or may
not be equal to N.sub.dn, and N.sub.up and N.sub.dn may be static
values or can change for each scheduling interval. For simplicity,
beam-steering is used in the following description.
[0116] 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 {d.sub.up,m} 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 {s.sub.up,m}. A
TX spatial processor 490 performs spatial processing on the data
symbol stream {s.sub.up,m} with the steering vector v.sub.up,m,
multiplexes in pilot symbols as needed, and provides N.sub.ut,m
transmit symbol streams for the N.sub.ut,m antennas. The steering
vector v.sub.up,m is derived based on the uplink channel response
matrix-up H.sub.up,m 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.
N.sub.ut,m transmitter units 454 provide N.sub.ut,m uplink signals
for transmission from N.sub.ut,m antennas 452 to the access
point.
[0117] N.sub.up 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.
[0118] At access point 110, Nap antennas 424a through 424ap receive
the uplink signals from all N.sub.up 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
N.sub.up 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 M.sub.ap 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 H.sub.up,eff for the N.sub.up user
terminals. Each recovered uplink data symbol stream {s.sub.up,m} is
an estimate of a data symbol stream {s.sub.up,m} transmitted by a
respective user terminal. An RX data processor 442 processes (e.g.,
demodulates, deinterleaves, and decodes) each recovered uplink data
symbol stream {s.sub.up,m} 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.
[0119] On the downlink, at access point 110, a TX data processor
410 receives traffic data from a data source 408 for N.sub.dn user
terminals scheduled for downlink transmission, control data from a
controller 430, and possibly other data from a scheduler 434. The
various types of data may be sent on different transport channels.
TX data processor 410 processes (e.g., encodes, interleaves, and
modulates) the traffic data for each user terminal based on the
rate selected for that user terminal. TX data processor 410
provides N.sub.dn downlink data symbol streams for the N.sub.dn
user terminals. A TX spatial processor 420 performs spatial
processing on the N.sub.dn downlink data symbol streams with a
matrix V.sub.dn of N.sub.dn downlink steering vectors for the
N.sub.dn user terminals, multiplexes in pilot symbols, and provides
Nap transmit symbol streams for the Nap antennas. Each transmitter
unit 422 receives and processes a respective transmit symbol stream
to generate a downlink signal. Nap transmitter units 422 provide
Nap downlink signals for transmission from Nap antennas 424 to the
user terminals.
[0120] At each user terminal 120, N.sub.ut,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 N.sub.ut,m received symbol
streams from N.sub.ut,m receiver units 454 and provides a recovered
downlink data symbol stream {s.sub.dn,m} for the user terminal. The
receiver spatial processing is performed in accordance with the
CCMI, MMSE, or some other technique. A spatial filter matrix
M.sub.ut,m for each user terminal is derived based on (1) the
receiver spatial processing technique used by the user terminal and
(2) the downlink channel response matrix H.sub.dn,m 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.
[0121] 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.
[0122] Controller 480 for each user terminal typically derives the
spatial filter matrix M.sub.ut,m for the user terminal based on the
downlink channel response matrix H.sub.dn,m for that user terminal.
Controller 430 derives the spatial filter matrix M.sub.ap for the
access point based on the effective uplink channel response matrix
H.sub.up,eff. 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.
[0123] 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 {d.sub.m} 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.gtoreq.1,
and further maps each B-bit value to a specific modulation symbol
based on the modulation scheme (e.g., QPSK, M-PSK, or M-QAM, where
M=2.sup.B). Each modulation symbol is a complex value in a signal
constellation defined by the modulation scheme.
[0124] 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 {s.sub.m}. 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.
[0125] 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 N.sub.up 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 v.sub.up,m or {tilde over
(v)}.sub.up,m. Similar processing occurs for the downlink.
[0126] FIG. 5B shows a block diagram of a TX data processor 410b
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, IFFT unit 532 transforms a set of NF data,
pilot, and zero symbols to the time domain using an NF-point
inverse fast Fourier transform and provides a corresponding
transformed symbol that contains NF chips. A cyclic prefix
generator 534 repeats a portion of each transformed symbol to
obtain a corresponding OFDM symbol that contains N.sub.F+N.sub.cp
chips. The repeated portion is referred to as a cyclic prefix, and
N.sub.cp is the number of chips being repeated. The cyclic prefix
ensures that the OFDM symbol retains its orthogonal properties in
the presence of multipath 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
{s.sub.m}.
[0127] For the uplink, each data symbol stream is transmitted on a
respective set of subbands assigned for that stream. The N.sub.up
selected user terminals may concurrently transmit N.sub.up 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 v.sub.up,m or
{tilde over (v)}.sub.up,m. Similar processing occurs for the
downlink.
[0128] For simplicity, FIGS. 5A and 5B show the processing for one
data stream {d.sub.m} to obtain one data symbol steam {s.sub.m}.
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.
[0129] 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.
[0130] 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
{s.sub.up,m} is multiplied with the steering vector v.sub.up,m by
TX spatial processor 490m to obtain the transmit symbol vector
x.sub.up,m for the uplink. At access point 110, the received symbol
vector r.sub.up (for user terminal 120m as well as other user
terminals) is multiplied with a spatial filter matrix M.sub.ap by a
unit 640 and further scaled with a diagonal matrix D.sub.ap.sup.-1
by a unit 642 to obtain the recovered data symbol vector s.sub.up
for the uplink. Units 640 and 642 are part of an RX spatial
processor 440a. The matrices M.sub.ap and D.sub.ap.sup.-1 are
derived based on the effective uplink channel response matrix
H.sub.up,eff and using the CCMI, MMSE, or some other technique.
[0131] For the downlink, at access point 110, the data symbol
vector s.sub.dn (which includes the downlink data symbol streams
for user terminal 120m as well as other user terminals) is
multiplied with the downlink steering matrix V.sub.dn by TX spatial
processor 420 to obtain the transmit symbol vector x.sub.dn for the
downlink. At user terminal 120m, the received symbol vector
r.sub.dn,m is multiplied with a spatial filter matrix M.sub.ut,m by
a unit 660 and further scaled with a diagonal matrix
D.sub.ut,m.sup.-1 by a unit 662 to obtain a downlink recovered data
symbol stream {s.sub.dn,m} for user terminal 120m. Units 660 and
662 are part of RX spatial processor 460m. The matrices M.sub.ut,m
and D.sub.ut,m.sup.-1 are derived based on the downlink channel
response matrix H.sub.dn,m for user terminal 120m and using the
CCMI, MMSE, or some other technique.
[0132] 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 N.sub.up successive (i.e.,
cascaded) receiver processing stages for N.sub.up data symbol
streams transmitted by N.sub.up user terminals. Each of stages 1 to
N.sub.up-1 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.
[0133] For stage 1, spatial processor 710a performs receiver
spatial processing on the Nap received symbol streams and provides
one recovered data symbol stream {s.sub.up,j.sub.1} for user
terminal j1 being recovered in the first stage. RX data stream
processor 730a demodulates, deinterleaves, and decodes the
recovered data symbol stream {s.sub.up,j.sub.1} and provides a
decoded data stream {{circumflex over (d)}.sub.up,j.sub.1}. TX data
stream processor 740a encodes, interleaves, and modulates the
decoded data stream {{circumflex over (d)}.sub.up,j.sub.1} in the
same manner performed by user terminal j1 for that stream and
provides a remodulated symbol stream {{hacek over
(s)}.sub.up,j.sub.1}. Interference canceller 720a performs
transmitter spatial processing on the remodulated symbol stream
{{hacek over (s)}.sub.up,j.sub.1} with the effective channel
response vector h.sub.up,eff,j.sub.1 for user terminal j1 to obtain
Nap interference components due to the data symbol stream
{s.sub.up,j.sub.1}. The Nap interference components are subtracted
from the Nap received symbol streams to obtain Nap modified symbol
streams, which are provided to stage 2.
[0134] Each of stages 2 through N.sub.up-1 performs the same
processing as stage 1, 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.sub.up-1 and does not
perform interference estimation and cancellation.
[0135] 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.sub.sic.sup.l with a spatial filter matrix M.sub.ap.sup.l to
obtain a detected symbol vector {tilde over (s)}.sub.up.sup.l,
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.sub.ap.sup.l is derived based on a reduced
effective channel response matrix H.sub.up,eff.sup.l for the
stage.
[0136] 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.
[0137] 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.
[0138] 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 H.sub.up,eff,n for the set and
computes the SNR for each user terminal in the set based on
H.sub.up,eff,n 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 R.sub.n 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 R.sub.n for the set.
[0139] 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.
[0140] The scheduling for downlink transmission may be performed in
similar manner.
[0141] 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.
[0142] 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.
[0143] 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.
[0144] 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.
* * * * *