U.S. patent application number 12/565284 was filed with the patent office on 2010-03-18 for reduced complexity sliding window based equalizer.
This patent application is currently assigned to INTERDIGITAL TECHNOLOGY CORPORATION. Invention is credited to Bin Li, Alexander Reznik, Rui Yang, Ariela Zeira.
Application Number | 20100067620 12/565284 |
Document ID | / |
Family ID | 46302237 |
Filed Date | 2010-03-18 |
United States Patent
Application |
20100067620 |
Kind Code |
A1 |
Reznik; Alexander ; et
al. |
March 18, 2010 |
REDUCED COMPLEXITY SLIDING WINDOW BASED EQUALIZER
Abstract
A method and apparatus for use in data estimation in wireless
communication are provided. A wireless communications signal is
received and transformed to produce a received vector. The received
vector is processed using a sliding window based approach that
includes processing each of a plurality of windows. For each
window, an approximate circulant channel response matrix is
produced for use in estimating a data vector corresponding to the
window.
Inventors: |
Reznik; Alexander;
(Titusville, NJ) ; Yang; Rui; (Greenlawn, NY)
; Li; Bin; (Shenzhen, CN) ; Zeira; Ariela;
(Huntington, NY) |
Correspondence
Address: |
VOLPE AND KOENIG, P.C.;DEPT. ICC
UNITED PLAZA, SUITE 1600, 30 SOUTH 17TH STREET
PHILADELPHIA
PA
19103
US
|
Assignee: |
INTERDIGITAL TECHNOLOGY
CORPORATION
Wilmington
DE
|
Family ID: |
46302237 |
Appl. No.: |
12/565284 |
Filed: |
September 23, 2009 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
12191702 |
Aug 14, 2008 |
7609794 |
|
|
12565284 |
|
|
|
|
11265932 |
Nov 3, 2005 |
|
|
|
12191702 |
|
|
|
|
10875900 |
Jun 24, 2004 |
7042967 |
|
|
11265932 |
|
|
|
|
10791244 |
Mar 2, 2004 |
7428279 |
|
|
10875900 |
|
|
|
|
60482333 |
Jun 25, 2003 |
|
|
|
60452165 |
Mar 3, 2003 |
|
|
|
Current U.S.
Class: |
375/340 |
Current CPC
Class: |
H04L 2025/03509
20130101; H04L 25/03292 20130101; H04L 25/0242 20130101; H04B
1/71052 20130101; H04L 2025/03605 20130101; H04L 2025/03426
20130101; H04L 25/0212 20130101; H04L 25/03057 20130101 |
Class at
Publication: |
375/340 |
International
Class: |
H04L 27/06 20060101
H04L027/06 |
Claims
1. An apparatus for use in wireless communication comprising: a
receiver configured to transform a received wireless communications
signal to produce a received vector by sampling at a multiple of a
data signal chip rate; and a processor configured to process the
received vector using a sliding window based approach, such that
for each processing window in a plurality of processing windows an
approximate circulant channel response matrix is produced and used
to estimate a data vector corresponding to the window.
2. (canceled)
3. The apparatus of claim 1, further comprising: a root-raised
cosine filtering unit configured to apply a root-raised cosine
filter to the received vector.
4. The apparatus of claim 1, wherein the processor is configured to
ignore noise cross correlation.
5. The apparatus of claim 1, wherein the processor is configured to
use the received vector and the approximate circulant channel
response matrix arranged in a natural order.
6. The apparatus of claim 1, wherein the receiver is configured to
transform a plurality of received wireless communications signals
from a plurality of antennas to produce a received vector.
7. The apparatus of claim 1, wherein the processor is configured to
multiply a discrete Fourier transform of a pulse shaping filter by
a measured noise variance to produce a discrete Fourier transform
of the noise vector cross correlation.
8. The apparatus of claim 1, wherein the processor is configured to
multiply a discrete Fourier transform of an ideal pulse shape by a
measured noise variance to produce a discrete Fourier transform of
the noise vector cross correlation.
9. The apparatus of claim 1, further comprising: a summer,
configured to combine the data vector corresponding to each window
to form a combined data vector.
10. The apparatus of claim 1 configured as a wireless
transmit/receive unit (WTRU).
11. The apparatus of claim 1 configured as a base station.
12. A method for use in wireless communications, the method
comprising: transforming a received wireless communications signal
to produce a received vector by sampling at a multiple of a data
signal chip rate; and processing the received vector using a
sliding window based approach, such that for each processing window
in a plurality of processing windows an approximate circulant
channel response matrix is produced and used to estimate a data
vector corresponding to the window.
13. (canceled)
14. The method of claim 12, further comprising: applying a
root-raised cosine filter to the received vector.
15. The method of claim 12, wherein the processing includes
ignoring noise cross correlation.
16. The method of claim 12, wherein the processing includes using
the received vector and the approximate circulant channel response
matrix arranged in a natural order.
17. The method of claim 12, wherein the transforming includes
producing a plurality of received vectors corresponding to a
plurality of received wireless communications signals from a
plurality of antennas.
18. The method of claim 12, wherein the processing includes
multiplying a discrete Fourier transform of the pulse shaping
filter by a measured noise variance to produce a discrete Fourier
transform of the noise vector cross correlation.
19. The method of claim 12, wherein the processing includes
multiplying a discrete Fourier transform of an ideal pulse shape by
a measured noise variance to produce a discrete Fourier transform
of the noise vector cross correlation.
20. The method of claim 12, further comprising: combining the data
vector corresponding to each window to form a combined data vector.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 12/191,702 filed on Aug. 14, 2008, which was a
continuation of U.S. patent application Ser. No. 11/265,932, filed
on Nov. 3, 2005, which was a continuation of U.S. patent
application Ser. No. 10/875,900, filed on Jun. 24, 2004, now U.S.
Pat. No. 7,042,967, which claims priority from U.S. Provisional
Application No. 60/482,333, filed on Jun. 25, 2003. U.S. patent
Ser. No. 10/875,900 was also a continuation-in-part of U.S. patent
application Ser. No. 10/791,244, filed Mar. 2, 2004, which claims
priority from 60/452,165, filed on Mar. 3, 2003. All of the above
applications are incorporated by reference as if fully set
forth.
FIELD OF INVENTION
[0002] The invention generally relates to wireless communication
systems, In particular, the invention relates to data detection in
such systems.
BACKGROUND
[0003] Due to the increased demands for improved receiver
performance, many advanced receivers use zero forcing (ZF) block
linear equalizers and minimum mean square error (MMSE)
equalizers.
[0004] In both these approaches, the received signal is typically
modeled per Equation 1.
r=Hd+n Equation 1
[0005] r is the received vector, comprising samples of the received
signal. H is the channel response matrix. d is the data vector to
be estimated. In spread spectrum systems, such as code division
multiple access (CDMA) systems, d may be represented as data
symbols or a composite spread data vector. For a composite spread
data vector, the data symbols for each individual code are produced
by despreading the estimated data vector d with that code. n is the
noise vector.
[0006] In a ZF block linear equalizer, the data vector is
estimated, such as per Equation 2.
d=(H.sup.HH).sup.-1H.sup.Hr Equation 2
[0007] ().sup.H is the complex conjugate transpose (or Hermitian)
operation. In a MMSE block linear equalizer, the data vector is
estimated, such as per Equation 3.
d=(H.sup.HH+.sigma..sup.2I).sup.-1H.sup.Hr Equation 3
[0008] In wireless channels experiencing multipath propagation, to
accurately detect the data using these approaches requires that an
infinite number of received samples be used, which is not
practical. Therefore, it is desirable to use an approximation
technique. One of the approaches is a sliding window approach. In
the sliding window approach, a predetermined window of received
samples and channel responses are used in the data detection. After
the initial detection, the window is slid down to a next window of
samples. This process continues until the communication ceases.
[0009] By not using an infinite number of samples, an error is
introduced into the symbol model shown in Equation 1 and, therefore
causes inaccurate data detection. The error is most prominent at
the beginning and end of the window, where the effectively
truncated portions of the infinite sequence have the largest
impact. One approach to reduce these errors is to use a large
window size and truncate the results at the beginning and the end
of the window. The truncated portions of the window are determined
in previous and subsequent windows. This approach has considerable
complexity, especially when the channel delay spread is large. The
large window size leads to large dimensions on the matrices and
vectors used in the data estimation. Additionally, this approach is
not computationally efficient by detection data at the beginning
and at the ends of the window and then discarding that data.
[0010] Accordingly, it is desirable to have alternate approaches to
data detection.
SUMMARY
[0011] A method and apparatus for use in data estimation in
wireless communication are provided. A wireless communications
signal is received and transformed to produce a received vector.
The received vector is processed using a sliding window based
approach that includes processing each of a plurality of windows.
For each window, an approximate circulant channel response matrix
is produced for use in estimating a data vector corresponding to
the window.
BRIEF DESCRIPTION OF THE DRAWINGS
[0012] FIG. 1 is an illustration of a banded channel response
matrix.
[0013] FIG. 2 is an illustration of a center portion of the banded
channel response matrix.
[0014] FIG. 3 is an illustration of a data vector window with one
possible partitioning.
[0015] FIG. 4 is an illustration of a partitioned signal model.
[0016] FIG. 5 is a flow diagram of sliding window data detection
using a past correction factor.
[0017] FIG. 6 is a receiver using sliding window data detection
using a past correction factor.
[0018] FIG. 7 is a flow diagram of sliding window data detection
using a noise auto-correlation correction factor.
[0019] FIG. 8 is a receiver using sliding window data detection
using a noise auto-correlation correction factor.
[0020] FIG. 9 is a graphical representation of the sliding window
process.
[0021] FIG. 10 is a graphical representation of the sliding window
process using a circulant approximation.
[0022] FIG. 11 is a circuit for an embodiment for detecting data
using discrete Fourier transforms (DFTs).
DETAILED DESCRIPTION
[0023] Although the features and elements of the present invention
are described in the preferred embodiments in particular
combinations, each feature or element can be used alone (without
the other features and elements of the preferred embodiments) or in
various combinations with or without other features and elements of
the present invention.
[0024] Hereafter, a wireless transmit/receive unit (WTRU) includes
but is not limited to a user equipment, mobile station, fixed or
mobile subscriber unit, pager, or any other type of device capable
of operating in a wireless environment. When referred to hereafter,
a base station includes but is not limited to a Node-B, site
controller, access point or any other type of interfacing device in
a wireless environment.
[0025] Although reduced complexity sliding window equalizer is
described in conjunction with a preferred wireless code division
multiple access communication system, such as CDMA2000 and
universal mobile terrestrial system (UMTS) frequency division
duplex (FDD), time division duplex (TDD) modes and time division
synchronous CDMA (TD-SCDMA), it can be applied to various
communication system and, in particular, various wireless
communication systems. In a wireless communication system, it can
be applied to transmissions received by a WTRU from a base station,
received by a base station from one or multiple WTRUs or received
by one WTRU from another WTRU, such as in an ad hoc mode of
operation.
[0026] The following describes the implementation of a reduced
complexity sliding window based equalizer using a preferred MMSE
algorithm. However, other algorithms can be used, such as a zero
forcing algorithm. h() is the impulse response of a channel. d(k)
is the k.sup.th transmitted sample that is generated by spreading a
symbol using a spreading code. It can also be sum of the chips that
are generated by spreading a set of symbols using a set of codes,
such as orthogonal codes. r() is the received signal. The model of
the system can expressed as per Equation 4.
r ( t ) = k = - .infin. .infin. d ( k ) h ( t - kT c ) + n ( t ) -
.infin. < t < .infin. Equation 4 ##EQU00001##
[0027] n(t) is the sum of additive noise and interference
(intra-cell and inter-cell). For simplicity, the following is
described assuming chip rate sampling is used at the receiver,
although other sampling rates may be used, such as a multiple of
the chip rate. The sampled received signal can be expressed as per
Equation 5.
r ( j ) = k = - .infin. .infin. d ( k ) h ( j - k ) + n ( j ) = k =
- .infin. .infin. d ( j - k ) h ( k ) + n ( j ) , j .di-elect cons.
{ , - 2 , - 1 , 0 , 1 , 2 , } Equation 5 ##EQU00002##
T.sub.c is being dropped for simplicity in the notations.
[0028] Assuming h() has a finite support and is time invariant.
This means that in the discrete-time domain, index L exists such
that h(i)=0 for i<0 and i.gtoreq.L. As a result, Equation 5 can
be re-written as Equation 6.
r ( j ) = k = 0 L - 1 h ( k ) d ( j - k ) + n ( j ) , j .di-elect
cons. { , - 2 , - 1 , 0 , 1 , 2 , } Equation 6 ##EQU00003##
[0029] Considering that the received signal has M received signals
r(0), . . . , r(M-1), Equation 7 results.
r=Hd+n
where,
[0030] r=[r(0), . . . , r(M-1)].sup.T.epsilon.C.sup.M,
[0031] d=[d(-L+1), d(-L+2), . . . , d(0), d(1), . . . ,
d(M-1)].sup.T.epsilon.C.sup.M+L-1
[0032] n=[n(0), . . . , n(M-1)].sup.T.epsilon.C.sup.M
Equation 7 ##EQU00004## H = [ h ( L - 1 ) h ( L - 2 ) h ( 1 ) h ( 0
) 0 0 h ( L - 1 ) h ( L - 2 ) h ( 1 ) h ( 0 ) 0 0 h ( L - 1 ) h ( L
- 2 ) h ( 1 ) h ( 0 ) ] .di-elect cons. C M .times. ( M + L - 1 )
##EQU00004.2##
[0033] In Equation 7, C.sup.M represents the space of all complex
vectors with dimension M.
[0034] Part of the vector d can be determined using an approximate
equation. Assuming M>L and defining N=M-L+1, vector d is per
Equation 8.
d = [ d ( - L + 1 ) , d ( - L + 2 ) , , d ( - 1 ) , L - 1 d ( 0 ) ,
d ( 1 ) , , d ( N - 1 ) , N d ( N ) , , d ( N + L - 2 ) L - 1 ] T
.di-elect cons. C N + 2 L - 2 Equation 8 ##EQU00005##
[0035] The H matrix in Equation 7 is a banded matrix, which can be
represented as the diagram in FIG. 1. In FIG. 1, each row in the
shaded area represents the vector [h(L-1), h(L-2), . . . , h(1),
h(0)], as shown in Equation 7.
[0036] Instead of estimating all of the elements in d, only the
middle N elements of d are estimated. {tilde over (d)} is the
middle N elements as per Equation 9.
{tilde over (d)}=[d(0), . . . , d(N-1)].sup.T Equation 9
[0037] Using the same observation for r, an approximate linear
relation between r and {tilde over (d)} is per Equation 10.
r={tilde over (H)}{tilde over (d)}+n Equation 10
[0038] Matrix {tilde over (H)} can be represented as the diagram in
FIG. 2 or as per Equation 11.
H ~ = [ h ( 0 ) 0 h ( 1 ) h ( 0 ) h ( 1 ) 0 h ( L - 1 ) h ( 0 ) 0 h
( L - 1 ) h ( 1 ) 0 h ( L - 1 ) ] Equation 11 ##EQU00006##
[0039] As shown, the first L-1 and the last L-1 elements of r are
not equal to the right hand side of the Equation 10. As a result,
the elements at the two ends of vector {tilde over (d)} will be
estimated less accurately than those near the center. Due to this
property, a sliding window approach, as described subsequently, is
preferably used for estimation of transmitted samples, such as
chips.
[0040] In each k.sup.th step of the sliding window approach, a
certain number of the received samples are kept in r [k] with
dimension N+L-1. They are used to estimate a set of transmitted
data {tilde over (d)}[k] with dimension N using equation 10. After
vector {tilde over (d)}[k] is estimated, only the "middle" part of
the estimated vector {tilde over ({circumflex over (d)}[k] is used
for the further data processing, such as by despreading. The
"lower" part (or the later in-time part) of {tilde over (d)}[k] is
estimated again in the next step of the sliding window process in
which r [k+1] has some of the elements r [k] and some new received
samples, i.e. it is a shift (slide) version of r [k].
[0041] Although, preferably, the window size N and the sliding step
size are design parameters, (based on delay spread of the channel
(L), the accuracy requirement for the data estimation and the
complexity limitation for implementation), the following using the
window size of Equation 12 for illustrative purposes.
N=4N.sub.s.times.SF Equation 12
SF is the spreading factor. Typical window sizes are 5 to 20 times
larger than the channel impulse response, although other sizes may
be used.
[0042] The sliding step size based on the window size of Equation
12 is, preferably, 2N.sub.s.times.SF. N.sub.s.epsilon.{1, 2, . . .
} is, preferably, left as a design parameter. In addition, in each
sliding step, the estimated chips that are sent to the despreader
are 2N.sub.s.times.SF elements in the middle of the estimated
{circumflex over (d)}[k]. This procedure is illustrated in FIG.
3.
[0043] In the sliding window approach described above, the system
model is approximated by throwing away some terms in the model. In
the following, a technique is described where terms are kept by
either using the information estimated in previous sliding step or
characterizing the terms as noise in the model. The system model is
corrected using the kept/characterized terms.
[0044] One algorithm of data detection uses an MMSE algorithm with
model error correction uses a sliding window based approach and the
system model of Equation 10.
[0045] Due to the approximation, the estimation of the data, such
as chips, has error, especially, at the two ends of the data vector
in each sliding step (the beginning and end). To correct this
error, the H matrix in Equation 7 is partitioned into a block row
matrix, as per Equation 13, (step 50).
H=[H.sub.p|{tilde over (H)}|H.sub.f] Equation 13
[0046] Subscript "p" stands for "past", and "f" stands for
"future". {tilde over (H)} is as per Equation 10. H.sub.p is per
Equation 14.
H p = [ h ( L - 1 ) h ( L - 2 ) h ( 1 ) 0 h ( L - 1 ) h ( 2 ) 0 0 h
( L - 1 ) 0 0 0 0 ] .di-elect cons. C ( N + L - 1 ) .times. ( L - 1
) Equation 14 ##EQU00007##
[0047] H.sub.f is per Equation 15.
H f = [ 0 0 0 0 h ( 0 ) 0 0 0 h ( L - 3 ) h ( 0 ) 0 h ( L - 2 ) h (
L - 3 ) h ( 0 ) ] .di-elect cons. C ( N + L - 1 ) .times. ( L - 1 )
Equation 15 ##EQU00008##
[0048] The vector d is also partitioned into blocks as per Equation
16.
d=[d.sub.p.sup.T|{tilde over (d)}.sup.T|d.sub.f.sup.T].sup.T
Equation 16
[0049] {tilde over (d)} is the same as per Equation 8 and d.sub.p
is per Equation 17.
d.sub.p=[d(-L+1)d(-L+2) . . . d(-1)].sup.T.epsilon.C.sup.L-1
Equation 17
[0050] d.sub.f is per Equation 18.
d.sub.f=[d(N)d(N+1) . . . d(N+L-2)].sup.T.epsilon.C.sup.L-1
Equation 18
[0051] The original system model is then per Equation 19 and is
illustrated in FIG. 4.
r=H.sub.pd.sub.p+{tilde over (H)}{tilde over (d)}+H.sub.fd.sub.f+n
Equation 19
[0052] One approach to model Equation 19 is per Equation 20.
{tilde over (r)}={tilde over (H)}{tilde over (d)}+n.sub.1 Equation
20
where {tilde over (r)}=r-H.sub.pd.sub.p and
n.sub.1=H.sub.fd.sub.f+n
[0053] Using an MMSE algorithm, the estimated data vector {tilde
over ({circumflex over (d)} is per Equation 21.
{tilde over ({circumflex over (d)}=g.sub.d{tilde over
(H)}.sup.H(g.sub.d{tilde over (H)}{tilde over
(H)}.sup.H+.SIGMA..sub.1).sup.-1{tilde over ({circumflex over (r)}
Equation 21
[0054] In Equation 21, g.sub.d is chip energy per Equation 22.
E{d(i)d*(j)}=g.sub.d.delta..sub.ij Equation 22
[0055] {tilde over ({circumflex over (r)} is per Equation 23.
{tilde over ({circumflex over (r)}=r-H.sub.p{circumflex over
(d)}.sub.p Equation 23
[0056] {circumflex over (d)}.sub.p, is part of the estimation of
{tilde over (d)} in the previous sliding window step. .SIGMA..sub.1
is the autocorrelation matrix of n.sub.1, i.e.,
.SIGMA..sub.1=E{n.sub.1n.sub.1.sup.H}. If assuming H.sub.fd.sub.f
and n are uncorrelated, Equation 24 results.
.SIGMA..sub.1=g.sub.dH.sub.fH.sub.f.sup.H+E{nn.sup.H} Equation
24
[0057] The reliability of depends on the sliding window size
(relative to the channel delay span L) and sliding step size.
[0058] This approach is also described in conjunction with the flow
diagram of FIG. 5 and preferred receiver components of FIG. 6,
which can be implemented in a WTRU or base station. The circuit of
FIG. 6 can be implemented on a single integrated circuit (IC), such
as an application specific integrated circuit (ASIC), on multiple
IC's, as discrete components or as a combination of IC('s) and
discrete components.
[0059] A channel estimation device 20 processes the received vector
r producing the channel estimate matrix portions, H.sub.p, {tilde
over (H)} and H.sub.f, (step 50). A future noise auto-correlation
device 24 determines a future noise auto-correlation factor,
g.sub.dH.sub.fH.sub.f.sup.H, (step 52). A noise auto-correlation
device 22 determines a noise auto-correlation factor, E{nn.sup.H},
(step 54). A summer 26 sums the two factors together to produce
.SIGMA..sub.1, (step 56).
[0060] A past input correction device 28 takes the past portion of
the channel response matrix, H.sub.p, and a past determined portion
of the data vector, {circumflex over (d)}.sub.p, to produce a past
correction factor, H.sub.p{circumflex over (d)}.sub.p, (step 58). A
subtractor 30 subtracts the past correction factor from the
received vector producing a modified received vector, {tilde over
({circumflex over (r)}, (step 60). An MMSE device 34 uses
.SIGMA..sub.1, {tilde over (H)}, and {tilde over ({circumflex over
(r)} to determine the received data vector center portion {tilde
over ({circumflex over (d)}, such as per Equation 21, (step 62).
The next window is determined in the same manner using a portion of
{tilde over ({circumflex over (d)} as {circumflex over (d)}.sub.p
in the next window determination, (step 64). As illustrated in this
approach, only data for the portion of interest, {tilde over
({circumflex over (d)}, is determined reducing the complexity
involved in the data detection and the truncating of unwanted
portions of the data vector.
[0061] In another approach to data detection, only the noise term
is corrected. In this approach, the system model is per Equation
25.
r={tilde over (H)}{tilde over (d)}+n.sub.2, where
n.sub.2=H.sub.pd.sub.p+H.sub.fd.sub.f+n Equation 25
[0062] Using an MMSE algorithm, the estimated data vector {tilde
over ({circumflex over (d)} is per Equation 26.
{tilde over ({circumflex over (d)}=g.sub.d{tilde over
(H)}.sup.H(g.sub.d{tilde over (H)}{tilde over
(H)}.sup.H+.SIGMA..sub.2).sup.-1r Equation 26
[0063] Assuming H.sub.pd.sub.p, H.sub.fd.sub.f and n are
uncorrelated, Equation 27 results.
.SIGMA..sub.2=g.sub.dH.sub.pH.sub.p.sup.H+g.sub.dH.sub.fH.sub.f.sup.H+E{-
nn.sup.H} Equation 27
[0064] To reduce the complexity in solving Equation 26 using
Equation 27, a full matrix multiplication for H.sub.pH.sub.p.sup.H
and H.sub.fH.sub.f.sup.H are not necessary, since only the upper
and lower corner of H.sub.p and H.sub.f, respectively, are
non-zero, in general.
[0065] This approach is also described in conjunction with the flow
diagram of FIG. 7 and preferred receiver components of FIG. 8,
which can be implemented in a WTRU or base station. The circuit of
FIG. 8 can be implemented on a single integrated circuit (IC), such
as an application specific integrated circuit (ASIC), on multiple
IC's, as discrete components or as a combination of IC('s) and
discrete components.
[0066] A channel estimation device 36 processes the received vector
producing the channel estimate matrix portions, H.sub.p, {tilde
over (H)} and H.sub.f, (step 70). A noise auto-correlation
correction device 38 determines a noise auto-correlation correction
factor, g.sub.dH.sub.pH.sub.p.sup.H+g.sub.dH.sub.fH.sub.f.sup.H,
using the future and past portions of the channel response matrix,
(step 72). A noise auto correlation device 40 determines a noise
auto-correlation factor, E{nn.sup.H}, (step 74). A summer 42 adds
the noise auto-correlation correction factor to the noise
auto-correlation factor to produce .SIGMA..sub.2 (step 76). An MMSE
device 44 uses the center portion or the channel response matrix,
{tilde over (H)}, the received vector, r, and .SIGMA..sub.2 to
estimate the center portion of the data vector, {tilde over
({circumflex over (d)}, (step 78). One advantage to this approach
is that a feedback loop using the detected data is not required. As
a result, the different slided window version can be determined in
parallel and not sequentially.
[0067] Discrete Fourier Transform Based Equalization
[0068] The sliding window approach described above requires a
matrix inversion, which is a complex process. One embodiment for
implementing a sliding window utilizes discrete Fourier transforms
(DFTs), as follows. Although the preferred implementation of the
DFT based approach is with a MMSE algorithm, it can be applied to
other algorithms, such as a zero forcing (ZF) based algorithm.
[0069] A matrix A.sub.cir.epsilon.C.sup.N.times.N, for some integer
N, is a circulant matrix if it has the following form per Equation
28.
A cir = [ a 1 a N a N - 1 a 2 a 2 a 1 a N a 2 a 1 a N - 1 a 2 a N a
N a N - 1 a 1 ] Equation 28 ##EQU00009##
[0070] This kind of matrix is expressed using the DFT and the IDFT
operators, such as per Equation 29.
A.sub.cir=F.sub.N.sup.-1.LAMBDA.(A.sub.cir[:,1])F.sub.N Equation
29
where, A.sub.cir[:,1]=(a.sub.0, a.sub.1, . . . ,
a.sub.N).sup.T.epsilon.C.sup.N, i.e. it is the first column of
matrix A.sub.cir Columns other than the first column can be used if
properly permuted. F.sub.N is the N-point DFT matrix which is
defined as, for any x.epsilon.C.sup.N, as per Equation 30.
( F N x ) k = n = 0 N - 1 x ( n ) j 2 .pi. kn N k = 0 , , N - 1
Equation 30 ##EQU00010##
F.sub.N.sup.-1 is the N-point inverse DFT matrix which is defined
as, for any x.epsilon.C.sup.N, as per Equation 31.
( F N - 1 x ) k = 1 N ( F N * x ) k = 1 N n = 0 N - 1 x ( n ) - j 2
.pi. kn N k = 0 , , N - 1 Equation 31 ##EQU00011##
.LAMBDA..sub.N() is a diagonal matrix, which is defined as, for any
x.epsilon.C.sup.N, as per Equation 32.
.LAMBDA..sub.N(x)=diag(F.sub.Nx) Equation 32
[0071] The inverse of matrix A.sub.cir is expressed, such as per
Equation 33.
A.sub.cir.sup.-1=F.sub.N.sup.-1.LAMBDA..sub.N.sup.-1(A.sub.cir[:,1])F.su-
b.N Equation 33
[0072] The following is an application of a DFT based approach to
the data estimation process using the sliding window based chip
level equalizer. The first embodiment uses a single receiving
antenna. Subsequent embodiments use multiple receiving
antennas.
[0073] The receiver system is modeled as per Equation 34.
r ( t ) = k = - .infin. .infin. d ( k ) h ( t - kT c ) + n ( t ) -
.infin. < t < .infin. Equation 34 ##EQU00012##
h() is the impulse response of the channel. d(k) is the kth
transmitted chip samples that is generated by spreading symbols
using a spreading code. r() is the received signal. n() is the sum
of additive noise and interference (intra-cell and inter-cell).
[0074] Using chip rate sampling and h() having a finite support,
which means, in discrete-time domain, there is an integer L such
that h(i)=0 for i<0 and i.gtoreq.L, the sampled received signal
can be expressed (T.sub.c is dropped for simplicity of the
notations), as per Equation 35.
r ( j ) = k = 0 L - 1 h ( k ) d ( j - k ) + n ( j ) j .di-elect
cons. { , - 2 , - 1 , 0 , 1 , 2 , } Equation 35 ##EQU00013##
[0075] Based on M (M>L) received signals r(0), . . . , r(M-1),
Equation 36 results.
r = Hd + n ##EQU00014## where ##EQU00014.2## r = [ r ( 0 ) , , r (
M - 1 ) ] T .di-elect cons. C M , d = [ d ( - L + 1 ) , d ( - L + 2
) , , d ( 0 ) , d ( 1 ) , , d ( M - 1 ) ] T .di-elect cons. C M + L
= 1 ##EQU00014.3## n = [ n ( 0 ) , , n ( M - 1 ) ] T .di-elect
cons. C M ##EQU00014.4## Equation 36 ##EQU00014.5## H = [ h ( L - 1
) h ( L - 2 ) h ( 1 ) h ( 0 ) 0 0 h ( L - 1 ) h ( L - 2 ) h ( 1 ) h
( 0 ) 0 0 h ( L - 1 ) h ( L - 2 ) h ( 1 ) h ( 0 ) ] .di-elect cons.
C M .times. ( M + L - 1 ) ##EQU00014.6##
[0076] As illustrated by Equation 36, the H matrix is Toeplitz. As
described subsequently in the application for multiple chip rate
sampling and/or multiple receive antennas, the H matrix is block
Toeplitz. Using the block Toeplitz property, discrete Fourier
transform techniques can be applied. The Toeplitz/block Toeplitz
nature is produced as a result of the convolution with one channel
or the convolution of the input signal with a finite number of
effective parallel channels. The effective parallel channels appear
as a result of either oversampling or multiple receive antennas.
For one channel, a single row is essentially slide down and to the
right producing a Toeplitz matrix.
[0077] The statistics of the noise vector are treated as having the
autocorrelation property, per Equation 37.
E{nn.sup.H}=.sigma..sup.2I Equation 37
[0078] The left hand side of equation (5) can be viewed as a
"window" of continuous input signal stream. To estimate the data,
an approximated model is used. In this approximated model, the
first L-1 and the last L-1 elements of vector d are assumed to be
zero before applying the MMSE algorithm and the reset M-L+1
elements of d forms a new vector {tilde over (d)}=[d(0), . . . ,
d(M-L+1)].sup.T. The approximated model can be expressed explicitly
as per Equation 38.
r = H ~ d ~ + n where H ~ = [ h ( 0 ) 0 h ( 1 ) h ( 0 ) h ( 1 ) 0 h
( L - 1 ) h ( 0 ) 0 h ( L - 1 ) h ( 1 ) 0 h ( L - 1 ) ] . Equation
38 ##EQU00015##
[0079] After the vector {tilde over (d)} is estimated, only the
middle part of it is taken for de-spreading. Subsequently, the
window of observation (i.e. the received signal) is slid by
(M-L+1)/2 elements and the process is repeated. FIG. 9 is a
graphical representation of the sliding window process, as
described above.
[0080] Using MMSE algorithm, the estimated data is expressed per
Equation 39.
{tilde over ({circumflex over (d)}=R.sup.-1{tilde over (H)}.sup.Hr
Equation 39
where R={tilde over (H)}.sup.H{tilde over (H)}+.sigma..sup.2I
[0081] In Equation 39, neither the matrix R nor the matrix {tilde
over (H)} is circulant to facilitate a DFT implementation. To
facilitate a DFT implementation, for each sliding step, the
approximated system model per Equation 40 is used.
r = H d + n where H = [ h ( 0 ) 0 h ( 1 ) h ( 0 ) h ( 1 ) 0 h ( L -
1 ) h ( 0 ) 0 0 h ( L - 1 ) h ( 1 ) h ( 0 ) 0 0 h ( L - 1 ) h ( L -
2 ) h ( 0 ) ] .di-elect cons. C M .times. M d = [ d ( 0 ) , , d ( M
- 1 ) ] T .di-elect cons. C M .times. 1 Equation 40
##EQU00016##
In Equation 40, only the first L-1 elements (equations) are
approximations of those of Equation 36.
[0082] The matrix {hacek over (H)} is replaces by a circulant
matrix, such as per Equation 41.
Equation 41 ##EQU00017## H cir = [ h ( 0 ) 0 0 h ( L - 1 ) h ( 1 )
h ( 1 ) h ( 0 ) 0 h ( 1 ) 0 h ( L - 1 ) h ( L - 1 ) h ( 0 ) 0 0 0 h
( L - 1 ) h ( 1 ) h ( 0 ) 0 0 0 h ( L - 1 ) h ( L - 2 ) h ( 0 ) ]
##EQU00017.2##
[0083] The system model, for each sliding step, is per Equation
42.
r=H.sub.cird+n Equation 42
with d=[d(0), . . . , d(M-1)].sup.T.epsilon.C.sup.M.times.1 The
vector d in Equation 42, due to the new model, is different than
the vector d in Equation 36. Equation 42 adds additional distortion
to the first L-1 element of Equation 39. This distortion makes the
two ends of the estimated vector d inaccurate. FIG. 10 is a
graphical representation of the model construction process.
[0084] Using approximated model per Equation 42, the MMSE algorithm
yields the estimated data as per Equation 43.
{circumflex over (d)}=R.sub.cir.sup.-1H.sub.cir.sup.Hr Equation
43
where R.sub.cir=H.sub.cir.sup.HH.sub.cir+.sigma..sup.2I Both
H.sub.cir.sup.H and R.sub.cir are circulant and R.sub.cir is of the
form per Equation 44.
R cir = Equation 44 [ R 0 R 1 R L - 1 0 0 R 2 * R 1 * R 1 * R 0 R L
- 1 0 R 1 * R 1 R L - 1 0 R L - 1 * R L - 1 * R 0 R 1 0 0 0 R L - 1
* 0 R L - 1 * R 1 * R 0 R L - 1 0 0 0 R 1 * R L - 1 0 0 R L - 1 * R
1 0 0 R L - 1 0 0 R L - 1 * R 0 R 1 R L - 1 0 R L - 1 0 R L - 1 * R
1 * R 0 R L - 1 0 0 R 1 * R 1 0 R L - 1 * R 0 R 1 R 1 R 2 0 0 0 R L
- 1 * R 1 * R 0 ] ##EQU00018##
[0085] Applying the properties of circulant matrices, the estimated
data is per Equation 45.
{circumflex over
(d)}=F.sub.M.sup.-1.LAMBDA..sub.M.sup.-1(R.sub.cir[:,1]).LAMBDA..sub.M(H.-
sub.cir.sup.H[:,1])F.sub.Mr Equation 45
[0086] FIG. 11 is a diagram of a circuit for estimating the data
per Equation 45. The circuit of FIG. 11 can be implemented on a
single integrated circuit (IC), such as an application specific
integrated circuit (ASIC), on multiple IC's, as discrete components
or as a combination of IC('s) and discrete components.
[0087] The estimated channel response {tilde over (H)} is processed
by an {hacek over (H)} determination device 80 to determine the
Toeplitz matrix {hacek over (H)}. A circulant approximation device
82 processes {hacek over (H)} to produce a circulant matrix
H.sub.cir. A Hermitian device 84 produces the Hermitian of
H.sub.cir, H.sub.cir.sup.H. Using H.sub.cir, H.sub.cir.sup.H and
the noise variance .sigma..sup.2, R.sub.cir is determined by a
R.sub.cir determining device 86. Using a first column of
H.sub.cir.sup.H, a diagonal matrix is determined by a
.LAMBDA..sub.M(H.sub.cir.sup.H[:,1]) determining device 88. Using a
first column of R.sub.cir, an inverse diagonal matrix is determined
by a .LAMBDA..sub.M.sup.-1(R.sub.cir[:,1]) determination device 90.
A discrete Fourier transform device 92 performs a transform on the
received vector, r. The diagonal, inverse diagonal and Fourier
transform result are multiplied together by a multiplier 96. An
inverse Fourier transform device 94 takes an inverse transform of
the result of the multiplication to produce the data vector {tilde
over (d)}.
[0088] The sliding window approach is based on an assumption that
the channel is invariant within each sliding window. The channel
impulse response near the beginning of the sliding window may be
used for each sliding step.
[0089] One preferred approach for determining the window step size
N.sub.ss and window size M is per Equation 46, although others may
be used.
N.sub.ss=2N.sub.symbol.times.SF and M=4N.sub.symbol.times.SF
Equation 46
N.sub.symbol.epsilon.{1, 2, . . . } is the number of symbols and is
a design parameter which should be selected, such that M>L.
Since M is also the parameter for DFT which may be implemented
using FFT algorithm. M may be made large enough such that the
radix-2 FFT or a prime factor algorithm (PFA) FFT can be applied.
After the data is estimated, 2N.sub.symbol.times.SF samples are
taken to process despreading starting from
N.sub.symbol.times.SF.sup.th sample. FIG. 11 is an illustration of
taking the samples for despreading.
[0090] Multiple Receive Antenna Equalization
[0091] The following is an embodiment using multiple receive
antennas, such as K receive antennas. Samples of the received
vector and estimates of the channel impulse response are taken for
each antenna independently. Following the same process as for the
single antenna embodiment, each antenna input, r.sub.k, is
approximated per Equation 47.
r.sub.k=H.sub.cir,kd+n.sub.k for k=1, . . . , K Equation 47
or in block matrix form per Equation 48
[ r 1 r 2 r K ] = [ H cir , 1 H cir , 2 H cir , K ] d + [ n 1 n 2 n
K ] Equation 48 ##EQU00019##
[0092] Equations 49 and 50 are estimates of the auto-correlation
and cross-correlation properties of the noise terms.
E{n.sub.kn.sub.k.sup.H}=.sigma..sup.2I for k=1, . . . , K Equation
49
and
E{n.sub.kn.sub.j.sup.H}=0 for k.noteq.j Equation 50
[0093] Applying MMSE algorithm, the estimated data can be expressed
as per Equation 51.
d ^ = R cir - 1 k = 1 K H cir , k H r k where R cir = k = 1 K H cir
, k H H cir , k + .sigma. 2 I Equation 51 ##EQU00020##
R.sub.cir is still a circulant matrix and the estimated data can be
determined per Equation 52.
d ^ = F M - 1 .LAMBDA. M - 1 ( R cir [ : , 1 ] ) k = 1 K .LAMBDA. M
( H cir , k H [ : , 1 ] ) F M r k Equation 52 ##EQU00021##
[0094] If the receive antennas are positioned close to each other,
the noise terms may be correlated in both time and space. As a
result, some degradation in the performance may result.
[0095] Multiple Chip Rate Sampling (Oversampling) Equalization
[0096] The following describes embodiments using a sliding window
based equalization approach with multiple chip rate sampling.
Multiple chip rate sampling is when the channel is sampled at a
sampling rate which is an integer multiple of the chip rate, such
as two times, three times, etc. Although the following concentrates
on two times per chip sampling, these approaches can be applied to
other multiples.
[0097] Using a sliding window of width of N chips and two time chip
rate sampling, our received vector is r=[r.sub.0, r.sub.1, . . . ,
r.sub.2N-1].sup.T. This vector may be rearranged and separated into
an even received vector r.sub.e=[r.sub.0, r.sub.2, . . . ,
r.sub.2N-2].sup.T and an odd received vector r.sub.o=[r.sub.1,
r.sub.3, . . . , r.sub.2N-1].sup.T, with r=[r.sub.e,
r.sub.o].sup.T. Without loss of generality, the data transmission
model is per Equation 53.
[ r e r o ] = [ H e H o ] d + [ n e n o ] Equation 53
##EQU00022##
Equation 53 separates the effective 2-sample-per-chip discrete-time
channel into two chip-rate discrete-time channels.
[0098] The matrices H.sub.e and H.sub.o in Equation 53 are,
correspondingly, the even and odd channel response matrices. These
matrices are constructed from the even and odd channel response
vectors h.sub.e and h.sub.o, which are obtained by sampling the
channel response at 2 samples per chip and separating it into the
even and odd channel response vectors.
[0099] The channel noise is modeled as white with a variance
.sigma..sup.2, as per Equation 54.
E[n.sub.en.sub.e.sup.H]=E[n.sub.on.sub.o.sup.H]=.sigma..sup.2I
Equation 54
[0100] If the channel is an additive white Gaussian noise (AWGN)
channel and the received data is provided directly from the sampled
channel, then Equation 55 results.
E[n.sub.en.sub.o.sup.H]=0 Equation 55
[0101] As a result, the problem is mathematically similar to the
case of the chip-rate equalizer for 2 receive antennas with
uncorrelated noise, as previously described. However, the received
antenna signals in many implementations are processed by a
receive-side root-raised cosine (RRC) filter before being provided
to the digital receiver logic for further processing. Following
such processing, the received noise vector is no longer white, but
has a raised-cosine (RC) autocorrelation function. RC is the
frequency-domain square of a RRC response. Since the RC pulse is a
Nyquist pulse, Equation 54 holds, however Equation 55 does not. The
(i,j).sup.th element of the matrix
.LAMBDA. cross = def 1 .sigma. 2 E [ n e n o H ] ##EQU00023##
is per Equation 56.
[0102] 1 .sigma. 2 E [ n e n o H ] ( i , j ) = x RC ( i - j + 0.5 )
Equation 56 ##EQU00024##
x.sub.RC is the unity-symbol-time normalized RC pulse shape.
[0103] Properties of .LAMBDA..sub.cross are it is real, symmetric
and Toeplitz; it is not banded and has no zero entries and its
entries do get smaller and tend to 0 as they get farther and
farther away from the main diagonal.
[0104] .SIGMA..sub.n represent the cross-correlation matrix of the
total noise vector and is per Equation 57.
.SIGMA. n = .sigma. 2 [ I .SIGMA. cross .SIGMA. cross I ] Equation
57 ##EQU00025##
[0105] Exact Solution
[0106] The exact solution to the problem of linear minimum
mean-square estimation of d from the observation of r is per
Equation 58.
{circumflex over
(d)}.sub.MMSE=(H.sup.H.SIGMA..sub.n.sup.-1H+I).sup.-1H.sup.H.SIGMA..sub.n-
.sup.-1r Equation 58
where y=H.sup.H.SIGMA..sub.n.sup.-1r is the whitening matched
filtering (WMF)
[0107] {circumflex over
(d)}.sub.MMSE=(H.sup.H.SIGMA..sub.n.sup.-1H+I).sup.-1y is the
linear MMSE equalization
[0108] Neither H.sup.H.SIGMA..sub.n.sup.-1 nor
H.sup.H.SIGMA..sub.n.sup.-1H+I are Toeplitz and neither can be made
Toeplitz through elemental unitary operations (e.g. row/column
re-arrangements), due to the structure of .SIGMA..sub.n.
Accordingly, DFT-based methods based on circulant approximations of
Toeplitz matrices cannot be applied here and an exact solution is
highly complex.
[0109] Two embodiments for deriving an efficient algorithm for
solving this problem are described. The first embodiment uses a
simple approximation and the second embodiment uses an almost-exact
solution.
[0110] Simple Approximation
[0111] The simple approximation ignores the correlation between
n.sub.e and n.sub.o, .SIGMA..sub.cross=0. As a result, the same
approach as multiple chip-rate receive antennas is used.
[0112] The complexity of this simple approximation approach is as
follows. N-chip data blocks are considered. For rough
approximation, an N-point DFT complexity, given by N log N
operations per second (ops), is assumed. Additionally, N-point
vector multiplications are assumed to take N ops and vector
additions are ignored.
[0113] The complexity of the DFT-based approach can be roughly
partitioned into 2 components: the processing which has to be
performed on every received data set and the processing which is
performed when the channel estimate is updated, which is typically
done one to two orders of magnitude less frequently then the former
operation.
[0114] For processing performed on each received data set, the
following operations are performed: 2 N-point DFTs to transform the
received vector into the frequency domain; 2 N-point vector
multiplications (multiply each received vector by the appropriate
"state" vector"); and one more DFT to transform the result back
into time domain. Thus, the approximate complexity is per Equation
59.
C.sub.1,r=3N log N+2N Equation 59
[0115] For processing performed when the channel response is
updated, the following operations are performed: 2 DFT operations,
6 N-point vector multiplies and a vector division, which need to be
taken 10 times the operations of a vector multiply. Thus, the
complexity of this step is roughly given per Equation 60.
C.sub.1,r=2N log N+16N Equation 60
[0116] Almost Exact Solution
[0117] For the almost-exact solution which uses a block-Toeplitz
solution, the vector and matrices are rearranged in their natural
order, i.e., the natural order being an order that elements of the
received vector and channel response matrix were actually received,
such that the vector r is given by r=[r.sub.0, r.sub.1, . . . ,
r.sub.2N-1].sup.T. Equation 61 is the natural order model.
r=H.sub.bTd+n
where H.sub.bT is defined as
H bT = [ h e , 1 h o , 1 h o , N ] = [ G 1 G 2 G N ] Equation 61
##EQU00026##
h.sub.e,i is the i.sup.th row of H.sub.e and h.sub.o,i is the
i.sup.th row of H.sub.o. G.sub.i is a 2.times.N matrix whose
1.sup.st row is h.sub.e,i and whose 2.sup.nd row is h.sub.o,i.
Using G.sub.i [x,y] as the row-x, column-y element of H.sub.bT is
block-Toeplitz as illustrated in Equation 62.
G.sub.i[x,y]=G.sub.j[x,y+(i-j)] Equation 62
provided that 1.ltoreq.y+(i-j).ltoreq.N
[0118] The block-Toeplitz structure of H.sub.bT follows immediately
from the Toeplitz structure of H.sub.e and H.sub.o and the
row-rearrangement. From the Toeplitz structure of I and
.SIGMA..sub.cross, the autocorrelation matrix of the noise in the
re-defined problem is also block Toeplitz. Because this matrix is
also symmetric, it can be rewritten per Equation 63.
.SIGMA..sub.bT=[.SIGMA..sub.i,j].sub.1.ltoreq.i,j.ltoreq.N Equation
63
where .SIGMA..sub.i,j are 2.times.2 matrices with the property that
.SIGMA..sub.i,j=.SIGMA..sub.|i-j|
[0119] Subsequently, block-circulant approximations to the
block-Toeplitz matrices are produced. Since the H.sub.bT matrix is
also banded, the block circulant approximation of H.sub.bT is then
obtained directly. However, .SIGMA..sub.bT is not banded and
therefore it is not possible to produce a block-circulant
approximation directly from it. Since the elements of
.LAMBDA..sub.bT tend to 0 as they get farther away from the main
diagonal, a banded approximation to .SIGMA..sub.bT is per Equation
64.
.SIGMA..sub.bT.apprxeq.{tilde over (.SIGMA.)}.sub.bT=[{tilde over
(.SIGMA.)}.sub.i,j].sub.1.ltoreq.i,j.ltoreq.N Equation 64
where {tilde over (.SIGMA.)}.sub.i,j are 2.times.2 matrices with
the property that
[0120] {tilde over (.SIGMA.)}.sub.i,j=.SIGMA..sub.|i-j| if
|i-j|.ltoreq.B.sub.n and {tilde over (.SIGMA.)}.sub.i,j=0
otherwise
The noise-covariance-bandwidth, B.sub.n, is a design parameters
that is selected. Due to the decay properties of the RC pulse
shape, it is likely to be only several chip. Now {tilde over
(.SIGMA.)}.sub.bT is banded block-Toeplitz and a circulant
approximation to it is produced.
[0121] The circulant approximations of H.sub.bT and {tilde over
(.SIGMA.)}.sub.bT are H.sub.bC and .SIGMA..sub.bC, respectively.
W.sub.n denotes the n-point DFT matrix, that is if x is an
n-vector, then x.sub.f=W.sub.nx is the DFT of x. A block-circulant
matrix C is of the form of Equation 65.
C = [ C 1 C 2 C M C 2 C 3 C 1 C M C 1 C M - 1 ] ##EQU00027##
where C.sub.i is an N.times.N matrix and therefore C is an
MN.times.MN matrix
[0122] C can also be written as Equation 66.
C=W.sub.M.times.N.sup.-1.LAMBDA..sub.M.times.N(C)W.sub.M.times.N
Equation 66
where W.sub.M.times.N is the block-N-DFT matrix defined as
W.sub.M.times.N=W.sub.M{circle around (x)}I.sub.N
.LAMBDA..sub.M.times.N(C) is a block diagonal matrix that depends
on C and is given by Equation 67.
.LAMBDA. M .times. N ( C ) = [ .LAMBDA. 1 ( C ) .LAMBDA. 2 ( C )
.LAMBDA. M ( C ) ] Equation 67 ##EQU00028##
.LAMBDA..sub.i(C) is an N.times.N matrix. To completely specify
.LAMBDA..sub.i(C), .lamda..sub.i,(k,l) denotes the (k,l).sup.th
element of .LAMBDA..sub.i(C) and is defined as
.lamda. ( k , l ) = def [ .lamda. 1 , ( k , l ) , .lamda. 2 , ( k ,
l ) , , .lamda. M , ( k , l ) ] T c i , ( k , l ) ##EQU00029##
denotes the (k,l).sup.th element of C and is defined as
c ( k , l ) = def [ c 1 , ( k , l ) , c 2 , ( k , l ) , , c M , ( k
, l ) ] T .lamda. ( k , l ) ##EQU00030##
is the M-point DFT of c.sub.(k,l) and is per Equation 68.
.lamda..sub.(k,l)=W.sub.M.sup.c.sub.(k,l) Equation 68
[0123] Equations 66-68 specify the block-DFT representation of
square block circulant matrices. N.sup.2 DFTs are required to
compute .LAMBDA..sub.M.times.N(C).
[0124] The MMSE estimator is rewritten per Equation 69.
{circumflex over
(d)}.sub.MMSE=H.sup.H(.SIGMA..sub.n+HH.sup.H).sup.-1r Equation
69
[0125] The MMSE estimator form as per Equation 68 has several
advantages. It requires only a single inverse matrix computation
and thus in the DFT domain only a single vector division. This
provides a potentially significant savings as divisions are highly
complex.
[0126] The almost-exact solution has two steps in the most
preferred embodiment, although other approaches may be used. Every
time a new channel estimate is obtained, the channel filter is
updated, (H.sup.H(.SIGMA..sub.n+HH.sup.H).sup.-1 is determined).
For every data block, this filter is applied to the received data
block. This partition is utilized because the channel is updated
very infrequently compared to the received data block processing
and therefore significant complexity reduction can achieved by
separating the overall process into these two steps.
[0127] The DFT of .SIGMA..sub.n is the DFT of the pulse shaping
filter multiplied by the noise variance .sigma..sup.2. Since the
pulse shaping filter is typically a fixed feature of the system,
its DFT can be precomputed and stored in memory and thus only the
value .sigma..sup.2 is updated. Since the pulse-shaping filter is
likely to be close to the "ideal" (IIR) pulse shape, the DFT of the
ideal pulse shape can be used for .SIGMA..sub.n, reducing the
complexity and is also far away from the carrier.
[0128] To channel update step, the following is performed: [0129]
1. The "block-DFT" of H needs to be computed. Since the block is of
width 2, it requires 2 DFTs. The result is a N.times.2 matrix whose
rows are the DFTs of h.sub.e and h.sub.o. [0130] 2. The "block-DFT"
of HH.sup.H is computed by finding element-by-element
autocorrelations and the crosscorrelation of h.sub.e and h.sub.o.
This required 6N complex multiplies and 2N complex adds: the
products of N 2.times.2 matrices are computed with there own
Hermitian transposes. [0131] 3. The block-DFT of .SIGMA..sub.n is
added, which requires 3N multiplies (scale the stored block-DFT of
the RRC filter by .sigma..sup.2) and 3N adds to add the block-DFT
of the two matrices. [0132] 4. An inverse of .SIGMA..sub.n+HH.sup.H
is taken in the block-DFT domain. To do this an inverse of each of
the N 2.times.2 matrices is taken in the block-DFT domain. To
estimate the total number of operations, consider a Hermitian
matrix
[0132] M = [ a b b * a ] . ##EQU00031##
The inverse of this matrix is given per Equation 70.
M - 1 = 1 a 2 - b 2 [ a - b - b * a ] Equation 70 ##EQU00032##
[0133] Accordingly, the complexity of computing each inverse
involves 3 real multiplications and 1 real subtraction (roughly 1
complex multiply) and 1 real division. [0134] 5. The result are
block-multiplied by the block-DFT of H.sup.H, which, takes a total
of 8N multiplies+4N adds (since H.sup.H is not Hermitian).
[0135] To summarize, the following computation are required: 2
N-point DFTs; 18N complex multiplies (17 N-point vector
multiplies+N stand-alone multiplies); 11N complex adds (11 N-point
vector adds); and 1N real divisions.
[0136] The complexity of processing a data block r of 2N values (N
chips long) involves: 2 N-point DFTs; one product of the N-point
block-DFTs (filter and data), which required 8N complex multiplies
and 4N complex adds; and 1 N-point inverse DFTs.
[0137] To summarize, the following is required: 3 N-point DFTs; 8N
complex multiplies (8 N-point vector multiplies); and 4N complex
adds (4 N-point vector adds).
[0138] Multiple Chip Rate Sampling and Multiple Receive Antenna
Equalization
[0139] The following are embodiments using multiple chip rate
sampling and multiple receive antennas. For L receive antennas, 2L
channel matrices--one "even" and one "odd" matrix for each antenna
result. The channel matrices for l.sup.th antenna are denoted as
H.sub.l,e and H.sub.l,o and h.sub.l,e,n and h.sub.l,o,n denote the
n.sup.th row of such matrix. Each channel matrix is Toeplitz and
with the appropriate re-arrangement of rows the joint channel
matrix is a block-Toeplitz matrix, per Equation 71.
H bT = [ h 1 , e , 1 h 1 , o , 1 h L , o , N ] = [ G 1 G 2 G N ]
Equation 71 ##EQU00033##
The matrices G.sub.i are the Toeplitz blocks of H.sub.bT. Each
G.sub.i is a 2L.times.N matrix.
[0140] Estimating the vector d from the received observations r can
be modeled per Equation 72.
r=H.sub.bTd+n Equation 72
[0141] The MMSE estimation formulation is per Equation 73.
{circumflex over
(d)}.sub.MMSE=H.sub.bT.sup.H(.SIGMA..sub.n+H.sub.bTH.sub.bT.sup.H).sup.-1-
r Equation 73
.SIGMA..sub.n is the covariance of the noise vector n. The form
that the solution of Equation 73 depends on the assumptions that
are made for .SIGMA..sub.n. The introduction of the multiple
receive antenna introduces an additional spatial dimension.
Although the interplay of temporal and spatial correlations can be
extremely complex, it can be assumed that the spatial correlation
properties of the noise do not interplay with the temporal
correlation properties, except as a direct product of the two, as
per Equation 74.
.SIGMA..sub.n=.SIGMA..sub.n,1ant.SIGMA..sub.sp Equation 74
E.sub.n,1ant is the noise covariance matrix of the noise observed
at a single antenna as per Equation 57. .SIGMA..sub.n,1ant is of
dimension 2N.times.2N. .SIGMA..sub.sp is the normalized synchronous
spatial covariance matrix, i.e. it is the covariance matrix between
the L noise samples observed at the L antennas at the same time
normalized to have 1's on the main diagonal. denotes the Kroenecker
product.
[0142] .SIGMA..sub.n is a 2LN.times.2LN Hermitian positive
semi-definite matrix, which is block-Toeplitz with 2L.times.2L
blocks. To estimate the data, four preferred embodiments are
described: an exact solution; a simplification by assuming that the
L receive antenna have uncorrelated noise; a simplification by
ignoring the temporal correlation of the noise in the odd and even
streams from the same antenna; and a simplification by assuming
that all 2L chip-rate noise streams are uncorrelated.
[0143] The complexity of DFT-based processing using the circulant
approximation may be partitioned into two components: the
processing of channel estimation which need not be done for every
new data block and the processing of data itself which is performed
for every data block. In all four embodiments, the complexity of
processing data involves: 2L forward N-point DFTs; 2LN complex
multiplies; and 1 inverse N-point DFT. The complexity of processing
the channel estimate varies for each embodiment.
[0144] In the case of the exact MMSE solution, the complexity of
computing the "MMSE filter" from the channel estimate is as
follows: 2L N-point DFT's; N 2L.times.2L matrix products+N
2L.times.2L matrix additions to compute
(.SIGMA..sub.n+H.sub.bTH.sub.bT.sup.H); N 2L.times.2L matrix
inverses to compute the inverse of
(.SIGMA..sub.n+H.sub.bTH.sub.bT.sup.H); and N 2L.times.2L matrix
products to produce the actual filter.
[0145] A major contributor to the overall complexity of this
process is the matrix inverse step in which an inverse of
2L.times.2L matrices has to be taken. It is precisely this
complexity that can be reduced by various assumptions on the
uncorrelated nature of the noise, as follows: [0146] 1. If it is
assumed that the noise is uncorrelated both temporally (odd/even
samples) and spatially (across antennas), then .SIGMA..sub.n
reduces to a diagonal matrix and the problem is identical to
single-sample-per-chip sampling with 2L antennas with spatially
uncorrelated noise. As a result, the operation of matrix inverse
simply reduces to a division since all the matrices involved are
Toeplitz. [0147] 2. If it is assumed that the noise is spatially
uncorrelated, then the matrix inverses involved are those of
2.times.2 matrices. [0148] 3. If it is assumed that a temporal
uncorrelation of odd/even streams but a spatial noise correlation
is retained, the matrix inverses involved are L.times.L.
* * * * *