The following relates to the computation of one or more reliability values (such as log likelihood ratio values) in a digital communications system.
The receiver of a digital communications system typically includes a constellation demapper and a decoder. The constellation demapper demaps the received symbol to either one or more bits (a “hard decision”) or one or more reliability values, each reliability value representing the likelihood that a transmitted bit is either a one or a zero. The output of the constellation demapper is then fed to the decoder, which uses the output of the constellation demapper and the known error control code applied by the transmitter to decode the bits that were transmitted.
A “soft-input” decoder is one that accepts reliability values as an input instead of hard bit values. For example, there are known soft-input decoders for decoding turbo codes and Low-Density Parity-Check (LDPC) codes. A soft-input Viterbi decoder is also known. In soft-input decoders, instead of accepting bits as an input to the decoder, such decoders accept reliability values, one reliability value corresponding to each transmitted bit. A reliability value typically provides more information than a hard decision bit. As an example, the sign of the reliability value may indicate which bit was more likely transmitted, and the amplitude of the reliability value may indicate how likely it was that the particular bit was transmitted.
An example of one type of reliability value is a Log Likelihood Ratio (LLR).
It is desirable to compute reliability values in a way that aims to reduce computational complexity and/or in a way that aims to reduce the time required to compute the reliability values.
Embodiments of the present application will be described, by way of example only, with reference to the accompanying figures wherein:
Like reference numerals are used in different figures to denote similar elements.
In one aspect, there is provided a method of computing a reliability value for a bit of a received symbol value y associated with a constellation; the method comprising: computing the reliability value by obtaining a first minimum distance value, the first minimum distance value being a function of an absolute magnitude of an initial value associated with the bit, and combining the first minimum distance value with a second minimum distance value, the second minimum distance value being a function of a distance between the received symbol value y and a symbol x{circumflex over (b)}; in the constellation corresponding to a most likely pattern of bits transmitted given the received symbol value y.
The second minimum distance value may optionally be equal to the distance between the received symbol value y and the symbol x{circumflex over (b)}; in the constellation corresponding to the most likely pattern of bits transmitted given the received symbol value y.
Combining the first minimum distance value with the second minimum distance value may optionally comprise either subtracting the first minimum distance value from the second minimum distance value or subtracting the second minimum distance value from the first minimum distance value.
The constellation may optionally comprise a set of constellation points having a minimum distance of 2d between a pair of the constellation points.
The first minimum distance value may optionally be equal to d plus the absolute magnitude of the initial value.
The received symbol value y may optionally represent m bits that were transmitted using a modulation scheme of the constellation.
The method may optionally further comprise: obtaining m initial values y0, y1, . . . , ym-1 from the received symbol value y, one for each of the m bits, the initial value being a kth one, yk, of the m initial values.
The method may optionally further comprise computing the first minimum distance value as d+|yk|, where |yk| is the absolute magnitude of the initial value.
The method may optionally further comprise computing the second minimum distance value as a value equal to the distance between the received symbol value y and the symbol x{circumflex over (b)}; in the constellation corresponding to the most likely pattern of bits transmitted given the received symbol value y.
The method may optionally further comprise computing m reliability values, one of the m reliability values being said reliability value.
The m reliability values may optionally be computed by, for i=0, . . . , m−1, computing an ith reliability value including computing d+|yi| to obtain an ith first minimum distance value, and combining the ith first minimum distance value with the second minimum distance value.
The second minimum distance value may optionally be computed as ∥ym-1|−d|.
The method may optionally further comprise obtaining a hard decision representing the most likely pattern of bits transmitted given the received symbol value y.
The method may optionally further comprise computing the second minimum distance value by directly computing the distance between the received symbol value y and the symbol x{circumflex over (b)} in the constellation corresponding to the hard decision.
The initial values may optionally be soft-sliced values.
The constellation may optionally be either a Pulse Amplitude Modulation (PAM) constellation or a Quadrature Amplitude Modulation (QAM) constellation.
The one or more reliability values may optionally be Log Likelihood Ratio (LLR) value(s).
The LLR values for i bits may optionally be computed as:
wherein the ith first minimum distance value is used to compute one of
and wherein the second minimum distance value is used to compute the other of
and where {right arrow over (b)} is a bit vector of m bits, x{right arrow over (b)} is a symbol in the constellation associated with the bit vector {right arrow over (b)}, {right arrow over (b)},bi=0 is a set of all possible bit vectors whose ith bit is 0, {right arrow over (b)},bi=1 is a set of all possible bit vectors whose ith bit is 1, k is a scaling factor, |y−x{right arrow over (b)}| represents the absolute value of the difference between the received symbol value y and the symbol x{right arrow over (b)},
is a minimum of the set of values |y−x{right arrow over (b)}| for {right arrow over (b)},bi=1, and
is a minimum of the set of values |y−x{right arrow over (b)}| for {right arrow over (b)},bi=0.
Gray coding may optionally be used in the constellation.
Natural coding may optionally be used in the constellation.
Obtaining m initial values y0, y1, . . . , ym-1 from the received symbol value y may optionally comprise: selecting the received symbol value y as a first initial value y0; and for k=1, . . . , m−1, computing a kth initial value, yk, as yk=2m-k d−|yk-1|.
Obtaining m initial values y0, y1, . . . , ym-1 from the received symbol value y may optionally comprise: selecting the received symbol value y as a first initial value y0; and for k=1, . . . , m−1, computing a kth initial value, yk, as
The constellation may optionally be square QAM or rectangular QAM.
The reliability value(s) may optionally be computed as part of demapping.
Demapping may optionally be performed by decomposing the QAM constellation into two independent PAM constellations representing an in-phase and a quadrature-phase signal respectively, and independently demapping each of the two independent PAM constellations.
The method may optionally further comprise: receiving a wireless signal from a wireless channel; and obtaining the received symbol value y from the wireless signal.
The method may optionally further comprise performing decoding using the m reliability values.
The most likely pattern of bits transmitted given the received symbol value y may optionally be the hard decision of the received symbol value y.
The method may optionally comprise:
The second minimum distance value may optionally represent a minimum of a set comprising the distances between the received symbol value y and all points in the constellation having an associated bit pattern in which a given bit equals the corresponding bit in a hard decision associated with the received symbol value y.
The first minimum distance value may optionally represent a minimum of a set comprising the distances between the received symbol value y and all points in the constellation having an associated bit pattern in which the ith bit does not equal the ith bit of the hard decision.
The value d may optionally be a function of the received energy per bit, or vice versa.
The method may optionally further comprise performing the demapping for a plurality of received symbols, and decoding the plurality of received symbols using the reliability values as inputs to a soft-input decoder.
The demapping may optionally be performed at the receiving end of a device (e.g. a mobile device).
In another aspect, there is provided an apparatus in a digital communications system, the apparatus comprising a constellation demapper for computing a reliability value for a bit of a received symbol value y associated with a constellation; the constellation demapper for performing operations comprising: computing the reliability value by obtaining a first minimum distance value, the first minimum distance value being a function of an absolute magnitude of an initial value associated with the bit, and combining the first minimum distance value with a second minimum distance value, the second minimum distance value being a function of a distance between the received symbol value y and a symbol x{circumflex over (b)} in the constellation corresponding to a most likely pattern of bits transmitted given the received symbol value y.
The apparatus may optionally be configured to perform any of the additional steps in the methods described above and herein.
The apparatus may optionally further include a decoder for decoding using reliability values computed by the demapper.
The apparatus may optionally further include a receiver for receiving a signal from a channel.
The apparatus may optionally further include processing circuitry for obtaining the received symbol value from the received signal.
The apparatus may optionally be part of a mobile device.
In another aspect, there is provided a computer readable medium having stored thereon computer executable instructions that, when executed, cause an apparatus to perform a method of computing a reliability value for a bit of a received symbol value y associated with a constellation; the instructions, when executed, causing the apparatus to perform operations comprising: computing the reliability value by obtaining a first minimum distance value, the first minimum distance value being a function of an absolute magnitude of an initial value associated with the bit, and combining the first minimum distance value with a second minimum distance value, the second minimum distance value being a function of a distance between the received symbol value y and a symbol x{circumflex over (b)} in the constellation corresponding to a most likely pattern of bits transmitted given the received symbol value y.
The computer executable instructions, when executed, may optionally cause the apparatus to perform any of the additional steps in the methods described above and herein.
In another aspect, there is provided a method of demapping a received symbol value y associated with a constellation, the constellation comprising a set of constellation points having a minimum distance of 2d between a pair of the constellation points; the received symbol value y representing m bits that were transmitted using a modulation scheme of the constellation; the method comprising: demapping the received symbol value y by: obtaining m initial values y0, y1, . . . , ym-1 from the received symbol value y, one for each of the m bits; computing m reliability values by, for i=0, . . . , m−1, computing an ith reliability value including computing d+|yi| to obtain an ith minimum distance value, where |yi| is an absolute magnitude of the initial value associated with an ith bit of the m bits, and combining the ith minimum distance value with another minimum distance value equal to a distance between the received symbol value y and a symbol x{circumflex over (b)} in the constellation corresponding to a most likely pattern of bits transmitted given the received symbol value y.
The initial values may optionally be soft sliced values.
The most likely pattern of bits transmitted given the received symbol value y may optionally be the hard decision of the received symbol value y.
Combining the ith minimum distance value with the other minimum distance value may optionally comprise either subtracting the ith minimum distance value from the other minimum distance value or subtracting the other minimum distance value from the ith minimum distance value.
The other minimum distance value may optionally be computed as ∥ym-1|−d|.
The method may optionally further comprise obtaining a hard decision representing the most likely pattern of bits transmitted given the received symbol value y.
The method may optionally further comprise computing the other minimum distance value by directly computing the distance between the received symbol value y and the symbol x{circumflex over (b)} in the constellation corresponding to the hard decision.
The constellation may optionally be a Pulse Amplitude Modulation (PAM) constellation.
The constellation may optionally be a Quadrature Amplitude Modulation (QAM) constellation.
Gray coding may optionally be used in the constellation.
Natural coding may optionally be used in the constellation.
The reliability values may optionally be Log Likelihood Ratio (LLR) values.
Each one of the m reliability values may optionally be Log Likelihood Ratio (LLR) values computed as:
wherein the ith minimum distance value is used to compute one of
and wherein the other minimum distance value is used to compute the other of
and where {right arrow over (b)} is a bit vector of m bits, x{right arrow over (b)} is a symbol in the constellation associated with the bit vector {right arrow over (b)}, {right arrow over (b)},bi=0 is a set of all possible bit vectors whose ith bit is 0, {right arrow over (b)},bi=1 is a set of all possible bit vectors whose ith bit is 1, k is a scaling factor, |y−x{right arrow over (b)}| represents the absolute value of the difference between the received symbol value y and the symbol x{right arrow over (b)},
is a minimum of the set of values |y−x{right arrow over (b)}| for {right arrow over (b)},bi=1, and
is a minimum of the set of values |y−x{right arrow over (b)}| for {right arrow over (b)},bi=0.
The scaling factor k may optionally be equal to one.
The scaling factor k may optionally be equal to another real number.
The scaling factor k may optionally be equal to 2σ2, where σ is a standard deviation of a Gaussian distribution of noise.
The method may optionally comprise:
Obtaining m initial values y0, y1, . . . , ym-1 from the received symbol value y may optionally comprise: selecting the received symbol value y as a first initial value y0; for k=1, . . . , m−1, computing a kth initial value, yk, as yk=2m-k d−|yk-1|.
Obtaining m initial values y0, y1, . . . , ym-1 from the received symbol value y may optionally comprise: selecting the received symbol value y as a first initial value y0; for k=1, . . . , m−1, computing a kth initial value, yk, as
The constellation may optionally be square QAM or rectangular QAM.
The demapping may optionally be performed by decomposing the QAM constellation into two independent PAM constellations representing an in-phase and a quadrature-phase signal respectively, and independently demapping each of the two independent PAM constellations.
The method may optionally further comprise: receiving a wireless signal from a wireless channel; and obtaining the received symbol value y from the wireless signal.
The method may optionally further comprise performing decoding using the m reliability values.
The other minimum distance value may optionally represent a minimum of a set comprising the distances between the received symbol value y and all points in the constellation having an associated bit pattern in which a given bit equals the corresponding bit in a hard decision associated with the received symbol value y.
The minimum distance value d+|yi| may optionally represent a minimum of a set comprising the distances between the received symbol value y and all points in the constellation having an associated bit pattern in which the ith bit does not equal the ith bit of the hard decision.
The value d may optionally be a function of the received energy per bit, or vice versa.
The method may optionally further comprise performing the demapping for a plurality of received symbols, and decoding the plurality of received symbols using the reliability values as inputs to a soft-input decoder.
The demapping may optionally be performed at the receiving end of a device (e.g. a mobile device).
In another aspect, there is provided an apparatus in a digital communications system, the apparatus comprising a constellation demapper for demapping a received symbol value y associated with a constellation, the constellation comprising a set of constellation points having a minimum distance of 2d between a pair of the constellation points; the received symbol value y representing m bits that were transmitted using a modulation scheme of the constellation; the constellation demapper for demapping the received symbol value y by: obtaining m initial values y0, y1, . . . , ym-1 from the received symbol value y, one for each of the m bits; computing m reliability values by, for i=0, . . . , m−1, computing an ith reliability value including computing d+|yi| to obtain an ith minimum distance value, where |yi| is an absolute magnitude of the initial value associated with an ith bit of the m bits, and combining the ith minimum distance value with another minimum distance value equal to a distance between the received symbol value y and a symbol x{circumflex over (b)}; in the constellation corresponding to a most likely pattern of bits transmitted given the received symbol value y.
The apparatus may optionally be configured to perform any of the additional steps in the methods described above and herein.
The apparatus may optionally further include a decoder for decoding using the reliability values computed by the demapper.
The apparatus may optionally further include a receiver for receiving a signal from a channel.
The apparatus may optionally further include processing circuitry for obtaining the received symbol value from the received signal.
The apparatus may optionally be part of a mobile device.
In another aspect, there is provided a computer readable medium having stored thereon computer executable instructions that, when executed, cause an apparatus to perform a method of demapping a received symbol value y associated with a constellation, the constellation comprising a set of constellation points having a minimum distance of 2d between a pair of the constellation points; the received symbol value y representing m bits that were transmitted using a modulation scheme of the constellation; the instructions, when executed, causing the apparatus to perform operations comprising: demapping the received symbol value y by: obtaining m initial values y0, y1, . . . , ym-1 from the received symbol value y, one for each of the m bits; computing m reliability values by, for i=0, . . . , m−1, computing an ith reliability value including computing d+|yi| to obtain an ith minimum distance value, where |yi| is an absolute magnitude of the initial value associated with an ith bit of the m bits, and combining the ith minimum distance value with another minimum distance value equal to a distance between the received symbol value y and a symbol x{circumflex over (b)}; in the constellation corresponding to a most likely pattern of bits transmitted given the received symbol value y.
The computer executable instructions, when executed, may optionally cause the apparatus to perform any of the additional steps in the methods described above and herein.
For illustrative purposes, some specific example embodiments will now be explained in greater detail below in conjunction with the figures.
The embodiments set forth herein represent the necessary information to practice the claimed subject matter and illustrate the best way of practicing such subject matter. Upon reading the following description in light of the accompanying figures, those of sufficient skill will understand the concepts of the claimed subject matter and will recognize applications of these concepts not particularly addressed herein. It should be understood that these concepts and applications fall within the scope of the disclosure and the accompanying claims.
Moreover, it will be appreciated that any module, component, or device exemplified herein that executes instructions may include or otherwise have access to a computer/processor readable storage medium or media for storage of information, such as computer/processor readable instructions, data structures, program modules, or other data. A non-exhaustive list of examples of computer/processor readable storage media include magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, optical disks such as CD-ROM, DVDs, Blu-ray, or other optical storage, volatile and non-volatile, removable and non-removable media implemented in any method or technology, RAM, ROM, EEPROM, flash memory or other memory technology. Any such computer/processor storage media may be part of a device or accessible or connectable thereto. Any application or module herein described may be implemented using computer/processor readable/executable instructions that may be stored or otherwise held by such computer/processor readable storage media.
In general, there are disclosed below systems and methods in which at least one reliability value is computed for at least one of m bits transmitted via a received symbol value y.
Turning to
To address the challenges mentioned above, the transmit side 104 includes an encoder 112 and a constellation mapper 114. The encoder 112 performs error control coding. Specifically, the encoder 112 encodes the bits 109 to be transmitted so that redundancy is strategically added. This redundancy is then exploited on the receive side 106 to try and identify and/or correct errors introduced by the noise in the channel 108. Error control coding and error control codes are well known in the art. Examples of error control codes include linear block codes, cyclic codes, convolutional codes, and turbo codes.
Thus, the output of the encoder 112 is a stream of encoded bits 116, which consist of the stream of bits 109 encoded using an error control code.
The constellation mapper 114 sequentially maps groups of encoded bits 116 to corresponding symbols, which are ultimately mapped to waveforms that are suitable for transmission over the channel 108. The output of the constellation mapper 114 is therefore a stream of symbols 118. Each symbol corresponds to a specific group of bits, and each symbol can be represented as vectors or values in a signal constellation. The mapping of bits to symbols is what is typically referred to as modulation mapping.
For example,
As another example, if the constellation mapper 114 receives as its input “001”, then it will transmit symbol s5, which has a value of d in the constellation.
In this way, the constellation mapper 114 can receive a continual or a continuous stream of encoded bits 116 and map and transmit over the channel 108 a corresponding stream of symbols 118, each symbol corresponding to a group of 3 bits.
The specific way in which bit patterns are mapped to symbols is configurable. For example, the bit-to-symbol mapping shown in
In a constellation, each symbol is represented by a value in the constellation. For example, the symbol {right arrow over (s)}1 in the 16-QAM constellation shown in
It will be appreciated that the PAM and QAM constellations illustrated in
Returning now to
As an example, assume the 8-PAM constellation in
It should be noted that the illustrated data communications system 102 has been simplified for ease of explanation. In actual implementation, the transmit side 104 and the receive side 106 will typically include many more components that are known in the art and that may be related to the transmission of the data, depending upon the specific implementation. Examples of such components include (but are not limited to): source coders/decoders, encryption/decryption, interleaving/deinterleaving, digital signal processing, filtering, OFDM modulation/demodulation, spreading/despreading, scrambling/descrambling, and mapping to/from subbands. As one specific example, to try and combat bursts of noise in the channel, the encoded bits 116 may be interleaved prior to constellation mapping, and then the demapped values may be deinterleaved prior to decoding 122.
Also, the channel 108 can include both the actual transmission medium (e.g. air or cable) through which an analog signal propagates, as well as the analog-to-digital (ND) conversion and any related amplification, filtering or digital signal processing. In this case, the noise can include both noise in the actual transmission medium and noise introduced in the ND conversion and any related filtering or digital signal processing at the receive side and/or the transmit side.
Returning now to
An example of one type of reliability value is a Log Likelihood Ratio (LLR). The LLR for each bit may be computed as follows, with reference to
In this example embodiment, assume for simplicity that PAM is being used in the constellation mapper 114 to map each group of m bits to a symbol x{right arrow over (b)} in a 2m-PAM constellation. Therefore, for each received symbol value y, the constellation demapper 120 outputs m LLR values, i.e., one LLR value for each bit represented by the received symbol value y.
Assume also that the symbol x{right arrow over (b)} is corrupted by additive noise n. Therefore, the received symbol value is:
y=x
{right arrow over (b)}
+n.
Of course, the transmitted symbol x{right arrow over (b)} may be corrupted by multiplicative noise (e.g. fading in a channel), but it is assumed that this is compensated for via known signal processing (e.g. equalizing). Therefore, the additive noise n may represent additive noise in the channel medium and/or additive noise added through the filtering and signal processing (e.g. added through imperfect ND conversion, equalization, etc.). As one example, the additive noise n may be or include the estimation error of the estimated symbol after channel equalization.
The LLR for each bit of the m bits transmitted via the symbol x{right arrow over (b)} can be computed as follows:
That is, the LLR L(bi) for an ith bit of the m bits transmitted via the symbol x{right arrow over (b)}; is computed by:
(a) computing the conditional probability that the bit equals zero given the received value y (i.e. computing P(bi=0|y)),
(b) computing the conditional probability that the bit equals one given the received value y (i.e. computing P(bi=1|y)), and
(c) dividing (a) by (b), and then computing the natural logarithm of this value.
With such a computation, the sign of L(bi) will represent which bit was more likely to have been transmitted (“0” or “1”), and the absolute magnitude of L(bi) will represent how likely it was that that particular bit was transmitted.
It is desired to compute the LLR L(bi) for each of the m bits in a way that is practical and does not use up too many computational resources.
Assuming each bit is equally likely to be transmitted and that the noise n of the channel can be modelled as additive white Gaussian noise (AWGN), then the computation of the LLR L(bi) for each bit of the transmitted symbol can be reduced to:
where {right arrow over (b)} is a group of m bits (the “bit vector”), and x{right arrow over (b)} is the symbol associated with the bit vector {right arrow over (b)}. The notation {right arrow over (b)},bi=0 is the set of all possible bit vectors whose ith bit is 0. Similarly, the notation {right arrow over (b)},bi=1 is the set of all possible bit vectors whose ith bit is 1. Finally, the symbol σ is the standard deviation of the Gaussian distribution of the noise n.
Computing equation (1) is often impractical since it involves too many computational resources and/or too much time. This is because equation (1) typically needs to be computed by brute force (exhaustive search). Also, the exponentials and logarithms are typically computationally intensive. In view of this, the following approximation is often used:
which simplifies the computation of the LLR to:
Computing equation (2) is referred to as the Max-Log-MAP LLR calculation.
Computing equation (2) may require fewer computational resources than computing equation (1). However, assuming that equation (2) is computed using an exhaustive search (brute force method), it can still involve a lot of computational resources, especially when the number of bits per symbol (i.e. m) is large. In particular, the complexity involves O(m2m) subtractions for PAM and O(m2m/2) subtractions for QAM.
It is possible to develop methods for computing equation (2) using further approximations that sacrifice accuracy for a reduction in complexity. However, such methods are undesirable because they introduce further LLR distortion. It is therefore desired to compute the LLR of equation (2) in a way in which complexity can be reduced, but not at the expense of sacrificing accuracy of the calculation of equation (2) (i.e. not at the expense of introducing further LLR distortion). Embodiments for computing the LLR that may have such benefits are disclosed below.
Returning to
“Soft slicing” a received value y refers to a method of deriving m values from the received value y in a way that facilitates computation of a reliability value (such as the LLR) for each of the m bits using the soft sliced values. Typically, the soft slicing is also performed in a way that is intuitively meaningful.
Assuming a 2m-PAM constellation having a distance of 2d between adjacent constellation points, and using a Gray coding scheme along the lines of that shown in
y
0
=y
y
i=2m-id−|yi-1|,i=1, . . . ,m−1
where yi is the ith soft sliced value (sometimes called the ith “soft sliced bit”). As discussed below, soft slicing in this way can make computation of the LLR in equation (2) simpler. This soft slicing technique is also intuitively meaningful as follows. To obtain each soft sliced value yi, the PAM constellation can be “folded-and-overlapped”. That is, a “fold-and-overlap” approach can be taken. Specifically, in order to obtain the ith coordinate axis for slicing the soft value the right half of the (i−1)th coordinate axis is folded and overlapped with the left half. The origin, i.e. the decision boundary, is shifted to the left by 2m-i d. The received symbol value y is also folded to the left if it is on the right half of the axis.
To assist in understanding this, please consider the following simple example in relation to
For the middle bit, the soft sliced value y1 can then be obtained as shown in step 2 of
For the least significant bit, the soft sliced value y2 can then be obtained as shown in step 3 of
The example described above with reference to
y
0
=y,
y
i=2m-id−|yi-1|,i=1, . . . ,m−1
In the specific example in
As mentioned above, the purpose of soft slicing the received value y is to facilitate the computation of reliability values, such as the LLR. Let us assume that the LLR for each of the m bits received via the symbol value y is computed as shown in equation (2):
Then, with reference to terms in this equation (which may also be present in other reliability computations), and with reference to the soft slicing discussed herein, the following three observations are made:
Observation (1):
where {circumflex over (b)}i is the ith bit of the hard decision {circumflex over (b)} corresponding to the received value y. The hard decision {circumflex over (b)} corresponding to the received value y is the pattern of bits representing the constellation demapper's decision/guess as to what pattern of bits were most likely sent via the received symbol. Typically, the hard decision is the most likely pattern of m bits transmitted given the received value y. In particular, for channel noise modelled as AWGN, the hard decision of the received symbol value y is the bit pattern corresponding to the transmitted symbol x{right arrow over (b)} that is closest to the received symbol value y in the constellation. For example, with reference to
Observation (1) is a mathematical equivalence that is self-explanatory on its face. That is, if you determine the hard decision bits, then
will either be equal to
or equal to
since k can only be 0 or 1.
Therefore, for example, the terms
in equation (2) can be computed by computing
are computed, then
can be computed by computing and squaring each of the values of
A simplification that allows for
to be computed more easily is the subject of Observations (2) and (3) respectively.
Observation (2):
where {circumflex over (b)}i is the iih bit of the hard decision {circumflex over (b)}, and x{circumflex over (b)}; is the transmitted symbol corresponding to the hard decision {circumflex over (b)}. To help appreciate this observation, please consider the following. As mentioned above, for AWGN, the hard decision corresponding to the received value y is the bit pattern corresponding to the transmitted symbol xb that is closest to the received symbol value y in the constellation. Therefore, to compute
that is, to compute the minimum of the distances between received symbol value y and all the transmitted symbols that have the hard decision bit as the ith bit, all that needs to be done is compute the distance to the hard decision symbol, since it will be closest (and therefore the smallest distance) to the received symbol value y. That is,
Observation (3):
for each soft sliced value yi. To help intuitively appreciate this observation, consider the soft slicing discussed herein. When the axis is overlapped for computation of the ith soft slice value yi, then the closest symbol to the received value y on the overlapped axis that has a bit pattern with an ith bit not equal to the hard decision ith bit is the first symbol on the other side of the decision axis (origin). This is the minimum distance of all of the distances to each of the symbols having a bit pattern with an ith bit not equal to the hard decision ith bit:
The computation of this minimum distance is |yi| (to get to the origin of the overlapped axis) plus the distance between the origin and the first constellation point on the other side of the overlapped axis (i.e. the distance d). Therefore,
In view of the three observations above, there are provided below some methods for computing the LLR via equation (2).
For a 2m-PAM constellation having a distance of 2d between adjacent constellation points and Gray coding, the following method can be performed in order to compute the LLR of equation (2) for each of the m bits corresponding to a received symbol value y. This method is described with reference to
In step 710, the constellation demapper 120 obtains the received symbol value y.
Next, in step 712, the constellation demapper 120 obtains the hard decision corresponding to the received value y. As mentioned above, and in this embodiment, the hard decision corresponding to the received value y is the most likely pattern of m bits transmitted given the received value y. For channel noise modelled as AWGN, the hard decision of the received symbol value y is the bit pattern corresponding to the transmitted symbol that is closest to the received symbol value y in the constellation. The hard decision consists of a pattern of m bits: b0b1 . . . bm-1.
Then, in step 714, the constellation demapper 120 soft slices the received symbol value y to obtain the m soft-sliced values y0, . . . , ym-1. In this specific embodiment, the soft slicing method described above is used, such that the received value y is sliced into m soft-sliced values y0, . . . , ym-1 as follows:
y
0
=y,
y
i=2m-id−|yi-1|,i=1, . . . ,m−1
Next , in step 716, the constellation demapper 120 computes |y−x{circumflex over (b)}|, where x{circumflex over (b)} is the transmitted symbol corresponding to the hard decision. Recall, from observation (2) that
As discussed above with reference to observation (2), the computation |y−x{circumflex over (b)}| is simply the distance to the symbol x{circumflex over (b)} in the constellation representing the hard decision. That is, |y−x{circumflex over (b)}| is the distance to the symbol in the constellation that is closest to the received value y.
One way to compute |y−x{circumflex over (b)}| is to compute it directly since the value y is known (it is received) and since x{circumflex over (b)} can be determined from the hard decision. Specifically, x{circumflex over (b)} is the symbol in the constellation that represents the bit pattern corresponding to the hard decision. In this implementation, the hard decision would need to be obtained, if the constellation demapper 120 does not already have it.
Another way to easily compute |y−x{circumflex over (b)} is to use the sliced values computed in step 714. Specifically, for the specific embodiments described herein, the following mathematical equivalency holds: |y−x{circumflex over (b)}|=∥ym-1|−d|. To help intuitively understand this mathematical equivalency, please consider the following. When determining sliced value ym-1 the axis is overlapped such that there are only two constellation points remaining, one on each side of the decision axis (as in step 3 of
In step 718, the constellation demapper 120 then computes d+|yi| for each soft sliced value yi. Recall, from observation (3), that
Finally, in step 720, the constellation demapper 120 computes the LLR value:
by simply substituting in the values computed in steps 716 and 718 as per observation (1). In particular:
are obtained via the results of steps 716 and 718.
It will be appreciated that steps 716 and 718 may be computed in any order, or even in parallel (as illustrated). Also, step 716 may be computed in parallel with one or both of steps 714 and 718.
By performing the method of
To help better understand and appreciate the method of
via the method of
As per step 718, the value d+|y0| is also computed. As also discussed above in relation to step 718:
Then, as discussed above in relation to observation (1):
since {circumflex over (b)}0=0. This computation reduces to that already computed in step 718. Also
since {circumflex over (b)}0=0. This computation reduces to that already computed in step 716. Thus, the LLR value
can be computed using the computations in steps 714 to 718. If desired, the other LLR values L(b1) and L(b2) may also be computed using the method above.
The method of
In step 810, the constellation demapper 120 obtains the received symbol value y.
Next, in step 812, the constellation demapper 120 soft slices the received symbol value y to obtain the m soft-sliced values y0, . . . , ym-1. In this specific embodiment, the soft slicing method described above is used, such that the received value y is sliced into m soft-sliced values y0, . . . , ym-1 as follows:
y
0
=y,
y
i=2m-id−|yi-1|,i=1, . . . ,m−1
Next, in step 814, the constellation demapper 120 computes |y−x{circumflex over (b)}|, where x{circumflex over (b)} is the transmitted symbol corresponding to the hard decision. However, the hard decision has not been obtained, and therefore x{circumflex over (b)} has not been obtained. This is not a problem since, as discussed above with reference to 716, |y−x{circumflex over (b)}|=∥ym-1|−d|. Therefore, in step 814, the constellation demapper 120 computes ∥ym-1|−d|. Recall, from observation (2) that
In step 816, the constellation demapper 120 then computes d+|yi| for each soft sliced value yi. Recall, from observation (3), that
Finally, in step 818, the constellation demapper 120 computes the LLR value:
by simply substituting in the values computed in steps 814 and 816 as per observation (1). Note that when substituting the values in equation (2) as per observation (1), whenever the hard decision bit {circumflex over (b)}i is required, the sign of the corresponding soft slice value yi can be used. Specifically, if yi≧0, then {circumflex over (b)}i=0, and if yi<0, then {circumflex over (b)}i=1. Therefore:
In this way, by performing the method of
It will be appreciated that steps 814 and 816 may be computed in any order, or even in parallel (as illustrated).
A variation of the method of
In step 910, the constellation demapper 120 obtains the received symbol value y.
Next, in step 912, the constellation demapper 120 soft slices the received symbol value y to obtain the m soft-sliced values y0, . . . , ym-1. In this specific embodiment, the soft slicing method described above is used, such that the received value y is sliced into m soft-sliced values y0, . . . , ym-1 as follows:
y
0
=y,
y
i=2m-id−|yi-1|,i=1, . . . ,m−1
Next, in step 914, the constellation demapper 120 computes
as follows:
That is, if yi≧0, then this indicates that the ith hard decision bit bi is zero, and so
On the other hand, if yi<0, then this indicates that the ith hard decision bit bi is one, and so
Finally, in step 916, the constellation demapper 120 computes the LLR value:
by simply substituting in the values computed in step 914:
is that computed in step 914, and
is that computed in step 914.
The methods of
Consider, for example, the 8-PAM constellation shown in
This soft slicing technique is also intuitively meaningful as follows. To obtain each soft sliced value yi, the PAM constellation can be shifted and overlapped. This is referred to as a “shift-and-overlap” approach. Specifically, in order to obtain the ith coordinate axis for slicing the soft value yi, the left half of the (i−1)th coordinate axis is shifted to the right by 2m-i d, and the right half of the (i−1)thcoordinate axis is shifted to the left by 2m-i d. The right and left halves of the (i−1)th coordinate axes therefore overlap. The received value y is also shifted by the same amount as the side of the axis it is on. The origin, i.e. the decision boundary, is not moved. The new value of y indicates the next soft sliced value.
To assist in understanding this, please consider the following simple example in relation to
For the middle bit, the soft sliced value y1 can then be obtained as shown in step 2 of
For the least significant bit, the soft sliced value y2 can then be obtained as shown in step 3 of
The example described above with reference to
In the specific example in
For a constellation with a bit-to-symbol mapping having a natural coded pattern along the lines of that shown in
The other steps of the methods of
As can be appreciated, for other bit to symbol mappings, the methods above can still be applied, but using a soft slicing technique that complements the specific bit to symbol mapping of the constellation. Two different bit to symbol mappings and associated soft slicing methods are discussed above by way of example only. Others are possible.
The example methods described above are specific to computing a reliability value in a 2m-PAM constellation. That is, it is assumed that the modulation scheme is PAM. However, the methods described herein also apply to computing reliability values for QAM schemes. In particular, a square or a rectangular QAM can typically be decomposed into two independent PAM signals, i.e., in-phase and quadraphase signals. In such QAM schemes, a group of consecutive bits at the input of the constellation mapper can be separated into two sub-groups, in the in-phase bits and the quadraphase bits. Both sub-groups are mapped to a PAM signal, and then the two PAM signals are combined to form a square or rectangular QAM signal. For example,
Hence, the rectangular or square mapper/demapper can be implemented by two independent PAM constellation mappers/demappers, as shown in
It will be appreciated that the bit separation and collection in
Therefore, the methods described herein in relation to PAM constellations can also be applied to QAM constellations by implementing two independent PAM constellation mappers/demappers in the manner described above. Thus, embodiments of the invention apply to both PAM constellations and QAM constellations.
Using the methods described above, the complexity for computing the LLR of equation (2) may be reduced without sacrificing the accuracy of the LLR computation. That is, equation (2) is still computed exactly. The table below shows an example of the complexity reduction achieved in certain applications in comparison to computing the LLR in equation (2) using an exhaustive search. The method using an exhaustive search is assumed to calculate the distances between the received symbol and PAM constellation points on the fly. Hence it results in
additions/subtractions/comparisons. Other exhaustive search implementations are possible, e.g. calculating and saving the distances between the received symbol and the PAM constellation points for calculating the minimum distances, which reduces the number of additions/subtractions/comparisons, but does not change the order
and incurs an additional
memory cost. The method captured in the table below is assumed to be a
The bibliographic information for references [1] to [4] mentioned in the table above is at the end of this description.
Specific examples are described above. More general embodiments will now be described below.
In the examples above, it is assumed that Log Likelihood Ratio (LLR) values are being computed. More generally, one or more reliability values may be computed during demapping. Also, the specific constellations, soft slicing methods, and reliability value computations are just examples.
With this in mind, and more generally, there is provided a method for computing at least one reliability value from a received symbol value y associated with a constellation. The constellation comprises a set of constellation points having a minimum distance of 2d between a pair of the constellation points. Examples of such constellations are shown in
With reference to
Next, in step 1404, m reliability values are computed by, for i=0, . . . , m−1, computing an ith reliability value including computing d+|yi| to obtain an ith minimum distance value, where |yi| is an absolute magnitude of the initial value associated with an ith bit of the m bits, and combining the ith minimum distance value with another minimum distance value equal to a distance between the received symbol value y and a symbol x{circumflex over (b)} in the constellation corresponding to a most likely pattern of bits transmitted given the received symbol value y.
By “combining” the ith minimum distance value with the other minimum distance value, it is meant that these two values are incorporated into a single value or used to compute a single value. For example, the ith minimum distance value and the other minimum distance value may be combined by subtracting one from the other, by adding the two together, by multiplying or dividing the two, or by incorporating the two values into any computation that results in a single value.
By performing the method of
In the method of
Unlike some of the embodiments described earlier, the method of
Optionally, in some embodiments, the other minimum distance value may be computed in the method of
Alternatively, in some embodiments, the other minimum distance value may instead be computed in the method of
Optionally, in some embodiments described in relation to
Optionally, in some embodiments described in relation to
Optionally, in some embodiments described in relation to
where k is a scaling value. For example, k may equal one or another real number (e.g. k may equal 2σ2).
Optionally, in some such embodiments, when yi≧0, then
may be computed as the other minimum distance value (e.g. ∥ym-1|−d|) and,
may computed as the ith mimimum distance value d+|yi|. Otherwise, when yi<0, then
may be computed as the ith minimum distance value d+|yi| and
may be computed as the other minimum distance value. In such embodiments, the ith minimum distance value and the other minimum distance value are combined by subtracting one from the other.
Optionally, in some embodiments, the constellation may use Gray coding, natural coding, or another type of coding.
Optionally, in some embodiments, the constellation may be square QAM or rectangular QAM, and the demapping may be performed by decomposing the QAM constellation into two independent PAM constellations representing an in-phase and a quadrature-phase signal respectively, and independently demapping each of the two independent PAM constellations.
Optionally, in some embodiments disclosed herein, the value d may be a function of the received energy per bit, or vice versa. For example, in some embodiments, the received energy per bit is
for both PAM and square QAM.
In some embodiments, the methods described herein may further comprise performing the demapping for a plurality of received symbols, and decoding the plurality of received symbols using the reliability values as inputs to a soft-input decoder.
In some embodiments disclosed herein, the demapping is performed at the receiving end of a device (e.g. a mobile device). For example, the demapping may be performed at a receiver or in a processing unit connected to or part of the receiver.
In some embodiments, the demapping is performed by a constellation demapper. The constellation demapper may be implemented in a receiver in a communication system, or in a processing unit or a digital processing module connected to or part of the receiver (or receiving end). In some embodiments, the computational steps disclosed herein may be implemented in (and therefore performed by) a digital signal processor or a field programmable gate array (FPGA) or an integrated circuit.
In some embodiments disclosed herein, the one or more reliability values may be forwarded to a soft-input decoder. However, it is not necessary that the reliability values be forwarded to a decoder, depending on the implementation and envisioned use of the reliability values.
In some embodiments, any or all of the methods described herein may be implemented in a mobile device or any other device that communicates over a wireless channel. Optionally, in such embodiments, the method may further comprise receiving a wireless signal from a wireless channel, obtaining the received symbol value y from the wireless signal, and performing decoding using some or all reliability values.
It will be appreciated that more generally there is provided a method for computing a reliability value for a bit of a received symbol value y associated with a constellation. An embodiment of one such method is shown in
By “combining” the first minimum distance value with the second minimum distance value, it is meant that these two values are incorporated into a single value or used to compute a single value. For example, the first minimum distance value and the second minimum distance value may be combined by subtracting one from the other, by adding the two together, by multiplying or dividing the two, or by incorporating the two values into any computation that results in a single value.
By performing the method of
All of the optional additional features described in relation to
Although not illustrated, the apparatus 1202 may further include a decoder (such as a soft input decoder) for decoding using the reliability values computed by the demapper 1206.
Although not illustrated, the apparatus 1202 may further include a receiver for receiving a signal from a channel (such as a wireless signal from a wireless channel), and processing circuitry for obtaining the received symbol value from the received signal.
In some embodiments, the apparatus 1202 is part of a mobile device, although this need not be the case (the methods described herein are also applicable to wireline communications systems).
Finally, in some embodiments, there is provided a computer readable medium having stored thereon computer executable instructions that, when executed, cause an apparatus (such as a computing device, a mobile device, etc.) to perform any of the methods described herein.
As mentioned above, some of the methods described herein may be implemented on a mobile device. Referring now to
The mobile device 1100 has a housing that may be elongated vertically, or may take on other sizes and shapes (including clamshell housing structures). The keyboard 1114 may include a mode selection key, or other hardware or software for switching between text entry and telephony entry. Alternatively, the mobile device 1100 may have a housing that does not take on other sizes and shapes.
A microprocessor 1128 is shown schematically as coupled between a keyboard 1114 and a display 1126. The microprocessor 1128 controls operation of the display 1126, as well as overall operation of the mobile device 1100, in response to actuation of keys on the keyboard 1114 by a user.
In addition to the microprocessor 1128, other parts of the mobile device 1100 are shown schematically. These include: a communications subsystem 1170; a short-range communications subsystem 1102; the keyboard 1114 and the display 1126, along with other input/output devices including a set of LEDs 1104, a set of auxiliary I/O devices 1106, a serial port 1108, a speaker 1111 and a microphone 1112; as well as memory devices including a flash memory 1116 and a Random Access Memory (RAM) 1118; and various other device subsystems 1120. The keyboard 1114, speaker 111, microphone 1112, display 1126, and LEDs 1104 are part of the user-interface.
The mobile device 1100 may have a battery 1121 to power the active elements of the mobile device 1100.
The mobile device 1100 is in some embodiments a two-way radio frequency (RF) communication device having voice and data communication capabilities. In addition, the mobile device 1100 in some embodiments has the capability to communicate with other computer systems via the Internet. The two-way RF communication is for communicating with a network.
Operating system software executed by the microprocessor 1128 is in some embodiments stored in a persistent store, such as the flash memory 1116, but may be stored in other types of memory devices, such as a read only memory (ROM) or similar storage element. In addition, system software, specific device applications, or parts thereof, may be temporarily loaded into a volatile store, such as the RAM 1118. Communication signals received by the mobile device 1100 may also be stored to the RAM 1118.
The microprocessor 1128, in addition to its operating system functions, enables execution of software applications on the mobile device 1100. A predetermined set of software applications that control basic device operations, such as a voice communications module 1130A and a data communications module 1130B, may be installed on the mobile device 1100 during manufacture. In addition, a personal information manager (PIM) application module 1130C may also be installed on the mobile device 1100 during manufacture. The PIM application is in some embodiments capable of organizing and managing data items, such as e-mail, calendar events, voice mails, appointments, and task items. The PIM application is also in some embodiments capable of sending and receiving data items via a wireless network 1110. In some embodiments, the data items managed by the PIM application are seamlessly integrated, synchronized and updated via the wireless network 1110 with the device user's corresponding data items stored or associated with a host computer system.
Additional software modules, illustrated as another software module 1130N, may be installed during manufacture.
Communication functions, including data and voice communications, are performed through the communication subsystem 1170, and possibly through the short-range communications subsystem 1102. The communication subsystem 1170 includes a receiver 1150, a transmitter 1152, a GPS receiver 1162, and one or more antennas, illustrated as a receive antenna 1154, a transmit antenna 1156, and a GPS antenna 1164. In addition, the communication subsystem 1170 also includes a processing module, such as a digital signal processor (DSP) 1158, and local oscillators (LOs) 1160. The communications subsystem 1170 is used to communicate with a network. The demapping methods described with reference to the foregoing figures are implemented in the communications subsystem 1170, such as in the DSP 1158.
The specific design and implementation of the communication subsystem 1170 is dependent upon the communication network in which the mobile device 1100 is intended to operate. For example, the communication subsystem 1170 of the mobile device 1100 may be designed to operate with the Mobitex™, DataTAC™ or General Packet Radio Service (GPRS) mobile data communication networks and also designed to operate with any of a variety of voice communication networks, such as Advanced Mobile Phone Service (AMPS), Time Division Multiple Access (TDMA), Code Division Multiple Access (CDMA), Personal Communications Service (PCS), Global System for Mobile Communications (GSM), etc. Examples of CDMA include 1X and 1x EV-DO. The communication subsystem 1170 may also be designed to operate with an 802.11 Wi-Fi network, and/or an 802.16 WiMAX network. Other types of data and voice networks, both separate and integrated, may also be utilized with the mobile device 1100.
Network access may vary depending upon the type of communication system. For example, in the Mobitex™ and DataTAC™ networks, mobile devices are registered on the network using a unique Personal Identification Number (PIN) associated with each device. In GPRS networks, however, network access is typically associated with a subscriber or user of a device. A GPRS device therefore typically has a UICC, in order to operate on a GPRS network.
When network registration or activation procedures have been completed, the mobile device 1100 may send and receive communication signals over the communication network 1110. Signals received from the communication network 1110 by the receive antenna 1154 are routed to the receiver 1150, which provides for signal amplification, frequency down conversion, filtering, channel selection, etc., and may also provide analog to digital conversion. Analog-to-digital conversion of the received signal allows the DSP 1158 to perform more complex communication functions, such as constellation demapping (e.g. via the methods described above) and decoding. In a similar manner, signals to be transmitted to the network 1110 are processed (e.g., modulated and encoded) by the DSP 1158 and are then provided to the transmitter 1152 for digital to analog conversion, frequency up conversion, filtering, amplification and transmission to the communication network 110 (or networks) via the transmit antenna 1156.
In addition to processing communication signals, the DSP 1158 provides for control of the receiver 1150, the transmitter 1152, and the GPS receiver 1162. For example, gains applied to communication signals in the receiver 1150 and the transmitter 1152 may be adaptively controlled through automatic gain control algorithms implemented in the DSP 1158.
In a data communication mode, a received signal, such as a text message or downloaded web page, is processed by the communication subsystem 1170 and is input to the microprocessor 1128. The received signal is then further processed by the microprocessor 1128 for an output to the display 1126, or alternatively to some other auxiliary I/O devices 1106. A device user may also compose data items, such as e-mail messages, using the keyboard 1114 and/or some other auxiliary I/O device 1106, such as a touchpad, a rocker switch, a thumb-wheel, or some other type of input device. The composed data items may then be transmitted over the communication network 1110 via the communication subsystem 1170.
In a voice communication mode, overall operation of the device is substantially similar to the data communication mode, except that received signals are output to a speaker 1111, and signals for transmission are generated by a microphone 1112. Alternative voice or audio I/O subsystems, such as a voice message recording subsystem, may also be implemented on the mobile device 1100. In addition, the display 1126 may also be utilized in voice communication mode, for example, to display the identity of a calling party, the duration of a voice call, or other voice call related information.
Location determination using GPS technology involves receiving GPS signals from GPS satellites 1166 on the antenna 1164. The GPS signals are received using the GPS receiver 1162 and processed by the DSP 1158. Typically, GPS signals from at least four satellites are processed. Further details of GPS are known in the art and are omitted for simplicity.
The short-range communications subsystem 1102 enables communication between the mobile device 1100 and other proximate systems or devices, which need not necessarily be similar devices. For example, the short range communications subsystem may include an infrared device and associated circuits and components, or a Bluetooth™ communication module to provide for communication with similarly-enabled systems and devices.
Although the foregoing has been described with reference to certain specific embodiments, various modifications thereof will be apparent to those skilled in the art without departing from the scope of the claims appended hereto.
Bibliographic information for references [1] to [4] mentioned in the foregoing description: