Minimum mean squared error approach to interference cancellation and maximum likelihood decoding of space-time block codes

09544094 ยท 2017-01-10

Assignee

Inventors

Cpc classification

International classification

Abstract

Block-encoded transmissions of a multi-antenna terminal unit are effectively detected in the presence of co-channel interfering transmissions when the base station has a plurality of antennas, and interference cancellation is combined with maximum likelihood decoding. More specifically, the signals received at the base station antennas are combined in a linear combination that relates to the channel coefficients between the various transmitting terminal units and the base antennas. By selecting proper coefficients for the linear combination and choosing probable transmitted signals that minimize a minimum mean squared error function, the signals of the various terminal units are canceled when detecting the signal of a particular unit. In another embodiment of the invention, the basic approach is used to obtain an initial estimate of the signals transmitted by one terminal unit, and the contribution of those signals is removed from the received signals prior to detecting the signals of other terminal units.

Claims

1. A method comprising: generating estimates of channel characteristics of channels between a receiver that uses M receiver antennas and K synchronized terminal units that each transmit on N antennas, the receiver including a processor and a memory configured to store at least one corresponding sequence of instructions executable on the processor; and estimating symbols that were transmitted by a corresponding terminal unit of the K synchronized terminal units, the estimating being based on the estimates of channel characteristics, the symbols being estimated by suppressing signals from all but the corresponding terminal unit, where K, M, and N, are integers, 2KM, and N>1, wherein the generating and the estimating include executing at least one sequence of instructions on the processor, and wherein the symbols are estimated based on maximum likelihood decoding and one of zero forcing interference cancellation and minimum mean-squared error interference cancellation.

2. The method, as recited in claim 1, further comprising: receiving, by the receiver, M space-time block coded signals over L time intervals from the K synchronized terminal units, wherein the symbols are estimated based on the M space-time block coded signals.

3. The method, as recited in claim 2, further comprising: processing a block of the M space-time block coded signals, received over L>1 time intervals, to develop a corresponding signal used by the estimating.

4. The method, as recited in claim 1, wherein the estimates of channel characteristics include KM channel estimates.

5. The method, as recited in claim 1, wherein the estimating symbols generates an associated uncertainty measure.

6. The method, as recited in claim 1, wherein the estimating symbols is further based on zero forcing interference cancellation.

7. The method, as recited in claim 1, wherein the estimating symbols is further based on minimum mean-squared error interference cancellation.

8. The method, as recited in claim 1, wherein the symbols were transmitted by each of the K synchronized terminal units using a corresponding space-time block coded signal.

9. The method, as recited in claim 1, further comprising: transmitting the symbols using N space-time block coded signals transmitted over L time intervals from each corresponding terminal unit of the K synchronized terminal units.

10. The method, as recited in claim 1, wherein M=2, K=2, and N=2.

11. An apparatus comprising: a processor; and a memory configured to store at least one corresponding sequence of instructions executable on the processor, the at least one corresponding sequence of instructions including at least one sequence executable to generate estimates of channel characteristics of channels between a receiver that uses M receiver antennas and K synchronized terminal units that each transmit on N antennas, and estimate symbols that were transmitted by a corresponding terminal unit of the K synchronized terminal units, the estimating being based on the estimates of channel characteristics, the symbols being estimated by suppressing signals from all but the corresponding terminal unit, where K, M, and N, are integers, 2KM, and N>1, wherein the symbols are estimated based on maximum likelihood decoding and one of zero forcing interference cancellation and minimum mean-squared error interference cancellation.

12. The apparatus, as recited in claim 11, wherein the symbols are estimated based on signals received over L time intervals.

13. The apparatus, as recited in claim 11, wherein the symbols were transmitted using N space-time block coded signals transmitted over L time intervals from each corresponding terminal unit of the K synchronized terminal units.

14. The apparatus, as recited in claim 11, wherein M=2, K=2, and N=2.

Description

BRIEF DESCRIPTION OF THE DRAWING

(1) FIG. 1 depicts an arrangement that, illustratively, includes a receiving base station (20) and two transmitting terminal units (10 and 30).

DETAILED DESCRIPTION

(2) FIG. 1 illustrates two transmitting units and one receiving unit that comport with the principles disclosed herein. However, this is merely illustrative, and the disclosed method is useful for more than two terminals (K>2).

(3) Single Transmitting Unit

(4) Transmitting unit 10 may correspond to the transmitting circuitry in a terminal unit, while receiving unit 20 may correspond to the receiving circuitry in a base station. Terminal unit 30 is shown identical to terminal unit 10. It should be understood, of course, that each terminal unit has a receiving circuit, and the base station has a transmitting circuit. The terminal units are shown to have two antennas each. Receiving unit 20 is also shown to have two receiving antennas. Here, too, it should be kept in mind that, generally, any number, M2, of receiving antennas can be had. Particular advantage is realized when MK. Since the mathematical treatment below is couched in general matrix notations, the expressions are valid for any number K and/or M.

(5) Considering terminal unit 10 (terminal unit 30), the information source provides input symbols to element 13 (element 33) which develops a block code. The symbols are divided into groups of two symbols each, and at a given symbol period, the two symbols in each group {c.sub.1,c.sub.2}, are transmitted simultaneously from the two antennas. The signal transmitted from antenna 11 (antenna 31) is c.sub.1 and the signal transmitted from antenna 12 (antenna 32) is c.sub.2. In the next symbol period, the signalc.sub.2* is transmitted from antenna 11 (antenna 31) and the signal c.sub.1* is transmitted from antenna 12 (antenna 32). The symbols are modulated prior to transmission with constellation mappers 14 and 15 (constellation mappers 34 and 35), followed by pulse shapers 16 and 17 (pulse shapers 36 and 37), respectively, in a conventional manner.

(6) In receiver 20, signals are received by antennas 21 and 22 and are applied to detector 25.

(7) In the mathematical development of the algorithms disclosed herein, it is assumed that the channel from each of the two transmit antennas remains fixed over two consecutive symbol periods. That is,
h.sub.i(nT)=h.sub.i((n+1)T), i=1,2.(1)
To ascertain the channel characteristics, the transmitter carries out a calibration session, during which pilot signals or tones are transmitted. The signals received during the calibration session are applied to channel estimator circuits 23 and 234, which are well known circuits, and the channel characteristics are thus obtained.

(8) When only transmitter 10 is considered, the received signals at antenna 21 can be expressed as
r.sub.11=h.sub.11c.sub.1+h.sub.12c.sub.2+.sub.1(2)
r.sub.12=h.sub.11c.sub.2*+h.sub.12c.sub.1*+.sub.2(3)
where r.sub.11 and r.sub.12 are the received signals over two consecutive symbol periods, h.sub.11 denotes the fading channel between transmit antenna 11 and receive antenna 21, h.sub.12 denotes channel between transmit antenna 12 and receive antenna 21, and .sub.1 and .sub.2 are noise terms, which are assumed to be complex Gaussian random variables with zero mean and power spectral density N.sub.0/2 per dimension. Defining the vectors r=[r.sub.11r.sub.12*].sup.T, c=[c.sub.1c.sub.2].sup.T, and =[.sub.1.sub.2*].sup.T, equations (2) and (3) can be rewritten in a matrix form as
r=H.Math.c+(4)
where the channel matrix H is defined as

(9) H = [ h 11 h 12 h 12 * - h 11 * ] . ( 5 )

(10) The vector is a complex Gaussian random vector with zero mean and covariance N.sub.0.Math.I. Defining C as the set of all possible symbol-pairs c={c.sub.1, c.sub.2}, and assuming that all symbol pairs are equi-probable, it can be easily shown that the optimum maximum likelihood (ML) decoder selects from C the symbol-pair that minimizes the expression rH.Math..sup.2. This can be written as

(11) c ^ = arg min c ^ C .Math. r - H .Math. c ^ .Math. 2 . ( 6 )

(12) It was shown by S. Alamouti in Space Block Coding: A simple Transmitter Diversity Scheme for wireless Communications, submitted to IEEE JSAC, September 1997 that the diversity order of the above space-time block code is equivalent to that of a two branch maximal ratio receive combining (MRRC). Because of the orthogonality of the matrix H, Alamouti also showed that this decoding rule decomposed into two separate decoding rules for c.sub.1 and c.sub.2. The uncertainty, .sub.c, of the decoded symbols is defined as
.sub.c=rH.Math..sup.2.(7)

(13) It should be noted that the above analysis addresses only receive antenna 21. When receiver 20 uses both antennas, i.e., antennas 21 and 22, two received signal vectors r.sub.1 and r.sub.2 can be defined for antenna 21 and 22, respectively, as
r.sub.1=H.sub.1.Math.c+.sub.1(8)
r.sub.2=H.sub.2.Math.c+.sub.2(9)
where H.sub.1 and H.sub.2 are the channel matrices to receive antennas 21 and 22, respectively, and .sub.1 and .sub.2 are the corresponding noise vectors. That is,

(14) H 1 = [ h 11 h 12 h 12 * - h 11 * ] , and H 2 = [ h 21 h 22 h 22 * - h 21 * ] , ( 9 a )
where h.sub.21 denotes the channel between transmit antenna 12 and receive antenna, 22, and h.sub.22 denotes the channel between transmit antenna 11 and receive antenna 22. In this case, the ML decoding rule is

(15) c ^ = arg min c ^ C ( .Math. r 1 - H 1 .Math. c ^ .Math. 2 + .Math. r 2 - H 2 .Math. c ^ .Math. 2 ) , ( 10 )
and the uncertainty of the decoded symbols is defined as
.sub.c=r.sub.1H.sub.1.Math..sup.2+r.sub.2H.sub.2.Math..sup.2.(11)
As before, both the matrices H.sub.1 and H.sub.2 are orthogonal matrices and hence the above decoding rule also decomposes to two separate decoding rules for c.sub.1 and c.sub.2. Note that the rate of transmission (of information symbols) in the space-time block coding scheme is 1

(16) Interference Cancellation and ML Decoding: Basic Case

(17) FIG. 1, however, shows two terminal units, and the issue that needs to be addressed is the detection performance at the base station receiver when the two terminal units transmit over the same time and frequency channel.

(18) In the notation below, g.sub.11 denotes the fading channel between transmit antenna 31 and receive antenna 21, g.sub.12 denotes the channel between antenna 31 and antenna 21, g.sub.21 denotes the channel between antenna 32 and antenna 22, and g.sub.22 denotes the channel between antenna 32 and antenna 22. Also, {c.sub.1,c.sub.2} and {s.sub.1,s.sub.2} denote the two symbols transmitted from terminal units 10 and 30, respectively.

(19) At receiver 20, the received signals over two consecutive symbol periods at receive antenna 21, r.sub.11 and r.sub.12, are
r.sub.11=h.sub.11c.sub.1+h.sub.12c.sub.2+g.sub.11s.sub.1g.sub.12s.sub.2+.sub.11(12)
r.sub.12=h.sub.11c.sub.2*+h.sub.12c.sub.1*g.sub.11s.sub.2*+g.sub.12s.sub.1*+.sub.12(13)
Defining r.sub.1=[r.sub.11r.sub.12*].sup.T, c=[c.sub.1c.sub.2].sup.T, s=[s.sub.1s.sub.2].sup.T, and n.sub.1=[.sub.11.sub.12*].sup.T equations (12) and (13) can be rewritten in matrix form as
r.sub.1=H.sub.1.Math.c+G.sub.1.Math.s+n.sub.1(14)
where the channel matrices H.sub.1 and G.sub.1 between the transmitter units 10 and 30 and receive antenna 21 are given by

(20) H 1 = [ h 11 h 12 h 12 * - h 11 * ] , and G 1 = [ g 11 g 12 g 12 * - g 11 * ] ( 15 )
The vector n.sub.1 is a complex Gaussian random vector with zero mean and covariance N.sub.0.Math.I. Similarly, the received signals over two consecutive symbol periods at receive antenna 22, r.sub.21 and r.sub.22 are
r.sub.21=h.sub.21c.sub.1+h.sub.22c.sub.2+g.sub.21s.sub.1+g.sub.22s.sub.2+.sub.21(16)
r.sub.22=h.sub.21c.sub.2*+h.sub.22c.sub.1*g.sub.21s.sub.2*+g.sub.22s.sub.1*.sub.22(17)
In a similar fashion, defining r.sub.2=[r.sub.21r.sub.22*].sup.T and n.sub.2=[.sub.21.sup.22*].sup.T equations (16) and (17) can be rewritten as
r.sub.2=H.sub.2.Math.c+G.sub.2.Math.s+n.sub.2(18)
where the channel matrices H.sub.2 and G.sub.2 between transmitter units 10 and 30 and antenna 22 are given by

(21) H 2 = [ h 21 h 22 h 22 * - h 21 * ] , and G 2 = [ g 21 g 22 g 22 * - g 21 * ] ( 19 )
Equations (14) and (18) can be combined to yield the matrix form

(22) r = [ r 1 r 2 ] = [ H 1 G 1 H 2 G 2 ] [ c s ] + [ n 1 n 2 ] . ( 20 )

(23) Zero-Forcing IC and ML Decoding Scheme:

(24) In this case, a matrix W is chosen such that

(25) W .Math. [ r 1 r 2 ] = [ r ~ 1 r ~ 2 ] = [ H ~ 0 0 G ~ ] .Math. [ c s ] + [ n ~ 1 n ~ 2 ] ( 21 )
We can find an appropriate matrix W by realizing that

(26) [ H 1 G 1 H 2 G 2 ] - 1 = [ A 1 - 1 0 0 A 2 - 1 ] [ I - G 1 G 2 - 1 - H 2 H 1 - 1 I ] ( 22 )
where
A.sub.1=H.sub.1G.sub.1G.sub.2.sup.1H.sub.2 and A.sub.2=G.sub.2H.sub.2H.sub.1.sup.1G.sub.1(23)
Hence, if we select W as

(27) 0 W = [ I - G 1 G 2 - 1 - H 2 H 1 - 1 I ] ( 24 )
we will have

(28) W .Math. [ r 1 r 2 ] = [ r ~ 1 r ~ 2 ] = [ H ~ 0 0 G ~ ] .Math. [ c s ] + [ n ~ 1 n ~ 2 ] ( 25 )
where
{tilde over (H)}=H.sub.1G.sub.1G.sub.2.sup.1H.sub.2
{tilde over (G)}=G.sub.2H.sub.2H.sub.1.sup.1G.sub.1
.sub.1=n.sub.1G.sub.1G.sub.2.sup.1n.sub.2
.sub.2=n.sub.2H.sub.2H.sub.1.sup.1n.sub.1.(26)

(29) From equation (25) it can be easily observed that the modified received signal vector {tilde over (r)}.sub.1 contains signals only from transmitter 10 (i.e. signals from transmitter 30 have been canceled or removed) and, correspondingly, the modified received signal vector {tilde over (r)}.sub.2 contains signals only from transmitter 30 (i.e. signals from transmitter 10 have been canceled or removed). A number of other attributes can be shown from the above to be true. 1) the modified noise vector .sub.1 is a zero mean complex Gaussian random vector with covariance

(30) R n 1 = N o .Math. ( 1 + D g 1 D g 2 ) .Math. I ( 27 ) where D.sub.g1=|g.sub.11|.sup.2+|g.sub.12|.sup.2 and D.sub.g2=|g.sub.21|.sup.2=|g.sub.22|.sup.2. Hence, the modified noise vector .sub.1 is also white. 2) the modified noise vector .sub.2 is also a zero mean Gaussian random vector with covariance

(31) R n 2 = N o .Math. ( 1 + D h 2 D h 2 ) .Math. I ( 28 ) where D.sub.h1=|h.sub.11|.sup.2+|h.sub.12|.sup.2 and D.sub.h2=|h.sub.21|.sup.2=|h.sub.22|.sup.2, and hence it is also white. 3) The matrices {tilde over (H)} and {tilde over (G)} have the form

(32) H ~ = [ h ~ 1 h ~ 2 h ~ 2 * - h ~ 1 * ] , and G ~ = [ g ~ 1 g ~ 2 g ~ 2 * - g ~ 1 * ] . ( 29 ) 4) Conditioned on G.sub.1 and G.sub.2, the random variables {tilde over (h)}.sub.1 and {tilde over (h)}.sub.2 are both zero mean complex Gaussian random variables with variance
.sub.h.sup.2=1+D.sub.g1/D.sub.g2. 5) Conditioned on H.sub.1 and H.sub.2, the random variables {tilde over (g)}.sub.1 and {tilde over (g)}.sub.2 are both zero mean complex Gaussian random variables with variance .sub.g.sup.2=1+D.sub.h2/D.sub.h1. 6) The modified channel matrices {tilde over (H)} and {tilde over (G)} have a structure similar to that in equation (5), i.e. the modified channel matrices {tilde over (H)} and {tilde over (G)} are orthogonal matrices.

(33) Considering the modified received signal vector {tilde over (r)}.sub.1, which contains signals only from transmitter 10, i.e.,
{tilde over (r)}.sub.1={tilde over (H)}.Math.c+.sub.1,(30)
it is noted that this expression resembles the expression in equation (4). Hence, in accordance with the principles disclosed therein, the optimum ML decoder for the symbols transmitted by terminal unit 10 evaluates an equation that is similar to the expression of equation (6), and is given by

(34) c ^ = arg min c ^ C .Math. r ~ 1 - H ~ .Math. c ^ .Math. 2 . ( 31 )
The corresponding decoder uncertainly is given by
.sub.c{tilde over (r)}.sub.1{tilde over (H)}.Math..sup.2.(32)
Moreover, since the channel Matrix {tilde over (H)} is orthogonal, the ML decoder will also decompose into two separate rules for c.sub.1 and c.sub.2.

(35) In a similar fashion, considering the modified received signal vector {tilde over (r)}.sub.2, which contains signals only from transmitter 10, i.e.,
{tilde over (r)}.sub.2={tilde over (H)}.Math.c+.sub.2,(33)
it is noted that this expression resembles the expression in equation (4). Hence, the optimum ML decoder for the symbols transmitted by terminal unit 30 evaluates an equation that is similar to the expression of equation (6), and is given by

(36) s ^ = arg min s ^ S .Math. r ~ 2 - G ~ .Math. s ^ .Math. 2 . ( 34 )
The corresponding decoder uncertainty is given by
.sub.s={tilde over (r)}.sub.2{tilde over (G)}.Math..sup.2.(35)
Moreover, since the channel Matrix {tilde over (G)} is also orthogonal, the ML decoder will also decompose into two separate rules for s.sub.1 and s.sub.2.

(37) The above-disclosed technique can be easily implemented within a detector 25 that comprises a stored program general purpose processor. Specifically, a subroutine (,)=ZF.DECODE(r.sub.1, r.sub.2, H.sub.1, H.sub.2, G.sub.1, G.sub.2) can be installed which returns the values , in response to submitted inputs r.sub.1, r.sub.2, H.sub.1, H.sub.2, G.sub.1, and G.sub.2, as shown below:

(38) TABLE-US-00001 (, .sub.c) = ZF.DECODE(r.sub.1, r.sub.2, H.sub.1, H.sub.2, G.sub.1, G.sub.2) { {tilde over (r)} = r.sub.1 G.sub.1G.sub.2.sup.1r.sub.2 {tilde over (H)} = H.sub.1 G.sub.1G.sub.2.sup.1H.sub.2 c ^ = arg min c C .Math. r ~ - H ~ .Math. c .Math. 2 .sub.c = ||{tilde over (r)} {tilde over (H)} .Math. ||.sup.2 }
With such a subroutine, both and can be estimated, as follows:
(,)=ZF.DECODE(r.sub.1,r.sub.2,H.sub.1,H.sub.2,G.sub.1,G.sub.2)(36)
(,)=ZF.DECODE(r.sub.2,r.sub.1,G.sub.2,G.sub.1,H.sub.2,H.sub.1).(37)

(39) It may be noted that knowledge of the noise power N.sub.0 is not required. Simulation results reveal that the performance of the FIG. 1 system which employs the principles disclosed herein and the ZF.DECODE subroutine is equivalent to that when only one terminal unit exists and the base station uses a single receive antenna. That is, the reception is equivalent to the performance of two branch MRRC diversity receiver. Advantageously, however, the disclosed technique is able to support two co-channel terminal units.

(40) The discussion above centered on describing the technique for canceling out the signal of transmitter 10 when detecting the signal of transmitter 30, and for canceling out the signal of transmitter 30 when detecting the signal of transmitter 10. Effectively, detector 25 of receiver 20 can either comprise two processors, with one making the subroutine call of equation (31) and the other making the subroutine call of equation (32). Alternatively, the signals can be stored within detector 25 and the subroutine calls of equations 31 and 32 can be made seriatim.

(41) Minimum Mean-Squared Error IC and ML Decoding Scheme:

(42) The above-disclosed approach for canceling the contribution of an interfering terminal unit is known as the zero-forcing (ZF) as a minimum mean-squared error technique (MMSE).

(43) Recalling equation (20), the vector r can also be written as
r=H.Math.{tilde over (c)}+n(38)
where {tilde over (c)}=[{tilde over (c)}.sup.T {tilde over (s)}.sup.T].sup.T, r=[{tilde over (r)}.sub.1.sup.T {tilde over (r)}.sub.2.sup.T].sup.T=[r.sub.11 r*.sub.21 r.sub.12 r.sub.22*].sup.T, and

(44) H = [ H 1 G 1 H 2 G 2 ] ( 39 )
To simplify notations, the vector r is also defined as r=[r.sub.1 r.sub.2 r.sub.3 r.sub.4].sup.T.

(45) When seeking to detect and decode signals {c.sub.1,c.sub.2} by minimizing a mean-squared error criterion, the goal is find a linear combination of the received signals such that the mean-squared error in detecting the signals {c.sub.1,c.sub.2} is minimized. In general terms, this can be expressed by an error cost function that is to be minimized, such as the function

(46) J ( , ) = .Math. .Math. i = 1 4 i r i - ( 1 c 1 + 2 c 2 ) .Math. 2 = .Math. .Math. r - .Math. c .Math. 2 ( 40 )
One may note that a minimum is certainly reached when both and are equal to 0, but that, of course, is not desired. Therefore, either .sub.1 or .sub.2 is set to 1. When .sub.2 is set to 1, we get the following minimization criterion from equation (40)

(47) 0 J 1 ( 1 , 1 ) = .Math. .Math. i = 1 5 1 i r 1 i - c 2 .Math. 2 = .Math. ~ 1 r ~ 1 - c 2 .Math. 2 ( 41 )
where {tilde over ()}.sub.1=[.sub.11,.sub.12,.sub.13,.sub.14,.sub.1]=[.sub.1.sub.1] and {tilde over (r)}=[r.sup.T c.sub.1].sup.T. From this it can be seen that

(48) r ~ 1 = [ H 0 T 0 1 ] [ c ~ c 1 ] + [ n 0 ] = R .Math. d + ( 42 )
where 0=[0 0 0 0].

(49) What is needed is to select {tilde over ()}.sub.1 so that the expected value of the expression in equation (41) is minimized. That is, select {tilde over ()}.sub.1 to minimize
E{J.sub.1({tilde over ()}.sub.1)}=E{({tilde over ()}.sub.1{tilde over (r)}.sub.1c.sub.2)({tilde over ()}.sub.1{tilde over (r)}.sub.1c.sub.2)*}.(43)
Taking the partial derivative with respect to {tilde over ()}.sub.1 and setting it to zero, what results is

(50) [ M h 1 h 1 * 1 ] [ 1 * - 1 ] = [ h 2 0 ] ( 44 )
where

(51) M = HH * + 1 I ,
is the signal to noise ratio, I is the 4 by 4 identity matrix, h.sub.1 is the first column of H, and h.sub.2 is the second column of H. It follows that
.sub.1*=(Mh.sub.1h.sub.1*).sup.1h.sub.2 and .sub.1*=h.sub.1(Mh.sub.1h.sub.1*).sup.1h.sub.2.(45)
It can be shown that

(52) ( M - h 1 h 1 * ) - 1 = M - 1 - M - 1 h 1 h 1 * M - 1 1 - h 1 * M - 1 h 1 , ( 46 )
which yields

(53) 1 * = h 1 * M - 1 h 2 1 - h 1 * M - 1 h 1 ( 47 )
From the structure of the matrix H we can easily verify that h.sub.1 and h.sub.2 are orthogonal. Using this fact and the structure of the matrix M, it can be shown that
.sub.1=0(48)
.sub.1*=M.sup.1h.sub.2.(49)
The value of and the values of h.sub.ij and g.sub.ij, and consequently the values of H and M are obtained from a training sequence in a conventional manner by elements 23 and 24. Since, as indicated earlier, this is quite conventional and does not form a part of this invention, for sake of conciseness additional details are not presented. Hence, the MMSE IC solution given in equations (45) and (46) will minimize the mean-squared error in c.sub.2 without any regard to c.sub.1. Considering the alternative cost function when .sub.1 is set to 1, a similar analysis leads to the conclusion that
.sub.2=0(47)
.sub.2*M.sup.1h.sub.1(48)
In this case, the MMSE IC solution given in equations (45) and (46) will minimize the mean-squared error in c.sub.1 without any regard to c.sub.2. Therefore, from equations (45)-(48), we can easily see that the MMSE interference canceller for signals from terminal unit 10 will consist of two different sets of weights .sub.1 and .sub.2 for c.sub.2 and c.sub.1, respectively. The weights for decoding signals from terminal 30 can be obtained in a similar fashion, as expected. Thus, the decoding of signals from terminal units 10 and 30 can be performed with a single subroutine MMSE.DECODE in decoder 25 as follows:

(54) TABLE-US-00002 (c, .sub.c) = MMSE.DECODE(r.sub.1, r.sub.2, H.sub.1, H.sub.2, G.sub.1, G.sub.2, ) { {tilde over (r)} = [r.sub.1.sup.T r.sub.2.sup.T].sup.T H = [ H 1 G 1 H 2 G 2 ] M = HH * + 1 I h.sub.1 = [h.sub.11.sup.T h.sub.21.sup.T].sup.T = first column of H h.sub.2 = [h.sub.12.sup.T h.sub.22.sup.T].sup.T = second column of H .sub.1.sup.* = M.sup.1h.sub.1, .sub.2* = M.sup.1h.sub.2 c 1 = arg min c ^ 1 C .Math. 1 * r ~ - c ^ 1 .Math. 2 , c 2 = arg min c ^ 2 C .Math. 1 * r ~ - c ^ 2 .Math. 2 c = .Math. 1 * r ~ - c ^ 1 .Math. 2 + .Math. 1 * r ~ - c ^ 2 .Math. 2 }
With such a subroutine, both and can be estimated, as follows:
(,)=MMSE.DECODE(r.sub.1,r.sub.2,H.sub.1,H.sub.2,G.sub.1,G.sub.2,)(49)
(,)=MMSE.DECODE(r.sub.2,r.sub.1,G.sub.1,G.sub.2,H.sub.1,H.sub.2,)(50)
Similar to the zero-forcing case, simulation results reveal that the performance of the disclosed technique MMSE.DECODE is equivalent to that when only one terminal unit exists and the base station uses a single receive antenna which is equivalent to the performance of two branch MRRC diversity. However, this technique is also able to support two co-channel terminal units. In addition, when the SIR (signal-to-interference ratio, which is a ratio between the desired terminal power to the interfering terminal power) increases, the MMSE approach will have a better performance as compared to the ZF case (the ZF performance is almost the same as the performance of the MMSE approach at 0 dB SIR).

(55) Two-Step Interference Cancellation:

(56) Actually, additional improvement can be realized by employing a two-step interference cancellation approach using either the zero-forcing or the MMSE interference cancellation techniques disclosed above. Below, we will describe this approach based on the MMSE technique. However, as one might expect, there is a similar approach based on the zero-forcing technique. In this two-step approach, the receiver decodes signals from both terminals using the subroutine MMSE.DECODE disclosed above. Assuming that symbols from the terminal unit 10 .sub.o, have been decoded correctly, the receiver can then perfectly cancel the contribution of the terminal unit 10 in the received signal vectors r.sub.1 and r.sub.2. The receiver then uses x.sub.1 and x.sub.2, the received signal vectors after cancelling signals from terminal unit 10, to re-decode symbols from terminal unit 30 .sub.o, using the optimum ML decoding rule in equation (10). Assuming that the symbols from terminal unit 10 have been decoded correctly, we can easily see that the performance for terminal unit 30 will be equivalent to that with 2 transmit and 2 receive antennas (which is equivalent to 4 branch MRC diversity). Let .sub.o=.sub.c.sub.o+.sub.s.sub.o denote the overall uncertainty for .sub.o and .sub.o. The receiver then repeats the above step assuming that symbols from terminal unit 30 .sub.1 have been decoded correctly using the MMSE.DECODE subroutine. As before, the receiver cancels the contribution of terminal unit 30 in the received signal vectors r.sub.1 and uses y.sub.1 and y.sub.2, the received signal vectors after cancelling signals from terminal unit 30, to re-decode symbols from terminal unit 10 .sub.1 using the optimum ML decoding rule in equation (10). As before, assuming that symbols from terminal unit 30, the performance for terminal unit 10 will be equivalent to that with 2 transmit and 2 receive antennas. Similarly, let .sub.1=.sub.c.sub.1+.sub.s.sub.1, denote the overall uncertainty for .sub.1 and .sub.1. The receiver then compares the overall uncertainty and chooses the pair (.sub.o, .sub.o) if .sub.o<.sub.1 and (.sub.1,.sub.1) otherwise. The two-step interference cancellation approach based on the MMSE technique disclosed above is presented below in pseudo-code sub-routine II.MMSE.DECODE. As we mentioned earlier, the techniques can be also used with the zero-forcing approach. Below, we also present the pseudo code subroutine II.ZF.DECODE for the two-step interference cancellation based on the zero-forcing approach.

(57) TABLE-US-00003 (, ) = II. MMSE.DECODE(r.sub.1, r.sub.2, H.sub.1, H.sub.2, G.sub.1, G.sub.2, ) { (.sub.0, .sub.c,o) = MMSE.DECODE(r.sub.1, r.sub.2, H.sub.1, H.sub.2, G.sub.1, G.sub.2, ) x.sub.1 = r.sub.1 H.sub.1 .Math. .sub.o, x.sub.2 = r.sub.2 H.sub.2 .Math. .sub.o 0 s ^ o = arg min s S ( .Math. x 1 - G 1 .Math. s .Math. 2 + .Math. x 2 - G 2 .Math. s .Math. 2 ) .sub.s,o = ||x.sub.1 G.sub.1 .Math. s||.sup.2 + ||x.sub.2 G.sub.2 .Math. s||.sup.2 (.sub.1, .sub.s,1) = MMSE.DECODE(r.sub.1, r.sub.2, G.sub.1, G.sub.2, H.sub.1, H.sub.2, ) y.sub.1 = r.sub.1 G.sub.1 .Math. .sub.1, .sub.2 = r.sub.2 G.sub.2 .Math. .sub.1 c ^ 1 = arg min c C ( .Math. y 1 - H 1 .Math. c .Math. 2 + .Math. y 2 - H 2 .Math. c .Math. 2 ) .sub.c,1 = ||y.sub.1 H.sub.1 .Math. c||.sup.2 + ||y.sub.2 H.sub.2 .Math. c||.sup.2 If (.sub.c,o + .sub.s,o) < (.sub.c,1 + .sub.s,1) custom character (, ) = (.sub.o, .sub.o) Else (, ) = (.sub.1, .sub.1) }

(58) TABLE-US-00004 (, ) = II. ZF.DECODE(r.sub.1, r.sub.2, H.sub.1, H.sub.2, G.sub.1, G.sub.2) { (.sub.0, .sub.c,o) = ZF.DECODE(r.sub.1, r.sub.2, H.sub.1, H.sub.2, G.sub.1, G.sub.2) x.sub.1 = r.sub.1 H.sub.1 .Math. .sub.o, x.sub.2 = r.sub.2 H.sub.2 .Math. .sub.o s ^ o = arg min s S ( .Math. x 1 - G 1 .Math. s .Math. 2 + .Math. x 2 - G 2 .Math. s .Math. 2 ) .sub.s,o = ||x.sub.1 G.sub.1 .Math. s||.sup.2 + ||x.sub.2 G.sub.2 .Math. s||.sup.2 (.sub.1, .sub.s,1) = ZF.DECODE(r.sub.2, r.sub.1, G.sub.2, G.sub.1, H.sub.2, H.sub.1) y.sub.1 = r.sub.1 G.sub.1 .Math. .sub.1, .sub.2 = r.sub.2 G.sub.2 .Math. .sub.1 c ^ 1 = arg min c C ( .Math. y 1 - H 1 .Math. c .Math. 2 + .Math. y 2 - H 2 .Math. c .Math. 2 ) .sub.c,1 = ||y.sub.1 H.sub.1 .Math. c||.sup.2 + ||y.sub.2 H.sub.2 .Math. c||.sup.2 If (.sub.c,o + .sub.s,o) < (.sub.c,1 + .sub.s,1) custom character (, ) = (.sub.o, .sub.o) Else (, ) = (.sub.1, .sub.1) }

(59) Interference Cancellation and ML Decoding: General Case

(60) In the above basic case, we focused on the basic case where we assumed two co-channel terminals (K=2) each uses two transmit antennas (N=2). Both terminals communicate with a base station that is equipped with two transmit antennas (M=2). In this section we will consider the more general case of K2 co-channel terminals each is equipped with N2 transmitting antennas, both terminals communicate with a base that has receive MK antennas. We will develop similar interference cancellation and ML decoding scheme for this case.

(61) In a paper submitted to IEEE Transactions on Information Theory, Vahid Tarokh et al. extended the above space-time block coding scheme to the case when more than two antennas are used for transmission (N2). There, a technique for constructing space-time block codes (with similar properties to the simple scheme described above) was developed. It was also shown that for real constellations space-time block codes with transmission rate 1 can be constructed. However, for a general complex constellation the rate of transmission for these codes will be less than 1.

(62) In general, let us assume that the input information symbols to the transmitter are grouped into groups of Q symbols c.sub.1, c.sub.2, . . . , c.sub.Q. A space-time block code in this case will map the symbols c.sub.1, c.sub.2, . . . , c.sub.Q into an NL allay C whose entries are made c.sub.1, c.sub.2, . . . , c.sub.Q and c.sub.1*, c.sub.2*, . . . , c.sub.Q*. At time t, where 1tL, the t-th column of C is transmitted from the N antennas. In this case, the transmission rate of such code will be Q/L. In general, for a rate Q/L space-time block code (as constructed by V. Tarokh et al.) designed for N transmit antenna, let r.sub.1, r.sub.2, . . . , r.sub.L be the received signals at time t=1, 2, . . . , L. As before, we define the received signal vector as
r=[r.sub.1 r.sub.2 . . . r.sub.L/2 r.sub.L/2+1* r.sub.L/2+2* . . . r.sub.L*].sup.T(51)
where the L1 vector r can be written as
r=H.Math.c+(52)
and H is the LQ channel matrix whose entries are from h.sub.1, h.sub.2, . . . , h.sub.N, h.sub.1*, h.sub.2*, . . . , h.sub.N*, and it is an orthogonal matrix, c=[c.sub.1 c.sub.2 . . . c.sub.Q].sup.T and is an L1 zero-mean complex Gaussian random vector with covariance N.sub.o.Math.I which models the noise. The ML decoder in this case is similar to that in equation (6), that is

(63) c ^ = arg min c ^ C .Math. r - H .Math. c ^ .Math. 2 ( 53 )
and the uncertainty, .sub.c, of the decoded symbols is given by
.sub.c=rH.Math..sup.2.(54)
As before, since the channel matrix H is orthogonal, the decoding rule in (53) decomposes into Q separate decoding rules for c.sub.1, c.sub.2, . . . , c.sub.Q. For example, assuming that the terminal unit uses 4 transmit antenna, a rate 4/8 (i.e. it is a rate ) space-time block code is given by

(64) [ c 1 c 2 c 3 c 4 ] .fwdarw. [ c 1 - c 2 - c 3 - c 4 c 1 * - c 2 * - c 3 * - c 4 * c 2 c 1 c 4 - c 3 c 2 * c 1 * c 4 * - c 3 * c 3 - c 4 c 1 c 2 c 3 * - c 4 * c 1 * c 2 * c 4 c 3 - c 2 c 1 c 4 * c 3 * - c 2 * c 1 * ]
In this case, at time t=1 c.sub.1, c.sub.2, c.sub.3, c.sub.4 are transmitted from antenna 1 through 4, respectively. At time t=2, c.sub.2, c.sub.1, c.sub.4, c.sub.3 are transmitted from antenna 1 through 4, respectively, and so on. For this example, let r.sub.1, r.sub.2, . . . , r.sub.8 be the received signals at time t=1, 2, . . . , 8. Define the received signal vector r=[r.sub.1 r.sub.2 r.sub.3 r.sub.4 r.sub.5* r.sub.6* r.sub.7* r.sub.8*].sup.T. In this case, we can write the received signal vector r can be written as
r=H.Math.c+(55)
where is the 81 AWGN noise vector and H is the 84 channel matrix given by:

(65) H = [ h 1 h 2 h 3 h 4 h 2 - h 1 h 4 - h 3 h 3 - h 4 - h 1 h 2 h 4 h 3 - h 2 - h 1 h 1 * h 2 * h 3 * h 4 * h 2 * - h 1 * h 4 * - h 3 * h 3 * - h 4 * - h 1 * h 2 * h 4 * h 3 * - h 2 * - h 1 * ] ( 56 )
We can immediately notice that the matrix H is orthogonal, that is H*H=D.sub.h.Math.I where

(66) D h = .Math. i = 1 4 .Math. h i .Math. 2
and I is a 44 identity matrix.
Let us now assume a multi-user environment with K co-channel synchronized terminals. Each terminal uses a rate Q/L space-time block code with N transmit antenna (as constructed by V. Tarokh et al). The base station uses MK antennas for reception. We can write the received signal vector at the m-th receive antenna as

(67) r m = .Math. k = 1 K H k m .Math. c k + m , m = 1 , 2 , .Math. , M ( 57 )
where H.sub.km is the LQ k-th user channel matrix to antenna m, c.sub.k=[c.sub.k1 c.sub.k2 . . . c.sub.kQ].sup.T is the Q1 information symbols vector for k-th user, and .sub.m is the L1 noise vector. The entries of the k-th user channel matrix H.sub.km are from and h.sub.k,m,1, h.sub.k,m,2, . . . , h.sub.k,m,N and h.sub.k,m,1*, h.sub.k,m,2*, . . . , h.sub.k,m,N*, where h.sub.k,m,n is the complex channel gain between transmit antenna n of the k-th user and receive antenna m. As we stated earlier, the matrix H.sub.km is orthogonal.

(68) Zero-Forcing IC and ML Decoding:

(69) Without loss of generality, let us assume that we are interested in suppressing signals from co-channel terminals 2, 3, . . . , K while decoding signals from the first terminal. This can be done in a successive manner as follows.

(70) First, let us define r.sub.m.sup.(0)=r.sub.m. Let us assume that we start by canceling out the contributions of the K-th terminal. We can use the M-th antenna received signal vector r.sub.M to cancel out the contribution of the K-th terminal in the remaining M1 received signal vectors by forming the modified received signal vectors r.sub.m.sup.(1), m=1, . . . , M1 as follows:
r.sub.m.sup.(1)=r.sub.m.sup.(0)H.sub.KmH.sub.KM.sup.+r.sub.M.sup.(0) m=1,2, . . . M1(58)
where H.sub.km.sup.+ is the generalized inverse of the channel matrix H.sub.km and is given by
H.sub.km.sup.+=(H.sub.km*H.sub.km).sup.H.sub.km*(59)
We can easily verify that H.sub.km.sup.+H.sub.km=I, where I is the QQ identity matrix. We can easily verify that the modified received signal vectors r.sub.m.sup.(1), m=1, . . . , M1, do not contain any signal contribution due to the K-th user. Moreover, we can easily verify that r.sub.m.sup.(1) can be written as

(71) r m ( 1 ) = .Math. k = 1 K - 1 H k m ( 1 ) .Math. c k + m ( 1 ) , m = 1 , 2 , .Math. , M - 1 ( 60 )
where H.sub.km.sup.(1) and .sub.m.sup.(1) are given by
H.sub.km.sup.(1)=H.sub.km.sup.(0)H.sub.Km.sup.(0)(H.sub.KM.sup.(0)).sup.+H.sub.kM.sup.(0), m=1,2, . . . ,M1(61)
.sub.m.sup.(1)=.sub.m.sup.(0)H.sub.Km.sup.(0)(H.sub.KM.sup.(0)).sup.+.sub.M.sup.(0), m=1,2, . . . ,M1(62)
Moreover, it can be shown that for codes constructed by V. Tarokh et al, the modified channel matrix H.sub.km.sup.(1) have exactly the same structure as that of H.sub.km. That is, the entries of the k-th user modified channel matrix H.sub.km.sup.(1) are from h.sub.k,m,1.sup.(1), h.sub.k,m,2.sup.(1), . . . , h.sub.k,m,N.sup.(1) and h*.sub.k,m,1.sup.(1), h.sub.k,m,2.sup.(1)*, . . . , h.sub.k,m,N.sup.(1)*, where h.sub.k,m,n.sup.(1) is the modified complex channel gain between transmit antenna n of the k-th user and receive antenna m, m=1, . . . , M1. Hence, the modified channel matrix H.sub.km.sup.(1) will be orthogonal as well.

(72) It can then be observed that the expression for the M1 modified received signal vector r.sub.m.sup.(1) in equation (60) is the same as that in equation (57) except that we now have one less interfering terminal. In a similar fashion, we can cancel out the contributions of terminal K1 and obtain M2 modified received signal vectors r.sub.m.sup.(2), m=1, . . . , M2 that do not contain any contributions from terminals K-th and K1. In general, after stage j, where j=1, 2, . . . , K1 contributions from terminals K, K1, . . . , Kj+1 are canceled out and we are left with Mj modified received signal vectors r.sub.m.sup.(j), m=1, . . . , Mj, j=1, 2, . . . , K1 that contain signals due to terminals 1, 2, . . . , Kj only. In this case, we will have

(73) 0 r m ( j ) = .Math. k = 1 K - j H k , m ( j ) .Math. c k + m ( j ) , m = 1 , 2 , .Math. , M - j ( 63 )
where H.sub.k,m.sup.(j) and .sub.m.sup.(j) are given by
r.sub.m.sup.(j)=r.sub.m.sup.(j1)H.sub.kj,m.sup.(j1)(H.sub.Kj,Mj.sup.(j1)).sup.+r.sub.Mj.sup.(j1) m=1,2, . . . Mj(64)
H.sub.k,m.sup.(j)=H.sub.k,m.sup.(j1)H.sub.Kj,m.sup.(j1)(H.sub.Kj,Mj.sup.(j1)).sup.+H.sub.k,Mj.sup.(j1), 1mMj, 1kKj(65)
.sub.m.sup.(j).sub.m.sup.(j1)H.sub.Kj,m.sup.(j1)(H.sub.Kj,Mj.sup.(j1)).sup.+.sub.Mj.sup.(j1), m=1,2, . . . ,Mj(66)

(74) This process is repeated until we are left with modified received signal vectors r.sub.m.sup.(K1), m=1, . . . , MK+1 that contain only contributions due to the first terminal. In this case we will have
r.sub.m.sup.(K1)=H.sub.1,m.sup.(K1).Math.c.sub.1+.sub.m.sup.(K1), m=1,2, . . . ,MK+1(67)
which contains signals due to the first terminal only. Similarly, the modified channel matrix H.sub.1,m.sup.(K1), m=1, 2, . . . , MK+1, will have a similar structure and is also orthogonal. Hence, it is straight forward to see that the ML decoder for signals from the first terminal is given by

(75) c ^ 1 = arg min c ^ 1 C .Math. m = 1 M - K + 1 .Math. r m ( K - 1 ) - H l , m ( K - 1 ) .Math. c ^ 1 .Math. 2 ( 68 )
and the corresponding uncertainty will be given by

(76) 1 = .Math. m = 1 M - K + 1 .Math. r m ( K - 1 ) - H l , m ( K - 1 ) .Math. c ^ 1 .Math. 2 ( 69 )
Similarly, since the modified channel matrices H.sub.1,m.sup.(K1), 1mMK+1 are orthogonal, as before, the decoding rule in (68) will decompose into Q separate rules for decoding c.sub.11, c.sub.12, . . . , c.sub.1Q. We may observe that the basic case for zero-forcing IC and ML decoding that we discussed in detail earlier is a special case of the above approach.

(77) TABLE-US-00005 (, ) = G_ZFDECODE({r.sub.m}.sub.1mM, {H.sub.km}.sub.1kK,1mM) { r.sub.m.sup.(0) = r.sub.m, 1 m M H.sub.k,m.sup.(0) = H.sub.k,m, 1 m M, 1 k K for j = 1 .fwdarw. K 1 M.sub.j = M j, K.sub.j = K j for i = 1 .fwdarw. M.sub.j r.sub.i.sup.(j) = r.sub.i.sup.(j1) H.sub.K.sub.j.sub.t.sup.(j1)(H.sub.K.sub.j.sub.,M.sub.j.sup.(j1)).sup.+r.sub.M.sub.j.sup.(j1) H.sub.k,i.sup.(j) = H.sub.k,i.sup.(j1) H.sub.K.sub.j.sub.,m.sup.(j1)(H.sub.Kj,M.sub.j.sup.(j1)).sup.+H.sub.k,M.sub.j.sup.(j1), 1 k K.sub.j end end c ^ = arg min c ^ C .Math. m = 1 M - K + 1 .Math. r m ( K - 1 ) - H 1 , m ( K - 1 ) .Math. c ^ .Math. 2 = .Math. m = 1 M - K + 1 .Math. r m ( K - 1 ) - H 1 , m ( K - 1 ) .Math. c ^ .Math. 2 }

(78) The above-disclosed technique can be easily implemented within a detector 25 that comprises a stored program general purpose processor. Specifically, a subroutine (c,)=G_ZFDECODE({r.sub.m}.sub.1mM, {H.sub.km}.sub.1kK,.sub.1mM) can be installed which returns the values c, in response to submitted inputs {r.sub.m}.sub.1mM and {H.sub.km}.sub.1kK,.sub.1mM, as shown above.

(79) Minimum Mean-Squared Error IC and ML Decoding Scheme:

(80) The MMSE IC and ML decoding in the general case can be developed in a similar fashion as follows. We recall the received signal vector at the m-th receive antenna in equation (57)

(81) r m = .Math. k = 1 K H k m .Math. c k + m , m = 1 , 2 , .Math. , M ( 70 )
This can be written in a matrix form as in equation (38)
r=H.Math.{tilde over (c)}+n(71)
where r=[r.sub.1.sup.T r.sub.2.sup.T . . . r.sub.M.sup.T].sup.T is a ML1 vector, {tilde over (c)}=[c.sub.1.sup.T c.sub.2.sup.T . . . c.sub.K.sup.T].sup.T is QK1 a vector, n=[.sub.1.sup.T .sub.2.sup.T . . . .sub.M.sup.T].sup.T is a ML1 vector, and

(82) H = [ H 11 H 21 .Math. H K 1 H 12 H 22 .Math. H K 2 .Math. .Math. .Math. H 1 M H 2 M .Math. H K M ] ( 72 )
is the MLQK channel matrix. As before, we redefine the vector r as r=[r.sub.1 r.sub.2 . . . r.sub.ML].sup.T. As before, we assume that we are interested in decoding the symbols transmitted from terminal I c.sub.11, c.sub.12, . . . , c.sub.1Q. As before, when seeking to detect and decode signals c.sub.11, c.sub.12, . . . , c.sub.1Q by minimizing a mean-squared error criterion, the goal is find a linear combination of the received signals such that the mean-squared error in detecting the signals c.sub.11, c.sub.12, . . . , c.sub.1Q is minimized. In general terms, this can be expressed by an error cost function that is to be minimized, such as the function

(83) J ( , ) = .Math. .Math. i = 1 LM i r i - .Math. j = 1 Q j c 1 j .Math. 2 = .Math. .Math. r - .Math. c 1 .Math. 2 ( 73 )
Similarly, as before we can see that one of the .sub.j, 1jQ must be set to 1 or else we get an all zero solution for and . Consider the case where we set .sub.j=1. Hence, in this case, the criteria to be minimized is

(84) J j ( j , j ) = .Math. .Math. i = 1 LM + Q - 1 ji r ji - c 1 j .Math. 2 = .Math. ~ j r ~ j - c 1 j .Math. 2 , 1 j Q ( 74 )
where
{tilde over ()}.sub.j=[.sub.j1,.sub.j12, . . . ,.sub.jLM,.sub.1, . . . ,.sub.j1,.sub.j+1, . . . ,.sub.Q]=[.sub.j.sub.j](75)
{tilde over (r)}.sub.j=[r.sub.j.sup.T c.sub.11 . . . c.sub.1j1 c.sub.1j+1 . . . c.sub.1Q].sup.T(76)
If we follow the same steps as in the basic case, we arrive at the conclusion that

(85) i ( j ) = 0 i = 1 , .Math. Q , i j = 1 i = j ( 77 ) j * = M - 1 h j , 1 j Q ( 78 )
where h.sub.j is the j-th column of the channel matrix H, and

(86) 0 M = HH * + 1 I ,
is an MLML matrix, is the signal to noise ratio, and I is the MLML identity matrix.

(87) In this case, as before, the error in decoding the j-th symbol c.sub.1j will be minimized without any regard to the other symbols. Hence, the MMSE-IC and ML decoder will consist of Q different combiners, one for each symbol. It should be clear now that the MMSI-IC solution for the general case is a straight forward extension to the basic case shown earlier. The MMSE-IC solution for the general case can be implemented using the subroutine G_MMSE.DECODE shown below.

(88) TABLE-US-00006 (, ) = G_MMSEDECODE({r.sub.m}.sub.1mM, {H.sub.km}.sub.1kK,1mM, ) { r = [r.sub.1.sup.T r.sub.2.sup.T ... r.sub.M.sup.T].sup.T H = [ H 11 H 21 .Math. H K 1 H 12 H 22 .Math. H K 2 .Math. .Math. .Math. H 1 M H 2 M .Math. H KM ] M = HH * + 1 I for j =1 .fwdarw. Q h.sub.j = j-th column of H .sub.j.sup.* = M.sup.1h.sub.j c j = arg min c ^ j C .Math. j * r - c ^ j .Math. 2 .sub.j = ||.sub.j.sup.*r .sub.j||.sup.2 end = [c.sub.1 c.sub.2 ... c.sub.Q].sup.T = .Math. j = 1 Q j }