Abstract:
A method includes the steps of: i) listing out all possibilities for first symbol of a two stream signal; ii) determining a second symbol of the two stream signal for each said first symbol listed out, iii) evaluating a metric for each said first symbol and second symbol pair, iv) determining the exact maximum log likelihood ratio for all bits associated with said first symbol using said metrics, v) decoding a codeword- 1  using the maximum log likelihood ratios, vi) re-encoding said codeword- 1 , vii) modulating said re-encoded codeword- 1 , viii) subtracting said modulated re-encoded codeword- 1  from said two stream signal, ix) determining metrics for all possibilities for second symbol in the signal obtained in viii, x) determining the maximum log likelihood ratios for all bits associated with second symbol, and xi) decoding said codeword- 2  using the maximum log likelihood ratios for all bits associated with said second symbol.

Description:
[0001]    This application claims the benefit of U.S. Provisional Application No. 60/826,119, entitled “Novel two Stream Receivers For MIMO systems and their Extensions”, filed on Sep. 19, 2006, the contents of which is incorporated by reference herein. 
     
     BACKGROUND OF THE INVENTION 
       [0002]    The present invention relates generally to mobile communications, and, more particularly, to two-stream receivers for multiple-input multiple-output MIMO systems and their extensions. 
         [0003]    In order to meet the ambitious spectral efficiency targets set for Evolved-UMTS Terrestrial Radio Access (EUTRA), low-latency and low complexity receivers are necessary. Such receivers are particularly needed at the user equipment (UE) where the complexity constraints are much more stringent. The most important scenario in the multiple antenna downlink system involves UEs with two antennas, where the base-station or the Node-B transmits two encoded streams to a scheduled UE. 
         [0004]    A known brute force maximum likelihood ML reception method  10  for two streams, depicted in  FIG. 1 , involves listing all possible pairs for symbols  1  and  2   11 , evaluating the metric for each pair  12 , using the metrics to determine the exact max-log LLRs (maximum log likelihood ratios) for all the bits 13 and decoding the codeword(s) using the computing LLRs  14 . Although the brute force ML method provides optimal demodulation it is highly complex. 
         [0005]    The main competing demodulators to the invention are the Deterministic Sequential Monte-Carlo (D-SMC) two stream reception based receiver (another promising low-complexity receiver), shown in  FIG. 2 , and the successive interference cancellation SIC receiver, shown in  FIG. 3 . 
         [0006]    Complexity reduction is achieved with the D-SMC method by computing the soft output for each coded bit over only a reduced set of hypotheses. The price paid for this complexity reduction is that the D-SMC suffers from a problem, usually referred to as the “missing candidate problem”, in that the hypotheses (or candidates) necessary for computing the soft outputs for some of the bits may not be present in the reduced set. This missing candidate problem can cause significant degradation in the performance particularly if the reduced set is relatively small compared to the set of all hypotheses. Heuristic techniques to alleviate this problem in the D-SMC have also been proposed but such techniques require a lot of system or scenario specific fine tuning and may not work well under across all conditions. 
         [0007]    Referring again to  FIG. 2 , the D-SMC method  20  involves listing out a subset of possible pairs of symbols  1  and  2  for the two streams received  21 , evaluating the metric for each pair  22 , using the metrics to determine the approximate max-log LLRs for all bits 23 and decoding the codeword(s) using the computed LLRs  24 . Although the D-SMC reception method has tunable complexity, it also has sub-optimal demodulation due to “missing” candidate problem. 
         [0008]    In contrast to the D-SMC reception method, the SIC receiver is a sequential receiver where one stream is first decoded and subtracted from the received signal before decoding the second stream. The soft output for the first stream is obtained after assuming the second stream to be a Gaussian interferer, which can lead to performance degradation. 
         [0009]    Referring again to the  FIG. 3 , the successive interference cancellation reception method  30  involves suppressing the contribution of symbol- 2  via MMSE filtering  31 , evaluating the metric for all possibilities of symbol- 1   32 , using the metrics to determine the max-log LLRs for all bits associated with symbol- 1   33 , decoding the codeword- 1  using the computed LLRs  34 , re-encoding the codeword which is then modulated and subtracted from the received signal  35 , listing out all possibilities for symbol- 2  and computing the metrics  36 , using the metrics to determine the max-log LLRs for all bits associated with symbol- 2   37 , and then decoding codeword- 2   38 . 
         [0010]    Accordingly, there is a need for two-stream receivers that are eminently suitable for receivers with low-latency and low complexity necessary to meet the ambitious spectral efficiency targets set for Evolved-UMTS Terrestrial Radio Access (EUTRA). 
       SUMMARY OF THE INVENTION 
       [0011]    In accordance with the invention, a method includes the steps of: i) listing out all possibilities for first symbol of a two stream signal; ii) determining a second symbol of the two stream signal for each said first symbol listed out, iii) evaluating a metric for each said first symbol and second symbol pair, iv) determining the exact maximum log likelihood ratio for all bits associated with said first symbol using said metrics, v) decoding the first codeword (codeword- 1 ) using the computed log likelihood ratios, vi) re-encoding said codeword- 1 , vii) modulating said re-encoded codeword- 1  to re-construct the first stream, viii) subtracting said modulated and re-encoded codeword- 1  from said two stream received signal, ix) determining metrics for all possibilities for second symbol in the signal obtained above, x) determining the maximum log likelihood ratios for all bits associated with second symbol, and xi) decoding said codeword- 2  using the computed log likelihood ratios LLRs for all bits associated with said second symbol. 
         [0012]    In another aspect of the invention, a method includes the steps of: i) listing out all possibilities for first symbol of a two stream signal; ii) determining a second symbol of the two stream signal for each said first symbol listed out, iii) evaluating a metric for each said first symbol and second symbol pair, iv) determining the exact maximum log likelihood ratio for all bits associated with said first symbol using said metrics, v) decoding the first codeword (codeword- 1 ) using the computed log likelihood ratios, vi) conducting a cyclic redundancy check (CRC) on the said decoded codeword- 1 , vii) In case the CRC is true, re-encoding said codeword- 1 , vii) modulating said re-encoded codeword- 1 , viii) subtracting said modulated and re-encoded codeword- 1  from said two stream received signal, ix) determining metrics for all possibilities for second symbol in the signal obtained above, x) determining the maximum log likelihood ratios for all bits associated with second symbol, and xi) decoding said codeword- 2  using the computed log likelihood ratios LLRs for all bits associated with said second symbol, xii) In case the CRC in step (vi) is false, listing out all possibilities for second symbol in the received two stream signal; xiii) determining a first symbol of the two stream signal for each said second symbol listed out, xiv) evaluating a metric for each said first symbol and second symbol pair, xv) determining the exact maximum log likelihood ratio for all bits associated with said second symbol using said metrics, xvi) decoding the second codeword (codeword- 2 ) using the computed log likelihood ratios. 
         [0013]    In a preferred extension of steps i)-xi) (in para 11) to multiple (K&gt;2) signal streams, with structure of a conventional successive interference cancellation SIC receiver and obtaining the max-log outputs for the i th  stream by subtracting the previously decoded streams  1  to i−1 and either nulling out streams i+2 to K or suppressing them after assuming them to be Gaussian interferers using MMSE filtering. Assuming perfect feedback from the subtracted streams and whitening the suppressed interference plus noise, the i th  stream is decoded and re-constructed in accordance with steps i)-vii) in para 11. 
         [0014]    In another preferred extension to multiple (K&gt;2) signal streams, max-log outputs for the i th  stream are obtained by subtracting only those streams from  1  to i−1 for which the decoded codewords pass the CRC and suppressing streams i+2 to K as well as the remaining ones from  1  to i−1, after assuming them to be Gaussian interferers using MMSE filtering. Assuming perfect feedback from the subtracted streams and whitening the suppressed interference plus noise, the the i th  stream is decoded and subject to a CRC in accordance with steps i)-vi) in para 12. 
     
     
       BRIEF DESCRIPTION OF DRAWINGS 
         [0015]    These and other advantages of the invention will be apparent to those of ordinary skill in the art by reference to the following detailed description and the accompanying drawings. 
           [0016]      FIG. 1  is a flow diagram of a brute force maximum likelihood two stream wireless reception, in accordance with the prior art. 
           [0017]      FIG. 2  is a flow diagram of Deterministic Sequential Monte-Carlo (D-SMC) two stream reception, in accordance with the prior art. 
           [0018]      FIG. 3  is a flow diagram of successive interference cancellation SIC two stream wireless reception, in accordance with the prior art. 
           [0019]      FIG. 4  is a flow diagram of an enhanced successive interference cancellation for two stream wireless reception, in accordance with the invention. 
           [0020]      FIG. 5  is a flow diagram of the second version of the enhanced successive interference cancellation for two stream wireless reception, in accordance with the invention. 
       
    
    
     DETAILED DESCRIPTION 
       [0021]    In the invention, there is presented an enhanced two-stream SIC receiver where the exact max-log outputs are obtained for all the bits in the stream first decoded (with O(M) complexity) as opposed to the conventional case involving Gaussian approximation. The inventive enhanced two-stream receiver is flow charted in  FIG. 4 . 
         [0022]    In another aspect of the invention, there is presented the second version of the enhanced two-stream SIC receiver which aims to avoid error propagation by subtracting only correctly decoded codewords. The inventive second version of the enhanced two-stream receiver is flow charted in  FIG. 5 . 
         [0023]    Also, described are methods to extend the inventive two-stream receivers to multiple streams. 
         [0024]    Referring again to  FIG. 4 , the inventive enhanced SIC receiver  40  method for two stream reception includes listing out all possibilities for symbol- 1   41 , for each choice of symbol- 1  efficiently finding the best choice of symbol- 2  and evaluating the metric for that pair  42 , using the metrics to determine the exact max-log LLRs for all bits associated with symbol- 1   43 , decoding the codeword- 1  using the computed LLRs  44 , re-encoding the codeword- 1  and then modulating and subtracting it from the received signal  45 , listing out all possibilities for symbol- 1  and computing the metrics  46 , using the metrics to determine the max-log LLRs for all bits associated with symbol- 2   47 , and decoding the codeword- 2  using the computed LLRs  48 . This inventive enhanced SIC receiver method has a higher latency (delay), a higher memory requirement due to buffering, and much less error propagation since reliable decisions are obtained for codeword- 1 . 
         [0025]    We now describe the inventive two stream enhanced SIC receiver. Consider the model 
         [0000]    
       
         
           
             
               
                 
                   y 
                   = 
                   
                     
                       H 
                        
                       
                         [ 
                         
                           
                             
                               
                                 x 
                                 1 
                               
                             
                           
                           
                             
                               
                                 x 
                                 2 
                               
                             
                           
                         
                         ] 
                       
                     
                     + 
                     v 
                   
                 
               
               
                 
                   ( 
                   1 
                   ) 
                 
               
             
           
         
       
     
         [0000]    where, H is the N×2 channel matrix (N≧2), v is the additive noise having i.i.d. Gaussian elements. x 1  and x 2  are symbols from a common M-QAM constellation. Let H=[h 1 h 2 ] and H=||h 2 || 2  UL be the modified QR decomposition of H with U being a scaled semi-unitary matrix and L being lower triangular with positive diagonal elements. In particular, we obtain U=[u 1 u 2 ] with 
         [0000]    
       
         
           
             
               
                 
                   
                     u 
                     1 
                   
                   = 
                     
                    
                   
                     
                       
                         
                           
                             
                               h 
                               1 
                             
                              
                             
                               
                                  
                                 
                                   h 
                                   2 
                                 
                                  
                               
                               2 
                             
                           
                           - 
                           
                             h 
                             2 
                           
                         
                         &lt; 
                         
                           h 
                           1 
                         
                       
                       , 
                       
                         
                           h 
                           2 
                         
                         &gt; 
                       
                     
                     
                       
                         
                            
                           
                             h 
                             2 
                           
                            
                         
                         2 
                       
                        
                       
                         
                           
                             
                               
                                  
                                 
                                   h 
                                   1 
                                 
                                  
                               
                               2 
                             
                              
                             
                               
                                  
                                 
                                   h 
                                   2 
                                 
                                  
                               
                               2 
                             
                           
                           - 
                           
                             
                                
                               
                                 
                                   &lt; 
                                   
                                     h 
                                     1 
                                   
                                 
                                 , 
                                 
                                   
                                     h 
                                     2 
                                   
                                   &gt; 
                                 
                               
                                
                             
                             2 
                           
                         
                       
                     
                   
                 
               
             
             
               
                 
                   
                     u 
                     2 
                   
                   = 
                     
                    
                   
                     
                       h 
                       2 
                     
                     
                       
                          
                         
                           h 
                           2 
                         
                          
                       
                       2 
                     
                   
                 
               
             
           
         
       
     
         [0000]    where &lt;h 1 , h 2 &gt;=h 2 *h 1  is the (complex) inner product of the two vectors and 
         [0000]    
       
         
           
             
               
                 
                   L 
                   = 
                     
                    
                   
                     [ 
                     
                       
                         
                           
                             L 
                             11 
                           
                         
                         
                           0 
                         
                       
                       
                         
                           
                             L 
                             21 
                           
                         
                         
                           1 
                         
                       
                     
                     ] 
                   
                 
               
             
             
               
                 
                   
                     L 
                     11 
                   
                   = 
                     
                    
                   
                     
                       
                         
                           
                             
                                
                               
                                 h 
                                 1 
                               
                                
                             
                             2 
                           
                            
                           
                             
                                
                               
                                 h 
                                 2 
                               
                                
                             
                             2 
                           
                         
                         - 
                         
                           
                              
                             
                               
                                 &lt; 
                                 
                                   h 
                                   1 
                                 
                               
                               , 
                               
                                 
                                   h 
                                   2 
                                 
                                 &gt; 
                               
                             
                              
                           
                           2 
                         
                       
                     
                     
                       
                          
                         
                           h 
                           2 
                         
                          
                       
                       2 
                     
                   
                 
               
             
             
               
                 
                   
                     L 
                     21 
                   
                   = 
                     
                    
                   
                     
                       
                         &lt; 
                         
                           h 
                           1 
                         
                       
                       , 
                       
                         
                           h 
                           2 
                         
                         &gt; 
                       
                     
                     
                       
                          
                         
                           h 
                           2 
                         
                          
                       
                       2 
                     
                   
                 
               
             
           
         
       
     
       Then we obtain 
       [0026]    
       
         
           
             
               
                 
                   
                     [ 
                     
                       
                         
                           
                             z 
                             1 
                           
                         
                       
                       
                         
                           
                             z 
                             2 
                           
                         
                       
                     
                     ] 
                   
                   = 
                   
                     
                       
                         U 
                         * 
                       
                        
                       y 
                     
                     = 
                     
                       
                         
                           [ 
                           
                             
                               
                                 
                                   L 
                                   11 
                                 
                               
                               
                                 0 
                               
                             
                             
                               
                                 
                                   L 
                                   21 
                                 
                               
                               
                                 1 
                               
                             
                           
                           ] 
                         
                          
                         
                           [ 
                           
                             
                               
                                 
                                   x 
                                   1 
                                 
                               
                             
                             
                               
                                 
                                   x 
                                   2 
                                 
                               
                             
                           
                           ] 
                         
                       
                       + 
                       
                         v 
                         ~ 
                       
                     
                   
                 
               
               
                 
                   ( 
                   2 
                   ) 
                 
               
             
           
         
       
     
         [0000]    and note that transformed noise vector {tilde over (v)} remains white. Let {x i,j } j=1   M  denote the M-QAM symbols and let x i   R , x i   I  denote the real and imaginary parts of x i ,1≦i≦2, respectively. For each x 1,j  we define the metric 
         [0000]        Q ( x   1,j )=| z   1   −L   11   x   1,j | 2 +min x     2     |z   2   −L   21   x   1,j   −x   2 | 2    (2b) 
       Defining q ij =z 2 −L 21 x 1,j  we can express Q(x 1,j ) as 
       [0027]        Q ( x   1,j )=| z   1   −L   11   x   1,j | 2 +min x     2     R   |q   1j   R   −x   2   R | 2 +min x     2     I   |q   1,j   I   −x   2   I | 2    
         [0000]    Since both x 2   R ,x 2   I  belong to a common √{square root over (M)}-PAM constellation, the two minimizations for computing Q(x 1,j ) can be done in parallel using simple slicing (rounding) operations with O(1) complexity each. All {Q(x i,j )} j=1   M  are efficiently determined using the described method. Also, using the fact that L 11  is positive along with the symmetry of the M-QAM constellation, we have that {L 11 x 1,j   R } j=1   √{square root over (M)} ={L 11 x 1,j   I } j=1   √{square root over (M)} . Then since 
         [0000]      | z   1   −L   11   x   1,j | 2   =|z   1   R   −L   11   x   1,j   R | 2   +|z   2   I   −L   11   x   1,j   I | 2    
         [0000]    we have that only 3√{square root over (M)}(real) multiplications are required to evaluate all {|z 1 −L 11 x 1,j | 2 } j=1   M  instead of 2M complex ones.
 
The M metrics {Q(x 1,j )} j=1   M  can also be efficiently determined even for other regular constellations. To illustrate, we consider the example of PSK constellation. Let x 1  and x 2  be symbols from a common unit average energy M-PSK constellation: exp(jG M ),G M ε{0,2π/M, . . . ,2π(M−1)/M}. Then to efficiently determine {Q(x 1,j )} we re-write equation (2b) as
 
         [0000]        Q ( x   1,j )=| z   1   −L   11   x   1,j | 2 +min x     2     |q   1,j   −x   2 | 2    (3b) 
         [0000]    and obtain q 1,j  in its polar form as q 1,j =r 1,j  exp(jα 1,j ) such that r 1,j &gt;0,α 1,j ε[0,2π). Let β 1,j =Mα 1,j /2π)−½. Then the minimizing x 2  in (3b) can now be determined (with O(1) complexity) in closed form and is given by exp(2π(└β 1,j ┘+1)/M), where └ ┘ denotes the floor operator. In a similar manner the minimizing x 2  in (3b) can be determined efficiently for other regular constellations by exploiting their decision regions. 
         [0028]    Now each size-M constellation corresponds to log(M) bits so we need to determine the max-log soft output for log(M) bits associated with symbol- 1 . The M metrics {Q(x 1,j )} j=1   M , which we efficiently determined are exactly those needed to determine the max-log output for each bit. To see this, suppose bits numbered 1 to log(M) correspond to symbol x 1 . Then letting λ i  denote the max-log output of the i th  bit b i  and assuming equal a-priori probabilities, we have that 
         [0000]      λ i   =||h   2 || 2 (min j:b     i     =0   Q ( x   1,j )−min j:b     i     =1   Q (x 1,j )) . . . 1 ≦i ≦log ( M ) 
       Thus we have shown that the complexity of our method to determine the max-log output for each of the log(M) bits is O(M) instead of the O(M 2 ) complexity of the usual method. 
       [0029]    The max-log outputs are fed to the outer code or FEC decoder for codeword- 1  and the decisions {{circumflex over (x)} 1 } (which correspond to the re-encoded and modulated codeword- 1 ) are obtained. 
         [0030]    For each symbol interval, we compute {circumflex over (z)} 2 =z 2 −L 21 {circumflex over (x)} 1  and the soft-outputs for the second stream are obtained under the assumption of perfect feedback as 
         [0000]        Q ( x   2,j )=|{circumflex over (z)} 2   −x   2,j | 2 ,1 ≦j≦M    
         [0000]      λ i   =||h   2 || 2 (min j:b     i     =0   Q (x 2,j )−min j:b     i     =1   Q (x 2,j )) . . . log ( M )+1 ≦i ≦2 log ( M ) 
       The max-log outputs are fed to the outer code or FEC decoder for codeword- 2 . 
       [0031]    Referring again to  FIG. 5 , the second enhanced SIC receiver (E-SIC-2)  50  method for two stream reception includes listing out all possibilities for symbol- 1   51 , for each choice of symbol- 1  efficiently finding the best choice of symbol- 2  and evaluating the metric for that pair  52 , using the metrics to determine the exact max-log LLRs for all bits associated with symbol- 1   53 , decoding the codeword- 1  using the computed LLRs  54 , conducting a cyclic redundancy check (CRC) on the decoded codeword- 1   55 , checking if CRC is true for codeword- 1   56 , in case the step in  56  is true re-encoding the codeword- 1  and then modulating and subtracting it from the received signal  57 , listing out all possibilities for symbol- 2  and computing the metrics  58 , using the metrics to determine the max-log LLRs for all bits associated with symbol- 2   59 , and decoding the codeword- 2  using the computed LLRs  60 , in case the step in  56  is false listing out all possibilities for symbol- 2  in the two stream signal  61 , for each choice of symbol- 2  efficiently finding the best choice of symbol- 1  and evaluating the metric for that pair  62 , using the metrics to determine the exact max-log LLRs for all bits associated with symbol- 2   63 , decoding the codeword- 2  using the computed LLRs  64 . This inventive second version of the enhanced SIC receiver has a higher complexity but in general better performance compared to the original E-SIC receiver. 
         [0032]    Next, we describe the second version of our enhanced SIC receiver (E-SIC-2 receiver). Our E-SIC-2 receiver works as follows. We use the procedure previously described in the E-SIC receiver to decode codeword- 1  and conduct a cyclic redundancy check (CRC) on the decoded codeword. In case CRC is true for codeword- 1 , for each symbol interval, we compute {circumflex over (z)} 2 =z 2 −L 21 {circumflex over (x)} 1  and the soft-outputs for the second stream (codeword) are obtained as 
         [0000]        Q ( x   2,j )=| {circumflex over (z)}   2   −x   2,j | 2 ,1 ≦j≦M    
         [0000]      λ i   =||h   2 || 2 (min j:b     i     =0   Q ( x   2,j )−min j:b     i     =1   Q (x 2,j )) . . . log ( M )+1 ≦i ≦2log ( M ) 
       The obtained LLRs are used to decode the second codeword. 
       [0033]    In case CRC is false for codeword- 1 , we obtain another modified QR decomposition H=||h 1 || 2  VR, with V being a scaled semi-unitary matrix and R being upper triangular with positive diagonal elements. In particular, we obtain V=[v 1 ,v 2 ] with 
         [0000]    
       
         
           
             
               
                 
                   
                     v 
                     2 
                   
                   = 
                     
                    
                   
                     
                       
                         
                           
                             
                               h 
                               2 
                             
                              
                             
                               
                                  
                                 
                                   h 
                                   1 
                                 
                                  
                               
                               2 
                             
                           
                           - 
                           
                             h 
                             1 
                           
                         
                         &lt; 
                         
                           h 
                           2 
                         
                       
                       , 
                       
                         
                           h 
                           1 
                         
                         &gt; 
                       
                     
                     
                         
                        
                       
                         
                           
                              
                             
                               h 
                               1 
                             
                              
                           
                           2 
                         
                          
                         
                           
                             
                               
                                 
                                    
                                   
                                     h 
                                     1 
                                   
                                    
                                 
                                 2 
                               
                                
                               
                                 
                                    
                                   
                                     h 
                                     2 
                                   
                                    
                                 
                                 2 
                               
                             
                             - 
                             
                               
                                  
                                 
                                   
                                     &lt; 
                                     
                                       h 
                                       1 
                                     
                                   
                                   , 
                                   
                                     
                                       h 
                                       2 
                                     
                                     &gt; 
                                   
                                 
                                  
                               
                               2 
                             
                           
                         
                       
                     
                   
                 
               
             
             
               
                 
                   
                     v 
                     1 
                   
                   = 
                     
                    
                   
                     
                       h 
                       1 
                     
                     
                       
                          
                         
                           h 
                           1 
                         
                          
                       
                       2 
                     
                   
                 
               
             
           
         
       
     
         [0000]    where &lt;h 2 ,h 1 &gt;=h 1 *h 2  is the complex conjugate of &lt;h 1 ,h 2 &gt; and 
         [0000]    
       
         
           
             
               
                 
                   R 
                   = 
                     
                    
                   
                     [ 
                     
                       
                         
                           1 
                         
                         
                           
                             R 
                             12 
                           
                         
                       
                       
                         
                           0 
                         
                         
                           
                             R 
                             22 
                           
                         
                       
                     
                     ] 
                   
                 
               
             
             
               
                 
                   
                     R 
                     22 
                   
                   = 
                     
                    
                   
                     
                       
                         
                           
                             
                                
                               
                                 h 
                                 1 
                               
                                
                             
                             2 
                           
                            
                           
                             
                                
                               
                                 h 
                                 2 
                               
                                
                             
                             2 
                           
                         
                         - 
                         
                           
                              
                             
                               
                                 &lt; 
                                 
                                   h 
                                   1 
                                 
                               
                               , 
                               
                                 
                                   h 
                                   2 
                                 
                                 &gt; 
                               
                             
                              
                           
                           2 
                         
                       
                     
                     
                       
                          
                         
                           h 
                           1 
                         
                          
                       
                       2 
                     
                   
                 
               
             
             
               
                 
                   
                     R 
                     12 
                   
                   = 
                     
                    
                   
                     
                       
                         &lt; 
                         
                           h 
                           2 
                         
                       
                       , 
                       
                         
                           h 
                           1 
                         
                         &gt; 
                       
                     
                     
                       
                          
                         
                           h 
                           1 
                         
                          
                       
                       2 
                     
                   
                 
               
             
           
         
       
     
         [0034]    Using V we determine w=V*y which can be expressed as 
         [0000]    
       
         
           
             
               [ 
               
                 
                   
                     
                       w 
                       1 
                     
                   
                 
                 
                   
                     
                       w 
                       2 
                     
                   
                 
               
               ] 
             
             = 
             
               
                 
                   V 
                   * 
                 
                  
                 y 
               
               = 
               
                 
                   
                     [ 
                     
                       
                         
                           1 
                         
                         
                           
                             R 
                             12 
                           
                         
                       
                       
                         
                           0 
                         
                         
                           
                             R 
                             22 
                           
                         
                       
                     
                     ] 
                   
                    
                   
                     [ 
                     
                       
                         
                           
                             x 
                             1 
                           
                         
                       
                       
                         
                           
                             x 
                             2 
                           
                         
                       
                     
                     ] 
                   
                 
                 + 
                 
                   v 
                   ^ 
                 
               
             
           
         
       
     
       Next, for each x 2,j  we define the metric 
       [0035]        Q ( x   2,j )= |w   2   −R   22   x   2,j | 2 +min x     1     |w   1   −R   12   x   2,j   −x   1 | 2    (2c) 
       Defining q 2j =w 1 −R 12 x 2,j , we can express Q(x 2,j ) as 
       [0036]        Q ( x   2,j )=| w   2   −R   22   x   2,j | 2 +min x     1     R   |q   2j   R −x 1   R | 2 +min x     1     I   |q   2j   I   −x   1   I | 2    
         [0037]    Again since both x 1   R ,x 1   I  belong to a √{square root over (M)}-PAM constellation, the two minimizations for computing Q(x 2,j ) can also be done as before in parallel using simple slicing operations. All {Q(x 2,j )} j=1   M  are efficiently determined using the described method. As described previously, the minimizing x 1  in (2c) can be determined efficiently for other regular constellations (such as PSK) by exploiting their decision regions. The LLRs for the second stream (codeword) are obtained as 
         [0000]      λ i   ·=||h   1 || 2 (min j:b     i     =0   Q (x 2,j )−min j:b     i     =1   Q (x 2,j )) . . . log ( M )+1 ≦i ≦2log ( M ). 
       The obtained LLRs are used to decode the second codeword. 
       [0038]    Next, we consider the extension of our enhanced SIC receiver to multiple (K&gt;2) streams. One way is to retain the structure of the conventional SIC receiver. However to obtain the max-log outputs for the i th  stream we subtract the previously decoded streams  1  to i−1 and either null out streams i+2 to K or suppress them after assuming them to be Gaussian interferers using MMSE filtering. Then assuming perfect feedback from the subtracted streams and whitening the suppressed interference plus noise, we obtain the LLRs for the i th  stream using the procedure described for the stream first decoded in our two-stream enhanced SIC. The obtained LLRs are then used to decode the i th  codeword. This procedure is employed for all streams  1  to K−1. For the K th  stream, after subtracting streams  1  to K−1 from the received signal, we assume a single stream model and obtain the max-log outputs using the procedure described for the stream decoded second in our two-stream enhanced SIC. The obtained LLRs are then used to decode the K th  codeword. 
         [0039]    We consider another extension of our enhanced SIC receiver to multiple (K&gt;2) streams. In this case we only subtract decoded streams for which the decoded codewords pass the CRC. In particular, to obtain the LLRs for the first stream we suppress streams  3  to K after them after assuming them to be Gaussian interferers using MMSE filtering. Then we whiten the suppressed interference plus noise and obtain the max-log outputs for the first stream using the procedure described for the stream first decoded in our two-stream enhanced SIC and decode the first codeword. We conduct a CRC for the decoded codeword. In case the CRC is true we reconstruct the first stream by re-encoding and modulating the first codeword and subtract the codeword from the received signal. In case CRC is false, we assume that the first stream is an un-decodable Gaussian interferer and suppress it by using the appropriate MMSE filter on the received signal. In either case we can expand the processed received vector as, the output corresponding to a K−1 input streams (streams  2  to K) model. Then to obtain the LLRs for the second stream we suppress streams  4  to K after assuming them to be Gaussian interferers, whiten the suppressed interference plus noise and obtain the max-log outputs using the procedure described for the stream first decoded in our two-stream E-SIC. The second stream is reconstructed and subtracted only if the decoded second codeword passes the CRC. The procedure is used to decode streams  3  to K−1. For the K th  stream, after subtracting or suppressing and whitening streams  1  to K−1 from the received signal, we assume a single stream model and obtain the max-log LLRs using the procedure described for the stream decoded second in our two-stream E-SIC. The obtained LLRs are then used to decode the K th  codeword. 
         [0040]    In summary, we considered the two-stream MIMO decoding problem and designed two receivers. The first one is an enhanced successive interference cancellation (SIC) based receiver which significantly outperforms the conventional SIC receiver. The second receiver is another version of the enhanced successive interference cancellation (SIC) based receiver which aims to avoid error propagation by subtracting only correctly decoded codewords. Extensions of the inventive two-stream receivers to the general case with multiple streams were also obtained. 
         [0041]    The present invention has been shown and described in what are considered to be the most practical and preferred embodiments. It is anticipated, however, that departures may be made therefrom and that obvious modifications will be implemented by those skilled in the art. It will be appreciated that those skilled in the art will be able to devise numerous arrangements and variations which, although not explicitly shown or described herein, embody the principles of the invention and are within their spirit and scope.