Finite-length equalization over multi-input multi-output channels

Abstract
A MIMO Decision Feedback Equalizer improves operation of a receiver by canceling the spatio-temporal interference effects caused by the MIMO channel memory with a set of FIR filters in both the feed-forward and the feedback MIMO filters. The coefficients of these FIR filters can be fashioned to provide a variety of controls by the designer.
Description
BACKGROUND OF THE INVENTION

In multi-user communication over linear, dispersive, and noisy channels, the received signal is composed of the sum of several transmitted signals corrupted by inter-symbol interference, inter-user interference, and noise. Examples include TDMA (time division multiple access) digital cellular systems with multiple transmit/receive antennas, wide-band asynchronous CDMA (code division multiple access) systems, where inter-user interference is also known as multiple access interference, wide-band transmission over digital subscriber lines (DSL) where inter-user interference takes the form of near-end and far-end crosstalk between adjacent twisted pairs, and in high-density digital magnetic recording where inter-user interference is due to interference from adjacent tracks.


Multi-user detection techniques for multi-input multi-output (MIMO) systems have been shown to offer significant performance advantages over single user detection techniques that treat inter-user interference as additive colored noise and lumps its effects with thermal noise. Recently, it has been shown that the presence of inter-symbol interference in these MIMO systems could enhance overall system capacity, provided that effective multi-user detection techniques are employed.


The optimum maximum likelihood sequence estimation (MLSE) receiver for MIMO channels was developed by S. Verdu, “Minimum Probability of Error for Asynchronous Gaussian Multiple Access Channels,” IEEE Transactions on Information TheoryJanuary 1986, pp. 85-96. However, its exponential complexity increases with the number of users, and channel memory makes its implementation costly for multi-user detection on severe-inter-symbol interference channels.


Two alternative transceiver structures have been recently proposed for MIMO dispersive channels as well. These structures, which are widely used in practice for single-input single-output dispersive channels, are the Discrete Multitone and minimum-mean-square-error decision feedback equalizer (MMSE-DFE). In the latter category, this includes A. Duel-Hallen “Equalizers for Multiple Input Multiple Output Channels and PAN Systems with Cyclostationary Input Sequences,” IEEE Journal on Selected Areas on Communications, April 1992, pp. 630-639; A. Duel-Hallen “A Family of Multiuser Decision-Feedback Detectors for Asynchronous Code Division Multiple Access Channels,” IEEE Transactions on Communications, February/March/April 1995, pp. 421-434; J. Yang et an “Joint Transmitter and Receiver Optimization for Multiple Input Multiple Output Systems with Decision Feedback,” IEEE Transactions on Information Theory, September 1994, pp.1334-1347; and J. Yang et al “On Joint Transmitter and Receiver Optimization for Multiple Input Multiple Output (MIMO) Transmission Systems,” IEEE Transactions on Communications, December 1994, pp. 3221-3231. Alas, the prior art does not offer a practical MIMO MMSE-DFE receiver with feedforward and feedback FIR (finite impulse response) filters whose coefficients can be computed in a single computation (i.e., non-iteratively) in real-time under various MIMO detection scenarios.


SUMMARY

An advance in the art is realized with receiver having a multiple number of receiving antennas that feed a MIMO feedforward filter that is constructed from FIR filters with coefficients that are computed based on environment parameters that are designer-specified. Signals that are derived from a multiple-output feedback filter structure are subtracted from the signals from the multiple outputs of the feedforward filter structure, and the resulting difference signals are applied to a decision circuit. Given a transmission channel that is modeled as a set of FIR filters with memory v, a matrix W is computed for a feedforward filter that results in an effective transmission channel B with memory Nb, where Nb<v, where B is optimized so that Bopt=argminB trace(Ree) subject to selected constraints; Ree being the error autocorrelation function. The feedback filter is modeled by [Ini 0ni×niNb]−B*, where ni is the number of outputs in the feedforward filter, as well as the number of outputs in the feedback filter.


The coefficients of feedforward and the feedback filters, which are sensitive to a variety of constraints that can be specified by the designer, are computed by a processor in a non-iterative manner, only as often as it is expected for the channel characteristics to change.





BRIEF DESCRIPTION OF THE DRAWING


FIG. 1 shows the major elements of a receiver in accord with the principles disclosed herein;



FIG. 2 presents the structure of elements 23 and 26, where element 26 differs in size from element 23 in that element 23 has no number of inputs and no×ni filters, whereas element 26 has ni number of inputs and ni×ni filters;



FIG. 3 is a flowchart describing one method carried out by processor 22; and



FIG. 4 is a flowchart describing another method carried out by processor 22.





DETAILED DESCRIPTION


FIG. 1 depicts the general case of an arrangement with ni transmitting antennas 11-1, 11-2, . . . 11-ni, that output signals (e.g., space-time encoded signals) to a transmission channel, and no receiving antennas 21-1, 21-2, . . . 21-no. Each transmitting antenna p outputs a complex-valued signal xp, the signals of the ni antennas pass through a noisy transmission channel, and the no receiving antennas capture the signals that passed through the transmission channel. The received signals are oversampled by a factor of I in element 20 and applied to feedforward W filters 23. Thus, the sampling clock at the output of element 20 is of period Ts=TΛ, where T is the inter-symbol period at the transmitting antennas. The transmission channel's characterization is also referenced to Ts.


Filter bank 23 delivers an ni plurality of output signals (ni can equal nq for example) from which feedback signals are subtracted in circuit 24 and applied to decision circuits 25 (comprising conventional slicers). The outputs of decision circuits 25 are applied to feedback filters 26, which develop the feedback signals. Processor 22 develops the filter coefficients for the filters within elements 23 and 26 and installs the coefficients in the filters within these elements, as disclosed in detail below.


In the illustrative embodiment disclosed herein, the received signal is expressed by











y
k

(
j
)


=





i
=
1


n
i







m
=
0


v

(

i
,
j

)






h
m

(

i
,
j

)




x

k
-
m


(
i
)





+

n
k

(
j
)




,




(
1
)







where yk(j) is the signal at time k at the jth receiving antenna, hm(i,j) is the mth coefficient (tap) in the channel impulse response between the ith transmitting antenna and the jth receiving antenna, and n(j) is the noise vector at the jth receiving antenna. The memory of this path (i.e., the largest value of m for which hm(i,j) is not zero) is denoted by v(i,j).


It may be noted that it not unreasonable to assume, that the memory of the transmission channel is the same for all ij links (ni×no such links), in which case v(i,j)=v. Alternatively, the v(i,j) limit in equation (1) can be set to that v which corresponds to maximum length of all of the ni×no channel input responses, i.e., v=maxi,j v(i,j). It may also be noted that all of the variables in equation (1) are actually I×1 column vectors, corresponding to the I time samples per symbol in the oversampled FIG. 1 arrangement.


By grouping the received samples from all no antennas at symbol time k into an noI×1 column vector yk, one can relate yk to the corresponding ni×1 (column) vector of input samples as follows











y
k

=





m
=
0

v




H
m



x

k
-
m




+

n
k



,




(
2
)







where Hm is the MIMO channel coefficients matrix of size noI×ni, xk−m is a size ni×1 input (column) vector, and nk is a size noI×1 vector.


Over a block of Nf symbol periods, equation (2) can be expressed in matrix notation as follows:










[








y

k
+

N
f

-
1







y

k
+

N
f

-
1












y
k








]

=



[








H
0




H
1







H
v



0





0




0



H
0




H
1







H
v



0






























0





0



H
0




H
1







H
v








]

[








x

k
+

N
f

-
1







X

k
+

N
f

-
2












x

k
-
v









]

+

[








n

k
+

N
f

-
1







n

k
+

N
f

-
2












n
k








]






(
3
)







or, more compactly,






y
k+N

f

−tk
=Hx
k+N

t

−tk−v
+n
k+N

t

−tk.   (4)


The subscripts in equation (4) indicate a range. For example k+Nf−1:k means the range from k+Nf−1 to k, inclusively.


It is useful to define the following correlation matrices:






R
xy
≡E[x
k+N

f

−tk−v
y
k+N

f

−tk]*=RxxH*   (5)






R
yy
≡E[y
k+N

f

−tk
y
k+N

f

−tk]*=HRxxH*+Rnn,   (6)






R
xx
≡E[x
k+N

f

−tk−v
x
k+N

f

−tk−v]
* and   (7)






R
nn
≡E[n
k+N

f

−tk
n
k+N

f

−tk]*,   (8)


and it is assumed that these correlation matrices do not change significantly in time or, at least, do not change significantly over a time interval that corresponds to a TDMA burst (assumed to be much shorter than the channel coherence time), which is much longer than the length of the FIR filters in element 23 (in symbol periods denoted by Nf). Accordingly, a re-computation within processor 22 of the above matrices, and the other parameters disclosed herein, leading to the computation of the various filter coefficients, need not take place more often than once every TDMA burst. Once H, Rxx and Rnn are ascertained (through the conventional use of training sequences), Rxy and Ryy are computed by RxxH* and HRxxH*+Rnn, respectively.


In accordance with the principles disclosed herein, element 23 comprises a collection of FIR filters that are interconnected as shown in FIG. 2, and the impulse s response coefficients of element 23 can be expressed by W*≡[W0*W1* . . . WNt−1*], each having Nf matrix taps Wi of size (ln0×ni). That is, Wi has the form:










W
i

=

[




w
i

(

1
,
1

)








w

(

1
,

n
i


)


















w
i

(


n
o

,
1

)








w
i

(


n
o

,

n
1


)





]





(
9
)







where each entry in Wj(p,q) is an I×1 vector corresponding to the I output samples per symbol. Stated in other words, the matrix W0 specifies the 0th tap of the set of filters within element 23, the matrix W1 specifies the 1st tap of the set of filters within element 23, etc.


Also in accordance with the principles disclosed herein, element 26 comprises a collection of FIR filters that also are interconnected as shown in FIG. 2, and the impulse response coefficients of element 26 is chosen to be equal to





[Inj0ni×niNb]−B*≡[(Ini−B0*)B1*BNb*],   (10)


where B* is expressed by B*≡[B0*B1*BNb*] with (Nb+1) matrix taps Bi, each of size ni×ni. That is, Bi has the form:










B
i

=


[




b
i

(

1
,
1

)








b

(

1
,

n
i


)


















b
i

(


n
i

,
1

)








b
i

(


n
i

,

n
i


)





]

.





(
11
)







Stated in other words, B0 specifies the 0th tap of the set of filters within element 26, the matrix B1 specifies the 1st tap of the set of filters within element 26, etc.


Defining {tilde over (B)}*≡[0ni×niΔb B*], where {tilde over (B)}* is a matrix of size ni×ni(Nf+v), the value of Nb is related to the decision delay by the equality (Δ+Nb+1)=(Nf+v).


The error vector at time k is given by






E
k
={tilde over (B)}
*
x
k+N

f

−tk−v
−W
*
y
k+N

f

−tk.   (12)


Therefore, the ni×ni error auto-correlation matrix is













R
ee





E


[


E
k
*



E
k


]








=






B
~

*



R
xx



B
~


-



B
~

*



R
xy


W

-


W
*



R
yx



B
~


+


W
*



R
yy


W








=







B
~

*



(


R
xx

-


R
xy



R
yy

-
1




R
yx



)




B
~


+











(


W
*

-



B
~

*



R
xy



R
yy

-
1




)




R
yy



(


W
*

-



B
~

*



R
xy



R
yy

-
1




)









=






B
~

*



R




B
~


+


G
*



R
yy


G









(
13
)







Using the Orthogonality Principle, which states that E[Ekyk+Nf−tk*]=0, it can be shown that the optimum matrix feedforward and feedback filters are related by













W
opt
*

=





B
~

opt
*



R
xy



R
yy

-
1









=





B
~

opt
*



R
xx





H
*



(



HR
xx



H
*


+

R
nn


)



-
1










=







B
~

opt
*



(


R
xx

-
1


+


H
*



R
nn

-
1



H


)



-
1




H
*



R
nn

-
1




,







(
14
)







and the ni×ni auto-correlation matrix Ree is













R
ee





E


[


E
k



E
k
*


]








=






B
~

*



(


R
xx

-


R
xy



R
yy

-
1




R
yx



)




B
~








=





B
~

*



R




B
~








=






B
~

*



(


R
xx

-


R
xx





H
*



(



HR
xx



H
*


+

R
nn


)



-
1




HR
xx



)




B
~








=







B
~

*



(


R
xx

-
1


+


H
*



R
nn

-
1



H


)



-
1





B
~

.









(
15
)







Ree can also be expressed as Ree={tilde over (B)}*R−1{tilde over (B)}, where R=Rxx−1+H*Rnn−1H.


It remains to optimize values for the B matrix and the W matrix such that, in response to specified conditions, the trace (or determinant) of Ree is minimized.


The following discloses three approaches to such optimization.


Scenario 1

In this scenario, it is chosen to process only previous receiver decisions. These decisions relate to different users that concurrently have transmitted information that has been captured by antennas 21-1-21-no and detected in circuit 25. That means that feedback element 26 uses only delayed information and that the 0th order coefficients of the filters within element 26 have the value 0. Therefore, in light of the definition expressed in equation (10), this scenario imposes the constraint of B0=Ini.


To determine the optimum matrix feedback filter coefficients under this constraint, the following optimization problem needs to be solved:





min{tilde over (B)}Ree=min{tilde over (B)}{tilde over (B)}*R−1{tilde over (B)}, subject to {tilde over (B)}*φ=C*,   (16)


where










Φ



[




I

n
i




0





0




0



I

n
i















0






I

n
i






0








0



]






and






C
*



=

[


0


n
i

×

n
i


Δ








I

n
i



]





(
17
)







It can be shown that the solution to the above is given by






{tilde over (B)}
opt
=Rφ(φ*Rφ)−1C,   (18)


resulting in the error signal






R
ee,min
=C
**Rφ)−1C.   (19)


If we define the partitioning










R


[




R
11




R
12






R
12
*




R
22




]


,




(
20
)







where R11 is of size ni(Δ+1)×ni(Δ+1), then












B
~

opt

=



[




R
11






R
12
*




]



R
11

-
1



C

=


[




I


n
i



(

Δ
+
1

)









R
12
*



R
11

-
1






]


C








and




(
21
)








R

ee
,
min


=


C
*



R
11

-
1



C


,




(
22
)







where the delay parameter Δ is adjusted to minimize the trace (or determinant) of Ree,min. Once {tilde over (B)}opt is known, equation (14) is applied to develop Wopt*.



FIG. 3 presents a flowchart for carrying out the method of determining the filter coefficients that processor 22 computes pursuant to scenario 1. Step 100 develops an estimate of the MIMO channel between the input points and the output point of the actual transmission channel. This is accomplished in a conventional manner through the use of training sequences. The estimate of the MIMO channel can be chosen to be limited to a given memory length, v, or can be allowed to include as much memory as necessary to reach a selected estimate error level. That, in turn, depends on the environment and is basically equal to the delay spread divided by Ts.


Following step 100, step 110 determines the matrices, Rnn, Rxx, Rxy, and Ryy. The matrix Rnn is computed by first computing n=y−Hx and then computing the expected value E[n*n]—see equation (8) above. The matrix Rxx is computed from the known training sequences—see equation (7) above—(or is pre-computed and installed in processor 22). In may be noted that for uncorrelated inputs, Rxx=I. The matrices Rxy and Ryy are computed from the known training sequences and the received signal or directly from H and Rnn—see equations (5) and (6) above.


Following step 110, step 120 computes R=Rxx−1−H*Rnn−1H, and the partition components, R11, R12, and R22, as per equation (20). Following step 120, step 130 computes Ree,min from equation (22) and adjusts Δ to minimize the trace (or determinant) of Ree,min, computes {tilde over (B)}opt from equation (21), and from {tilde over (B)}opt determines the coefficients of the ni×ni filters of element 26, pursuant to equation (10). Step 140 computes Wopt* from equation (14), and finally, step 150 installs the coefficients developed in step 130 into the filters of element 26 and the coefficients developed in step 140 into the filters of element 23.


A second approach for computing {tilde over (B)}opt utilizes the block Cholesky factorization (which is a technique that is well known in the art):












R





R
xx

-
1


+


H
*



R
nn

-
1



H








=





[




L
1



0





L
2




L
3




]



[




D
1



0




0



D
2




]




[




L
1
*




L
2
*





0



L
3
*




]













L





D






L
*



,







(
22
)







where L1 is of size ni(Δ+1)×ni(Δ+1). Using the result in equations (18) and (19) yields














B
~

opt

=





[




I


n
i



(

Δ
+
1

)









L
2



L
1

-
1






]


C

=

[




I

n
i








L
2



L
1

-
1



C




]








=



L


[


e


n
i



Δ
opt















e



n
i



(


Δ
opt

+
1

)


-
1



]









(
23
)





and














R

ee
,
min


=




C
*



D
1

-
1



C








=



diag






(


d


n
t



Δ
opt



-
1


,





,

d



n
i



(


Δ
opt

+
1

)


-
1


-
1



)



,







(
24
)







where the index Δopt is chosen (as before) to minimize the trace and determinant of Ree,min. Using equation (23), equation (14) can be expressed as follows













W
opt
*

=





B
~

opt
*



R
xx





H
*



(



HR
xx



H
*


+

R
nn


)



-
1









=







B
~

opt
*



(


R
xx

-
1


+


H
*



R
nn

-
1



H


)



-
1




H
*



R
nn

-
1









=




[





d


n
i



Δ
opt



-
1




e


n
i



Δ
opt


*













d



n
i



(


Δ
opt

+
1

)


-
1


-
1




e



n
i



(


Δ
opt

+
1

)


-
1

*





]



L

-
1




H
*



R
nn

-
1










(
25
)







Yet a third approach for computing {tilde over (B)}opt and Ree,min defines {tilde over (B)}*=[C* B*] and partitions R into as







[




R
11





R
12







R
12


*





R
22





]

,




where R11 is of size ni(Δ+1)×ni(Δ+1), to yield













R
ee

=





B
~

*



R




B
~














[


C
*








B
_

*


]



[




R
11





R
12







R
12


*





R
22





]




[



C




B



]














[


I

n
i









B
_

*


]



[





R
_

11






R
_

12








R
_

12


*





R
22





]




[




I

n
i







B
_




]








=




(



R
_

11


-





R
_

12




(

R
22


)



-
1





R
_

12


*




)

+












(



B
_

*

+




R
_

12




(

R
22


)



-
1



)





R
22




(



B
_

*

+




R
_

12




(

R
22


)



-
1



)


*


,








(
26
)







where R11≡C*R11C and R12=C*R12. Therefore,






B
opt
=− R
12
(R22)−1






W
opt
*=[0ni×niΔIniR12(R22)−1](RxxH*(HRxxH*+Rnn)−1   (27)






R
ee,min
= R
11

R
12
(R22)−1R12⊥*   (28)


Scenario 2

In this scenario it is assumed that users whose signals are received by the FIG. 1 receiver are ordered so that lower-indexed users are detected first, and current decisions from lower-indexed users are used by higher-indexed users in making their decisions, i.e., B0 is a lower-triangular matrix. The general results of equations (21) and (22) can be applied by setting C*=[0ni×niΔ B0*] where B0 is an ni×ni monic lower-triangular matrix whose entries are optimized to minimize trace(Ree,min). To this end, a partitioning can be defined where











R
11

-
1




[




R
1




R
2






R
2
*




R
3




]


,




(
29
)








11 being the term corresponding to R11 of equation (20), with R1 being of size niΔ×niΔ, and R3 being of size ni×ni. Equation (22) simplifies to






R
ee,min
=B
0
*
R
3
B
0   (30)


It can be shown that, the optimum monic lower-triangular B0 that minimizes trace(Ree,min) is given by the nomic lower-triangular Cholesky factor of R3−1, i.e.,






R
3
−1
=L
3
D
3
L
3
*,   (31)


which yields





B0opt=L3,   (32)


and






R
ee,min
=D
3
−1.   (33)


The result is that









B
~

opt

=


[




I


n
i



(

Δ
+
1

)









R
12
*



R
11

-
1






]


C


,




as expressed in equation (21), with the modified value of R11−1, and with






C
*=[0ni×niΔB0*].   (34)


A second approach for computing the optimum FIR filter coefficients for the FIG. 1 receiver involves computing a standard—rather than a block—Cholesky factorization of the matrix R=Rxx−1+Hnn−1H (see the definition following equation (15)) in the form LDL*. Then, the coefficients of the element 23 filters is given by the ni adjacent columns of L that correspond to a diagonal matrix with the smallest trace. Therefore, equations (23) and (25) are used to compute the corresponding coefficients, with the understanding that L is now a lower-triangular matrix, rather than a block lower-triangular matrix. The equivalence of the two approaches can be shown using the nesting property of Cholesky factorization.



FIG. 4 presents a flowchart for carrying out the method of determining the filter coefficients that processor 22 computes pursuant to scenario 2. Steps 100 through 120 are the same as in FIG. 3, but the method diverges somewhat in the following steps. In step 131 the partition according to equation (20) is developed for a Δ that minimizes Ree,min of equation (33), and control passes to step 141, where B0opt is computed based on equations (31) and (32), followed by a computation of {tilde over (B)}opt based on equations (21) and (34). Following step 141, step 151 computes Wopt* from equation (14), and finally, step 161 installs the coefficients developed in step 141 into the filters of element 26 and the coefficients developed in step 151 into the filters of element 23.


Scenario 3

When multistage detectors are employed, current decisions from all other users, obtained from a previous detection stage, are available to the user of interest. Therefore, suppressing their interfering effects would improve the performance of the receiver. This detection scenario has the same mathematical formulation as scenarios 1 and 2, except that B0 is now constrained only to be monic, i.e., ei*B0ei=1 for all 0≦i≦ni−1. The general results in equations (21) and (22) still apply with C*=[0ni×niΔ B0*] where B0 is optimized to minimize trace(Ree,min). In short, under scenario 3, the following optimization problem is solved:












min

B
0





trace


(


B
0
*



R
3



B
0


)







subject





to






e
i
*



B
0



e
i



=


1





for





all





0


i



n
i

-
1



,




(
33
)







where R3 is as defined in equation (29). Using Lagranage multiplier techniques, it can be shown that the optimum monic B0 and the corresponding MMSE are given by











B
0
opt

=



R
3

-
1




e

i
-
1





e
i
*



R
3

-
1




e
i




;

0

i



n
i

-
1.






(
34
)







Thus, the method of determining the filter coefficients that processor 22 computes pursuant to scenario 3 is the same as the method depicted in FIG. 4, except that the computation of B0opt within step 141 follows the dictates of equation (34).


With the above analysis in mind, a design of the filter coefficients of the filters within elements 23 and 26 can proceed for any given set of system parameters, which includes:

    • MIMO channel memory between the input points and the output point of the actual transmission channel, v,
    • The number of pre-filter taps chosen, Nf,
    • The shortened MIMO memory, Nb,
    • The number of inputs to the transmission channel, ni,
    • The number of output derived from the transmission channel, no,
    • The autocorrelation matrix of the inputs, Rxx,
    • The autocorrelation matrix of the noise, Rnn,
    • The oversampling used, I, and
    • The decision delay, Δ.


It should be understood that a number of aspects of the above disclosure are merely illustrative, and that persons skilled in the art may make various modifications that, nevertheless, are within the spirit and scope of this invention.

Claims
  • 1. A method executed in a receiver comprising the steps of: receiving no signals, each of which containing blocks of Nf symbols;applying the no signals to a feed-forward filter structure having an no×ni plurality of FIR filters where ni is an integer greater than 1 and is not restricted to equal no, each responsive to a signal from one of said no entry points and each developing an output signal that contributes to one of ni feed-forward filter structure outputs, with each of said FIR filters in said feed-forward filter structure having Nf filter taps;applying the signals of said ni feed-forward filter structure outputs to a subtractor structure comprising ni subtractor elements, which structure develops ni output signal;applying the ni output signals of the subtractor structure to a decision logic block that develops ni receiver output signals;applying the ni receiver output signals to a feedback filter structure that develops ni feedback signals, the feedback filter structure having an no×ni plurality of FIR filters, each being responsive to one of said ni receiver output signals; andapplying the ni feedback signals to said subtractor structure.
  • 2. The method of claim 1 further comprising the step of the received signals at rate
  • 3. The method of claim 1 further comprising the steps of computing coefficients for said feed-forward filter structure and for said feedback filter structure based on a block of said received signals; andapplying the computed coefficients to said feed-forward filter structure and for said feedback filter structure.
  • 4. The receiver of claim 3 where said coefficients are computed in a non-iterative manner.
  • 5. The receiver of claim 3 where said coefficients are computed once every time interval that is related to rapidity of change in characteristics of transmission medium preceding said entry points.
RELATED APPLICATION

This is a continuation application of U.S. patent application Ser. No. 10/911,780, filed Aug. 5, 2004, which is a continuation of U.S. patent application Ser. No. 09/671,638, now U.S. Pat. No. 6,870,882, issued Mar. 22, 2005. This application claims priority from Provisional application Ser. No. 60/158,714, filed on Oct. 8, 1999. This application is also related to a Provisional application Ser. No. 60/158,713, also filed on Oct. 8, 1999.

Provisional Applications (2)
Number Date Country
60158714 Oct 1999 US
60158713 Oct 1999 US
Continuations (2)
Number Date Country
Parent 10911789 Aug 2004 US
Child 12287203 US
Parent 09671638 Sep 2000 US
Child 10911789 US