1 Introduction

Adaptive modulation and coding (AMC) adapts the modulation and coding scheme (MCS) to channel propagation conditions [1,2,3,4]. When the instantaneous signal-to-noise ratio (ISNR) is high, we can increase the rate of channel encoder to reduce parity bits as well as increasing the constellation size [5]. In all previous studies [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15], only the MCS is adapted to ISNR. The AMC technique can be improved when combined with Cooperative Diversity (CD) [16,17,18,19,20,21,22]. The ISNR can be high as the best relay with largest ISNR is activated. In [16,17,18,19,20,21,22], AMC is used with cooperative diversity and the relay is always active. The main drawback of this approach is that the throughput is half that of non-cooperative diversity since half the duration of the frame is used by the source and the rest of the frame is used by the relay. In [23, 24], Incremental Relaying (IR) has been implemented with a relay equipped with an energy buffer. IR uses the direct link when its ISNR is larger than threshold T. Otherwise, the relayed link is used since the ISNR of direct link is lower than T. In [25], IR has been extended to energy harvesting systems. IR for non-orthogonal multiple access (NOMA) has been suggested in [26]. IR can be used in primary or secondary networks of cognitive radio systems [27].

In this paper, we compare two adaptive cooperation (AC) protocols with AMC based on ISNR or Average SNR (ASNR). We select the best MCS and best transmission protocol between non-cooperative and cooperative communications. The main contributions of our paper are:

  • We suggest an AC protocol with AMC that offers higher throughput than [16,17,18,19,20,21,22] where the relays are always active. In this paper, we activate the relays only when required, i.e., when the corresponding throughput is larger than that of direct link (NCC: Non-Cooperative Diversity).

  • Two adaptive cooperation (AC) protocols are suggested in order to maximize the average or instantaneous throughput using average or instantaneous SNR (ASNR or ISNR).

  • The proposed AC protocol offers larger throughput than Incremental Relaying (IR) [23,24,25,26,27]. AC offers 1.2–1.3 dB gain with respect to IR.

Section 2 describes the system model. Section 3 deals with AC using ISNR to maximize the instantaneous throughput. Section 4 deals with AC using ASNR. Section 5 provides some theoretical and simulation results. Section 6 studies the complexity of AC. Last section concludes the paper.

2 System model

The system model is shown in Fig. 1. There are a source S, K relays \(R_k\) and a destination D. In the proposed AC protocol, we begin by selecting the best relay that offers the highest end-to-end SNR at destination D. We choose the best modulation and coding scheme (MCS), and we compute the average or instantaneous throughput.

Fig. 1
figure 1

System model

3 Adaptive cooperation using ISNR

3.1 Throughput analysis of non-cooperative communications

The instantaneous throughput of NCC is written as

$$\begin{aligned} \hbox {ITHR}_{\mathrm{NCC}}^{M}(\gamma _{\mathrm{SD}})=\log _2(M)[1-\hbox {PEP}(\gamma _{\mathrm{SD}})] \end{aligned}$$
(1)

where M is the size of modulation, L is packet length in symbols, the number of bits per packets is \(L\times \log _2(M)\), \(\gamma _{\mathrm{SD}}\) is the ISNR between the source S and destination D, \(\hbox {PEP}(\gamma _{\mathrm{SD}})\) is the packet error probability (PEP) at D for ISNR equal to \(\gamma _{\mathrm{SD}}\):

$$\begin{aligned} \hbox {PEP}(\gamma _{\mathrm{SD}})=1-(1-\hbox {SEP}(\gamma _{\mathrm{SD}}))^L \end{aligned}$$
(2)

\(\hbox {SEP}(\gamma _{\mathrm{SD}})\) is the Symbol Error Probability at D for ISNR equal to \(\gamma _{\mathrm{SD}}\).

For M-QAM modulation, the SEP is expressed as [28]

$$\begin{aligned} \hbox {SEP}(x)=2\left( 1-\frac{1}{\sqrt{M}}\right) \mathrm{erfc}\left( \sqrt{x\frac{3\log _2(M)}{2(M-1)}}\right) \end{aligned}$$
(3)

For M-ASK modulation, the SEP is written as [28]

$$\begin{aligned} \hbox {SEP}(x)=\left( 1-\frac{1}{M}\right) \mathrm{erfc}\left( \sqrt{x\frac{3\log _2(M)}{(M^2-1)}}\right) \end{aligned}$$
(4)

For M-PSK modulation, we have [28]

$$\begin{aligned} \hbox {SEP}(x)=\mathrm{erfc}\left( \sqrt{x\log _2(M)\sin ^2\left( \frac{\pi }{M}\right) }\right) \end{aligned}$$
(5)

For Coded NCC with an \(R_{\mathrm{c}}\) rate convolutional encoder, the ITHR is equal to

$$\begin{aligned} \hbox {ITHR}_{\mathrm{NCC}}^{M,R_{\mathrm{c}}}(\gamma _{\mathrm{SD}})=R_{\mathrm{c}}*\log _2(M)[1-\hbox {EEP}(\gamma _{\mathrm{SD}})]^{LR_{\mathrm{c}}} \end{aligned}$$
(6)

where the number of information bits per packet is \(R_{\mathrm{c}}\times L \times \log _2(M)\) and \(\hbox {EEP}(\gamma _{\mathrm{SD}})\) is the error event probability (EEP) of Viterbi channel decoder written as [28]

$$\begin{aligned} \hbox {EEP}(\gamma _{\mathrm{SD}})=\sum _{d=d_f}^{+\infty }a_dP_d(\gamma _{\mathrm{SD}}) \end{aligned}$$
(7)

\(d_f\) and \(a_d\) are the free distance and distance spectra [28].

The Average Throughput of NCC is equal to

$$\begin{aligned} \hbox {ATHR}_{\mathrm{NCC}}(\overline{\varGamma _{\mathrm{SD}}})= & {} \int _0^{+\infty }\hbox {ITHR}_{\mathrm{NCC}}^{\mathrm{AMC}}(\gamma _{\mathrm{SD}})\nonumber \\&\times f_{\varGamma _{\mathrm{SD}}}(\gamma _{\mathrm{SD}})d\gamma _{\mathrm{SD}} \end{aligned}$$
(8)

where \(f_{\varGamma _{\mathrm{SD}}}(\gamma _{\mathrm{SD}})\) is the Probability Density Function (PDF) of SNR and \(\overline{\varGamma _{\mathrm{SD}}}\) is the ASNR between S and D,

\(\hbox {ITHR}_{\mathrm{NCC}}^{\mathrm{AMC}}(\gamma _{\mathrm{SD}})\) is the ITHR when AMC is used which is the maximum of throughput of the different MCS:

$$\begin{aligned}&\hbox {ITHR}_{\mathrm{NCC}}^{\mathrm{AMC}}(\gamma _{\mathrm{SD}})\nonumber \\&\quad =\max (\hbox {ITHR}_{\mathrm{NCC}}^{M=4,R_{\mathrm{c}}=0.5}(\gamma _{\mathrm{SD}}),\nonumber \\&\quad \quad \hbox {ITHR}_{\mathrm{NCC}}^{M=4}(\gamma _{\mathrm{SD}}),\hbox {ITHR}_{\mathrm{NCC}}^{M=16}(\gamma _{\mathrm{SD}}),\nonumber \\&\quad \quad \hbox {ITHR}_{\mathrm{NCC}}^{M=64}(\gamma _{\mathrm{SD}})) \end{aligned}$$
(9)

For Rayleigh fading channels, the ISNR follows an exponential distribution written as [28]

$$\begin{aligned} f_{\varGamma _{\mathrm{SD}}}(\gamma _{\mathrm{SD}})=\frac{\hbox {e}^{-\frac{\gamma _{\mathrm{SD}}}{\overline{\varGamma _{\mathrm{SD}}}}}}{\overline{\varGamma _{\mathrm{SD}}}} \end{aligned}$$
(10)

Four modulation and coding schemes (MCS) are studied in this paper, but our results are valid for other MCS: MCS1 (\(M=4\), \(R_{\mathrm{c}}=0.5\)), MCS2 (\(M=4\), \(R_{\mathrm{c}}=1\)), MCS3 (\(M=16\), \(R_{\mathrm{c}}=1\)), MCS4 (\(M=64\), \(R_{\mathrm{c}}=1\)).

3.2 Throughput analysis of cooperative communications

The ITHR of cooperative communications (CC) is written as

$$\begin{aligned} \hbox {ITHR}_{\mathrm{CC}}^{M}(\gamma _{\mathrm{SD}})=\frac{\log _2(M)}{2}[1-\hbox {PEP}(\gamma _{{SRD}})] \end{aligned}$$
(11)

There is coefficient \(\frac{1}{2}\) since half the frame is dedicated for transmission by S and half duration for transmission by relay R, \(\gamma _{{SRD}}\) is the ISNR between the source S, Relay R and destination D.

For Coded CC with an \(R_{\mathrm{c}}\) rate convolutional encoder, the ITHR is equal to

$$\begin{aligned} \hbox {ITHR}_{\mathrm{NCC}}^{M,R_{\mathrm{c}}}(\gamma _{\mathrm{SD}})=\frac{R_{\mathrm{c}}*\log _2(M)}{2}[1-\hbox {EEP}(\gamma _{{SRD}})]^{LR_{\mathrm{c}}}\nonumber \\ \end{aligned}$$
(12)

The throughput of CC is expressed as

$$\begin{aligned} \hbox {ATHR}_{\mathrm{CC}}(\overline{\varGamma _{{SRD}}})= & {} \int _0^{+\infty }\hbox {ITHR}_{\mathrm{CC}}^{\mathrm{AMC}}(\gamma _{{SRD}})\nonumber \\&\times f_{\varGamma _{{SRD}}}(\gamma _{{SRD}})d\gamma _{{SRD}} \end{aligned}$$
(13)

where \(f_{\varGamma _{{SRD}}}(\gamma _{{SRD}})\) is the PDF of SNR and \(\overline{\varGamma _{{SRD}}}\) is the ASNR of link \(S{-}R{-}D\), \(\hbox {ITHR}_{\mathrm{CC}}^{\mathrm{AMC}}(\gamma _{{SRD}})\) is the ITHR when AMC is used which is the maximum of throughput of the different MCS:

$$\begin{aligned}&\hbox {ITHR}_{\mathrm{CC}}^{\mathrm{AMC}}(x)\nonumber \\&\quad =\max (\hbox {ITHR}_{\mathrm{CC}}^{M=4,R_{\mathrm{c}}=0.5}(x),\hbox {ITHR}_{\mathrm{CC}}^{M=4}(x),\nonumber \\&\quad \quad \hbox {ITHR}_{\mathrm{CC}}^{M=16}(x),\hbox {ITHR}_{\mathrm{CC}}^{M=64}(x)) \end{aligned}$$
(14)

The ISNR of amplify and forward (AF) relaying is defined as [29]

$$\begin{aligned} \gamma _{{SRD}}=\frac{\gamma _{SR}\gamma _{RD}}{\gamma _{SR}+\gamma _{RD}+1}, \end{aligned}$$
(15)

where \(\gamma _{SR}\) (respectively \(\gamma _{RD}\)) is the ISNR between the source S and relay node R (respectively between R and destination D). For Rayleigh fading channels, the PDF of ISNR is given by [30]

$$\begin{aligned} f_{\varGamma _{{SRD}}}(\gamma _{{SRD}})= & {} 2\gamma _{{SRD}}\frac{\hbox {e}^{-\gamma _{{SRD}} \left( \frac{1}{\overline{\varGamma } _{SR}}+\frac{1}{\overline{\varGamma }_{RD}}\right) }}{\overline{\varGamma } _{SR}\overline{\varGamma }_{RD}}\nonumber \\&\times \left[ \frac{\overline{\varGamma } _{SR}+\overline{\varGamma }_{RD}}{\sqrt{\overline{\varGamma }_{SR} \overline{\varGamma }_{RD}}} K_{1}\left( \frac{2\gamma _{{SRD}}}{\sqrt{\overline{ \varGamma }_{SR}\overline{\varGamma }_{RD}}}\right) \right. \nonumber \\&+\left. 2K_{0}\left( \frac{2\gamma _{{SRD}}}{\sqrt{\overline{\varGamma }_{SR}\overline{ \varGamma }_{RD}}}\right) \right] , \end{aligned}$$
(16)

where \(\gamma _{{SRD}}>0\), \(\overline{\varGamma }_{SR}\) (respectively \(\overline{\varGamma }_{RD})\) are the ASNR between S and R (respectively R and D).

When there are K relays, we can select the relay \(R_{\mathrm{sel}}\) that offers the highest end-to-end SNR:

$$\begin{aligned} \gamma _{SR_{\mathrm{sel}}D}=\underset{1\le k\le K}{\max }(\gamma _{SR_kD}) \end{aligned}$$
(17)

K is the number of relays.

Assuming that the SNR due to different relays are independent, the Cumulative Distribution Function (CDF) of the SNR \(\varGamma _{SR_{\mathrm{sel}}D}\) is expressed as

$$\begin{aligned} F_{\varGamma _{SR_{\mathrm{sel}}D}}(x)=\prod _{k=1}^KF_{\varGamma _{SR_{k}D}}(x). \end{aligned}$$
(18)

The PDF of \(\varGamma _{SR_{\mathrm{sel}}D}\) is equal to

$$\begin{aligned} f_{\varGamma _{SR_{\mathrm{sel}}D}}(x)=\sum _{n=1}^Kf_{\varGamma _{SR_{n}D}}(x)\prod _{k=1, k\ne n}^KF_{\varGamma _{SR_{k}D}}(x). \end{aligned}$$
(19)

where \(f_{\varGamma _{SR_{n}D}}(x)\) is expressed as (16) and \(F_{\varGamma _{SR_{k}D}}(x)\) is given by [25]

$$\begin{aligned} F_{\varGamma _{SR_{k}D}}(x)= & {} 1-\frac{2x}{\sqrt{\overline{\varGamma }_{SR_k}\overline{\varGamma }_{R_kD}}}\hbox {e}^{-\frac{x(\overline{\varGamma }_{SR_k}+\overline{\varGamma }_{R_kD})}{\overline{\varGamma }_{SR_k}\overline{\varGamma }_{R_kD}}}\nonumber \\&\times K_1\left( \frac{2x}{\sqrt{\overline{\varGamma }_{SR_k}\overline{\varGamma }_{R_kD}}}\right) \end{aligned}$$
(20)

In the presence of many relays, the average throughput is given in (13) where we have to use the PDF of SNR given in (19).

3.3 Adaptive cooperation using ISNR

The proposed adaptive cooperation (AC) selects between NCC and CC the protocol that has the highest instantaneous throughput

$$\begin{aligned} ITHR_{AC}^{\mathrm{AMC}}(\gamma _{\mathrm{SD}},\gamma _{{SRD}}))= & {} \max (\hbox {ITHR}_{\mathrm{NCC}}^{\mathrm{AMC}}(\gamma _{\mathrm{SD}}),\nonumber \\&\hbox {ITHR}_{\mathrm{CC}}^{\mathrm{AMC}}(\gamma _{{SRD}})) \end{aligned}$$
(21)

The throughput of AC is written as

$$\begin{aligned}&ATHR_{AC}(\overline{\varGamma _{{SRD}}},\overline{\varGamma _{\mathrm{SD}}})\nonumber \\&\quad =\int _0^{+\infty }\int _0^{+\infty }ITHR_{AC}^{\mathrm{AMC}}(\gamma _{\mathrm{SD}},\gamma _{{SRD}}))\nonumber \\&\quad \quad \times f_{\varGamma _{{SRD}}}(\gamma _{{SRD}})f_{\varGamma _{\mathrm{SD}}}(\gamma _{\mathrm{SD}})d\gamma _{\mathrm{SD}}d\gamma _{\mathrm{SD}} \end{aligned}$$
(22)

AC maximizing the instantaneous throughput is implemented as follows:

  • Compare the ISNR of direct link to thresholds \(T_1\), \(T_2\) and \(T_3\) of Fig. 2 and select the appropriate MCS. If \(ISNR< T_1\), QPSK with half rate channel coding is used. If \(T_1<ISNR\le T_2\), uncoded QPSK is used. If \(T_2<ISNR\le T_3\), uncoded 16QAM is used. If \(\hbox {ISNR}>T_3\), uncoded 64QAM is used. Compute the instantaneous throughput of direct link.

  • Compare the ISNR of relaying links and select the relay with largest instantaneous throughput. For the selected relay, compare the corresponding ISNR to thresholds \(T_1\), \(T_2\) and \(T_3\) of Fig. 2 and select the appropriate MCS. Compute the instantaneous throughput of relayed link.

  • Compare the instantaneous throughput of NCC and NCC and use the protocol with highest throughput.

4 Adaptive cooperation using ASNR

In this section, we select the MCS and cooperation/non-cooperation protocol using ASNR per bit expressed as \(\frac{E_{\mathrm{b}}}{N_0}\).

The throughput of NCC is expressed as (8).

When AMC using the ASNR is employed, the throughput of NCC becomes

$$\begin{aligned}&\hbox {ATHR}_{\mathrm{NCC}}^{\mathrm{AMC}} \left( \frac{E_{\mathrm{b}}}{N_0}\right) =\max \left[ \hbox {ATHR}_{\mathrm{NCC}}^{R_{\mathrm{c}}=0.5,M=4} \left( \frac{E_{\mathrm{b}}}{N_0}\right) ,\right. \nonumber \\&\hbox {ATHR}_{\mathrm{NCC}}^{R_{\mathrm{c}}=1,M=4} \left( \frac{E_{\mathrm{b}}}{N_0}\right) ,\quad \hbox {ATHR}_{\mathrm{NCC}}^{R_{\mathrm{c}}=1,M=16} \left( \frac{E_{\mathrm{b}}}{N_0}\right) ,\nonumber \\&\left. \hbox {ATHR}_{\mathrm{NCC}}^{R_{\mathrm{c}}=1,M=64}\left( \frac{E_{\mathrm{b}}}{N_0}\right) \right] \end{aligned}$$
(23)

The throughput of cooperative communications (CC) is expressed similarly

$$\begin{aligned} \hbox {ATHR}_{\mathrm{CC}}^{R_{\mathrm{c}},M} \left( \frac{E_{\mathrm{b}}}{N_0}\right)= & {} \int _0^{+\infty }\hbox {ITHR}_{\mathrm{CC}}^{R_{\mathrm{c}},M}(\gamma _{{SRD}})\nonumber \\&\times f_{\varGamma _{{SRD}}}(\gamma _{{SRD}})d\gamma _{{SRD}} \end{aligned}$$
(24)

where the instantaneous throughput \(\hbox {ITHR}_{\mathrm{CC}}^{R_{\mathrm{c}},M}(\gamma _{{SRD}})\) is given in (11) and (12) for uncoded and coded communications.

When AMC using the ASNR is employed, the average throughput of CC becomes

$$\begin{aligned}&\hbox {ATHR}_{\mathrm{CC}}^{\mathrm{AMC}} \left( \frac{E_{\mathrm{b}}}{N_0}\right) =\max \left[ \hbox {ATHR}_{\mathrm{CC}}^{R_{\mathrm{c}}=0.5,M=4} \left( \frac{E_{\mathrm{b}}}{N_0}\right) ,\right. \nonumber \\&\hbox {ATHR}_{\mathrm{CC}}^{R_{\mathrm{c}}=1,M=4} \left( \frac{E_{\mathrm{b}}}{N_0}\right) ,\hbox {ATHR}_{\mathrm{CC}}^{R_{\mathrm{c}}=1,M=16} \left( \frac{E_{\mathrm{b}}}{N_0}\right) ,\nonumber \\&\left. \hbox {ATHR}_{\mathrm{CC}}^{R_{\mathrm{c}}=1,M=64}\left( \frac{E_{\mathrm{b}}}{N_0}\right) \right] \end{aligned}$$
(25)

The adaptive cooperation (AC) protocol selects the best protocol between CC and NCC and the best MCS using ASNR

$$\begin{aligned}&ATHR_{AC}^{\mathrm{AMC}}\left( \frac{E_{\mathrm{b}}}{N_0}\right) \nonumber \\&\quad =\max \left( \hbox {ATHR}_{\mathrm{CC}}^{\mathrm{AMC}}\left( \frac{E_{\mathrm{b}}}{N_0}\right) , \hbox {ATHR}_{\mathrm{NCC}}^{\mathrm{AMC}}\left( \frac{E_{\mathrm{b}}}{N_0}\right) \right) \end{aligned}$$
(26)

AC maximizing the average throughput is implemented as follows:

  • Compare the ASNR of direct link to thresholds \(A_1\), \(A_2\) and \(A_3\) and select the appropriate MCS. The values of thresholds are \(A_1=6.3 \,\hbox {dB}\), \(A_2=9.2 \,\hbox {dB}\) and \(S_3=16.2 \,\hbox {dB}\) and allow to select the appropriate MCS maximizing the average throughput. If \(\hbox {ASNR}\le 6.3\,\hbox {dB}\), QPSK with half rate channel coding is used. If \(6.3 \,\mathrm{\,dB}<\hbox {ASNR}\le 9.2 \,\hbox {dB}\), uncoded QPSK is used. If \(9.2\,\hbox {dB}<\hbox {ASNR}\le 16.2 \,\hbox {dB}\), uncoded 16QAM is used. If \(ASNR>16.2 \,\hbox {dB}\), uncoded 64QAM is used. Compute the average throughput of direct link.

  • Compare the ASNR of relaying links and select the relay with largest average throughput. For the selected relay, compare the corresponding ASNR to thresholds \(A_1\), \(A_2\) and \(A_3\) and select the appropriate MCS. Compute the average throughput of relayed link.

  • Select the best protocol between CC and NCC in order to maximize the throughput.

5 Numerical results

Path loss exponent is equal to three. The distance on direct link is one. The distance between source and relays is \(d_{SR_k}\)=0.2,0.3,0.4,0.5. The distance between relays and destination is \(d_{R_kD}=1-d_{SR_k}\). These are normalized distance \(d_{SR_k}=\frac{d_{SR_k,\mathrm{effective}}}{d_0}\) and \(d_{R_kD}=\frac{d_{R_kD,\mathrm{effective}}}{d_0}\) where \(d_0\) is a reference distance in meters and \(d_{SR_k,\mathrm{effective}}\) and \(d_{R_kD,\mathrm{effective}}\) are the distances in meters between S and \(R_k\) and \(R_k\) and D. Packet length is \(L\times \log _2(M)=600\) bits.

Figure 2 shows the instantaneous throughput of NCC with respect to ISNR. These curves correspond to the studied MCS. We following strategy should be used.

  • If the \(\hbox {ISNR} < T_1=6.3 \,\hbox {dB}\), the best MCS is MCS1: \(R_{\mathrm{c}}=0.5\) with QPSK modulation.

  • If \(T_1<\hbox {ISNR}< T_2=10.7 \,\hbox {dB}\), the best MCS is MCS2: \(R_{\mathrm{c}}=1\) with QPSK modulation.

  • If \(T_2<\hbox {ISNR}<T_3=15.7 \,\hbox {dB}\), the best MCS is MCS3: \(R_{\mathrm{c}}=1\) with 16-QAM.

  • If ISNR\(>T_3\), the best MCS is MCS4: \(R_{\mathrm{c}}=1\) with 64-QAM.

As shown in Fig. 2, the thresholds \(T_i\) are the abscissae of the intersections between the throughput of the studied 4 MCS.

Fig. 2
figure 2

MCS selection using ISNR

Figure 3 shows the throughput of adaptive cooperation (AC) using ISNR in the absence of path loss and a single relay. The red curve corresponds to AC with AMC using ISNR. The blue curve corresponds to AC with 64-QAM. The black curve corresponds to Non-Cooperative Communications NCC (direct link) with AMC using ISNR. The magenta curve corresponds to cooperative communications (CC) with AMC using ISNR. We observe that the proposed AC offers the highest throughput. For a throughput of 4 bit/s/Hz, the proposed AC offers 2 dB gain with respect to NCC with AMC. Also, AC has a higher throughput than CC with AMC as studied in [16,17,18,19,20,21,22].

Fig. 3
figure 3

Throughput of the proposed AC protocol using ISNR in the presence of a single relay

Figure 4 shows the throughput of AC and CC with AMC using ISNR in the presence of 1, 2, 3 and 4 relays. The distance between all nodes is equal to one. The relay with largest ISNR is selected. We observe that AC offers a higher throughput than CC even in the presence of multiple relays.

Fig. 4
figure 4

AC protocol using ISNR in the presence of many relays

Figure 5 shows the throughput of AC using ASNR in the presence of a single relay. We observe that AC offers a higher throughput than CC and NCC protocols. In fact, the proposed AC chooses the best protocol that ensures the highest throughput.

Fig. 5
figure 5

AC using ASNR

Figure 6 shows the throughput of AC with AMC using the ASNR and ISNR. We observe that AC based on ISNR offers the highest throughput. AC using ISNR offers 10.5 dB gains with respect to AC using ASNR for a throughput of 4bit/s/Hz. In fact, AC with ISNR selects the appropriate MCS and CC/NCC protocol based on instantaneous channel conditions.

Fig. 6
figure 6

AC using ASNR and ISNR

Figure 7 compares the throughput of proposed adaptive cooperation (AC) protocol using ISNR with respect to Incremental Relaying (IR) [23,24,25,26,27] in the presence of a single relay. Both AC and IR use AMC and choose the best MCS. IR use the direct link when its SNR is larger than threshold T. Otherwise, the relayed link is used since the direct link has a low SNR. We observe that proposed AC offers higher throughput than IR for all values of \(T=1,5,10\). A throughput of 4 bit/s/Hz is reached for \(E_{\mathrm{b}}/N_0=8.4\) dB when AC is used. The throughput of IR with \(T=5\) is equal to 4 bit/s/Hz for \(E_{\mathrm{b}}/N_0=9.6\) dB. A throughput of 3 bit/s/Hz is reached for \(E_{\mathrm{b}}/N_0\) equal to 6 dB and 7.3 dB, respectively, for AC and IR with \(T=5\). Therefore, AC offers 1.2 dB (respectively 1.3 dB) gain with respect to IR for a throughput of 4 bit/s/Hz (respectively 3 bit/s/Hz). AC chooses always the best transmission protocol. However, IR is suboptimal since it chooses the relayed link when the SNR of direct link is less than T. When the SNR of direct link is less than T, it is possible that the throughput of relayed link is lower throughput than that of direct link.

Fig. 7
figure 7

Comparison between AC and Incremental Relaying (IR)

6 Complexity analysis

AC maximizing the instantaneous throughput requires to measure the ISNR of direct and relayed links. This estimation is used to determine the best protocol between CC and NCC. Also, the ISNR is used to determine the best MCS. AC maximizing the average throughput requires to measure the average SNR of direct and relayed links. NCC (respectively CC) requires to measure the ISNR of direct link (respectively relayed link) to choose the best MCS. IR requires also to measure both ISNR of direct and relayed links since it is used to choose the best MCS and to know whether the relay will be idle or activated. Therefore, AC has a similar complexity as IR. However, the proposed AC offers 1.2–1.3 dB gain with respect to IR. NCC selects the appropriate MCS in 1.11 ms. CC selects the appropriate MCS and relay in 1.13ms. AC selects the appropriate protocol, relay and MCS in 1.17 ms.

7 Conclusions

In this paper, we have suggested a new AC protocol that chooses the best protocol between CC and NCC in order to maximize the throughput. We use ISNR or ASNR to choose between NCC and CC. AC uses the relayed link only when its throughput is larger than the direct link. The proposed adaptive cooperation protocol has been extended to include adaptive modulation and coding (AMC) and relay selection and reaches higher throughput than non-cooperative protocol and cooperative protocol with AMC. For a throughput of 4 bit/s/Hz, the proposed AC offers 2 dB gain with respect to NCC with AMC. AC using ISNR offers better performance than AC using ASNR. The proposed AC protocol offers 1.3 dB gain with respect to incremental relaying for a throughput of 3 bit/s/Hz.