Network coding generally refers to having interior network nodes perform some coding operations, rather than simply using those nodes to route data to a destination. Network coding has been applied to wireless networks to increase network capacity. For example, by applying network coding and utilizing broadcast capability at a wireless relay node, the overall time it takes to exchange a message through a common relay can be reduced.
Previous wireless network coding has been directed towards utilizing the broadcast nature of the wireless networks. However, existing network coding schemes assume error-free decoding at the relay nodes, which is virtually impossible in current wireless environments, which are error prone, e.g., due to channel noise and fading effects. As a result, relay nodes may introduce additional errors in the decode-recode process, and these errors may be propagated to the destination node.
This Summary is provided to introduce a selection of representative concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used in any way that would limit the scope of the claimed subject matter.
Briefly, various aspects of the subject matter described herein are directed towards a technology by which an intermediate network node, for example a relay, sends probability data comprising a continuous number in a continuous network coding scheme (for example instead of discretely decided ones or zeros). The node receives signals corresponding to streams of bits sent from sources towards a destination, and computes the probability data based on current noise data and/or fading data. A selected set of the bits (all or some subset thereof) are combined, e.g., XOR-ed or concatenated, and send to the destination in a modulated manner (e.g., phase modulated) to include probability information based on the probability data.
The destination demodulates the signal to obtain the probability information, and uses the probability information as parity data, e.g., combined with the data the destination received directly from the source to decode the original data streams.
In one example aspect, the number of bits in the set of selected bits is adaptively chosen based on current channel conditions. For example, the number is increased when the channel conditions from the sources directly to a destination are poor relative to the channel conditions from the sources indirectly to the destination via the relay.
Other advantages may become apparent from the following detailed description when taken in conjunction with the drawings.
The present invention is illustrated by way of example and not limited in the accompanying figures in which like reference numerals indicate similar elements and in which:
Various aspects of the technology described herein are generally directed towards extending traditional network coding in a lossless network, by computing and forwarding a continuous number corresponding to a probability value for received bits rather than deciding a discrete zero or one value for each bit. Note that the concept of “continuous” numbers allows for rounding, e.g., to some number of decimal points, and in any event allows for more than simply one of two discrete values for each bit.
In general and as described below, the continuous number computed for a given bit corresponds a probability value (e.g., a posterior probability based on noise and/or fading effects) that the bit was intended to be a zero or one when the bit is received at an intermediary (e.g., relay) node. In one example, this probability value is used as parity data and forwarded to the destination in some combination with probability value-based parity data from other bits, including bits from another source. For example, selected bits from each of two sources may be concatenated and sent in a stream to the destination, with modulation (e.g., phase modulation) used to indicate the probability value of each bit. In another example, the bits of separate streams (e.g., similarly positioned bits) may be combined (e.g., XOR-ed) with a resultant probability value for each combination sent to the destination. The destination can then process the parity data and use it in decoding the original streams, e.g., in a low-density parity-check (LDPC) decoder. Significant improvements over traditional network coding have been achieved with such exemplified continuous network coding approaches.
While various aspects and examples are directed towards a framework that leverages distributed LDPC coding, it is understood that this is only one example, and that other coding schemes may be used with continuous network coding values. Further, the examples are directed towards a network topology of nodes comprising two sources, one relay and one destination, but it is generally understood that continuous network coding applies to any network topology having a practical number of such nodes. As such, the present invention is not limited to any particular embodiments, aspects, concepts, structures, functionalities or examples described herein. Rather, any of the embodiments, aspects, concepts, structures, functionalities or examples described herein are non-limiting, and the present invention may be used various ways that provide benefits and advantages in computing, and data coding in general.
Turning to
In one example implementation, each source S1 or S2 independently generates information bits, and protects them with low-density parity-check (LDPC) codes. The bits are then transmitted in time-separated streams destined for the destination 104, but also received at the relay 102.
For purposes of clarity herein, a symbol notation is used herein that maps zero (0) bit values to plus one (+1), and one (1) bit values to minus one (−1), that is, from {0, 1} to {+1, −1} whereby the XOR operation in LDPC encoding on {0, 1} corresponds to multiplication on {+1, −1}. With this mapping, the set U of coded information bits for some number of bits i may be represented by:
U={u
1
,u
2
, . . . u
n
},u
iε{±1}
In one example, for transmission from the source, these bits are modulated with binary phase-shift keying (BPSK) modulation.
As represented in
The channels in
Y
m
=h
m√{square root over (Es,m)}Xm+wm (1)
where Ym are received samples after matched filter, Es,m is the symbol energy, hm is the fading gain, wm is the channel noise, and m is the block index. The fading gain hm is normalized with E[hm2]=1, whereby the power spectrum density considers the effect of path-loss.
The fading gain hm is modeled as a Rayleigh distributed variable, which remains constant during one codeword length, and changes independently from one codeword to another; such a channel is also referred to as quasi-static channel. The channel noise wm is additive Gaussian white noise (AGWN), with zero mean and one side power density spectrum N0.
With respect to network coding, in one example implementation, distributed LDPC code is used as the joint channel-network code. However, unlike conventional network coding such as based upon decode-recode-forward, as described herein the relay performs continuous network coding. More particularly, instead of making a discrete one or zero decision on each received bit, and then XOR-ing that decided bit value with a counterpart value of another stream, the continuous network coding relay computes probability (e.g., posterior probability) data for each bit or some other selected set of bits based on the noise/fading conditions. Those probability values are then sent to the destination as parity data in a stream of selected bits.
In BPSK modulation, which is what is used at the sources, the above described sign-magnitude representation may be mapped to a posterior probability based representation:
z
i:=2Pr{ui=1|yI}−[−1,1] (2)
Assuming that the fading coefficient is correctly estimated by the receiver, then the posterior probability is:
Then, zi may be expressed as:
Thus, when the received symbol zi is close to one (1), the corresponding binary information bit ui has a high probability to be one (1); when zi is close to −1, ui is likely to be minus one (−1). Therefore, in wireless networks, zi is the counterpart of ±1 in traditional network coding.
However, unlike the decode-recode-forward scheme, which solves for the original bits with an LDPC decoder and thus introduces and propagates new errors if the channel condition is not perfect, continuous network coding retains the information carried by yi, and carries the information on to the destination. Because the destination receives another coded message from an independent channel, it is more likely that the destination will more accurately recover the information bits.
In one aspect, continuous network coding mixes bit sequences without knowing the exact value of each bit, by defining XOR over posterior probability. To this end, for a sequence of k symbols zi, i=1, 2 . . . k, which are calculated from received symbols yi using equation (4), let u=u1⊕u2⊕ . . . uk. Then the posterior probability Pr{u=1|y1, . . . yk} is calculated with the following equation:
In one example, a bit's probability value may be combined (e.g., XOR-ed) with a counterpart bit's probability value of another stream, and the relay then transmits parity information corresponding to the combined probability values. Such an XOR combination may be defined over posterior probability as:
z=⊕
i=l
k
z
i:=2Pr{u=1|y1, . . . yk}−1 (6)
where
By way of a numerical example, consider a received bit that based on current noise and/or fading effects has an eighty percent probability of being a one, and thus a twenty percent probability of being a zero. When combined with a another stream's counterpart bit having a ninety percent probability of being zero and thus a ten percent probability of being one, the XOR operation results in a combined value of (0.9*0.8)+(0.1*0.2), or 0.74. Note that when the channel approaches a lossless state, i.e., ui approaches yi, then:
In one alternative example, any number of bits may be used to generate parity bits. For example, a selected set of bits from the received streams may be combined by concatenation (or an XOR operation), with parity bits generated from that stream. Note that this type of combination allows for combining unequal length codewords from multiple sources. For example, not all bits need be used, nor do those selected need to be contiguous, e.g., any set of the bits from the streams may be selected, such as randomly, in a pattern and so forth. Compared to a bit-by-bit XOR operation, this scheme allows an adaptive framework, as described below.
In this example, the relay 102 receives signals from the sources S1 and S2 and generates a message YR using a continuous network coding (CNC) encoder 224. In one example, the CNC encoder 224 may be generally similar to a standard LDPC encoder, except that an XOR operation is performed as above on probability values instead of on discrete ones or zeroes, using any appropriate number of bits. In one alternative example, the selected bits may be concatenated, with parity bits generated from that stream.
As described above, the elements of YR are continuous values ranging from −1 to 1, and thus cannot be modulated by BPSK or other binary-based modulation. Instead, in one example implementation, analog phase modulation is used to transmit these continuous values, via a continuous (phase) modulation (CM) component 226. A continuous (e.g., phase) demodulation (CD) component 227 at the destination demodulates the continuous values. Note that other types of modulation are feasible, such as amplitude or frequency modulation.
As represented in
Note that the “̂” notation (e.g., ŷ instead of y) and so forth is used to indicate that the received signal is subject to noise and fading effects, and is thus not necessarily the same as what was transmitted.
In
In a second step, using known techniques, ŷ can be modeled as:
ŷ=hx+w
rd (12)
where h is a model parameter related to fading.
If the parameter h and noise variance are well estimated, equation (10) can be reduced to the expression:
Once LLR is thus estimated by the process 230, the LDPC decoder 228 in the destination 104 runs the standard LDPC decoding process, and outputs BS1 and BS2.
As described above, not all bits need to be used in generating the parity data. This provides an adaptive framework for continuous network coding. For example, when the channel condition from the source directly to the destination is poor relative to the channel condition from the source indirectly to the destination via the relay, more parity bits may be allocated to the relay improve the likelihood of single-hop transmission success. Conversely, when the direct channel condition is good, having too many parity bits does not improve single-hop transmission quality and lowers performance. Thus, the number of parity bits that are used may be adaptively varied based on current channel conditions to exploit the space diversity as appropriate.
By way of summary,
At step 402 of
Step 410 represents mathematically combining the probability values of the selected bits in some way, e.g., via XOR-ing or concatenating. As each selected or resultant bit is ready, step 412 computes the phase (or other modulation variable). Step 414 outputs the phase modulated stream of bits to the destination. Note that as described above, steps 410, 412 and 414 can operate to an extent in parallel, e.g., there is no reason to wait for the entire stream to be ready before transmission may begin.
Step 506 represents receiving the relay's stream and detecting the phases for each bit that was selected and processed at the relay. As described above, each phase corresponds to probability data, which is used (step 510) to estimate the relay's input (e.g., LLR) to the decoder at step 512. Step 514 represents the decoder using the three LLRs to decode bit streams.
As can be seen, there is provided a continuous network coding framework for use in wireless relay networks. By computing and relaying soft probability information for each selected bit, the relay node avoids possible error propagation. This property results in a significant performance gain over traditional network coding for wireless relay networks. Further, the technology described herein facilitates adaptive continuous network coding, which allows nodes to adapt to channel conditions.
While the invention is susceptible to various modifications and alternative constructions, certain illustrated embodiments thereof are shown in the drawings and have been described above in detail. It should be understood, however, that there is no intention to limit the invention to the specific forms disclosed, but on the contrary, the intention is to cover all modifications, alternative constructions, and equivalents falling within the spirit and scope of the invention.