Cooperative communication

The basic examples of a wireless cooperative network is the three node network, also known as the "three-terminal communication channel" first introduced by van Der Meulen, which can be seen in Figures 1 and 2.

Typical cooperative network topologies
Cooperation happens when a direct communication between a source (S) and a destination (D) is improved due to the help provided by a neighboring node. This neighboring node is denoted as a relay (R), when he has no data of its own to transmit, or it can be a node that has data of its own to transmit but it can also help with the communication between S and D. The later case is also known as user cooperation.

Figure 1, shows the basic network topology in which cooperation can be used. The relay (R) node can be seen as any node which can "hear" the transmission of the source and, its own transmission can reach the destination (D) node.

In Figure 2, the relay has data of its own to transmit and it becomes an active user of the network.

These are just examples of wireless networks in which cooperation can happen. Depending on what type of signal processing is being done at the relay, or what type of transmission protocol is used a lot of characteristics of the relay network take form. Metrics that can be used to analyze the relay channel are rate, capacity, bit-error-rate (BER), diversity order.

Notations
In Figure 3 we introduce the typical notations for the three node relay channel.

The typical notations for the relay network are as follows:
 * $x$ - the sent signal from the source
 * $y$ - received signal (ex. $y_{SR}$ denotes the received signal from S at R)
 * $h$ - channel coefficient
 * $n$ - noise on the channel
 * $f(y_{SR})$ - the relay function, also known as the signal processing at the relay. This is what the node R is forwarding to the node D to help the communication between S and R.

System model
With these notations the system model can be defined.
 * $$\ y_{SR} = h_{SR} x + n_{SR} $$
 * $$\ y_{SD} = h_{SD} x + n_{SD} $$
 * $$\ y_{RD} = h_{RD} f(y_{SR}) + n_{RD} $$

Another important factor in setting the cooperation is the functioning mode of the relay. There are two main possible modes:
 * full-duplex mode in which the relay can receive and transmit in the same time;
 * half-duplex mode in which the relay can either receive or transmit, it can not receive and transmit in the same time. Depending on the type of relay is being used the transmission protocol differs.

A common usage of the full-duplex assumption is for capacity deriving purposes. The first to explore the capacity for the relay channel and derive different types of relay functions are Cover and Gamal. This seminal work was followed by a more generalized analysis on the capacity of the relay channel, done by Kramer et. al and others.

Relay function


The relay function, which is denoted by $f(y_{SR})$ is the type of signal processing the relay is applying to the received signal from the source $y_{SR}$. Also, the result of this processing is what the relay is actually going to send to the destination.

Depending on what type of signal processing is done at the relay, the relay function is also known as:
 * hard information - when the relay is taking a hard decision, this is specific to the decode-and-forward (DF) protocol
 * soft information - the relay is sending some sort of information that incorporates data about how good the decision on what the source signal was. This type of notation is commonly used when the amplify-and-forward protocol is used and more specific when the estimate-and-forward protocol is used.

A graphical representation of different types of relay functions for binary-phase-shift-keying (BPSK) modulation can be seen in Figure Relay functions for BPSK modulation. In this figure, on the x-axis the signal received at the relay is represented, while on the y-axis the relay function is represented, or in other words the values of the signal that R will forward to D. For example, for the DF protocol for which the relay function for BPSK is $\mathrm{sgn}(y_{SR})$, the two possible values that the relay can transmit are $1$ or $-1$, which corresponds to the green line.

The exact relay functions used for AF, DF and EF are discussed in the  relaying protocols section.

Relaying protocols
A relaying protocol is defined by use of a relay to aid the communications between a source and a destination. Depending on what type of relay function is used at the relay there are the different types of relaying protocols.

One important aspect of a relay protocol is represented by the amount of channel state information needed for a successful transmission. Depending on the type of relay function and the type of decoding/detection used at the destination some protocols can requiere full channel state information at the receiver(CSIR) or just some partial CSIR.

Decode-and-Forward (DF)
The relay decodes and re-encodes the received signal, then it forwards it to the destination. This processing of the signal at the relay is also know as making a hard decision, as the information sent by the relay does not include any additional information about the reliability of the source-relay link.

When uncoded modulation is used this protocol is also know as Detect-and-Forward as the processing of the relay is detection of the signal.

More details and examples for this protocol are given on the Decode and Forward page.

Amplify-and-Forward (AF)
In this case, the relay just amplies its received signal, maintaining a fixed average transmit power.

More details and examples for this protocol are given on the Amplify and Forward page.

Estimate-and-Forward (EF)
This protocol is also known as Compress-and-Forward (as first introduced by Cover and Gamal) or Quantize-and-Forward. At the relay, a transformation is applied to the received signal, which provides an estimate of the source signal. This estimate is also known as soft information, and it is forwarded to the destination.

More details and examples for this protocol are given on the Estimate and Forward page.

Decoder at destination
The optimum known detector at the destination for the relay channel is the maximum a posteriori probability (MAP) detector.
 * $$\  \widehat{x}_D =  \underset{x}{\max} ~ \mathrm{p}_{X|Y_{SD} Y_{RD}}(x|y_{SD},y_{RD}) $$

where $\widehat{x}_{D}$ is the decoded symbol at the destination.

For an uncoded system if the symbols are considered to be equally likely the MAP detector has the same form as the maximum likelihood (ML) detector.
 * $$\ \widehat{x}_D = \underset{x}{\max} ~ \mathrm{p}(y_{SD}, y_{RD}|x) $$

Scheduling protocol
By scheduling protocol we are referring to the transmission protocol. Due to the fact that a Relay or a cooperative node in general can communicate in two different ways, scheduling protocols have been designed specific with respect to the transmission mode of the relay.

For example if the relay in the three node channel is performing in half-duplex mode, the transmission protocol can be set as shown in the figure HD transmission protocol. This means that two time slots are used for each packet individually. First the source node transmits, both the relay and the destination receive the message. In the second time slot, the source is silent and only the relay transmits.

One alternative to this transmission schedule is to use the relay in full-duplex mode. As shown in the Figure FD transmission protocol. The difference now is that both the relay and the source are transmitting in the same time, so all links are active at the same time. Receiving at the destination in this case requieres special attention to be able to receive two transmissions on the same frequency band.

Cognitive radio sensing
Cooperation can be used in a cognitive network, more specific, a cognitive radio(CR) node can be used as a relay to aid in with the spectrum sensing of the primary users (PU). This is also know as cooperative spectrum sensing technique that deals with the hidden terminal problem.


 * Feedback
 * Capacity of the relay channel
 * User cooperation
 * Access Protocols
 * Cooperative Diversity
 * Diversity Multiplexing Trade-off
 * User Diversity