Patent ID: 8331475

Claim:
A method of detecting data in a received multiple input/multiple output signal, the received multiple input/multiple output signal having been transmitted by a transmitter over multiple spatial streams through a transmission channel, the method comprising: receiving a first signal on a first spatial stream and receiving a second signal on a second spatial stream, the first signal being associated with one or more first data values, the second signal being associated with one or more second data values; receiving a channel matrix representing combined effects of the transmission channel and spatial mapping of the transmitter on a transmitted signal; determining a distance value between the received second signal and each possible second data value, the determining of the distance value including: calculating a first coordinate value that identifies coordinates for a hypothetical first signal in light of a first of the possible second data values; quantizing the first coordinate value to a nearest constellation point; repeating the calculating step and quantizing step for each of the possible second data values to generate a plurality of constellation points, one constellation point being associated with each of the possible second data values; determining a distance value between the received second signal and each of the possible second data values using the generated constellation points associated with the possible second data values, one distance value being associated with each possible second data value, and further utilizing elements of the received channel matrix; determining a log-likelihood ratio based on the determined distance value associated with each of the possible second data values; permutating the columns of the channel matrix by multiplying the channel matrix by a permutation matrix; determining a second distance value between the received first signal and each possible first data value, the determining for each possible first data value including: calculating a second coordinate value that identifies coordinates for a hypothetical second signal in light of a first possible first data value; quantizing the second coordinate value to a nearest second constellation point; repeating the calculating step and quantizing step for each possible first data value to generate a plurality of second constellation points, one second constellation point being associated with each possible first data value; determining a second distance value between the received first signal and each possible first data value using elements of the permutated channel matrix and the calculated second constellation point associated with the possible first data value being considered, one second distance value being associated with each possible first data value; determining a second log-likelihood ratio based on the determined second distance value associated with each possible first data value; and decoding the one or more first data values based on the determined second log-likelihood ratio.