IntroductionThis web page contains an introduction to coded cooperation for wireless networks. This document emphasizes basic ideas. Many important details have been glossed over for the sake of brevity; the interested reader is referred to the references for more information.
Coded cooperation is a framework where wireless mobiles can jointly transmit their signals, thus achieving a number of significant improvements in communication over multi-path fading channel: improved clarity and intelligibility for voice communications, increased rates for data communications, lower transmit power and increased battery life.
In coded cooperation, two users form a partnership to transmit their
information using both of their antennas (see Figure below). In a
wireless channel, each user's transmission is receivable, to different
degrees, by the other users as well as the base station. Therefore, a
mobile may receive and re-transmit the data of a partner to the base
station, thus providing assistance to the original mobile. Because the
two streams are received via independent fading paths, the spatial
diversity will provide an improvement in overall reception, even if we
scale the powers (as is required by fairness) so that the overall amount
of power per data bit in the system remains the same.
So far, this is nothing but a relaying scheme, something that has been considered previously in the network layer as well as (to a lesser extent) in the physical layer. While this idea by itself is interesting and yields some gains, it has several fundamental limitations. Perhaps the most important is that relaying results in a loss of overall bandwidth or throughput in the multi-user system. There are also other practical difficulties (see ). The consideration of these issues led to the development of coded cooperation framework, which we describe below.
Coded CooperationWe propose a new user cooperation framework in which cooperative signaling occurs as part of channel coding. The data for each mobile is divided into blocks; each of these data blocks, as is customary in communication systems, is encoded to produce a codeword. Each codeword is partitioned into two segments, called frames. The codeword segments are designed such that the first frame, if correctly received, is decodable and can yield the information bits. The second frame contains additional parity bits. The length of these two segments need not be equal.
More specifically, the first frame contains a N1-bit coded version of the source data. The cooperation process starts by both users transmitting their own first frame. This first frame is received at both base station and the partner, probably with different SNR's. If the partner correctly decodes the user's first frame (determined by checking the CRC), the partner computes and transmits N2 additional parity bits for the user's data in the second frame, producing a more powerful overall code. The base station will receive both these code components and decode accordingly. Diversity gain arises from the two transmissions arriving via independent fading paths (spatial diversity).
Due to the channel uncertainties, the user's data may sometimes not be
received successfully by the partner. In that event, the partner will
use the second frame to encode and transmit additional parity bits for
himself. Note that each user always transmits a total of N = N1 + N2 bits per source
block over the two frames, and the users only transmit in their own
multiple access channels. Figure 2 below illustrates the coded
In addition, the general framework allows adaptation of the code rate between the first and second frames (e.g, changing the values of N1 and N2). In other words, changing the code rates allows us to manipulate the degree of coupling between the two cooperating users, according to channel conditions. This provides an important element of flexibility to optimize the performance of the system according to channel conditions.
In general, various channel coding methods can be used within the
coded cooperation framework. For example, the overall code may be a
block or convolutional code, or a combination of both. The
partitioning of the code bits for the two frames may be achieved
through puncturing, product codes, or other forms of concatenation.
In addition, some form of space-time coding may be used for
transmission of the second frame. As an illustration, we employ a
simple but very effective implementation using rate-compatible
punctured convolutional (RCPC) codes. The code bits for the first
frame are obtained by puncturing a lower rate code word. The
additional parity bits transmitted in the second frame are those bits
that are punctured in the first frame. Figure 3 below illustrates
this RCPC code implementation.
PerformanceTo illustrate the performance gains that coded cooperation achieves, we consider the bit error rate (BER) versus the average (over fading) SNR of the channel between a user and the base station (uplink channel). The results shown below are obtained via simulation using the RCPC code implementation described above with N1 = N2. Both of the figures shown below are for the case of quasi-static fading. In other words, the fading coefficients for each channel remain constant over the transmission of each source block. In addition, the channel between the users (interuser channel) and each user uplink channel are mutually independent.
Figure 4 below shows the results when both users have the same average
SNR for their uplink channels. The BER curves are shown for various
interuser channel average SNR values. Coded cooperation clearly
achieves impressive gains compared with the non-cooperative
system. Even when the interuser channel has an average SNR of
0dB, much less than that of the user uplink channels, coded
cooperation still provides a gain of 2-3dB, which is quite significant.
Further WorkThere is more work that is on-going in our lab concerning various aspects of coded cooperation. In particular, we are investigating various coding methodologies for cooperation, as well as code design and rate control issues. We are interested in power control under cooperative regimes. In addition, we plan to extend the coded cooperation framework to include more than two cooperating users.
We have already made progress on two critical fronts that are not currently reflected in this web page: turbo-coded cooperation and space-time coded cooperation. These results have been submitted for publication.
There is also available a complete analytical bit-error and block-error rate analysis of coded cooperation under a variety of scenarios. The interested reader is referred to .
AcknowledgmentsThis work was supported in part by a grant from the National Science Foundation.
Last modified January 2003
Back to MCL Main Page