US20130170587A1 - Systems and Methods for N-Dimensional Leaf-Node Prediction for MIMO Detection - Google Patents

Systems and Methods for N-Dimensional Leaf-Node Prediction for MIMO Detection Download PDF

Info

Publication number
US20130170587A1
US20130170587A1 US13/525,283 US201213525283A US2013170587A1 US 20130170587 A1 US20130170587 A1 US 20130170587A1 US 201213525283 A US201213525283 A US 201213525283A US 2013170587 A1 US2013170587 A1 US 2013170587A1
Authority
US
United States
Prior art keywords
leaf node
channel
leaf
mimo
predictor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US13/525,283
Inventor
Deric WATERS
Anuj Batra
Srinath Hosur
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Priority to US13/525,283 priority Critical patent/US20130170587A1/en
Publication of US20130170587A1 publication Critical patent/US20130170587A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/02Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas
    • H04B7/04Diversity systems; Multi-antenna system, i.e. transmission or reception using multiple antennas using two or more spaced independent antennas
    • H04B7/0413MIMO systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/0204Channel estimation of multiple channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/024Channel estimation channel estimation algorithms
    • H04L25/0242Channel estimation channel estimation algorithms using matrix methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/0202Channel estimation
    • H04L25/024Channel estimation channel estimation algorithms
    • H04L25/0242Channel estimation channel estimation algorithms using matrix methods
    • H04L25/0246Channel estimation channel estimation algorithms using matrix methods with factorisation

Definitions

  • MIMO Multiple Input Multiple Output
  • MIMO is an advanced technology that employs multiple transmit antennas and multiple receive antennas to simultaneously transmit multiple parallel data streams. Relative to previous wireless technologies, MIMO enables substantial gains in both system capacity and transmission reliability without requiring an increase in frequency resources.
  • MIMO systems exploit differences in the paths between transmit and receive antennas to increase data throughput and diversity. As the number of transmit and receive antennas is increased, the capacity of a MIMO channel increases linearly, and the probability of all sub-channels between the transmitter and receiver fading simultaneously decreases exponentially. As might be expected, however, there is a price associated with realization of these benefits. Recovery of transmitted information in a MIMO system becomes increasingly complex with the addition of transmit antennas.
  • MIMO detection algorithms have been previously proposed in the literature.
  • the optimal algorithm is conceptually simple, but is often impractical due to the fact that its complexity increases exponentially with the number of channel inputs.
  • many algorithms have been proposed to solve the problem with less complexity, with the unfortunate effect of also significantly sacrificing performance.
  • MIMO detectors have been proposed and implemented as exclusively hard detectors that only give the final estimate of the channel input. Most notable is the sphere decoding detector because it can achieve Max-Log performance in an uncoded system with much less complexity on average.
  • a summary of many MIMO detectors may be found in D. W. Waters, “Signal Detection Strategies and Algorithms for multiple-Input Multiple-Output Channels”, Georgia Institute of Technology, PhD thesis, December 2005, including many variations of the sphere detector that minimize complexity without sacrificing performance.
  • One enhancement to a sphere detector is to maintain a list which enables the computation of the so-called log-likelihood ratio (LLR), which ratio provides reliability information for each bit. See, for example, B. Hochwald, S.
  • LLR log-likelihood ratio
  • Improvements are desired to achieve a favorable performance-complexity trade-off compared to existing MIMO detectors.
  • FIG. 1 illustrates an example tree diagram of branches enumerated by a Leaf-Node Prediction (“LNP”) detector in which embodiments may be used to advantage;
  • LNP Leaf-Node Prediction
  • FIG. 2 illustrates a block diagram of an exemplary communication system comprising an exemplary MIMO detector
  • FIG. 3 shows a block diagram of an exemplary LNP detector in which embodiments may be used to advantage
  • FIG. 4 illustrates a block diagram of an exemplary LNP detector, for computing LLR values, in which embodiments may be used to advantage.
  • system refers to a collection of two or more hardware and/or software components, and may be used to refer to an electronic device or devices or a sub-system thereof.
  • software includes any executable code capable of running on a processor, regardless of the media used to store the software.
  • code stored in non-volatile memory and sometimes referred to as “embedded firmware,” is included within the definition of software.
  • embodiments enable improved multiple-input multiple-output (MIMO) detection with a favorable performance-complexity trade-off compared to the Maximum-Likelihood detector and other existing MIMO detectors.
  • MIMO multiple-input multiple-output
  • embodiments of a LNP detector may be used as a way to generate a list of candidate vectors, or its list may be used to directly compute LLR values.
  • a channel metric indicates whether a channel characteristic is good or bad for channel transmission, i.e., it is hard to perform detection correctly if a channel metric is bad or poor.
  • H is an M ⁇ N channel matrix
  • ⁇ 2 I ⁇ 2
  • the channel outputs may be scaled so that the noise components have the same variance, the channel output could be multiplied by ⁇ ⁇ 1 ; see for example, and not by way of limitation, U.S. patent application Ser. No.
  • the narrowband channel model can be applied to broadband channels when orthogonal frequency division multiplexing (OFDM) is used.
  • OFDM orthogonal frequency division multiplexing
  • each subcarrier is modeled according equation (1).
  • QR decomposition of the channel. This decomposition is defined as follows:
  • ⁇ tilde over (Q) ⁇ is an (M+N) ⁇ N matrix with orthonormal columns
  • R is an N ⁇ N triangular matrix with positive and real diagonals
  • is an N ⁇ N permutation matrix
  • ⁇ circumflex over ( ⁇ ) ⁇ is an estimate of ⁇
  • is a chosen parameter.
  • a permutation matrix is an identity matrix after its columns have been permuted.
  • the way the permutation matrix ⁇ is selected impacts performance for some MIMO detectors. For example, and not by way of limitation, BLAST ordering chooses H to maximize the minimum diagonal of R. A less complex way to choose ⁇ is the sorted-QR decomposition that attempts to maximize R 1,1 (lower triangular R).
  • Embodiments of LNP detection can work with any permutation matrix.
  • MIMO equalization One such method of triangularizing a channel uses the conjugate transpose of Q (resulting from the QR decomposition of the channel H) as follows:
  • the constellation for the i-th symbol is defined as s i ⁇ A i .
  • the set containing all valid channel inputs is denoted as A 1 N , this means s ⁇ A 1 N .
  • a N 1 N 2 this means [s N 1 , s N 1 +1 , . . .
  • A(k, j) is the set of all valid values of s i whose j-th bit have the value k.
  • a N 1 N 2 (k,i,j) is the set of all valid values of s whose j-th bit in the i-th symbol maps to the value k.
  • the output of a Max-Log detector is the log-likelihood ratio (LLR) of each bit transmitted in the vector s.
  • LLR log-likelihood ratio
  • the Max-Log detector output for the j-th bit of the i-th symbol is described by a single equation:
  • ⁇ i,j ( ⁇ r ⁇ H ⁇ s (o) ⁇ 2 ⁇ r ⁇ H ⁇ s (1) ⁇ 2 )/ ⁇ circumflex over ( ⁇ ) ⁇ 2 , (5)
  • ⁇ r ⁇ H ⁇ s (k) ⁇ 2 is minimized under the constraint that s (k) ⁇ A 1 N (k,i,j). It should be understood that this is only one example of how an LLR may be computed, and should not be used as a limitation on the embodiments disclosed or invention claimed.
  • the value ⁇ r ⁇ H ⁇ x ⁇ 2 is defined as the mean-squared error (MSE) of the vector x.
  • MSE mean-squared error
  • the Max-Log detector may also be defined using the equivalent triangular channel model:
  • ⁇ i,j ( ⁇ y ⁇ Rs (o) ⁇ 2 ⁇ y ⁇ Rs (1) ⁇ 2 )/ ⁇ circumflex over ( ⁇ ) ⁇ 2 , (6)
  • a list detector is any detector that generates a list of candidate vectors for the channel input.
  • the set of candidate vectors is labeled as the set L, and the number of candidates in the set is called the list length L.
  • the Max-Log detector is a list detector with an exhaustive list. It is desirable for list detectors to generate their lists to be as small as possible without sacrificing too much performance.
  • the LLR for the j-th bit of the i-th symbol may be computed in a manner similar to the Max-Log detector in (5) and (6):
  • ⁇ i,j ( ⁇ y ⁇ Rs (o) ⁇ 2 ⁇ y ⁇ Rs (1) ⁇ 2 )/ ⁇ circumflex over ( ⁇ ) ⁇ 2 , (7)
  • the “cost” of any node is the sum of the scores of all the branches in the path back to the root node, where every branch in the tree is associated with a unique score.
  • the score of a branch exiting a node at the i-th level can be written as:
  • the interference cancellation procedure is defined as:
  • the branches illustrated were enumerated by an exemplary embodiment of a LNP detector that will be discussed later.
  • FIG. 2 is a block diagram of an exemplary communication system comprising a MIMO detector.
  • a wireless (e.g., radio frequency) stream of information is received at RF hardware 210 , converted to a digital stream at analog-to-digital converter 220 , and synchronized at 230 .
  • the start of the packet has been located, and the digital stream is passed through a fast-Fourier transformation at FFT 240 .
  • the output of FFT 240 is provided to estimator 250 which estimates the noise variance of the stream.
  • the outputs of FFT 240 and estimator 250 are provided to scaler 260 where the channel stream is preferably scaled using the noise variance estimation on the transformed stream, and separated into components.
  • scaler 260 For an example, and not by way of limitation, of a scaler 260 , reference is made to “Scaling to Reduce Wireless Signal Detection Complexity”, U.S. patent application Ser. No. 11/928,050, filed Oct. 30, 2007, hereby incorporated in its entirety herein by reference.
  • the outputs of scaler 260 are preferably fed to channel estimator 265 which estimates the H matrix.
  • Scaler 260 forwards channel outputs, r, and channel estimator 265 forwards the estimated H matrix or matrices to MIMO detector 270 .
  • MIMO detector 270 which will be described as comprising a LNP detector for portions of this discussion, generates LLR values which are in turn provided to decoder 280 for analysis and/or further processing.
  • the output of decoder 280 is stored in data sink 290 which can be any form of memory now known or later developed.
  • An LNP detector 300 comprises at least two elements as illustrated in FIG. 3 ; namely, leaf node predictor 310 and MIMO engine 320 .
  • Leaf node predictor 310 predicts the best leaf nodes for a given channel realization—this is also sometimes referred to in this disclosure as Leaf-Node Prediction.
  • MIMO engine 320 uses instructions received from leaf node predictor 310 as to which leaf nodes to enumerate to output the set of predicted leaf nodes along with their costs. It should be understood that instructions are also sometimes referred to in the field as parameters, but should not be confused with what will be referred to as parameters in the present disclosure.
  • embodiments may comprise a portion of a MIMO detector within a receiver (e.g., FIG. 2 ), or embodiments may be employed as a new variety of list detector to be used in any applicable system. Predicting the best leaf nodes for a given channel realization enables LNP detector 300 to approach the performance of the list-sphere detector, but with less complexity.
  • leaf-node predictor The ability of the leaf-node predictor to accurately predict the best leaf nodes for a given channel realization is key for LNP detector 300 to achieve good performance with a small list length. It should be appreciated that the phrases leaf nodes, leaf node values, and leaf node candidates may be used interchangeably throughout this disclosure.
  • U.S. patent application Ser. No. 12/016,921 for “Systems and Methods for Low-Complexity MIMO Detection Using Leaf-Node Prediction via Look-Up Tables”
  • U.S. patent application Ser. No. 12/016,967 for “Systems and Methods for Low-Complexity MIMO Detection with Analytical Leaf-Node Prediction” systems and methods of leaf-node prediction were implemented for two-dimensional channels.
  • leaf-node prediction techniques used a pre-computed look-up table of instructions.
  • a second disclosed leaf-node predictor predicted the best leaf nodes as needed in real-time using analytical leaf-node prediction. Both of these leaf-node predictors were based on computing a channel metric which measured the relative robustness of the two channel inputs to errors. This relative robustness was then used by the leaf-node predictor.
  • the embodiments discussed herein improve upon previous leaf-node predictors to enable leaf-node prediction for channels with three or more channel inputs.
  • Embodiments of LNP detector 300 can stand alone as an N-dimensional list generator, as an N-dimensional MIMO detector, or may be combined with a candidate list generation and interference cancellation (CLIC) framework to implement an (N+1)-dimensional MIMO detector.
  • CLIC candidate list generation and interference cancellation
  • a CLIC framework and not by way of limitation, reference is made to “Candidate List Generation and Interference Cancellation Framework for MIMO Detection”, U.S. patent application Ser. No. 11/930,259, filed Oct. 31, 2007, hereby incorporated in its entirety herein by reference, in which the CLIC framework is employed to convert an N-dimensional vector enumerator (sometimes called a list detector) into an (N+1)-dimensional MIMO detector.
  • embodiments of LNP detector 300 may be used as a way to generate a list of candidate vectors, or its list may be used to directly compute LLR values.
  • a leaf node predictor may generate at least one instruction to output by optimizing a probability that the output contains at least a suitable approximation of a channel input with lowest cost or alternatively generates at least one instruction to output by optimizing a probability that the output contains the channel input with lowest mean-squared error.
  • m is the channel metric
  • any two-dimensional leaf-node predictor may be used; specific examples, without limitation, may be found in U.S. patent application Ser. No. 12/016,921 for “Systems and Methods for Low-Complexity MIMO Detection Using Leaf-Node Prediction via Look-Up Tables” and U.S. patent application Ser. No. 12/016,967 for “Systems and Methods for Low-Complexity MIMO Detection with Analytical Leaf-Node Prediction”, both hereby incorporated herein.
  • the list length impacts both the performance and complexity of a LNP detector, and should be carefully chosen.
  • the Leaf-Node Prediction block of the LNP detector outputs the MIMO engine instructions, which yield the best performance under the constraint that no more than L leaf nodes are enumerated.
  • the list length can be viewed as the number of resources the receiver has from which to form the best estimate of the channel inputs.
  • Embodiments of leaf-node predictor decide how best to distribute these resources.
  • Another example of a method for distributing fixed resources in a MIMO-OFDM system is described in patent application Ser. No. 11/926,966 for “Dynamic Resource Allocation to Improve MIMO Detection Performance”, hereby incorporated by reference herein.
  • N-dimensional problem (N>2) can be broken down into multiple two-dimensional problems.
  • the resources are divided between the first symbol and the rest of the symbols.
  • L 2 (:) [L 2 (1) L 2 (2) . . . L 2 (N 1 )] are the number of leaf nodes to enumerate for each candidate of the first symbol, and where m 1 is the channel metric of choice, for example
  • each of the N 1 candidates for the first symbol spawns a new subtree containing N ⁇ 1 levels.
  • the resources have been allocated to each of these subtrees. Namely, L 2 (i) leaf nodes will be enumerated from the subtree corresponding to the branch with the i-th smallest cost at the first level of the tree.
  • N 2 (i) is the number of leaf nodes to enumerate for each candidate of the first symbol in the i-th subtree
  • L 3 (i,:) [L 3 (i,1) L 3 (i,2) . . . L 3 (i,N 2 (i)]
  • L 3 (i,j) is the number of leaf nodes to enumerate that include the i-th best value of the first symbol and the j-th best value for the second symbol
  • m 2 is the channel metric of choice, for example
  • the final instructions given to the MIMO engine are contained in N 1 , N 2 , . . . N N .
  • the MIMO engine is told to:
  • the goal of embodiments of the leaf-node predictor is to ensure that the actual channel input is one of the vectors in the output list L.
  • Each of the symbols in the channel input s as defined in equation (4) has a different probability of causing an error—an error means that the actual channel input is not in the list L. Since an error can be caused when any symbol is wrong, minimizing the probability of an error means equalizing the probability that each symbol causes an error so that they are equally or approximately equally robust to errors.
  • N 1 preferably should be larger because enumerating more values of the first symbol will make it more robust to errors.
  • Leaf-node predictor 310 employs a channel metric generated from the channel matrix that measures the relative robustness to errors of the N symbols. Such a channel metric preferably indicates how many candidates for each symbol are to be enumerated so all symbols are equally robust to errors. Note that changing the parameters ⁇ , ⁇ , or ⁇ circumflex over ( ⁇ ) ⁇ used to implement equation (2) may also change this channel metric, which may be used to advantage. For example, by choosing the n that minimizes or maximizes the value of h(H) the range of values of the channel metric stored in a parameter look-up table can be reduced.
  • Embodiments of MIMO engine 320 may be implemented by a tree-search engine.
  • N instructions that are input into the MIMO detector engine.
  • the first instruction is N 1
  • MIMO detector engine 320 enumerates the N 1 best symbol values for the first symbol.
  • the third instruction is the matrix, or set of vectors, N 3 (:,:):
  • N 3 ⁇ ( : , : ) [ N 3 ⁇ ( 1 , 1 ) N 3 ⁇ ( 1 , 2 ) ... ... N 3 ⁇ ( 1 , N 2 ⁇ ( 1 ) ) N 3 ⁇ ( 2 , 1 ) N 3 ⁇ ( 2 , 2 ) ... N 3 ⁇ ( 2 , N 2 ⁇ ( 2 ) ) 0 ⁇ ⁇ ... ⁇ ⁇ N 3 ⁇ ( N 1 , 1 ) N 3 ⁇ ( N 1 , 2 ) ... N 3 ⁇ ( N 1 , N 2 ⁇ ( N 1 ) 0 ] , ( 14 )
  • N 3 (i,j) enumerates the N 3 (i,j) best symbol values when the first two symbols are the i-th and j-th best values of the first and second symbol, respectively.
  • N i is the number of non-zero elements in N 2 (:), or N 1 could be the number of non-zero elements in N 3 (:,1) and N 2 (i) could be the number of non-zero elements in N 3 (i,:).
  • the number of non-zero elements in each row of the matrix N 3 (:,:) need not be the same.
  • the number of non-zero elements in the (j+1)-th row is not greater than the number in the j-th row, however this is a general rule, not a requirement. In fact, for example, all rows may have the same number of non-zero elements.
  • the elements of matrix N 3 (:,:) be integers whose sum does not exceed the list length of the detector:
  • the instructions input into MIMO engine 320 from embodiments of LNP 310 are in the form of three (3) instructions.
  • the first instruction is an integer N 1 which instructs MIMO engine 320 to enumerate the N 1 best symbol values for the first symbol s 1 and compute the score of each value.
  • 2 for i 1 to N 1 , where ⁇ 1,i is the i-th best estimate of s 1 .
  • MIMO engine 320 uses a constellation-sorting function to decide on the i-th best candidate for a given symbol. In tree-search terminology, this is the same as computing the i-th best branch exiting a given node.
  • MIMO engine 320 of LNP detector 300 can use any constellation-sorting function to determine the N 1 , N 2 (i) or N 3 (i, j) best branches (or symbols) to enumerate from a given node in the tree.
  • N 1 , N 2 (i) or N 3 (i, j) best branches (or symbols) to enumerate from a given node in the tree.
  • N 2 i
  • N 3 i, j
  • the i-th best candidate for the first symbol is therefore expressed as f(y 1 ,R 1,1 ,A 1 ,i).
  • One output of MIMO engine 320 is a list of candidate vectors, L, which correspond to the leaf nodes specified by the input instructions N. Another output is the cost of each of the candidate vectors in the output list, the list of costs is labeled as L c .
  • L Cost of each of the candidate vectors in the output list
  • N 3 ⁇ ( : , : ) [ 2 1 1 1 2 1 1 0 1 1 0 0 0 0 0 0 ] . ( 18 )
  • leaf nodes that are enumerated in the illustrated example are indicated with solid lines, while those branches that are not enumerated are indicated with dashed lines.
  • the last row containing all zeros is only shown for illustrative purposes, N 3 (:,:) could be defined not to include this row.
  • ⁇ 3 f(z 3 , R 3,3 , A 3 , k) 11.
  • Compute the score of ⁇ 3 , c 3 g(z 3 , R 3,3 , ⁇ 3 ).
  • Add the cost of the candidate vector c c 1 + c 2 + c 3 , to the set of output costs L c . 14.
  • MIMO engine 320 when a full matrix H is input along with the channel output r.
  • MIMO engine 320 operates differently. Specifically, the cost computation is not separated into multiple score computations. Instead each candidate in the list is constructed, and then its cost is directly computed. Otherwise, MIMO engine 320 operates very much as previously described.
  • the following pseudocode gives an example of one way the MIMO engine may operate when it is given H and r.
  • ⁇ 1 f(y 1 , 1, A 1 , i) 4.
  • 5. for j 1 to N 2 (i) 6.
  • ⁇ 2 f(z 1 , 1, A 2 , j) 7.
  • MIMO engine 320 and leaf-node predictor 310 together make up the LNP detector 300 .
  • the outputs from MIMO engine 320 could be used to compute the log-likelihood ratio (LLR) values of each bit.
  • Leaf node predictor 310 provides instructions to MIMO engine 320 , which in turn generates a list of candidate vectors L, and a list of the cost of each corresponding candidate L c . These outputs are used to compute LLR values; this is a preferable embodiment for MIMO channels with N inputs, where N is greater than or equal to 2.
  • the MIMO detector that is processing a channel with more than N inputs, where N is greater than or equal to 2 may use embodiments of the LNP detector to generate one or more lists of N-dimensional candidate vectors, which can then be used to implement a MIMO detector for a channel with more than N inputs.
  • N is greater than or equal to 2
  • the LNP detector may use embodiments of the LNP detector to generate one or more lists of N-dimensional candidate vectors, which can then be used to implement a MIMO detector for a channel with more than N inputs.
  • N is greater than or equal to 2

Abstract

Systems comprising a leaf node predictor for receiving a processed communications stream, determining at least one channel metric corresponding to the communications stream for a given channel realization, and generating at least three instructions to output, which at least one instruction corresponds to at least one predicted best leaf node candidate for the given channel realization.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This application is a Continuation of and claims priority to U.S. patent application Ser. No. 12/048,211 filed Mar. 13, 2008, which claims priority to U.S. Provisional Patent Application Ser. No. 60/908,230 for “N-Dimensional Leaf-Node Prediction for MIMO Detection”. Said applications hereby incorporated in their entirety herein by reference.
  • BACKGROUND
  • As consumer demand for high data rate applications, such as streaming video, expands, technology providers are forced to adopt new technologies to provide the necessary bandwidth. Multiple Input Multiple Output (“MIMO”) is an advanced technology that employs multiple transmit antennas and multiple receive antennas to simultaneously transmit multiple parallel data streams. Relative to previous wireless technologies, MIMO enables substantial gains in both system capacity and transmission reliability without requiring an increase in frequency resources.
  • MIMO systems exploit differences in the paths between transmit and receive antennas to increase data throughput and diversity. As the number of transmit and receive antennas is increased, the capacity of a MIMO channel increases linearly, and the probability of all sub-channels between the transmitter and receiver fading simultaneously decreases exponentially. As might be expected, however, there is a price associated with realization of these benefits. Recovery of transmitted information in a MIMO system becomes increasingly complex with the addition of transmit antennas.
  • Many multiple-input multiple-output (MIMO) detection algorithms have been previously proposed in the literature. The optimal algorithm is conceptually simple, but is often impractical due to the fact that its complexity increases exponentially with the number of channel inputs. As a result, many algorithms have been proposed to solve the problem with less complexity, with the unfortunate effect of also significantly sacrificing performance.
  • Many MIMO detectors have been proposed and implemented as exclusively hard detectors that only give the final estimate of the channel input. Most notable is the sphere decoding detector because it can achieve Max-Log performance in an uncoded system with much less complexity on average. A summary of many MIMO detectors may be found in D. W. Waters, “Signal Detection Strategies and Algorithms for multiple-Input Multiple-Output Channels”, Georgia Institute of Technology, PhD dissertation, December 2005, including many variations of the sphere detector that minimize complexity without sacrificing performance. One enhancement to a sphere detector is to maintain a list which enables the computation of the so-called log-likelihood ratio (LLR), which ratio provides reliability information for each bit. See, for example, B. Hochwald, S. ten Brink, “Achieving Near-Capacity on a Multiple-Antenna Channel,” IEEE Transactions on Communications, vol. 51, no. 3, March 2003, which discusses computing this LLR information using a list-sphere detection approach. Unfortunately, implementing existing MIMO detectors like the list-sphere detector is still quite complex, requiring significant processing resources.
  • Improvements are desired to achieve a favorable performance-complexity trade-off compared to existing MIMO detectors.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For a detailed description of exemplary embodiments of the invention, reference will be made to the accompanying drawings in which:
  • FIG. 1 illustrates an example tree diagram of branches enumerated by a Leaf-Node Prediction (“LNP”) detector in which embodiments may be used to advantage;
  • FIG. 2 illustrates a block diagram of an exemplary communication system comprising an exemplary MIMO detector;
  • FIG. 3 shows a block diagram of an exemplary LNP detector in which embodiments may be used to advantage; and
  • FIG. 4 illustrates a block diagram of an exemplary LNP detector, for computing LLR values, in which embodiments may be used to advantage.
  • NOTATION AND NOMENCLATURE
  • Certain terms are used throughout the following description and claims to refer to particular system components. As one skilled in the art will appreciate, computer companies may refer to a component by different names. This document doe not intend to distinguish between components that differ in name but not function. In the following discussion and in the claims, the terms “including” and “comprising” are used in an open-ended fashion, and thus should be interpreted to mean “including, but not limited to . . . .” Also, the term “couple” or “couples” is intended to mean either an indirect or direct electrical connection. Thus, if a first device couples to a second device, that connection may be through a direct electrical connection, or through an indirect electrical connection via other devices and connections. The term “system” refers to a collection of two or more hardware and/or software components, and may be used to refer to an electronic device or devices or a sub-system thereof. Further, the term “software” includes any executable code capable of running on a processor, regardless of the media used to store the software. Thus, code stored in non-volatile memory, and sometimes referred to as “embedded firmware,” is included within the definition of software.
  • DETAILED DESCRIPTION
  • It should be understood at the outset that although exemplary implementations of embodiments of the disclosure are illustrated below, embodiments may be implemented using any number of techniques, whether currently known or in existence. This disclosure should in no way be limited to the exemplary implementations, drawings, and techniques illustrated below, including the exemplary design and implementation illustrated and described herein, but may be modified within the scope of the appended claims along with their full scope of equivalents.
  • In light of the foregoing background, embodiments enable improved multiple-input multiple-output (MIMO) detection with a favorable performance-complexity trade-off compared to the Maximum-Likelihood detector and other existing MIMO detectors. It should be appreciated that embodiments of a LNP detector may be used as a way to generate a list of candidate vectors, or its list may be used to directly compute LLR values. It will be further be appreciated by those skilled in the art, that a channel metric indicates whether a channel characteristic is good or bad for channel transmission, i.e., it is hard to perform detection correctly if a channel metric is bad or poor.
  • Although embodiments will be described for the sake of simplicity with respect to wireless communication systems, it should be appreciated that embodiments are not so limited, and can be employed in a variety of communication systems.
  • To better understand embodiments of this disclosure, it should be appreciated that the MIMO detection problem—namely, to recover the channel inputs given the channel outputs when there are multiple inputs and outputs—can be described using a narrowband channel model written as:

  • r=Ha+w,  (1)
  • where H is an M×N channel matrix, a is a signal vector such that a=[a1 a2 . . . aN]T is an N dimensional vector of symbols that may be drawn from different alphabets, and the noise has the autocorrelation matrix E[ww*]=Σ2. Although the present discussion focuses on the case where Σ2=Iσ2, it should be understood that embodiments are extendable to the more general case. For example, the channel outputs may be scaled so that the noise components have the same variance, the channel output could be multiplied by Σ−1; see for example, and not by way of limitation, U.S. patent application Ser. No. 12/022,927 for “Systems and Methods for Scaling to Equalize Noise Variance”, hereby incorporated herein by reference. The narrowband channel model can be applied to broadband channels when orthogonal frequency division multiplexing (OFDM) is used. In the OFDM case, each subcarrier is modeled according equation (1). Thus, the algorithms disclosed here can easily be extended to apply to MIMO-OFDM channels.
  • One way to implement the Max-Log detector uses a QR decomposition of the channel. This decomposition is defined as follows:
  • [ H α σ ^ I ] Π = [ Q α σ ^ Π R - 1 ] R Q ~ R , ( 2 )
  • where {tilde over (Q)} is an (M+N)×N matrix with orthonormal columns, R is an N×N triangular matrix with positive and real diagonals, Π is an N×N permutation matrix, {circumflex over (σ)} is an estimate of σ, and α is a chosen parameter. Although the present discussion describes embodiments assuming a lower triangular R matrix, it should be understood that embodiments can easily be extended to describe an upper triangular matrix instead.
  • The best value of the parameter a depends on the type of MIMO detector that is used. For example, and not by way of limitation, α=1 minimizes the mean squared 110 error (MSE), ∥R−1QHy−s∥2. On the other hand, α=0 is better for the Max-Log receiver. It will be appreciated that in general the parameter a can take on any value.
  • A permutation matrix is an identity matrix after its columns have been permuted. The way the permutation matrix Π is selected impacts performance for some MIMO detectors. For example, and not by way of limitation, BLAST ordering chooses H to maximize the minimum diagonal of R. A less complex way to choose Π is the sorted-QR decomposition that attempts to maximize R1,1 (lower triangular R). Embodiments of LNP detection can work with any permutation matrix.
  • Thus, the MIMO detector problem can be simplified by creating an effective channel that is triangular. The process of creating an effective channel that is triangular is called MIMO equalization. One such method of triangularizing a channel uses the conjugate transpose of Q (resulting from the QR decomposition of the channel H) as follows:

  • y=Q H r=Rs+n  (3)
  • where s=Π−1a=[s1 s2 . . . sN]T is a permutation of the channel input vector, n is an effective noise, and the superscript H denotes the conjugate transpose operation. Note that n may be a function of a when α≠0. The constellation for the i-th symbol is defined as siεAi. The set containing all valid channel inputs is denoted as A1 N, this means sεA1 N. The set containing all valid values of a subset of the channel inputs is denoted as AN 1 N 2 , this means [sN 1 , sN 1 +1, . . . , sN 2 ]TεAN 1 N 2 where N1≦N2. The set that contains all the elements of any one-dimensional constellation A whose j-th bit have the value k is denoted as A(k, j). For example, Ai(k, j) is the set of all valid values of si whose j-th bit have the value k. The set that contains all the elements of any multi-dimensional constellation AN 1 N 2 , whose j-th bit in the i-th symbol have the value k is denoted as AN 1 N 2 (k,i,j). For example, A1 N(k,i,j) is the set of all valid values of s whose j-th bit in the i-th symbol maps to the value k.
  • Other MIMO equalization techniques that do not use QR decomposition may also be used. For example, methods based on the Cholesky decomposition of H do not require the computation of Q. The Cholesky decomposition can compute R without computing Q. The equalization output in this case may be computed as:

  • y=R −1 H H r=Rs+n  (4)
  • The output of a Max-Log detector is the log-likelihood ratio (LLR) of each bit transmitted in the vector s. The LLR value indicates the probability that a given bit was transmitted as a one or zero. The Max-Log detector output for the j-th bit of the i-th symbol is described by a single equation:

  • λi,j=(∥r−HΠs (o)2 −∥r−HΠs (1)2)/{circumflex over (σ)} 2 ,  (5)
  • where ∥r−HΠs(k)2 is minimized under the constraint that s(k)εA1 N(k,i,j). It should be understood that this is only one example of how an LLR may be computed, and should not be used as a limitation on the embodiments disclosed or invention claimed. Also, the value ∥r−HΠx∥2 is defined as the mean-squared error (MSE) of the vector x. The mean-squared error is one kind of cost that can be used for processing the signal.
  • The Max-Log detector may also be defined using the equivalent triangular channel model:

  • λi,j=(∥y−Rs (o)2−∥y−Rs (1)2)/{circumflex over (σ)} 2 ,  (6)
  • where ∥y−Rs(k)2 is minimized subject to the constraints s(k)εA1 N(k,i,j), and α=0, and where Π can be any permutation matrix. Note that ∥y−Rx∥2=∥r−HΠx∥2 when α=0.
  • Many MIMO detectors are classified as list detectors. A list detector is any detector that generates a list of candidate vectors for the channel input. The set of candidate vectors is labeled as the set L, and the number of candidates in the set is called the list length L. The Max-Log detector is a list detector with an exhaustive list. It is desirable for list detectors to generate their lists to be as small as possible without sacrificing too much performance.
  • Given the set L generated by any list detector, the LLR for the j-th bit of the i-th symbol may be computed in a manner similar to the Max-Log detector in (5) and (6):

  • λi,j=(∥y−Rs (o)2 −∥y−Rs (1)2)/{circumflex over (σ)} 2 ,  (7)
  • where ∥y−Rs(k)2 is minimized subject to the constraints s(k)εA1 N(k,i,j) and s(k)εL. Note that here α=0 is not required, and Π can be any N×N permutation matrix.
  • An important problem for MIMO detection is finding the vector ii that maximizes Pr[y|α={circumflex over (α)}]. This can be written as:

  • Pr[y|s=ŝ]=minŝεA 1 N ∥y−Rŝ∥ 2,
  • where A1 N is set of all possible channel inputs. Therefore, minimizing the quantity ∥y−R{circumflex over (α)}∥2 over a range of possible values for the vector {circumflex over (α)} is an important challenge for MIMO detection. This detection challenge is directly related to the probability Pr[y|α={circumflex over (α)}], which can be fully described in terms of a tree search. The number of branches exiting the root node corresponds to the number of possible values for the first symbol. Likewise the number of branches exiting the nodes preceding the i-th level corresponds to the number of possibilities for the i-th symbol. In the end, there are
  • i = 1 N A i
  • total leaf nodes in the tree. The “cost” of any node is the sum of the scores of all the branches in the path back to the root node, where every branch in the tree is associated with a unique score. The score of a branch exiting a node at the i-th level can be written as:

  • Score=|z i −R i,i ŝ i|2,
  • where zi is the result of an interference cancellation procedure. The interference cancellation procedure is defined as:
  • z i = y i - j = 1 i - 1 R i , j s ^ j , ( 8 )
  • where yi is defined by equation (4), and [ŝ1 . . . ŝi−1]T are the symbols from the path that connects the current branch back to the root node.
  • FIG. 1 gives an example tree with three levels (N=3) and four branches exiting each node in the first two levels and two branches exiting each node at the third level (A1 and A2 contain four elements; and A3 contains two elements). The branches illustrated were enumerated by an exemplary embodiment of a LNP detector that will be discussed later.
  • FIG. 2 is a block diagram of an exemplary communication system comprising a MIMO detector. Specifically, a wireless (e.g., radio frequency) stream of information is received at RF hardware 210, converted to a digital stream at analog-to-digital converter 220, and synchronized at 230. At this point the start of the packet has been located, and the digital stream is passed through a fast-Fourier transformation at FFT 240. The output of FFT 240 is provided to estimator 250 which estimates the noise variance of the stream. The outputs of FFT 240 and estimator 250 are provided to scaler 260 where the channel stream is preferably scaled using the noise variance estimation on the transformed stream, and separated into components. For an example, and not by way of limitation, of a scaler 260, reference is made to “Scaling to Reduce Wireless Signal Detection Complexity”, U.S. patent application Ser. No. 11/928,050, filed Oct. 30, 2007, hereby incorporated in its entirety herein by reference. The outputs of scaler 260 are preferably fed to channel estimator 265 which estimates the H matrix. Scaler 260 forwards channel outputs, r, and channel estimator 265 forwards the estimated H matrix or matrices to MIMO detector 270. MIMO detector 270, which will be described as comprising a LNP detector for portions of this discussion, generates LLR values which are in turn provided to decoder 280 for analysis and/or further processing. The output of decoder 280 is stored in data sink 290 which can be any form of memory now known or later developed.
  • It will be appreciated that application of a low-complexity leaf-node predictor is motivated by the fact that a list-sphere detector has excellent performance even with very small L. Unfortunately, the list-sphere detector requires high complexity to generate even a small list. The implication is that for a given channel realization, if the receiver knew beforehand which L leaf nodes had minimum cost then the MIMO detection problem solves with very low complexity. This is the goal of embodiments of a leaf-node predictor. Thus, embodiments predict the best candidates for the channel inputs and disregard other possible channel inputs to reduce complexity.
  • An LNP detector 300, consistent with embodiments, comprises at least two elements as illustrated in FIG. 3; namely, leaf node predictor 310 and MIMO engine 320. Leaf node predictor 310 predicts the best leaf nodes for a given channel realization—this is also sometimes referred to in this disclosure as Leaf-Node Prediction. MIMO engine 320 uses instructions received from leaf node predictor 310 as to which leaf nodes to enumerate to output the set of predicted leaf nodes along with their costs. It should be understood that instructions are also sometimes referred to in the field as parameters, but should not be confused with what will be referred to as parameters in the present disclosure. As such, embodiments may comprise a portion of a MIMO detector within a receiver (e.g., FIG. 2), or embodiments may be employed as a new variety of list detector to be used in any applicable system. Predicting the best leaf nodes for a given channel realization enables LNP detector 300 to approach the performance of the list-sphere detector, but with less complexity.
  • The ability of the leaf-node predictor to accurately predict the best leaf nodes for a given channel realization is key for LNP detector 300 to achieve good performance with a small list length. It should be appreciated that the phrases leaf nodes, leaf node values, and leaf node candidates may be used interchangeably throughout this disclosure. In U.S. patent application Ser. No. 12/016,921 for “Systems and Methods for Low-Complexity MIMO Detection Using Leaf-Node Prediction via Look-Up Tables” and U.S. patent application Ser. No. 12/016,967 for “Systems and Methods for Low-Complexity MIMO Detection with Analytical Leaf-Node Prediction”, systems and methods of leaf-node prediction were implemented for two-dimensional channels. One of the disclosed leaf-node prediction techniques used a pre-computed look-up table of instructions. A second disclosed leaf-node predictor, predicted the best leaf nodes as needed in real-time using analytical leaf-node prediction. Both of these leaf-node predictors were based on computing a channel metric which measured the relative robustness of the two channel inputs to errors. This relative robustness was then used by the leaf-node predictor. The embodiments discussed herein improve upon previous leaf-node predictors to enable leaf-node prediction for channels with three or more channel inputs.
  • Embodiments of LNP detector 300, according to the present disclosure, can stand alone as an N-dimensional list generator, as an N-dimensional MIMO detector, or may be combined with a candidate list generation and interference cancellation (CLIC) framework to implement an (N+1)-dimensional MIMO detector. For at least one example of a CLIC framework, and not by way of limitation, reference is made to “Candidate List Generation and Interference Cancellation Framework for MIMO Detection”, U.S. patent application Ser. No. 11/930,259, filed Oct. 31, 2007, hereby incorporated in its entirety herein by reference, in which the CLIC framework is employed to convert an N-dimensional vector enumerator (sometimes called a list detector) into an (N+1)-dimensional MIMO detector. As described herein, embodiments of LNP detector 300 may be used as a way to generate a list of candidate vectors, or its list may be used to directly compute LLR values.
  • In order to implement leaf-node prediction on a channel with N>2, novel channel metrics are employed. Below are two examples, and not by way of limitation:
  • 1. m i = ( R i , i q min k = i + 1 N ( R k , k q ) ) p 2. m i = ( h ~ i q min k = i + 1 N ( h ~ k q ) ) p ,
  • where {tilde over (h)}k is the k-th column of HΠ.
  • The values of p and q are preferably selected by the designer to minimize complexity. For example, q=1 and p=2 or q=2 and p=1 are common choices. The value of p and/or q could also be chosen to be negative. Both these channel metrics measure the relative robustness between the i-th symbol and the (i+1)th through Nth symbols, and use the resulting measurement to determine the amount of resources to assign to the i-th symbol. It should also be understood that a leaf node predictor may generate at least one instruction to output by optimizing a probability that the output contains at least a suitable approximation of a channel input with lowest cost or alternatively generates at least one instruction to output by optimizing a probability that the output contains the channel input with lowest mean-squared error.
  • Some embodiments of higher-dimensional leaf-node predictors assume access to a two-dimensional leaf-node predictor defined as:

  • [N 1 ,N 2(:)]=LNP2(m,L),  (9)
  • where m is the channel metric, for example
  • m = R 1 , 1 R 2 , 2 ,
  • L is the list length, and the notation N2(:) indicates a vector where N2(:)=[N2(1) N2(2) . . . N2(N1)]. Such embodiments of higher-dimensional leaf-node prediction build upon a two-dimensional leaf-node predictor to implement higher-dimensional leaf-node prediction. In such embodiments, any two-dimensional leaf-node predictor may be used; specific examples, without limitation, may be found in U.S. patent application Ser. No. 12/016,921 for “Systems and Methods for Low-Complexity MIMO Detection Using Leaf-Node Prediction via Look-Up Tables” and U.S. patent application Ser. No. 12/016,967 for “Systems and Methods for Low-Complexity MIMO Detection with Analytical Leaf-Node Prediction”, both hereby incorporated herein.
  • The number of leaf nodes that embodiments of LNP detector 300 enumerate is an input parameter called the list length, denoted as L. Solely as an example, and not by way of limitation, for N=3,
  • L = i = 1 N 1 N 2 ( i ) .
  • The list length impacts both the performance and complexity of a LNP detector, and should be carefully chosen. Preferably, the Leaf-Node Prediction block of the LNP detector outputs the MIMO engine instructions, which yield the best performance under the constraint that no more than L leaf nodes are enumerated. The list length can be viewed as the number of resources the receiver has from which to form the best estimate of the channel inputs. Embodiments of leaf-node predictor decide how best to distribute these resources. Another example of a method for distributing fixed resources in a MIMO-OFDM system is described in patent application Ser. No. 11/926,966 for “Dynamic Resource Allocation to Improve MIMO Detection Performance”, hereby incorporated by reference herein.
  • It has been discovered that an N-dimensional problem (N>2) can be broken down into multiple two-dimensional problems. First, the resources are divided between the first symbol and the rest of the symbols.

  • [N 1 ,L 2(:)]=LNP2(m 1 ,L),  (10)
  • where L2(:)=[L2(1) L2(2) . . . L2(N1)] are the number of leaf nodes to enumerate for each candidate of the first symbol, and where m1 is the channel metric of choice, for example
  • m 1 = R 1 , 1 min k = 2 N ( R k , k ) .
  • Referring back to FIG. 1, each of the N1 candidates for the first symbol spawns a new subtree containing N−1 levels. At this point, the resources have been allocated to each of these subtrees. Namely, L2(i) leaf nodes will be enumerated from the subtree corresponding to the branch with the i-th smallest cost at the first level of the tree.
  • In each of the N1 subtrees spawned from the candidates for the first symbol, the resources are again divided between the first symbol in the subtree and the rest of the symbols. Specifically, for i=1 to N1:

  • [N 2(i),L 3(i,:)]=LNP2(m 2 ,L 2(i))  (11)
  • where N2(i) is the number of leaf nodes to enumerate for each candidate of the first symbol in the i-th subtree, L3(i,:)=[L3(i,1) L3(i,2) . . . L3(i,N2(i)] and L3(i,j) is the number of leaf nodes to enumerate that include the i-th best value of the first symbol and the j-th best value for the second symbol, and where m2 is the channel metric of choice, for example
  • m 2 = R 2 , 2 min k = 3 N ( R k , k ) .
  • If N=3, the leaf-node prediction stops here and N3=L3. For a higher-dimensional problem (N>3), the process of recursively dividing remaining resources among the different symbols continues in like manner. Specifically, for i=1 to N1 and for j=1 to N2(i) the two-dimensional leaf-node predictor is called:

  • [N 3(i,j), L 4(i,j,:)]=LNP2(m 3 ,L 3(i,j)).
  • In the end, the final instructions given to the MIMO engine are contained in N1, N2, . . . NN.
  • To make the process more clear consider the specific example shown in FIG. 1. As a first step, the relative resource allocation between the first symbol and the rest of the symbols is computed. Assume a two-dimensional leaf-node predictor gives the following results (refer to equation (10)):

  • [3,[5 4 2 0]]=LNP2(m 1,11), N 1=3 and L 2(:)=[5 4 2 0].
  • This means that three sub-trees are spawned from the first-level of the tree (shown as solid lines in FIG. 1). Next, for each of these sub-trees the two-dimensional leaf-node predictor is implemented again:

  • [4,[2 1 1 1]]=LNP2(m 2,5),N 2(1)=4 and L 3(1,:)=[2 1 1 1]

  • [3, [2 1 1 0]]=LNP2(m 2,4),N 2(2)=3 and L 3(2,:)=[2 1 1 0]

  • [2,[1 1 0 0]]=LNP2(m 2,2),N 2(3)=2 and L 3(3,:)=[1 1 0 0].

  • N 3 =L 3
  • The MIMO engine is told to:
    • 1. Enumerate the N1=3 best values of symbol one,
    • 2. For the i-th best value of symbol one, enumerate the N2(i) best values of symbol two.
    • 3. For the i-th best value of symbol one, and the j-th best value for symbol two enumerate the N3(i,j) best values of symbol three. Each enumeration produces a leaf-node.
    • 4. Compute the cost of each enumerated leaf-node.
  • Perhaps another way of looking at embodiments would be to understand that the job of leaf-node predictor 310 is to generate the instructions N={N1 N2 . . . NN} for a given list length and channel matrix. The goal of embodiments of the leaf-node predictor is to ensure that the actual channel input is one of the vectors in the output list L. Each of the symbols in the channel input s as defined in equation (4) has a different probability of causing an error—an error means that the actual channel input is not in the list L. Since an error can be caused when any symbol is wrong, minimizing the probability of an error means equalizing the probability that each symbol causes an error so that they are equally or approximately equally robust to errors. In channels where the first symbol is more prone to error, N1 preferably should be larger because enumerating more values of the first symbol will make it more robust to errors. Leaf-node predictor 310 employs a channel metric generated from the channel matrix that measures the relative robustness to errors of the N symbols. Such a channel metric preferably indicates how many candidates for each symbol are to be enumerated so all symbols are equally robust to errors. Note that changing the parameters α, Π, or {circumflex over (σ)} used to implement equation (2) may also change this channel metric, which may be used to advantage. For example, by choosing the n that minimizes or maximizes the value of h(H) the range of values of the channel metric stored in a parameter look-up table can be reduced.
  • Consider now MIMO engine 320. There are at least two different embodiments of this MIMO engine; some of which are when a triangular matrix R is input, and some of which are when a full matrix H is input. In the following discussion, the MIMO engine is defined as having the matrix R is input. Later in this disclosure embodiments are considered where the MIMO engine is defined when the matrix H is input. Note that any MIMO engine 320 embodiment that currently exists or is developed in the future can be coupled to the leaf-node predictor 310; it is preferred that it take the inputs N=N{N1 N2 . . . NN}, and compute a list L and the cost of each of the L elements in the list L.
  • First consider embodiments of MIMO engine 320 when a triangular matrix R is input along with the MIMO equalizer output y (refer to equations (3) and (4)). Embodiments of MIMO engine 320 may be implemented by a tree-search engine. There are N instructions that are input into the MIMO detector engine. For simplicity, embodiments where N=3 will be discussed, however such embodiments can also handle more dimensions. The first instruction is N1, and MIMO detector engine 320 enumerates the N1 best symbol values for the first symbol. The second instruction is the vector N2(:)=[N2(1) N2(2) . . . (N2(N1)], and MIMO engine 320 enumerates the N2(i) best symbol values for the i-th best value of the first symbol. The third instruction is the matrix, or set of vectors, N3(:,:):
  • N 3 ( : , : ) = [ N 3 ( 1 , 1 ) N 3 ( 1 , 2 ) N 3 ( 1 , N 2 ( 1 ) ) N 3 ( 2 , 1 ) N 3 ( 2 , 2 ) N 3 ( 2 , N 2 ( 2 ) ) 0 N 3 ( N 1 , 1 ) N 3 ( N 1 , 2 ) N 3 ( N 1 , N 2 ( N 1 ) ) 0 ] , ( 14 )
  • and MIMO detector engine 320 enumerates the N3(i,j) best symbol values when the first two symbols are the i-th and j-th best values of the first and second symbol, respectively. There is another instruction added for each additional dimension and N refers to all instructions taken together N={N1 N2 . . . NN}. In some cases, it is possible to infer the instruction Ni from Nj (j>i). For example, N1 is the number of non-zero elements in N2(:), or N1 could be the number of non-zero elements in N3(:,1) and N2(i) could be the number of non-zero elements in N3(i,:).
  • It should be understood that the number of non-zero elements in each row of the matrix N3(:,:) need not be the same. Generally, the number of non-zero elements in the (j+1)-th row is not greater than the number in the j-th row, however this is a general rule, not a requirement. In fact, for example, all rows may have the same number of non-zero elements. It is preferable that the elements of matrix N3(:,:) be integers whose sum does not exceed the list length of the detector:
  • L i = 1 N 1 j = 1 N 2 ( i ) N 3 ( i , j ) .
  • Specifically, for example, the instructions input into MIMO engine 320 from embodiments of LNP 310 are in the form of three (3) instructions. The first instruction is an integer N1 which instructs MIMO engine 320 to enumerate the N1 best symbol values for the first symbol s1 and compute the score of each value. MIMO engine 320 thus computes Score1,i=|y1−R1,1ŝ1,i|2 for i=1 to N1, where ŝ1,i is the i-th best estimate of s1. The second instruction input into MIMO engine 320 is a set of integers N2(:), which instructs MIMO engine 320 to enumerate the N2(i) best symbol values for the second symbol s2 assuming that s11,i. Therefore, MIMO engine 320 computes Score2,i,j=|y2−R2,1{circumflex over (2)}2,i−R2,2{circumflex over (2)}2,i,j|2 for i=1 to N1 and for j=1 to N2(i), where ŝ2,i,j is the j-th best estimate of s2 assuming s11,i. The third instruction input into MIMO engine 320 is a set of vectors N3(:,:) which instructs MIMO engine 320 to numerate the N3(i, j) best symbol values for the third symbol s3 assuming that s11,i and s22,i,j. Therefore, MIMO engine 320 computes Score3,i,j,k=|y3−R3,1ŝ1,i−R3,2ŝ2,i,j−R3,3ŝ3,i,j,k|2 for i=1 to N1, for j=1 to N2(i), (where ŝ2,i,j is the j-th best estimate of s2 assuming s11,i) and for k=1 to N3(i,j), (where ŝ3,i,j,k is the k-th best estimate of s3 assuming that s11,i and s22,i,j). The final outputs of MIMO engine 320 are the set of costs, Lc={Score1,i+Score2,i,j+Score3,i,j}, and the set of enumerated possible channel inputs
  • L = { [ s ^ 1 , i s ^ 2 , i , j s ^ 3 , i , j , k ] } .
  • MIMO engine 320 uses a constellation-sorting function to decide on the i-th best candidate for a given symbol. In tree-search terminology, this is the same as computing the i-th best branch exiting a given node. Continuing with the example of FIG. 1, strictly for illustration and not by way of limitation, MIMO engine 320 of LNP detector 300 can use any constellation-sorting function to determine the N1, N2(i) or N3(i, j) best branches (or symbols) to enumerate from a given node in the tree. For an example, and not by way of limitation, of a constellation-sorting function, reference is made to “Candidate Generation”, U.S. patent application Ser. No. 11/926,625, filed Oct. 29, 2007, hereby incorporated in its entirety herein by reference. A generic function to represent this sorting operation is preferably defined:

  • f(y,R,A,i)=i-th best candidate from the alphabet A.  (15)
  • There are many ways to implement this sorting operation, and LNP detector 300 will work with any of them—even suboptimal sorting operations. Another, and possibly more intuitive, way of expressing equation (15) would be:

  • f(y,R,A,i)=i-th nearest symbol to y/R in A.  (16)
  • The i-th best candidate for the first symbol is therefore expressed as f(y1,R1,1,A1,i).
  • For the i-th candidate of the first symbol, and the j-th candidate of the second symbol, MIMO engine 320 computes the cost of the leaf nodes corresponding to the N3(i, j) best values of the third symbol. This computation preferably employs interference cancellation that assumes that the i-th candidate for the first symbol and the j-th candidate for the second symbol are the actual channel inputs. The result of this interference cancellation is defined in equation (8). For the N=3 special case, the interference cancellation result can be written as:
  • z 3 = y 3 - i = 1 N - 1 R 3 , i s ^ i . ( 17 )
  • The k-th best candidate for the third symbol, when the candidate for the first and second symbols are ŝ1 and ŝ2, respectively, is preferably computed using the constellation sorting function ŝ3(k)=f(z3,R3,3,A3,k). The j-th best candidate for the second symbol, when the candidate for the first symbol is ŝ1 is preferably computed using the constellation sorting function ŝ2=f(y2−R2,1ŝ1,R2,2,A2,j).
  • One output of MIMO engine 320 is a list of candidate vectors, L, which correspond to the leaf nodes specified by the input instructions N. Another output is the cost of each of the candidate vectors in the output list, the list of costs is labeled as Lc. Return momentarily to the example tree diagram of FIG. 1, with A1=A2=4-QAM, A3=BPSK and L=11. The leaf-node prediction results in this case are N1=3, N2(:)[4 3 2 0], and
  • N 3 ( : , : ) = [ 2 1 1 1 2 1 1 0 1 1 0 0 0 0 0 0 ] . ( 18 )
  • The leaf nodes (branches) that are enumerated in the illustrated example are indicated with solid lines, while those branches that are not enumerated are indicated with dashed lines. The last row containing all zeros is only shown for illustrative purposes, N3(:,:) could be defined not to include this row.
  • The score of a particular symbol can be defined in multiple ways. We use a generic function to represent this operation:

  • g(y,R,ŝ)=score of the symbol ŝ  (19)
  • The most obvious definition of this function is the mean-squared error:

  • g(y,R,ŝ)=|y−Rŝ| 2.  (20)
  • Other possible definitions include approximations of the above definition that may be less complex to compute, as well as mathematically equivalent expressions that may be less complex to compute. One such approximation is to use the absolute value instead of the absolute value squared. It is also possible to use a correlation-based score computation.
  • For a generic set of input instructions N={N1 N2 . . . NN}, embodiments of MIMO engine 320 can be described by the following exemplary pseudocode. It will be appreciated by one skilled in the art that such exemplary pseudocode is provided strictly as an example, and not by way of limitation, as it can be rewritten with different pseudocode that is functionally equivalent. It should be further appreciated that MIMO engine 320 as modeled by this pseudocode may alternatively be implemented using hardware, or a combination of hardware and software. Furthermore, it should be appreciated that, while the special case of N=3 is shown, this pseudocode can be easily adapted to any value of N.
  • MIMO Engine (Given R and y):
  •  1. for i = 1 to N 1
     2.  ŝ1 = f(y1, R1,1, A1, i)
     3.  z2 = y2 − R2,1 ŝ 1
     4.  Compute the score of ŝ1, c1 = g(y1, R1,1, ŝ1).
     5.  for j = 1 to N2(i)
     6.   ŝ2 = f(z2, R2,2, A2, j)
     7.   z3 = y3 − R3,2ŝ2 − R3,1ŝ1
     8.   Compute the score of ŝ2, c2 = g(z2, R2,2, ŝ2).
     9.   for k = 1 to N3 (i, j)
    10.    ŝ3 = f(z3, R3,3, A3, k)
    11.    Compute the score of ŝ3, c3 = g(z3, R3,3, ŝ3).
    12.     Add the candidate vector [ s ^ 1 s ^ 2 s ^ 3 ] to the list L .
    13.    Add the cost of the candidate vector c = c1 + c2 + c3,
       to the set of output costs Lc.
    14.   end
    15.  end
    16. end
  • Now consider embodiments of MIMO engine 320 when a full matrix H is input along with the channel output r. In this case, MIMO engine 320 operates differently. Specifically, the cost computation is not separated into multiple score computations. Instead each candidate in the list is constructed, and then its cost is directly computed. Otherwise, MIMO engine 320 operates very much as previously described. The following pseudocode gives an example of one way the MIMO engine may operate when it is given H and r.
  • MIMO Engine (Given H and r):
  •  1. y1 = first output of linear filter, for example y1 may be the first element in the
    vector y, where y = {tilde over (H)}+r, where the + operator applied to any matrix A
    indicates the following A+ = (AHA + α2{circumflex over (σ)}2I)−1AH, and where
    {tilde over (H)} = HΠ = [{tilde over (h)}1 {tilde over (h)}2 . . . {tilde over (h)}N].
     2. for i = 1 to N 1
     3.  ŝ1 = f(y1, 1, A1, i)
     4.  z1 = f1(r − {tilde over (h)}1ŝ1) where f1 is the first row of the matrix F = ({tilde over (H)}(:, 2: N))+.
     This is a form of interference cancellation.
     5.  for j = 1 to N2(i)
     6.   ŝ2 = f(z1, 1, A2, j)
     7.   z2 = f2(r − {tilde over (h)}1ŝ1 − {tilde over (h)}2ŝ2) where f2 is the first row of the matrix F = ({tilde over (H)}(:, 3: N))+
     8.   for k = 1 to N3(i, j)
     6.    ŝ3 = f(z2, 1, A3, k)
     9.     Add the candidate vector s ^ = [ s ^ 1 s ^ 2 s ^ 3 ] to the list L .
    10.    Compute the cost of the candidate vector: c = g(r, H, ŝ), where
       c = g(r, {tilde over (H)}, ŝ) is preferably defined as g(r, {tilde over (H)}, ŝ) = ∥r − {tilde over (H)}ŝ∥2.
    11.    Add the cost of the candidate vector c, to the set of output costs Lc.
    12.   end
    13.  end
    14. end

    In the above pseudocode, the linear filter definition indicated with the + operator is only one example of a linear filter that may be used. It should be understood that although each of the above pseudocode embodiments is for the case where N=3, for embodiments where N>3, the implementation is similar. Namely, each additional symbol leads to another nested for-loop iteration in the respective pseudocode. Further it should be appreciated that although the pseudocode describes the leaf-node predictor in a serial fashion, it lends itself to a parallel implementation as well.
  • MIMO engine 320 and leaf-node predictor 310 together make up the LNP detector 300. In one embodiment, such as that illustrated in the block diagram of FIG. 4, the outputs from MIMO engine 320 could be used to compute the log-likelihood ratio (LLR) values of each bit. Leaf node predictor 310 provides instructions to MIMO engine 320, which in turn generates a list of candidate vectors L, and a list of the cost of each corresponding candidate Lc. These outputs are used to compute LLR values; this is a preferable embodiment for MIMO channels with N inputs, where N is greater than or equal to 2. In another embodiment, the MIMO detector that is processing a channel with more than N inputs, where N is greater than or equal to 2, may use embodiments of the LNP detector to generate one or more lists of N-dimensional candidate vectors, which can then be used to implement a MIMO detector for a channel with more than N inputs. For an example, and not by way of limitation, reference is made to “Candidate List Generation and Interference Cancellation Framework for MIMO Detection”, U.S. patent application Ser. No. 11/930,259, filed Oct. 31, 2007, hereby incorporated in its entirety herein by reference, of one way to solve an (N+1)-dimensional MIMO detection problem. In general, the outputs L and L, could alternatively be inputs to another functional block for further processing.
  • Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions, and the associated drawings. Therefore, the above discussion is meant to be illustrative of the principles and various embodiments of the disclosure; it is to be understood that the invention is not to be limited to the specific embodiments disclosed. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation. It is intended that the following claims be interpreted to embrace all such variations and modifications.

Claims (24)

What is claimed is:
1-42. (canceled)
43. A multiple-input multiple-output (MIMO) detection system, comprising:
a leaf node predictor for receiving a processed communications stream, determining at least one channel metric, which is a function of a matrix, corresponding to the communications stream for a given channel realization, and generating at least three instructions to output including at least one vector, wherein the leaf node predictor does not have a channel output as an input.
44. The system of claim 43, wherein the leaf node predictor uses a two-dimension leaf-node predictor recursively at least N−1 times, where N is a number of symbols in a leaf-node candidate, wherein the dimension refers to the number of transmitted symbols.
45. The system of claim 43, wherein the leaf node predictor uses a look-up table listing instructions corresponding to best leaf node candidates for a given channel metric.
46. The system of claim 43, wherein the two-dimension leaf node predictor generates the instructions corresponding to best leaf node candidates for a given channel metric analytically without an instruction look-up table.
47. The system of claim 43, further comprising a MIMO engine.
48. The system of claim 43, wherein the leaf node predictor generates at least one instruction to output by optimizing a probability that the output contains at least a suitable approximation of a channel input with lowest cost.
49. The system of claim 43, further comprising a MIMO engine for enumerating at least one candidate vector corresponding to the at least one best leaf node candidate.
50. The system of claim 49, wherein interference cancellation is used to enumerate the at least one candidate vector.
51. The system of claim 49, wherein the MIMO engine computes the cost of each leaf node candidate.
52. The system of claim 49, further comprising a decoder for computing log-likelihood ratio values from the at least one candidate vector.
53. The system of claim 43, further comprising a wireless receiver for receiving a stream of information.
54. The system of claim 43, wherein the leaf node predictor further performs at least one of the following decompositions prior to calculating the channel metric: QR decomposition, Cholesky decomposition, and singular-value decomposition.
55. The system of claim 43, wherein the leaf node predictor determines the at least one channel metric, mi, such that
m i = ( R i , i q min k = i + 1 N ( R k , k q ) ) p ,
where R is an N×N triangular matrix with positive and real diagonals, and where q and p are non-zero real numbers.
56. The system of claim 43, wherein the leaf node predictor determines the at least one channel metric, mi, such that
m i = ( h ~ i q min k = i + 1 N ( h ~ k q ) ) p ,
where {tilde over (h)}k is the k-th column of HΠ, H is an M×N channel matrix, H is an N×N permutation matrix, and where q and p are non-zero real numbers.
57. The system of claim 43, wherein at least two instructions of the at least three instructions are generated by inference from the remaining at least one instruction.
58. A multiple-input multiple-output (MIMO) detector, comprising:
a leaf-node predictor which generates, without using an instruction look-up table, at least three instructions directly from a channel metric which is a function of a matrix, and outputs the at least three instructions to a MIMO engine including at least one vector, wherein the leaf node predictor does not have a channel output as an input.
59. The system of claim 58, wherein at least two instructions of the at least three instructions are generated by inference from the remaining at least one instruction.
60. The system of claim 58, wherein the leaf node predictor determines the at least one channel metric, mi, such that
m i = ( R i , i q min k = i + 1 N ( R k , k q ) ) p ,
where R is an N×N triangular matrix with positive and real diagonals, and where q and p are non-zero real numbers.
61. The system of claim 58, wherein the leaf node predictor determines the at least one channel metric, mi, such that
m i = ( h ~ i q min k = i + 1 N ( h ~ k q ) ) p ,
where {tilde over (h)}k is the k-th column of HΠ, H is an M×N channel matrix, Π is an N×N permutation matrix, and where q and p are non-zero real numbers.
62. The system of claim 58, wherein the leaf node predictor uses a two-dimension leaf-node predictor recursively at least N−1 times, where N is a number of symbols in a leaf-node candidate, wherein the dimension refers to the number of transmitted symbols.
63. The system of claim 58, wherein the leaf node predictor further calculates at least one of the following decompositions prior to calculating the channel metric: QR decomposition, Cholesky decomposition, and singular-value decomposition.
64. The system of claim 43 wherein:
a first instruction corresponds to at least one predicted best leaf node candidate for the given channel realization;
a second instruction is a vector of numbers; and
a 3rd instruction is a set of vectors.
65. The system of claim 58 wherein:
a first instruction corresponds to at least one predicted best leaf node candidate for the given channel realization;
a second instruction is a vector of numbers; and
a 3rd instruction is a set of vectors.
US13/525,283 2007-03-27 2012-06-16 Systems and Methods for N-Dimensional Leaf-Node Prediction for MIMO Detection Abandoned US20130170587A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/525,283 US20130170587A1 (en) 2007-03-27 2012-06-16 Systems and Methods for N-Dimensional Leaf-Node Prediction for MIMO Detection

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US90823007P 2007-03-27 2007-03-27
US12/048,211 US8223870B2 (en) 2007-03-27 2008-03-13 Systems and methods for N-dimensional leaf-node prediction for MIMO detection
US13/525,283 US20130170587A1 (en) 2007-03-27 2012-06-16 Systems and Methods for N-Dimensional Leaf-Node Prediction for MIMO Detection

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/048,211 Continuation US8223870B2 (en) 2007-03-27 2008-03-13 Systems and methods for N-dimensional leaf-node prediction for MIMO detection

Publications (1)

Publication Number Publication Date
US20130170587A1 true US20130170587A1 (en) 2013-07-04

Family

ID=39789051

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/048,211 Active 2030-09-15 US8223870B2 (en) 2007-03-27 2008-03-13 Systems and methods for N-dimensional leaf-node prediction for MIMO detection
US13/525,283 Abandoned US20130170587A1 (en) 2007-03-27 2012-06-16 Systems and Methods for N-Dimensional Leaf-Node Prediction for MIMO Detection

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/048,211 Active 2030-09-15 US8223870B2 (en) 2007-03-27 2008-03-13 Systems and methods for N-dimensional leaf-node prediction for MIMO detection

Country Status (2)

Country Link
US (2) US8223870B2 (en)
WO (1) WO2008119040A1 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7889807B2 (en) * 2007-05-31 2011-02-15 Texas Instruments Incorporated Scalable VLSI architecture for K-best breadth-first decoding
US20080298493A1 (en) * 2007-05-31 2008-12-04 Texas Instruments Incorporated N-candidate depth-first decoding
US8271861B2 (en) * 2008-05-09 2012-09-18 Marvell International Ltd. Symbol vector-level combining receiver for incremental redundancy HARQ with MIMO
WO2010084931A1 (en) * 2009-01-21 2010-07-29 Nec Corporation Demodulation method for mimo systems
US20100296554A1 (en) * 2009-05-19 2010-11-25 Ralink Technology (Singapore) Corporation Method and system for detecting data from multiple antennas
US20110142153A1 (en) * 2009-12-15 2011-06-16 Electronics And Telecommunications Research Institute Multiple-input multiple-output system, receiving apparatus and method of receiving signals

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070162827A1 (en) * 2006-01-11 2007-07-12 Qualcomm Incorporated Sphere detection and rate selection for a MIMO transmission

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5099235A (en) * 1990-05-14 1992-03-24 Hughes Aircraft Company Method for transferring data through a network of intelligent control stations using decentralized control techniques
US6026217A (en) * 1996-06-21 2000-02-15 Digital Equipment Corporation Method and apparatus for eliminating the transpose buffer during a decomposed forward or inverse 2-dimensional discrete cosine transform through operand decomposition storage and retrieval
US6728775B1 (en) * 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070162827A1 (en) * 2006-01-11 2007-07-12 Qualcomm Incorporated Sphere detection and rate selection for a MIMO transmission

Also Published As

Publication number Publication date
US20080240272A1 (en) 2008-10-02
WO2008119040A1 (en) 2008-10-02
US8223870B2 (en) 2012-07-17

Similar Documents

Publication Publication Date Title
US7961826B2 (en) Parameterized sphere detector and methods of using the same
US8155248B2 (en) Equalizing structure and equalizing method
US8265212B2 (en) Antenna selection for MIMO decoding
US20090116588A1 (en) Wireless communications apparatus
US20090110120A1 (en) Wireless communications apparatus
US20070291882A1 (en) Apparatus and method for detecting signal in multi-input multi-output system
US20130170587A1 (en) Systems and Methods for N-Dimensional Leaf-Node Prediction for MIMO Detection
US8270506B2 (en) Method and apparatus for decoding using complex lattice reduction in a multiple antenna system
US8488721B2 (en) Adaptive QRD-M algorithm based signal detecting method by using constellation set grouping in spatial multiplexing multiple-input multiple-output system
US8243843B2 (en) Systems and methods for low-complexity MIMO detection using leaf-node prediction via look-up tables
US8331501B2 (en) Equalizing structure and equalizing method
US20080137762A1 (en) Dynamic resource allocation to improve mimo detection performance
US20130022155A2 (en) Enhanced lattice reduction systems and methods
US8369441B2 (en) Receiving apparatus and receiving method
US8059764B2 (en) Systems and methods for low-complexity max-log MIMO detection
US8699554B2 (en) Scaling to reduce wireless signal detection complexity
US7974334B2 (en) Systems and methods for hybrid-MIMO equalization
US20110200148A1 (en) Systems and methods for low-complexity mimo detection with analytical leaf-node prediction
US8249196B2 (en) Equalizing structure and equalizing method
US8040980B2 (en) Log likelihood ratio calculation method, transmit signal detection method, and receiver
US20080181324A1 (en) Systems and methods for scaling to equalize noise variance
KR20070118837A (en) Apparatus and method for detecting of signal using modified fano algorithm in multi input multi output system
US8259855B2 (en) Equalizing structure and equalizing method
US20080267306A1 (en) Systems and Methods for Low-Complexity Maximum-Likelihood MIMO Detection

Legal Events

Date Code Title Description
STCB Information on status: application discontinuation

Free format text: ABANDONED -- AFTER EXAMINER'S ANSWER OR BOARD OF APPEALS DECISION