As wireless technology provides faster and more inexpensive devices, it enables people to be more mobile. Such mobility is desirable to many because it enables better collaboration and more efficient transactions.
To improve the performance of wireless devices, and hence improve mobility, designers are turning to the use of multiple-input multiple-output (“MIMO”) systems. MIMO systems have more than one transmitter and more than one receiver, and hence, more than one wireless channel. Such systems work well with existing orthogonal frequency-division multiplexing (“OFDM”) methods of transmission because the orthogonal nature of the carriers helps to prevent interference between the adjacent carriers.
At any given frequency, channel output y is related to channel input s by a matrix H such that:
y=Hs+n, (1)
where s, y and n are vectors. The input vector s has MT elements and the output vector y and noise vector n has MR elements. MT and MR are the number of transmit and receive transceivers, respectively. Input vector s is a member of a signal constellation having MT dimensions (ΩMT). Because of this dimensionality, the decoding problem may become computationally demanding. For example, an algorithm to decode y in order to determine which constellation point S was sent over the wireless channel requires solving the equation
This problem has complexity that grows exponentially with the number of transmit transceivers MT. For instance, with 4 transmit transceivers (MT=4) using 16-QAM, there are in each symbol interval 164 or 65,536 constellation points in each frequency bin to be searched in order to locate the signal. Any reduction in this complexity would be advantageous.
The problem outlined above may at least in part be addressed by N-Candidate Depth-First Decoding methods and systems that employ such methods. In some embodiments, the method includes receiving data representing a vector of receive signals detected by multiple receive transceivers; performing an N-candidate, depth-first search on the data to obtain an estimated constellation point; and providing a user data stream based at least in part on the estimated constellation point.
In some embodiments the system includes a multiple-input multiple-output decoder. The decoder is configured to perform an N-candidate, depth-first search as part of converting a receive signal into a data stream.
For a more complete understanding of the present disclosure and the advantages thereof, reference is now made to the accompanying drawings and detailed description, wherein like reference numerals represent like parts:
It should be understood at the outset that although an illustrative implementation appears below, the present disclosure may be implemented using any number of techniques whether currently known or later developed. The present disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, but may be modified within the scope of the appended claims along with their full scope of equivalents.
Certain terms are used throughout the following claims and discussion to refer to particular system components. This document does 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. Additionally, the term “system” refers to a collection of two or more hardware components, and may be used to refer to an electronic device or circuit, or a portion of an electronic device or circuit.
In an alternative embodiment, a different method of modulation or combination of modulation methods is used such as quadrature phase shift keying, 64-QAM, etc.
Before considering the MIMO decoder module 310, a discussion of decoding may be helpful. Decoding refers to the idea of estimating the transmit signal most probably sent by transmit transceivers 304 based on the signal received by receive transceivers 308. Considering a mapping of the entire constellation of possibly transmitted signals onto a coordinate system, a similarly mapped received signal will not be located exactly on the transmitted signal, as expected, because of the alteration described in the discussion of
Our task is to identify which of the possibly transmitted signals was actually sent based on the received signal. Turning to
The answer lies in the idea of partial Euclidean distances, or metrics. Referring to diagram 710, if we build a node tree such that each node corresponds to one possibly transmitted signal, and the number of levels equals the number of transmit transceivers (for the complex search case), we may uniquely describe the distance to a possibly transmitted signal as the vector s in equation 1. Each node in the tree represents an element of the vector s. We may calculate partial Euclidean distances by calculating various elements of the vector s, but the vector need not be complete before we decide to remove (or “prune”) a node in the tree from further search. Nodes that are estimated to have a low likelihood of being part of the vector representing the possibly transmitted signal with the minimum distance to the received signal are pruned. Additionally, because the distances are non-negative, once we decide to prune a node from search, we may prune all successor nodes without further calculation or storage as depicted in diagram 712. We may do so because any node connected to the removed ancestor node will be farther away from the received signal, and consequently not a candidate for the signal actually sent. Hence, we need not waste computing resources calculating or storing these pruned nodes and leaves. However, by doing so, our results are only as certain as our likelihood estimation.
Diagram 712 illustrates a N-candidate, depth-first, tree traversal algorithm for pruning. If N is equal to the number of total possible constellation points, this search is an exhaustive search. Each node in the tree represents a possibly transmitted signal. Each node (except for leaf nodes) has two branches (in the BPSK case). Beginning at root node 714, the distance to each of the two nodes on the level below it are calculated. Selecting the node corresponding to the smallest distance, the distance to each of the two nodes on the level below that are calculated. This illustrates the depth-first aspect of the method, i.e., distances for successor nodes are calculated for the current node in order to reach a leaf node as soon as possible.
In a set of radii A, with N elements comprising the smallest distances, or metrics, one of the elements is flagged as being the current radius r for tree traversal. As a node is visited during the search, if the node has a smaller metric than the largest metric in the set, the set will be updated by replacing the largest metric in the set with the new metric. In one embodiment, a fast search refers to updating the current r in the set ̂ such that r always refers to the smallest value in the set. In an alternative embodiment, an exact search refers to updating the current r in the set ̂ such that r always refers to the largest value in the set. This illustrates the N-candidate aspect of the search, i.e., N is the number of metrics stored in ̂. For a large value of N, the average number of visited nodes increases dramatically, making the difference between an exact search and a fast search more pronounced. Indeed, for large N, the value of r shrinks much faster in the fast search compared to the exact search. The value for N may be selected, adjusted as needed, and optimized via simulation. Nodes with a larger metric than the current r are pruned along with any successor nodes.
It is possible that the signal actually sent does not have the smallest Euclidean distance to the received signal. However, the probability of correct detection can be maximized (without forward error correction) when we choose a signal which has the smallest distance. The probability of correct detection can be even higher if we supply as inputs to forward error correction N candidates, rather than a single candidate, and the log likelihood ratios based on the N candidates.
Turning to
H=[Q, Q′][R, 0]T, (3)
where 0 is a (MR−MT)×MT zero matrix, and Q′ is a MR×(MR−MT) matrix. In order to mathematically apply the contracting sphere idea, a constraint may be placed on equation 2,
d(s)=∥y−Hs∥2, where d(s)<r2, (4)
thus pruning nodes farther away than the radius of the sphere, r. Applying the decomposition result, equation (3), to equation (4):
∥y−Hs∥<r2, (5)
∥[Q, Q′,]Ty−[R, 0]Ts∥2<r2 (6)
∥QTy−Rs∥2<r2−∥(Q′)Ty∥2, (7)
c+∥Q
T
y−Rs∥
2
<r
2, and (8)
d(s)=c+∥ŷ−Rs∥2 (9)
where ŷ=QTy=RsZF, and sZF=H+y. We can safely set c to be 0 because it is not a function of s, and it will be canceled in the log-likelihood-ratio approximation described below.
Multiplication logic 804 performs the multiplication by QT, and N-candidate search logic 806 implements the depth-first search on the data. The logic 806 calculates the elements for the s vector and the corresponding distance to each node by calculating a b-metric and a T-metric. The logic 806 calculates the b-metric and T-metric using
where TM
T
i
=T
i+1
+|b
i+1
−R
ii
s
i|2Xi=√{square root over (Xi+12+|bi+1−Riisi|2)},Xi2=Ti (12)
X
i≈max(|Xi+1|,|bi+1−Riisi|), (13)
|bi+1−Riisi|≈max(|Re{bi+1−Riisi}∥,∥Im{bi+1−Riisi}|) (14)
are used. The full distance d(s) from the received signal to the possibly transmitted signal is the partial Euclidean distance of a leaf, so d(s)=T1(s). The solution is the point corresponding to the lowest T1(s).
The log-likelihood-ratio (“LLR”) computing unit 808 computes the bit decision reliability (soft-decision) of the N-candidate search. Denoting the kth information bit as xk, there exists an unique mapping between the bit sequence and the transmitted signal vector: [x1 . . . xM
The computed LLRs are then supplied to forward error correction logic (“FEC”) 810. The FEC 810 FEC performs error correction analyzing the decision reliability of coded bit sequence.
After error correction, the solution is then provided to a user via a data stream. The data stream can take any number of formats such as image data, sound data, etc. The solution can also be a piece of information that the wireless device 108 uses to ultimately cause a data stream to be provided to a user. The solution can also be a piece of information that a data stream provided to the user is based on.
Preferably, the LLR computing unit 808 and forward correction logic 810 are not part of the MIMO decoder module 310. In an alternative embodiment, they are part of the MIMO decoder module 310.
where E{D} is the average number of visited nodes, and tCLK is the length of the critical path of the circuit. In one embodiment, a fast search refers to updating the current r in the set ̂ such that r always refers to the smallest value in the set. In an alternative embodiment, an exact search refers to updating the current r in the set ̂ such that r always refers to the largest value in the set. As can be seen, the fast search has a throughput between two to four times as high as the exact search except when the number of candidates (“Cand.”) equals 1, where a fast search is not different from an exact search.
The system described above may be implemented on a wireless device such as any general-purpose computer.
While several embodiments have been provided in the present disclosure, it should be understood that the disclosed systems and methods may be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered as illustrative and not restrictive, and the intention is not to be limited to the details given herein. For example, the various elements or components may be combined or integrated in another system or certain features may be omitted, or not implemented.
Also, techniques, systems, subsystems, and methods described and illustrated in the various embodiments as discrete or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as directly coupled or communicating with each other may be coupled through some interface or device, such that the items may no longer be considered directly coupled to each other but may still be indirectly coupled and in communication, whether electrically, mechanically, or otherwise with one another. Other examples of changes, substitutions, and alterations are ascertainable by one skilled in the art and could be made without departing from the spirit and scope disclosed herein.