Systems and methods for detecting data in a received multiple-input-multiple-output (MIMO) signal
09929884 ยท 2018-03-27
Assignee
Inventors
- B Hari Ram (Chennai, IN)
- Lokesh Sundaramurthy Satrasala (Bangalore, IN)
- Sri Varsha Rottela (Andhra Pradesh, IN)
Cpc classification
H04L25/067
ELECTRICITY
H04L2025/03426
ELECTRICITY
H04L1/0054
ELECTRICITY
International classification
H04L25/06
ELECTRICITY
H04L1/00
ELECTRICITY
Abstract
Systems and methods for detecting data in a received multiple-input-multiple-output signal are provided. N signals are received from N antennas, with M being greater than or equal to three. The N signals form a vector y and are associated with M sets of data values, where the M sets of data values form a vector x. A channel matrix (H) is estimated, and a QR decomposition of the channel matrix is performed, such that H=QR. The vector y is transformed into a vector z according to z=Q.sup.Hy. The R matrix and the rotated signal vector z are transformed such that one or more elements of the R matrix having complex number values are set equal to zero. Distance values are calculated using the transformed vector z and the vector x. Log likelihood ratio (LLR) values are calculated based on the distance values.
Claims
1. A method of detecting data in a received multiple-input-multiple-output (MIMO) signal, the method comprising: receiving, via a transmission channel, a first signal (y1), a second signal (y2), and a third signal (y3) from first, second, and third antennas, respectively, wherein the received signals are associated with first data values (x1), second data values (x2), and third data values (x3); forming the first signal, the second signal, and the third signal into a received signal vector y; forming the first data values, the second data values, and the third data values into a vector x; estimating a channel matrix (H) representing effects of the transmission channel on the first data values, the second data values, and the third data values; performing a QR decomposition of the channel matrix, such that H=QR, wherein Q matrix is a unitary matrix and R matrix is an upper triangulaR matrix that includes non-zero elements above a diagonal of the R matrix; transforming the received signal vector y into a rotated signal vector z according to z=Q.sup.Hy; transforming the R matrix and the rotated signal vector z by steps including setting a first matrix element from among the above-diagonal non-zero elements to zero, adjusting a second matrix element from among the above-diagonal non-zero elements, and adjusting an element of the vector z; calculating distance values using the transformed vector z and the vector x; and calculating one or more log likelihood ratio (LLR) values based on the distance values.
2. The method of claim 1, wherein prior to the transforming of the R matrix and the rotated signal vector z, the R matrix is
3. The method of claim 2, wherein the method further comprises: calculating a first product to determine z1 according to
4. The method of claim 3, wherein the calculating of the first, second, and third products includes performing one or more coordinate rotational digital computer (CORDIC) computations.
5. The method of claim 2, wherein one or more of the distance values are calculated according to
T1+T2+T3=|z1r.sub.11x1r.sub.13x3|.sup.2+|z2r.sub.22x2r.sub.23x3|.sup.2+|z3r.sub.33x3|.sup.2 wherein T1+T2+T3 corresponds to the one or more distance values, and x1, x2 and x3 are respectively the first, second and third data values.
6. The method of claim 5, further comprising: determining an x1 value that minimizes the T1 term based on
7. A method of detecting data in a received multiple-input-multiple-output (MIMO) signal, the method comprising: receiving, via a transmission channel, N signals from M respective spatial streams, the received signals being associated with M sets of data values, and M being greater than or equal to three, wherein N is number of signals and M is number of data values; forming the N signals into a received signal vector y; forming the M sets of data values into a vector x; estimating a channel matrix (H) representing effects of the transmission channel on the M sets of data values; performing a QR decomposition of the channel matrix, such that H=QR, wherein Q matrix is a unitary matrix and R matrix is an upper triangulaR matrix that includes non-zero elements above a diagonal of the R matrix; transforming the received signal vector y into a rotated signal vector z according to z=Q.sup.Hy; transforming the R matrix and the rotated signal vector z by steps including setting a first matrix element from among the above-diagonal non-zero elements to zero, adjusting a second matrix element from among the above-diagonal non-zero elements, and adjusting an element of the vector z; calculating distance values using the transformed vector z and the vector x; and calculating one or more log likelihood ratio (LLR) values based on the distance values.
8. The method of claim 7, wherein the setting corresponds to setting one or more non-diagonal elements r.sub.ij,j>i of the R matrix equal to zero based on calculating, for a row i of the R matrix, a product
9. The method of claim 8, wherein the calculating of the product includes performing one or more CORDIC computations.
10. The method of claim 7, wherein the first matrix element is in the 12 position of the R matrix.
11. The method of claim 7, wherein the second matrix element is adjusted as a function of (i) a pre-adjusted value of the second matrix element and (ii) a value of the first matrix element prior to the first matrix element being set to zero.
12. The method of claim 11, wherein the element of the vector z is adjusted as a function of a pre-adjusted value of the vector z and (ii) a value of the first matrix element prior to the first matrix element being set to zero.
13. A method of detecting data in a received multiple-input-multiple-output (MIMO) signal, the method comprising: receiving, via a transmission channel, a first signal (y1), a second signal (y2), and a third signal (y3) from first, second, and third antennas, respectively, wherein the received signals are associated with first data values (x1), second data values (x2), and third data values (x3); estimating a channel matrix H representing effects of the transmission channel on the first data values, the second data values, and the third data values; performing a QR decomposition of the channel matrix; after performing the QR decomposition, calculating first log likelihood ratio (LLR) values using a first algorithm; after performing the QR decomposition, calculating second LLR values using a second algorithm; and combining the first and second LLR values; wherein the calculating of the first LLR values comprises (i) performing a QR decomposition of the channel matrix [h1 h2 h3] using a first upper triangulaR matrix, and (ii) computing the first LLR values based on an expression
14. The method of claim 13, wherein the combining of the first and second LLR values utilizes weights for the respective first and second LLR values.
15. A method of detecting data in a received multiple-input-multiple-output (MIMO) signal, the method comprising: receiving, via a transmission channel, a first signal (y1) and a second signal (y2) from first and second antennas, wherein the received signals are associated with first data values (x1) and second data values (x2); forming the first signal and the second signal into a received signal vector y; forming the first data values and the second data values into a vector x; estimating a channel matrix (H) representing effects of the transmission channel on the first data values and the second data values; performing a QR decomposition of the channel matrix, such that H=QR, wherein Q matrix is a first unitary matrix and R matrix is an upper triangulaR matrix, and the R matrix includes one or more complex number values and one or more real number values; transforming the received signal vector y into a rotated signal vector z according to z=Q.sup.Hy; calculating distance values using the rotated signal vector z and the vector x according to a distance metric, the distance metric including at least first and second terms, wherein a variable in the first term is permitted to have a different value than the same variable in the second term; and calculating one or more log likelihood ratio (LLR) values based on the distance values; transforming the R matrix and the rotated signal vector z with a second unitary matrix such that (i) an element of the R matrix having a complex number value prior to the transforming has a real number value after the transforming, and (ii) an element of the R matrix having a real number value prior to the transforming has a complex number value after the transforming; wherein: prior to the transforming of the R matrix
=(|z.sub.2Rr.sub.2,2x.sub.2R|.sup.2+|z.sub.1Rre{r.sub.1,1x.sub.1}r.sub.1,2x.sub.2R|.sup.2)+(|z.sub.2Ir.sub.2,2x.sub.2I|.sup.2+|z.sub.1Iim{r.sub.1,1x.sub.1}r.sub.1,2x.sub.2I|.sup.2), the terms z.sub.1R, z.sub.2R, x.sub.2R represent real number values; the terms z.sub.1I, z.sub.2I, x.sub.2I represent imaginary number values; the variable x1 in the first term (|z.sub.2Rr.sub.2,2x.sub.2R|.sup.2+|z.sub.1Rre{r.sub.1,1x.sub.1}r.sub.1,2x.sub.2R|.sup.2) is permitted to have a different value than the same variable x1 in the second term (|z.sub.2Ir.sub.2,2x.sub.2I|.sup.2+|z.sub.1Iim{r.sub.1,1x.sub.1}r.sub.1,2x.sub.2I|.sup.2).
Description
BRIEF DESCRIPTION OF THE FIGURES
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
DETAILED DESCRIPTION
(10)
(11) In the example illustrated in
(12) The MIMO equalizer 116 utilizes a matrix decoder 126 to perform distance and LLR calculations. As described below, in some embodiments, the matrix decoder 126 implements a zero-forcing, maximum-likelihood (ZF-ML) algorithm to perform distance and LLR calculations with a lower complexity as compared to maximum likelihood (ML) techniques. The ZF-ML algorithm utilized by the matrix decoder 126 offers a high degree of accuracy while having a lower complexity as compared to the ML techniques, potentially offering higher throughput and large savings in required hardware, power consumed, and computation time. The ZF-ML algorithm and other algorithms described below (e.g., an LLR combining algorithm, a relaxed distance metric two-stream maximum-likelihood algorithm, etc.) enable a lower power consumption as compared to ML techniques but have a better performance than algorithms such as the conventional zero-forcing algorithm. The algorithms used by the matrix decoder 126 of the present disclosure thus balance complexity and performance.
(13) The matrix decoder 126 receives, via the three antennas 108, a first signal, a second signal, and a third signal transmitted through the channel 106. The matrix decoder 126 utilizes one or more low complexity algorithms (as described below) and computes LLR values based on the received signals. Specifically, the received first, second, and third signals may be represented by the equation y=Hx+n, where y represents the received signals at the MIMO receiver 110, x represents the data values of the symbols in the spatial streams transmitted by the MIMO transmitter 102, H is a channel matrix representing combined effects of the transmission channel 106 and spatial mapping of the MIMO transmitter 102 on the transmitted signal, and n represents noise. In the three spatial stream case, y is a 31 vector ([y.sub.1, y.sub.2, y.sub.3].sup.T), x is a 31 vector ([x.sub.1, x.sub.2, x.sub.3].sup.T), H is a 33 vector
(14)
and n is a 31 vector ([n.sub.1, n.sub.2, n.sub.3].sup.T). Thus, a 33 MIMO system with the three spatial streams may be described by the following equation:
(15)
Assuming an additive white Gaussian noise (AWGN) model and perfect channel estimation, the equalizer 124 seeks optimal estimates of symbols x.sub.1, x.sub.2, and x.sub.3 so as to minimize a Euclidian distance:
(16)
(17) An exact solution corresponds to the triplet of symbols (x.sub.1, x.sub.2, x.sub.3) that minimizes the Euclidean distance above by performing an exhaustive, brute-force search of the 3-dimensional space. For higher-order constellations, such as 64-QAM or 256-QAM, this involves a search over 64.sup.3 or 256.sup.3 symbols in parallel for each tone. This leads to prohibitive complexity, as there could be as many as 256 tones (or OFDM subcarriers) for 802.11ac that need to be processed simultaneously. As noted above, the MIMO equalizer 116 of
(18)
(19)
A similar QR decomposition procedure is performed at 170, 196 using a permutated channel matrix, as described in greater detail below. At 168 and 194, the channel matrix H 164 is multiplied by a permutation matrix. In the current example including three spatial streams, the permutation matrices used at 168 and 194 may be, for example,
(20)
such that the columns of the channel matrix H are swapped when multiplied by the permutation matrix. In a modified version of the block diagram 160 of
(21) The matrix decoder 162 executes over three paths 172, 174, 192 that may operate in series or in parallel. The first path 172 calculates LLR values 176 for data values associated with third stream, the second path 174 calculates LLR values 178 for data values associated with a second stream, and the third path 192 calculates LLR values 204 for data values associated with a first stream. These LLR values 176, 178, 204 may be combined and decoded as described above with reference to
(22) The first path 172 begins at a matrix transformer 180. In the three spatial stream case, the matrix transformer 180 receives the first, second, and third signals as a 31 vector ([(y.sub.1, y.sub.2, y.sub.3].sup.T). The matrix transformer 180 transforms the y vector according to the relationship z=Q.sup.Hy, resulting in a 31 z vector ([z.sub.1, z.sub.2, z.sub.3].sup.T). Specifically, in the matrix transformer 180, the relationship y=Hx+n may be multiplied by Q.sup.H to obtain z=Q.sup.Hy=Rx+Q.sup.Hn, which is expanded to
(23)
In the three spatial stream system, each data symbol transmitted, x.sub.i (where i=1 corresponds to data transmitted on a first spatial stream, i=2 corresponds to data transmitted on a second spatial stream, and i=3 corresponds to data transmitted on a third spatial stream) maps to n bits {b.sub.1.sup.(i), b.sub.2.sup.(i), . . . , b.sub.n.sup.(i)}. K=2.sup.n is the alphabet size of the underlying modulation, such as binary phase shift keying (BPSK), quadrature amplitude modulation (QAM), etc.
(24) In ML approaches, after performing the QR decomposition at 166 and after transforming the received signal vector y into a rotated signal vector z at 180, a minimum distance value is calculated for each of the K possible values of x3. In a system using n=6 bits, the alphabet size K is equal to 64. In the ML approaches, the minimum distance is calculated according to a formula:
(25)
for each possible x.sub.3 value. Specifically, x.sub.1 and x.sub.2 values that minimize the distance T.sub.1+T.sub.2+T.sub.3 are determined for each possible x.sub.3 value. However, the complexity of computing the T.sub.1 term is high, and the computation may require a sliced value x.sub.2, thus increasing the complexity of the calculation.
(26) In the ZF-ML algorithm of the present disclosure, a complexity of the distance calculation is reduced by transforming the R matrix and the rotated signal vector z such that one or more elements of the R matrix having complex number values are set equal to zero. Specifically, in the ZF-ML algorithm of the present disclosure, to decrease the computational complexity and to avoid having to wait for the sliced value of x.sub.2, the R matrix and the rotated signal vector z are transformed such that an r.sub.12 element of the R matrix is set equal to zero (i.e., r.sub.12=0). Prior to the transformation, the r.sub.12 element is a complex number value, which results in increased complexity in calculating the T.sub.1 term in Equation 1. Thus, by transforming the R matrix and the rotated signal vector z in a manner that eliminates the complex number value r.sub.12 term from the distance calculation, as described below, a complexity of the distance calculation is reduced.
(27) The transforming of the R matrix and the vector z are shown in a block 181 of
(28)
and the rotated signal vector z is [z.sub.1, z.sub.2, z.sub.3]. In embodiments, after the transforming of the R matrix and the rotated signal vector z, the transformed R matrix is
(29)
and the transformed vector z is [z.sub.1, z.sub.2, z.sub.3]. As can be seen in the transformed R matrix, r.sub.12 is set equal to zero as a result of the transforming. To achieve this, multiplication operations are performed as follows, to calculate z.sub.1, r.sub.11, and r.sub.13, respectively:
(30)
(31) In embodiments, the above multiplication operations are performed using one or more coordinate rotational digital computer (CORDIC) computations. To illustrate the use of such CORDIC computations, reference is made to
(32)
If
(33)
can be treated as cos(), then
(34)
Now, Equation 2 is Row.sub.1(cos()Row.sub.1sin()e.sup.i Row.sub.2), where =r.sub.12. Accordingly, in embodiments, two angles are extracted and applied as per Equation 2 on the other elements.
(35) In embodiments, the extraction of the two angles and the application of the two angles on other elements is performed using CORDIC computations, as shown in
(36) With reference again to
(37)
and the transformed vector z [z.sub.1, z.sub.2, z.sub.3], a minimum distance value is calculated at 182 for each of the K possible values of x.sub.3. The minimum distance calculated at 182 is computed according to the following formula, where R represents the transformed R matrix and z represents the transformed vector z:
zRx=T.sub.1+T.sub.2+T.sub.3=|z.sub.1e.sup.11x.sub.1r.sub.13x.sub.3|.sup.2+|z.sub.2r.sub.22x.sub.2r.sub.23x.sub.3|.sup.2+|z.sub.3r.sub.33x.sub.3|.sup.2,(Equation 3)
for each possible x.sub.3 value. As seen above, the complexity of calculating the T.sub.1 term is decreased due to the elimination of the complex number value r.sub.12 (i.e., the T.sub.1 term is not dependent on x.sub.2).
(38) It is noted that in the distance metric calculated according to Equation 3 above, the T.sub.1 and T.sub.2 terms have the same complexity, and in embodiments where the terms of the distance metric are divided by r.sub.11 (e.g., as illustrated in
(39) When distance values for all possible values of x.sub.3 are calculated, LLR values are calculated at 184 for the data associated with the third spatial stream, x.sub.3. The calculated LLR values are output as shown at 176. The LLR value for a bit b.sub.k.sup.(i) given a received vector y and a known channel matrix H may be represented as:
(40)
where x.sub.k,i is the set of all possible x vectors with b.sub.k.sup.(i)=1, and
(41)
(42) A similar process is followed along the second and first paths 174, 192 to calculate LLR values for data associated with the second spatial stream (x.sub.2) and the first spatial stream (x.sub.1), respectively. At 168, the channel matrix H 164 is permutated to swap the second and third columns of the channel matrix H 164 prior to QR decomposition. Swapping the columns of H in this manner causes the value x.sub.2 to be pushed down to the bottom of the x vector ([x.sub.1 x.sub.2 x.sub.3].sup.T). Similarly, at 194, the channel matrix H 164 is permutated to swap the first and third columns of the channel matrix H 164 prior to QR decomposition. Swapping the columns of H in this manner causes the value x.sub.1 to be pushed down to the bottom of the x vector ([x.sub.1 x.sub.2 x.sub.3].sup.T). Following permutation of the channel matrix H 164 at 168 and 194, QR decompositions are performed at 170 and 196 on the permutated channel matrices. Note that similar permutations can also be performed on the columns of R matrix from the QR at 170 or 196 and then perform QR of this permuted R matrix to obtain the LLR values of data associated with second and first spatial streams
(43) The second path 174 begins at a second matrix transformer 186. In the three spatial stream case, the matrix transformer 186 receives the first, second, and third spatial stream signals as a 31 vector ([y.sub.1, y.sub.2, y.sub.3].sup.T). The second matrix transformer 186 transforms the received y vector according to the relationship z=Q.sup.Hy, resulting in a 31 z vector ([z.sub.1, z.sub.2, z.sub.3].sup.T). Following the z transformation, at 187, the R matrix and z vector are transformed in a similar manner as was described above with reference to step 181. Following these transformations, a minimum distance value is calculated at 188 for each of the K possible values of x.sub.2 in a similar manner as was described with respect to x.sub.3 at 182. The minimum distance value calculated at 188 is calculated according to the formula:
zRx=T.sub.1+T.sub.2+T.sub.3=|z.sub.1r.sub.11x.sub.1r.sub.13x.sub.2|.sup.2+|z.sub.2r.sub.22x.sub.3r.sub.23x.sub.2|.sup.2+|z.sub.3r.sub.33x.sub.2|.sup.2.
(44) When distance values for all possible values of x.sub.2 are calculated, LLR values are calculated at 190 for the data associated with the second spatial stream, x.sub.2. The calculated LLR values are output as shown at 178.
(45) The third path 192 begins at a third matrix transformer 198. In the three spatial stream case, the matrix transformer 198 receives the first, second, and third spatial stream signals as a 31 vector ([y.sub.1, y.sub.2, y.sub.3].sup.T). The third matrix transformer 198 transforms the received y vector according to the relationship z=Q.sup.Hy, resulting in a 31 z vector ([z.sub.1, z.sub.2, z.sub.3].sup.T). Following the z transformation, at 199, the R matrix and z vector are transformed in a similar manner as was described above with reference to steps 181 and 187. Following these transformations, a minimum distance value is calculated at 200 for each of the K possible values of x.sub.1 in a similar manner as was described with respect to x.sub.3 and x.sub.2. The minimum distance value calculated at 200 is calculated according to the formula:
zRx=T.sub.1+T.sub.2+T.sub.3=|z.sub.1r.sub.11x.sub.2r.sub.13x.sub.1|.sup.2+|z.sub.2r.sub.22x.sub.3r.sub.23x.sub.1|.sup.2+|z.sub.3r.sub.33x.sub.1|.sup.2.
When distance values for all possible values of x.sub.1 are calculated, LLR values are calculated at 202 for the data associated with the first spatial stream, x.sub.1. The calculated LLR values are output as shown at 204. The calculated LLR values 176, 178, 204 for the x.sub.3, x.sub.2, and x.sub.1 spatial streams are passed to a decoder as soft information, in some embodiments.
(46) Although the ZF-ML algorithm is described above in terms of an example using three spatial streams, this algorithm is applicable to systems having a number of spatial streams that is greater than or equal to three. To illustrate this, consider an example utilizing M spatial streams, where M is greater than or equal to three. In this example, a received signal model is as follows:
(47)
To obtain LLR for x.sub.M, a QR decomposition is applied on [h.sub.1h.sub.2 . . . h.sub.M], resulting in
(48)
(49) According to the ZF-ML algorithm of the present disclosure, to reduce the complexity of the computation, any of the non-diagonal element r.sub.ij,j>i are set equal to zero. The r.sub.ij,j>i can be set equal to zero using an operation
(50)
which can be implemented using CORDIC computations similar to those described above with reference to
(51)
(52)
where the value z results from the relationship z=Q.sup.Hy and r.sub.11 is a value from the transformed matrix
(53)
and where a QR decomposition of a channel matrix H is performed according to the relationship H=QR. The value is a constellation-specific scaling factor. The received signal y of block 1 is received at a block 2 that is used to determine a T.sub.3 value equal to
(54)
In embodiments, in determining the T.sub.3 value in block 2, the x.sub.3 value is fixed. For example, the x.sub.3 value is initially fixed to a first possible value of x.sub.3, and using the fixed first possible value of x.sub.3, x.sub.2 and x.sub.1 values that minimize the T.sub.2 and T.sub.1 terms, respectively, are determined.
(55) Continuing in
(56)
of block 3 is used to determine the x.sub.2 value that minimizes the T.sub.2 term. The x.sub.2 value is stored in block 4. For the fixed x.sub.3 value, a term
(57)
of block 5 is used to determine the x.sub.1 value that minimizes the T.sub.1 term. The x.sub.1 value is stored in block 6. As can be seen in the figure, the term
(58)
of block 5 does not include the r.sub.12 term. As described above, using the ZF-ML algorithm described herein, the r.sub.12 term is eliminated from the distance calculation, thus resulting in reduced complexity. To achieve the r.sub.12=0, a pre-processing block 302 is utilized in some embodiments. The R matrix and the z vector may be considered inputs to the system of
(59) It is noted that according to the ZF-ML algorithm described herein, the output of block 4 (i.e., the x.sub.2 value) is not required for block 5. Thus the ZF-ML algorithm relaxes a time constraint because blocks 3 and 4, and blocks 5 and 6 can be computed in parallel along with block 2. Thus, block 7 receives x.sub.1, x.sub.2, and x.sub.3 at a same time (or approximately the same time), in some embodiments.
(60) In block 7, a distance value equal to T.sub.1+T.sub.2+T.sub.3 is calculated based on the x.sub.3, x.sub.2, and x.sub.1 values. The T.sub.1+T.sub.2+T.sub.3 distance value may be calculated according to Equation 3, above, for example. In embodiments, the steps described above are repeated in blocks 1-7 for all possible values of x.sub.3 to generate K distance values. The K distance values may be received at a block 8, where the K distance values are further compared and selected to obtain LLRs for the bits corresponding to x.sub.3.
(61) Although computation of LLRs corresponding to bits in x.sub.3 is illustrated in
(62) The ZF-ML algorithm described above with reference to
(63) As an example of the LLR combining technique, two LLR values obtained via the 2ML detection scheme may be combined with different orderings for three stream detection, for instance. Other combinations of detection schemes can be used under the LLR combining technique (e.g., combinations of 3ML/2ML and/or other detection schemes like ZF-ML, etc.). The combining of LLR values obtained via different detection schemes may enable better performance as compared to using only one detection scheme (e.g., as compared to only using the ZF-ML detection scheme, as compared to only using the 2ML detection scheme, etc.). Further, when multiple detection schemes having a relatively low complexity (e.g., the ZF-ML detection scheme described herein, the 2ML detection scheme described in U.S. Pat. No. 8,903,025, etc.) are combined, the complexity may be less than that of a relatively high complexity detection scheme, while still offering better performance as compared to using only a single low-complexity detection scheme.
(64) In embodiments, the LLR combining technique uses weighted combining. For instance, in embodiments, depending on a detection scheme used, a weight can be assigned to each of the LLR values when combining. The weights can be determined in various ways. For instance, in some embodiments, the weight is fixed across different signal-to-noise (SNR) or signal-to-interference-plus-noise ratio (SINR) values or dynamically determined based on bit error rate (BER) or mutual information (MI) bounds for the detection used at that particular SNR/SINR value. Further, in some embodiments, the LLR combining technique can be a linear combining with equal weights for all detection schemes.
(65) In an embodiment of the LLR combining technique, the technique utilizes 2ML in a three stream detection scenario. In this embodiment, a received signal model is
(66)
To obtain LLR for x.sub.3, a QR decomposition technique is applied on [h.sub.1 h.sub.2 h.sub.3], resulting in
(67)
According to this embodiment of the LLR combining technique, the 2ML algorithm described in U.S. Pat. No. 8,903,025 is used for
(68)
A first set of LLR values for x.sub.3 are calculated based on this expression for y.sub.1.
(69) The QR decomposition technique is further applied on [h.sub.2 h.sub.1 h.sub.3] (i.e., interchanged first and second columns), resulting in
(70)
According to this embodiment of the LLR combining technique, the 2ML algorithm is used for
(71)
A second set of LLR values for x.sub.3 are calculated based on this expression for y.sub.2. The first and second sets of LLR values are combined (e.g., summed) to obtain final LLR values for x.sub.3. Weights may or may not be used in the combining of the first and second sets of LLR values. LLR values for x.sub.1 are obtained in a similar manner with the channel matrix for the first set being [h.sub.2 h.sub.3 h.sub.1] and the channel matrix for the second set being [h.sub.3 h.sub.2 h.sub.1]. LLR values for x.sub.2 are obtained in a similar manner with the channel matrix for the first set being [h.sub.1 h.sub.3 h.sub.2] and the channel matrix for the second set being [h.sub.3 h.sub.1 h.sub.2].
(72) A relaxed-metric two-stream maximum-likelihood (ML) algorithm described below provides additional other embodiments for performing distance and LLR calculations in a manner that balances complexity and performance. Specifically, the relaxed-metric two-stream ML algorithm is applicable in systems with two spatial streams, where a received signal model is
(73)
In the relaxed-metric two-stream ML algorithm, a QR decomposition is applied on [h.sub.1 h.sub.2], resulting in
(74)
A distance metric used in this embodiment is as follows:
D=zRx.sup.2=|z.sub.1r.sub.11x.sub.1r.sub.12x.sub.2|.sup.2+|z.sub.2r.sub.22x.sub.2|.sup.2=T.sub.1+T.sub.2.
In the R matrix above, r.sub.11 and r.sub.22 are real number values, and r.sub.12 is a complex number value. The T.sub.1 term of the above distance metric includes the r.sub.12 complex number value and thus has a relatively high complexity.
(75) Using the relaxed-metric two-stream ML algorithm, a complexity of the T.sub.1 term is reduced by changing the r.sub.12 term from the complex number value to a real number value. In embodiments, this is achieved by transforming the R matrix and the z vector with a unitary matrix. For instance, a unitary matrix
(76)
is used in embodiments to transform the vector z and the R matrix according to
(77)
Since A is a unitary matrix, the distance metric remains the same. The transforming of the vector z and the R matrix in this manner results in r.sub.12 and r.sub.22 being real number values and r.sub.11 being a complex number value. Accordingly, it can be seen that with this transforming, (i) an element of the R matrix having a complex number value prior to the transforming (e.g., r.sub.12) has a real number value after the transforming, and (ii) an element of the R matrix having a real number value prior to the transforming (e.g., r.sub.11) has a complex number value after the transforming.
(78) Continuing the relaxed-metric two-stream ML algorithm, in the following, the notations z and R are replaced by z and R, respectively:
(79)
where terms z.sub.1R, z.sub.2R, x.sub.2R represent real number values and terms z.sub.1I, z.sub.2I, x.sub.2I represent imaginary number values. In the above, even though the first term has only the x.sub.2R, and the second term has only the x.sub.2I, the terms cannot be separated because of the common r.sub.1,1x.sub.1. In the relaxed-metric two-stream ML algorithm, the x.sub.1 variable is relaxed, such that x.sub.1 in the first term and the second term are permitted to be different:
D=zRx.sup.2=(|z.sub.2Rr.sub.2,2x.sub.2R|.sup.2+|z.sub.1Rre{r.sub.1,1x.sub.1}r.sub.1,2x.sub.2R|.sup.2)+(|z.sub.2Ir.sub.2,2x.sub.2I|.sup.2+|z.sub.1Iim{r.sub.1,1x.sub.1}r.sub.1,2x.sub.2I|.sup.2).
Thus, the following is true:
{x.sub.2R,x.sub.2I}=arg min.sub.x.sub.
x.sub.2R=arg min.sub.x.sub.
x.sub.2I=arg min.sub.x.sub.
(80) As is evident from the above discussion, in the relaxed-metric two-stream ML algorithm, each distance metric is a sum of only two terms. This is in contrast to ML approaches having distance metrics comprising sums of a greater number of terms (e.g., each distance metric being a sum of four terms, etc.). Further, in the relaxed-metric two-stream ML algorithm, the set of values for re{r.sub.1,1x.sub.1} and im{r.sub.1,1x.sub.1} is the same. This set of values is computed once and used in the comparing and selecting block to find re{r.sub.1,1x.sub.1} and im{r.sub.1,1x.sub.1}. In embodiments, the relaxed-metric two-stream ML algorithm is not interested in x.sub.1, and instead is interested in re{r.sub.1,1x.sub.1} and im{r.sub.1,1x.sub.1}. In embodiments, all possible combinations of (re{r.sub.1,1x.sub.1}, im{r.sub.1,1x.sub.1}) does not exist, but the algorithm achieves a similar result considering all combinations.
(81)
(82)
(83)
(84)
(85) The device 480 may communicate with mass data storage 490 that stores data in a nonvolatile manner. Mass data storage 490 may include optical or magnetic storage devices, for example hard disk drives HDD or DVD drives. The device 480 may be connected to memory 494 such as RAM, ROM, low latency nonvolatile memory such as flash memory, or other suitable electronic data storage. The device 480 may also support connections with a WLAN via the WLAN network interface 496.
(86) This written description uses examples to disclose the invention, including the best mode, and also to enable a person skilled in the art to make and use the invention. It should be noted that the systems and methods described herein may be equally applicable to other frequency modulation encoding schemes. The patentable scope of the invention may include other examples.
(87) It should be understood that as used in the description herein and throughout the claims that follow, the meaning of a, an, and the includes plural reference unless the context clearly dictates otherwise. Also, as used in the description herein and throughout the claims that follow, the meaning of in includes in and on unless the context clearly dictates otherwise. Further, as used in the description herein and throughout the claims that follow, the meaning of each does not require each and every unless the context clearly dictates otherwise. Finally, as used in the description herein and throughout the claims that follow, the meanings of and and or include both the conjunctive and disjunctive and may be used interchangeably unless the context expressly dictates otherwise; the phrase exclusive of may be used to indicate situations where only the disjunctive meaning may apply.