Patent Publication Number: US-7711062-B2

Title: Decoding methods and apparatus for MIMO communication systems

Description:
TECHNICAL FIELD 
   Various embodiments described herein relate generally to wireless communications and more particularly for decoding methods and apparatus for MIMO communication systems. 
   BACKGROUND 
   Computing devices have become a ubiquitous part of every user&#39;s daily life. Whether wireless or wired, these devices have increased the daily productivity of those users. In the wireless realm, a cell phone, Wireless Fidelity (Wi-Fi) capable laptop, a wireless broadband connection for their home, or wireless enabled Personal Digital Assistant (PDA), enables the user to be connected to a wireless network continually. During the past decade it was well established that communications systems employing MIMO architecture, architecture in which transmission and reception are carried out through multiple antennas, are superior systems with respect to reliability, throughput, and power consumption. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
     In the drawings, which are not necessarily drawn to scale, like numerals describe substantially similar components throughout the several views. Like numerals having different letter suffixes represent different instances of substantially similar components. The drawings illustrate generally, by way of example, but not by way of limitation, various embodiments discussed in the present document. 
       FIG. 1  shows a high level block diagram of a wireless communications system according to embodiments of the present invention; 
       FIG. 2  shows a high level block diagram of an apparatus according to embodiments of the present invention; and 
       FIG. 3  shows a flowchart of a method according to embodiments of the present invention. 
   

   DETAILED DESCRIPTION 
   In the following detailed description of embodiments of the invention, reference is made to the accompanying drawings which form a part hereof, and in which are shown, by way of illustration, specific preferred embodiments in which the subject matter may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice them, and it is to be understood that other embodiments may be utilized and that logical, mechanical, and electrical changes may be made without departing from the spirit and scope of the present disclosure. Such embodiments of the inventive subject matter may be referred to, individually and/or collectively, herein by the term “invention” merely for convenience and without intending to voluntarily limit the scope of this application to any single invention or inventive concept if more than one is in fact disclosed. 
     FIG. 1  is a high level block diagram of a wireless communications system according to embodiments of the present invention. In an embodiment, a wireless communications system  100  includes a decoding module  102 , a plurality of transmit antennas  104  and a host device  106 . For the purposes of illustration in the present discussion a 2×2, two transmit antennas and two receive antennas, MIMO system will be used, though the apparatus and methods disclosed herein are equally applicable to any arrangement of a MIMO system. Wireless signals received by the plurality of receive antennas may differ due to the spatial separation of the antennas, which may also lead to temporal differences. The decoding module  102 , in one embodiment, is configured to receive the various wireless signals  108  from the plurality of receive antennas as a set of signal vectors and output a stream of possible soft data bits  110  to the host device  106 . 
   In an embodiment, the decoding module  102  is configured to decode an encoded wireless signal  108  and to derive soft data bits  110  contained within the encoded wireless signal  108 . In one embodiment, the encoded wireless signal may be received from a network through the plurality of receive antennas. Encoded, as used herein, is meant to denote a signal which can not be operated on directly by the host system  106 , and requires intermediary operations to derive data bits which can be operated on directly by the host system  106 . In the context of the present discussion, the intermediary operations are performed by the decoding module  102 , and are collectively called decoding operations. The encoded wireless signal  108  is a sum of the original data and noise received by the plurality of antennas. Noise is considered to be anything received by the antenna which is not part of the data intended to be transmitted, and may also be called interference. As the original data may be affected by the channel matrix, for a MIMO system the encoded wireless signal can further be expressed as the sum of the original data as transformed by the channel matrix and the noise. One of the goals of the decoding module is to remove the noise to determine, with reasonable probability, the original data transmitted. The decoding module, in some embodiments, provides to the host device a soft approximation of the original data bits transmitted. 
     FIG. 2  is a high level block diagram of an apparatus according to embodiments of the present invention. In an embodiment, the decoding module  102  includes a shift and scale module  210 , a linear receiver module  212 , a list generator module  214  and a lattice reduction module  216 . In a further embodiment, the decoding module  102  includes a soft bits calculator  218 . 
   In an embodiment, the lattice reduction module  216  is coupled to the linear receiver module  212  and the list generator module  214  and is configured to provide to both the linear receiver module  212  and the list generator module  214  a matrix P which is derived from the channel matrix H. P is derived from H through the well known LLL (Lenstra-Lenstra-Lavosz) algorithm modified to account for complex-valued matrices. 
   In an embodiment, the shift and scale module  210  is coupled to the receive antennas and is configured to receive an input signal vector,  y , and transform the signal vector into the complex vector space. In a further embodiment, the shift and scale module  210  performs a linear transform on  y  into complex vector space which is operable on by the list generator module  214 , as will be described below. The output vector  y s    is a linear transform of the input vector from the QAM vector space into the continuous-integers complex vector space, and can be provided for by the following equation:
 
   y   s   =0.5   y   +0.5 H ·( 1   + j   ).
 
   In an embodiment, the linear receiver module  212  is coupled to the shift and scale module  210  and the list generator module  214 , and is configured to remove the correlation among the components of the output vector from the shift and scale module  210 . In a further embodiment, the linear receiver  212  is configured to multiply the vector By  y s    by arbitrary matrix A, which can be expressed as:
 
 z =A y s   
 
In the specific example for the zero-forcing linear receiver:
 
   z   =( {tilde over (H)}·{tilde over (H)} ) −1    {tilde over (H)}· y   s   
 
where {tilde over (H)}=HP. In a further embodiment, the linear received module performs a a linear operation on the signal y received through two or more antennas using a matrix P and generates the z value, where the matrix P is generated using a lattice reduction algorithm performed on a channel matrix for a MIMO channel
 
   In an embodiment, the list generator module  214  is coupled to the linear receiver module  212  and is configured to receive a vector from the linear receiver module  212  and to derive a list of possible data vectors through operations where the complex components of the received vector are approximated by complex integers in the complex plane. In a further embodiment, the list generator module  214  discards possible data vectors where that data vector contains illegal QAM symbols. Specific operations of the list generator module  214  will be explained in greater detail below with reference to  FIG. 3 . 
   The soft bits calculator module  218 , in one embodiment, is coupled to the list generator module  214  and receives a list of possible data vectors and a corresponding metric for each of the possible data vectors. The soft bits calculator module  218 , through standard operations, provides soft approximation of the original data bits. The soft bits calculator  220 , in a further embodiment, provides soft approximation of the original data bits to the host system  106  for further operations. The soft bits calculator module  218  calculates the original data, in one embodiment, according to:
 
 {circumflex over (b)}   i,j   LR =min  D   i,j   0 −min  D   i,j   1 ,
 
where, D i,j   0  and D i,j   1  are the corresponding metrics contained within the output of the list generator module  214 .
 
     FIG. 3  shows a flowchart of a method according to embodiments of the present invention. In an embodiment, the operations depicted in  FIG. 3  may be carried out in a decoding module  102  as shown and described above. In a further embodiment, the operations depicted in  FIG. 3  are carried out in a list generator module  214  such as that described above with respect to  FIG. 2 . 
   At block  305 , the vector z is received from the linear receiver module  212 , the matrix P, and the reduced channel matrix H, are received from the lattice reduction module  216 , and are input. In an embodiment, the vector z is defined by the equation:
 
 z =A y s   ,
 
where A is an arbitrary matrix.
 
   At block  310 , integer approximations from vector z are obtained. In one embodiment, the integer approximations are carried out on component-by-component basis on the components of the vector  z . The number of complex integer approximations of each of the components adaptively varies. The adaptive nature of this operation yields a small number of candidate vectors to be selected and processed. This is in opposition to the maximum likelihood (ML) decoding operation in which the complexity of the operation grows exponentially fast with the number of transmit antennas and the constellation size. In a further embodiment, obtaining the complex integer approximations from the complex components of the vector z is accomplished by the following operations. Set M positive integers that satisfy 
               ∏     i   =   1     M     ⁢           ⁢     S   i       =   S         
where S is a predetermined parameter that establishes the complexity of the decoder. Further define M sets of complex numbers A 1 , A 2 , . . . , A M  where |A i |=S i , i=1, . . . ,M and |A i | denotes the size of the set A i . Each set A i  contains the complex integer round(z i ) and the additional S i −1 closest integers to z i . S 1 , S 2 , . . . , S m  may be determined in either an adaptive manner, or a non-adaptive manner. For the non-adaptive process S 1  is set by
 
             S   1     =       S   2     =     ⋯   =       S   M     =       S     1   M       .                 
For the adaptive process, quantization errors are calculated by ε i =|z i −round(z i )|, i=1, . . . , M and small set sizes are allocated to small quantization errors in ascending order.
 
   At block  315 , a set X of possible data vectors is constructed. The set X is constructed by first defining a set U that consists of S vectors, which are the approximations to the vector z. The set X of possible data vectors is obtained from U after scaling operations using the matrix P. The set U (with S vectors of size M) can be defined as:
 
 U=A   1   ×A   2   ×, . . . ×A   M .
 
   At block  320 , the elements of set X are scanned for those vectors that may contain illegal QAM symbols. This narrows the set of possible data vectors, thereby speeding up the process of finding the probably original data signal. The reduced set X can be defined as X p . 
   At block  325 , a metric for each element of X p  is calculated. The metric, in one embodiment, can be defined as the distance between each of the possible data vectors in the reduced set and the original vector z. The metric can be calculated by the equation:
 
 d=∥{tilde over (H)} (   z − x   )∥ 2 .
 
   At block  330 , the list of possible data vectors and its corresponding metric are combined into a single set and provided to the soft bits calculator for further operations. The soft bits calculator can use any method for reasonable determining the original data contained within the signal without departing from the scope of the present discussion, and any soft bits calculator, as are well known in the art, may be used. 
   Unless specifically stated otherwise, terms such as processing, computing, calculating, determining, displaying, or the like, may refer to an action and/or process of one or more processing or computing systems or similar devices that may manipulate and transform data represented as physical (e.g., electronic) quantities within a processing system&#39;s registers and memory into other data similarly represented as physical quantities within the processing system&#39;s registers or memories, or other such information storage, transmission or display devices. Furthermore, as used herein, a computing device includes one or more processing elements coupled with computer-readable memory that may be volatile or non-volatile memory or a combination thereof. 
   Some embodiments of the invention may be implemented in one or a combination of hardware, firmware, and software. Embodiments of the invention may also be implemented as instructions stored on a machine-readable medium, which may be read and executed by at least one processor to perform the operations described herein. A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium may include read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and others.