1 Introduction

Free Space Optical (FSO) communications offer huge bandwidth and data rates which makes this technology attractive for multimedia applications, online gaming and High Definition TV (HDTV) [5, 11, 18]. Although these services are already offered using optical fiber links, FSO have different features that makes it very attractive : ease of installation, free license, high capacity, no digging work and high protection to interference [4, 9, 20]. FSO communications are sensitive to atmospheric turbulence due to weather conditions such as rain, fog and snow. In order to improve the throughput of FSO systems, we can use different relaying techniques such as Amplify and Forward (AF) or Decode and Forward (DF) relaying techniques [4, 8, 9]. In AF relaying, the received signal is amplified using a fixed or an adaptive gain. Different relay selection techniques can be used such as opportunistic, partial and reactive relay selection [3, 10, 14]. FSO communications allows also data exchange in both directions between two sources using two-way relaying [17, 19]. We can also deploy a hybrid Radio Frequency (RF)/FSO where one link uses RF and second one uses FSO [6, 13]. In [2], FSO has been combined with Unmanned Aerial Vehicle (UAV) to deliver 5G wireless communications while harvesting large amounts of energy. Two pulse Optical Spatial Modulations (OSM) have been suggested in [1] for multi-aperture FSO communications. Exact symbol error probability of OSM has been derived in [1] for Gamma-Gamma channels.

Fig. 1
figure 1

System model

In conventional FSO systems, we can use either cooperative communications or non cooperative communication. In this paper, we activate the relay only when the corresponding instantaneous or average throughput is better than that of the direct link. The contributions of the paper are :

  • We propose an adaptive cooperation protocol with Adaptive Modulation and Coding (AMC) using ISNR. This protocol activates the relay only when the corresponding instantaneous throughput is better than that of the direct link.

  • We propose a second adaptive cooperation protocol with AMC using ASNR. This second protocol activates the relay only when the corresponding average throughput is better than that of the direct link.

  • Our results are valid for coded and uncoded Pulse Amplitude Modulations (PAM) or Quadrature Amplitude Modulations (QAM) in the presence of weak, moderate and strong turbulence. We considered a Gamma Gamma atmospheric turbulence.

The paper contains nine sections. Sections 2 describes the system and signal models. Sections 3, 4 and 5 deal respectively with non cooperative, cooperative and adaptive cooperation using ISNR. Section 6 deals with non cooperative, cooperative and adaptive cooperation using ASNR. Section 7 describes the obtained results. Finally, sect. 8 concludes the paper.

2 System model

In the system model shown in Fig. 1, there are a source S, a destination D and K relays. We propose an adaptive cooperation protocol that uses either the direct link between S and D or the relayed one through the best relay Rsel. Adaptive Cooperation (AC) activates the chosen relay only when the corresponding instantaneous throughput is larger than that of direct link. AC maximizing the average throughput consists to activate the chosen relay only when the corresponding average throughput is larger than that of direct link.

2.1 Signal model

The received signal at D on the direct link S-D is written as

$$\begin{aligned} r_{SD}(l)=h_{SD}s(l)+n_{SD}(l) \end{aligned}$$
(1)

where s(l) is the l-th transmitted symbol, \(h_{SD}\) is the atmospheric fading coefficient between S and D and \(n_{SD}(l)\) is a Gaussian noise with variance \(N_0\).

When a relayed link is used, the received signal at relay node R is expressed as

$$\begin{aligned} r_{SR}(l)=h_{SR}s(l)+n_{SR}(l), \end{aligned}$$
(2)

where \(h_{SR}\) is the atmospheric fading coefficient between S and R and \(n_{SR}(l)\) is a Gaussian noise with variance \(N_0\).

Relay node R amplifies the received signal \(r_{SR}(l)\) using an amplification factor G given by [12]

$$\begin{aligned} G=\sqrt{\frac{E_R}{E_S|h_{SR}|^2+N_0}} \end{aligned}$$
(3)

where \(E_S\) (respectively \(E_R\)) is the transmitted energy per symbol of the source S (respectively relay R).

The received signal at D through S-R-D relayed link is written as

$$\begin{aligned} r_{SRD}(l)= & {} Gh_{RD}r_{SR}(l)+n_{RD}(l)\nonumber \\= & {} Gh_{RD}h_{SR}s(l)+Gh_{RD}n_{SR}(l)+n_{RD}(l). \end{aligned}$$
(4)

where \(n_{RD}(l)\) is a Gaussian noise with variance \(N_0\).

For both direct and relayed links, the received signal at D is equal to

$$\begin{aligned} r_D(l)=fs(l)+b(l), \end{aligned}$$
(5)

For the direct link, we have

$$\begin{aligned}&f=h_{SD} \end{aligned}$$
(6)
$$\begin{aligned}&b(l)=n_{SD}(l) \end{aligned}$$
(7)

For the relayed link, we have

$$\begin{aligned}&f=h_{SR}h_{RD}G. \end{aligned}$$
(8)
$$\begin{aligned}&b(l)=Gh_{RD}n_{SR}(l)+n_{RD}(l) \end{aligned}$$
(9)

There is no ambiguity at the receiver since it does not need to know if it is a direct or relayed signal. In fact, it has to adjust the thresholds for PAM or QAM detection using an estimated value of f:

$$\begin{aligned}&{\widehat{f}}=\sum _{l\in I_p}\frac{r_D(l)s(l)^*}{N_p|s(l)|^2}\nonumber \\&\quad =f+\sum _{l\in I_p}\frac{b(l)s(l)^*}{N_p|s(l)|^2} \end{aligned}$$
(10)

where \(I_p\) is the index of known pilot symbols and \(N_p\) is the number of pilot symbols used for channel and SNR estimation.

An estimation of SNR can be performed similarly

$$\begin{aligned} SNR=\frac{{\widehat{f}}^2\widehat{E_S}}{B_0} \end{aligned}$$
(11)

where

$$\begin{aligned} \widehat{E_S}= & {} \sum _{l\in I_p}\frac{|s(l)|^2}{N_p}. \end{aligned}$$
(12)
$$\begin{aligned} B_0= & {} \sum _{l\in I_p}\frac{|r_D(l)-{\widehat{f}}s(l)|}{N_p}^2 \end{aligned}$$
(13)

For the direct link

$$\begin{aligned} B_0 \simeq N_0 \end{aligned}$$
(14)

Using (6), (11) and (14), we obtain

$$\begin{aligned} SNR\simeq \Gamma _{SD}=\frac{h_{SD}^2E_S}{N_0} \end{aligned}$$
(15)

For relayed link, we have

$$\begin{aligned} B_0 \simeq N_0G^2h_{RD}^2+N_0. \end{aligned}$$
(16)

Using (3), (8), (11), (16), we obtain

$$\begin{aligned}&SNR\simeq \Gamma _{SRD}=\frac{G^2h_{RD}^2h_{SR}^2E_S}{N_0+N_0h_{RD}^2G^2} =\frac{\Gamma _{SR}\Gamma _{RD}}{\Gamma _{SR}+\Gamma _{RD}+1},\nonumber \\ \end{aligned}$$
(17)

where \(\Gamma _{SR}=\frac{E_Sh_{SR}^2}{N_0}\) is the SNR of S-R link and \(\Gamma _{RD}=\frac{E_Rh_{RD}^2}{N_0}\) is the SNR of R-D link.

An estimation of SNRs of direct and relayed links sent on the feedback channel are the only required inputs of the proposed adaptive cooperation protocol. Adaptive cooperation using instantaneous SNR don’t use a matrix to record many values of ISNRs and only actual values of ISNRs of direct and relayed links are sufficient. If the adaptive cooperation protocol uses the average SNR, an average of ISNR values over many frames can be computed to estimate the average SNR. These values don’t have to be stored, only the average SNR is required.

3 Non cooperative communications with AMC using ISNR

When Non Cooperative Communications (NCC) is used, the instantaneous throughput of uncoded Q-PAM modulation is expressed as

$$\begin{aligned} Ithr_{Q-PAM}^{NCC}(\gamma )=\mathrm {log_2}(Q)[1-Pes_{Q-PAM}(\gamma )]^N \end{aligned}$$
(18)

where N is packet length in symbols, \(Pes_{Q-PAM}(\gamma )\) is the Symbol Error Probability (SEP) of PAM modulation of size Q and SNR equal to \(\gamma \),

$$\begin{aligned} Pes_{Q-PAM}(\gamma )= & {} \frac{Q-1}{Q}erfc\nonumber \\&\quad \left( \sqrt{\frac{\gamma 3 \mathrm {log_2}(Q)}{2(Q-1)(2Q-1)}}\right) \end{aligned}$$
(19)

When convolutional channel encoding is used, the throughput of coded Q-PAM is written as

$$\begin{aligned} Ithr_{Q-PAM,R_c}^{NCC}(\gamma ){=}R_c\mathrm {log_2}(Q)[1{-}PEV_{Q{-}PAM}(\gamma )]^{NR_c}\nonumber \\ \end{aligned}$$
(20)

where \(R_c\) is the rate of channel encoder, \(PEV_{Q-PAM}(\gamma )\) is the probability of an error event of Viterbi decoder expressed as [15]

$$\begin{aligned} PEV_{Q-PAM}(\gamma )\le min(1,\sum _{d=d_f}^{+\infty }a_d Pd_{Q-PAM}(\gamma )) \end{aligned}$$
(21)

\(d_f\) is the free distance of the code and \(a_d\) is the number of trellis paths with Hamming weight d [15],

$$\begin{aligned} Pd_{Q-PAM}(\gamma )= & {} \frac{Q-1}{Q}erfc\nonumber \\&\quad \left( \sqrt{\frac{dR_c\gamma 3 \mathrm {log_2}(Q)}{2(Q-1)(2Q-1)}}\right) . \end{aligned}$$
(22)

When AMC is used, the instantaneous throughput is written as

$$\begin{aligned} Ithr^{NCC}_{AMC}(\gamma )= & {} max[Ithr_{4-PAM,R_c}^{NCC}(\gamma ),\nonumber \\&\quad Ithr_{4-PAM}^{NCC}(\gamma ),Ithr_{8-PAM}^{NCC}(\gamma ),\nonumber \\&\quad Ithr_{16-PAM}^{NCC}(\gamma ),Ithr_{32-PAM}^{NCC}(\gamma )] \end{aligned}$$
(23)

In this paper, we use the following 5 MCS : 4-PAM with half rate channel coding, 4-PAM, 8-PAM, 16-PAM and 32-PAM. Extension to other MCS is straightforward.

The average throughput of non cooperative communications with AMC is expressed as

$$\begin{aligned}&Athr_{AMC}^{NCC}({\overline{\Gamma }}_{SD})=\int _0^{+\infty } Ithr_{AMC}^{NCC}(\gamma )f_{\Gamma _{SD}}(\gamma )d\gamma \end{aligned}$$
(24)

\(\Gamma _{SD}\) is the SNR of direct link between the source S and destination D, \(f_{\Gamma _{SD}}(\gamma )\) is the Probability Density Function (PDF) of SNR, \(\Gamma _{SD}\) that follows a Gamma Gamma distribution [7]

$$\begin{aligned} f_{\Gamma _{SD}}(\gamma )= & {} \frac{2(\alpha \beta )^{\frac{\alpha +\beta }{2}}}{2{\overline{\Gamma }}_{SD}\Gamma (\alpha )\Gamma (\beta )}\nonumber \\&\quad (\frac{x}{{\overline{\Gamma }}_{SD}})^{\frac{\alpha +\beta }{2}-1}\nonumber \\&\quad K_{\alpha -\beta }(2\sqrt{\frac{\alpha \beta x}{{\overline{\Gamma }}_{SD}}}), x \ge 0 \end{aligned}$$
(25)

where \({\overline{\Gamma }}_{SD}=E(\Gamma _{SD})\) is the average SNR of direct link between S and D, E(X) is expectation of X, \(K_n(x)\) is the n-th order modified Bessel function of second kind, \(\alpha =2.902\), \(\beta =2.51\) for weak turbulence, \(\alpha =2.296\), \(\beta =1.822\) for moderate turbulence and \(\alpha =2.064\), \(\beta =1.342\) for strong turbulence [7].

4 Cooperative communications with AMC using ISNR

The instantaneous throughput of uncoded Q-PAM with Cooperative Communications (CC) is written as

$$\begin{aligned} Ithr_{Q-PAM}^{CC}(\gamma )=\frac{\mathrm {log_2}(Q)}{2}[1-Pes_{Q-PAM}(\gamma )]^N \end{aligned}$$
(26)

where coefficient \(\frac{1}{2}\) is due to the fact that the source and relay transmit during only half the frame.

When convolutional channel coding is employed, the instantaneous throughput is written as

$$\begin{aligned} Ithr_{Q-PAM,R_c}^{CC}(\gamma )= & {} \frac{R_c\mathrm {log_2}(Q)}{2}\nonumber \\&\quad \times [1-PEV_{Q-PAM}(\gamma )]^{R_cN} \end{aligned}$$
(27)

When AMC is employed, the instantaneous throughput of CC is equal to

$$\begin{aligned} Ithr_{AMC}^{CC}(\gamma )= & {} max[Ithr_{4-PAM,R_c}^{CC}(\gamma ),\nonumber \\&\quad Ithr_{4-PAM}^{CC}(\gamma ),Ithr_{8-PAM}^{CC}(\gamma ),\nonumber \\&\quad Ithr_{16-PAM}^{CC}(\gamma ),Ithr_{32-PAM}^{CC}(\gamma )] \end{aligned}$$
(28)

The average throughput of cooperative communication with AMC is equal to

$$\begin{aligned}&Athr_{AMC}^{CC}({\overline{\Gamma }}_{SRD})=\int _0^{+\infty } Ithr_{AMC}^{CC}(\gamma )f_{\Gamma _{SRD}}(\gamma )d\gamma \end{aligned}$$
(29)

\(f_{\Gamma _{SRD}}(\gamma )\) is the PDF of \(\Gamma _{SRD}\). \(\Gamma _{SRD}\) is expressed as

$$\begin{aligned} \Gamma _{SRD}=\frac{\Gamma _{SR}\Gamma _{RD}}{1+\Gamma _{SR}+\Gamma _{RD}} \end{aligned}$$
(30)

\(\Gamma _{SR}\) is ISNR between S and R and \(\Gamma _{RD}\) is the ISNR between R and D.

The PDF of an upper bound of SNR of AF relaying is given in Appendix A. When there are many relays, we have simply to replace in (29) the PDF of SNR \(\Gamma _{SRD}\) by that of \(\Gamma _{SRselD}\) where Rsel is the chosen relay. The PDF of SNR \(\Gamma _{SRselD}\) is provided in appendix B.

5 Adaptive cooperation with AMC using ISNR

5.1 PAM modulation

The instantaneous throughput of Adaptive Cooperation (AC) is the maximum of throughput of cooperative and non cooperative communications:

$$\begin{aligned} Ithr^{AC}_{Q-PAM}(\gamma _{SD},\gamma _{SRD})= & {} max[Ithr^{CC}_{Q-PAM}(\gamma _{SD}),\nonumber \\&\quad Ithr^{NCC}_{Q-PAM}(\gamma _{SRD})] \end{aligned}$$
(31)

where \(\gamma _{SD}\) (respectively \(\gamma _{SRD}\)) is the ISNR of direct link (respectively relayed link)

When channel coding is used, the throughput of AC is expressed as

$$\begin{aligned} Ithr^{AC}_{Q-PAM,R_c}(\gamma _{SD},\gamma _{SRD})= & {} max[Ithr^{CC}_{Q-PAM,R_c}(\gamma _{SD}),\nonumber \\&\quad Ithr^{NCC}_{Q-PAM,R_c}(\gamma _{SRD})]\nonumber \\ \end{aligned}$$
(32)

When AMC is employed, the instantaneous throughput is equal to

$$\begin{aligned}&Ithr^{AC}_{AMC}(\gamma _{SD},\gamma _{SRD})=max[Ithr^{AC}_{4-PAM,R_c}(\gamma _{SD},\gamma _{SRD}),\nonumber \\&Ithr^{AC}_{4-PAM}(\gamma _{SD},\gamma _{SRD}),\nonumber \\&Ithr^{AC}_{8-PAM}(\gamma _{SD},\gamma _{SRD}),Ithr^{AC}_{16-PAM}(\gamma _{SD},\gamma _{SRD}),\nonumber \\&\quad Ithr^{AC}_{32-PAM}(\gamma _{SD},\gamma _{SRD})] \end{aligned}$$
(33)

The average throughput of adaptive cooperation with AMC is expressed as

$$\begin{aligned} Athr_{AMC}^{AC}(\frac{E_b}{N_0})= & {} \int _0^{+\infty }\int _0^{+\infty }Ithr^{AC}_{AMC}(\gamma _{SD},\gamma _{SRD})\nonumber \\&\times f_{\Gamma _{SD}}(\gamma _{SD})f_{\Gamma _{SRD}}(\gamma _{SRD})d\gamma _{SD}d\gamma _{SRD}\nonumber \\ \end{aligned}$$
(34)

where \(\frac{E_b}{N_0}\) is the average SNR per bit and \(E_b\) is the transmitted energy per bit.

5.2 QAM modulation

When QAM is used in FSO systems, the instantaneous throughput of AC is equal to

$$\begin{aligned} Ithr^{AC}_{Q-QAM}(\gamma _{SD},\gamma _{SRD})= & {} max[Ithr^{CC}_{Q-QAM}(\gamma _{SD}),\nonumber \\&\quad Ithr^{NCC}_{Q-QAM}(\gamma _{SRD})] \end{aligned}$$
(35)

where

$$\begin{aligned} Ithr_{Q-QAM}^{NCC}(\gamma _{SD})=\mathrm {log_2}(Q)[1-Pes_{Q-QAM}(\gamma _{SD})]^N\nonumber \\ \end{aligned}$$
(36)

\(Pes_{Q-QAM}(\gamma )\) is the SEP of QAM modulation expressed as [15]

$$\begin{aligned} Pes_{Q-QAM}(\gamma _{SD})=2\left( 1-\frac{1}{\sqrt{Q}})\right) erfc \left( \sqrt{\frac{\gamma _{SD} 3 \mathrm {log_2}(Q)}{(Q-1)}}\right) \nonumber \\ \end{aligned}$$
(37)

and

$$\begin{aligned} Ithr_{Q-QAM}^{CC}(\gamma _{SRD})=0.5\times \mathrm {log_2}(Q)[1-Pes_{Q-QAM}(\gamma _{SRD})]^N\nonumber \\ \end{aligned}$$
(38)

Equation (37) is valid when Q is a perfect square i.e. \(Q=P^2\). The SEP of 8-QAM is computed as \(Pes_{8-QAM}(\gamma )=\frac{5}{4}erfc(\sqrt{\frac{\gamma }{6}})\) and the SEP of 32-QAM is \(Pes_{32-QAM}(\gamma )=\frac{13}{8}erfc(\sqrt{\frac{\gamma }{13}})\) [15].

When convolutional channel encoding is used, the throughput of NCC with coded Q-QAM is equal to

$$\begin{aligned} Ithr_{Q-QAM,R_c}^{NCC}(\gamma _{SD})=R_c\mathrm {log_2}(Q)[1-PEV_{Q-QAM}(\gamma _{SD})]^{NR_c}\nonumber \\ \end{aligned}$$
(39)

and [15]

$$\begin{aligned} PEV_{Q-QAM}(\gamma )\le & {} min\left[ 1,2\left( 1-\frac{1}{\sqrt{Q}}\right) \sum _{d=d_f}^{+\infty }a_d erfc\right. \nonumber \\&\quad \left. \times \left( \sqrt{\frac{dR_c\gamma 3 \mathrm {log_2}(Q)}{(Q-1)}}\right) \right] \end{aligned}$$
(40)

When convolutional channel encoding is used, the throughput of CC with coded Q-QAM is equal to

$$\begin{aligned} Ithr_{Q-QAM,R_c}^{CC}(\gamma _{SRD})=0.5R_c\mathrm {log_2}(Q)[1-PEV_{Q-QAM}(\gamma _{SRD})]^{NR_c}\nonumber \\ \end{aligned}$$
(41)

When channel coding is used, the throughput of AC is written as

$$\begin{aligned} Ithr^{AC}_{QPSK,R_c}(\gamma _{SD},\gamma _{SRD})=max[Ithr^{CC}_{QPSK,R_c}(\gamma _{SD}),Ithr^{NCC}_{QPSK,R_c}(\gamma _{SRD})]\nonumber \\ \end{aligned}$$
(42)

When AMC is employed, the instantaneous throughput of AC is equal to

$$\begin{aligned}&Ithr^{AC}_{AMC}(\gamma _{SD},\gamma _{SRD})=max[Ithr^{AC}_{QPSK,R_c}(\gamma _{SD},\gamma _{SRD}),\nonumber \\&Ithr^{AC}_{QPSK}(\gamma _{SD},\gamma _{SRD}),\nonumber \\&Ithr^{AC}_{8-QAM}(\gamma _{SD},\gamma _{SRD}),Ithr^{AC}_{16-QAM}(\gamma _{SD},\gamma _{SRD}),\nonumber \\&\quad Ithr^{AC}_{32-QAM}(\gamma _{SD},\gamma _{SRD})] \end{aligned}$$
(43)

The average throughput of AC with AMC is computed similarly to (34).

6 Adaptive cooperation with AMC using ASNR

The average throughput of uncoded Q-PAM without cooperation is expressed as

$$\begin{aligned}&Athr_{Q-PAM}^{NCC}(\frac{E_b}{N_0})=\int _0^{+\infty } Ithr_{Q-PAM}^{NCC}(\gamma )f_{\Gamma _{SD}}(\gamma )d\gamma \nonumber \\ \end{aligned}$$
(44)

Equation (44) can be used to evaluate the average throughput of NCC when QAM modulation is used and we have simply to replace \(Ithr_{Q-PAM}^{NCC}(\gamma )\) by \(Ithr_{Q-QAM}^{NCC}(\gamma )\) given in (36).

When channel coding is used, the average throughput of coded Q-PAM without cooperation is written as

$$\begin{aligned}&Athr_{Q{-}PAM{,}R_c}^{NCC}(\frac{E_b}{N_0}){=}\int _0^{{+}\infty } Ithr_{Q{-}PAM,R_c}^{NCC}(\gamma )f_{\Gamma _{SD}}(\gamma )d\gamma \nonumber \\ \end{aligned}$$
(45)

Equation (45) can be used to evaluate the average throughput of NCC when coded QAM modulation is used and we have simply to replace \(Ithr_{Q-PAM,R_c}^{NCC}(\gamma )\) by \(Ithr_{Q-QAM,R_c}^{NCC}(\gamma )\) given in (39).

When AMC is employed using the ASNR, the average throughput is expressed as

$$\begin{aligned}&Athr_{AMC}^{NCC}(\frac{E_b}{N_0})=max[Athr_{4-PAM,R_c}^{NCC}(\frac{E_b}{N_0}),\nonumber \\&\quad Athr_{4-PAM}^{NCC}(\frac{E_b}{N_0}),Athr_{8-PAM}^{NCC}(\frac{E_b}{N_0}),\nonumber \\&\quad Athr_{16-PAM}^{NCC}(\frac{E_b}{N_0}),Athr_{32-PAM}^{NCC}(\frac{E_b}{N_0})] \end{aligned}$$
(46)

The average throughput of uncoded Q-PAM with cooperation is

$$\begin{aligned}&Athr_{Q-PAM}^{CC}(\frac{E_b}{N_0})=\int _0^{+\infty }Ithr_{Q-PAM}^{CC}(\gamma )f_{\Gamma _{SRD}}(\gamma )d\gamma \nonumber \\ \end{aligned}$$
(47)

Equation (47) can be used to evaluate the average throughput of NCC when uncoded QAM modulation is used and we have simply to replace \(Ithr_{Q-PAM}^{CC}(\gamma )\) by \(Ithr_{Q-QAM}^{CC}(\gamma )\) given in (38).

When channel coding is used, the average throughput of coded Q-PAM with cooperation is written as

$$\begin{aligned}&Athr_{Q-PAM,R_c}^{CC}(\frac{E_b}{N_0})=\int _0^{+\infty }\nonumber \\&\quad Ithr_{Q-PAM,R_c}^{CC}(\gamma )f_{\Gamma _{SRD}}(\gamma )d\gamma \end{aligned}$$
(48)

Equation (48) can be used to evaluate the average throughput of NCC when coded QAM modulation is used and we have simply to replace \(Ithr_{Q-PAM,R_c}^{CC}(\gamma )\) by \(Ithr_{Q-QAM,R_c}^{CC}(\gamma )\) given in (41).

When AMC is employed using the average SNR, the average throughput of CC is expressed as

$$\begin{aligned}&Athr_{AMC}^{CC}(\frac{E_b}{N_0})=max[Athr_{4-PAM,R_c}^{CC}(\frac{E_b}{N_0}),\nonumber \\&\quad Athr_{4-PAM}^{CC}(\frac{E_b}{N_0}),Athr_{8-PAM}^{CC}(\frac{E_b}{N_0}),\nonumber \\&Athr_{16-PAM}^{CC}(\frac{E_b}{N_0}),Athr_{32-PAM}^{CC}(\frac{E_b}{N_0})] \end{aligned}$$
(49)

The throughput of adaptive cooperation using ASNR and AMC is the maximum of average throughput of CC and NCC:

$$\begin{aligned} Athr_{AMC}^{AC}(\frac{E_b}{N_0})= & {} max[Athr_{AMC}^{CC}(\frac{E_b}{N_0}),\nonumber \\&\quad Athr_{AMC}^{NCC}(\frac{E_b}{N_0})] \end{aligned}$$
(50)

7 Theoretical and simulation results

We have used MATLAB to perform some simulation and plot theoretical throughput for FSO communications. Packets contain 200 symbols. Except Fig. 7 where QAM modulation has been used, we have compared our adaptive cooperation protocol with AMC for the following MCS :

  • MCS1 : 4-PAM with half rate convolutional coding. The memory of the code is m=6 and generator polynomials are \(g_1=133\) and \(g_2=171\).

  • MCS2 : uncoded 4-PAM.

  • MCS3 : uncoded 8-PAM.

  • MCS4 : uncoded 16-PAM.

  • MCS5 : uncoded 32-PAM.

In all figures, perfect Channel State Information (CSI) is assumed and the performance of AC protocol with estimated CSI has been evaluated only in Fig. 9.

Fig. 2 shows the instantaneous throughput of non cooperative communications for the studied 5 MCS. We observe that:

If ISNR\(<T_1\), we have to use coded 4-PAM with \(R_c=0.5\).

If \(T_1\le \)ISNR\(<T_2\), we have to use uncoded 4-PAM.

If \(T_2\le \)ISNR\(<T_3\), we have to use uncoded 8-PAM.

If \(T_3\le \)ISNR\(<T_4\), we have to use uncoded 16-PAM.

If ISNR\(\ge T_4\), we have to use uncoded 32-PAM.

Fig. 2
figure 2

MCS selection using ISNR

In Fig. 36, we compared the proposed AC protocol to CC [3, 10, 14] and NCC [11, 18] when the distance between source S and destination D is one, the distance between S and relay R is 0.2 and the distance between R and D is 0.8. The path loss exponent was set to 3.

Fig. 3 shows the average throughput for weak turbulence in the presence of a single relay. We observe that AC with AMC using ISNR offers a higher throughput than NCC and CC with AMC. AC with 32-PAM offers a lower throughput than AC with AMC. Therefore, the proposed AC protocol should be always combined with AMC to reach high throughput.

Fig. 3
figure 3

Throughput comparison of the proposed adaptive cooperation versus cooperative and non cooperative communications

Fig. 4 compares the throughput of AC and CC with AMC using the ISNR when there are one to four relays. The relay with largest end-to-end SNR between S, \(R_k\) and D is selected. We notice that the the throughput of AC protocol is larger than that of CC even in the presence of many relays.

Fig. 4
figure 4

Adaptive cooperation and non cooperative communications in the presence of many relays

Fig. 5 shows that AC maximizing the instantaneous throughput offers a larger throughput than AC maximizing the average throughput. These theoretical results are also confirmed with computer simulations obtained with MATLAB in the presence of weak turbulence and a single relay.

Fig. 5
figure 5

Adaptive cooperation maximizing average or instantaneous throughput

Fig. 6 shows that the proposed AC maximizing the instantaneous throughput offers a higher throughput than NCC. These results were obtained when there is a single relay for weak, moderate and strong turbulence.

Fig. 6
figure 6

Adaptive cooperation and non cooperative communications for weak, moderate and strong turbulence

The proposed AC protocol can be implemented with any modulation. Fig. 7 shows the throughput of AC maximizing the instantaneous throughput with QAM or PAM modulations in the presence of weak turbulence and a single relay. When QAM is used, five MCS were studied : 4-QAM with half rate channel coding, uncoded 4-QAM, uncoded 8 QAM, uncoded 16 QAM and uncoded 32 QAM. We notice that AC with QAM modulations offers a higher throughput than the same protocol with PAM modulations. Besides, the proposed AC protocol with QAM modulations offers a larger throughput than CC and NCC using QAM modulations.

Fig. 7
figure 7

Adaptive cooperation using ISNR for weak turbulence with QAM or PAM modulations

Fig. 8 compares the throughput of AC maximizing the instantaneous throughput to Incremental Relaying (IR) [16]. IR consists to compare the ISNR of direct link \(\Gamma _{SD}\) to threshold \(\Gamma _{th}\). If \(\Gamma _{SD}\) is larger than \(\Gamma _{th}\), the direct link is reliable and can be used. In this case, the appropriate MCS is selected for the direct link to maximize the instantaneous throughput. If \(\Gamma _{SD}\) is less than \(\Gamma _{th}\), the direct link is unreliable and not used. In that case, the relay is activated with the appropriate MCS. We observe that AC offers a higher throughput than IR. These results correspond to weak turbulence and a single relay.

Fig. 8
figure 8

Adaptive cooperation using ISNR versus Incremental Relaying (IR) for weak turbulence: PAM modulation

Fig. 9 shows the throughput of adaptive cooperation using ISNR with perfect CSI and estimated CSI. \(N_p=4\) or 10 pilot symbols were used to estimate the atmospheric fading coefficient (10) and ISNR (11). There is a single relay and PAM modulations were used in the presence of weak turbulence. We observe that the throughput is close to perfect CSI when the number of pilot symols \(N_p\) is increased.

Fig. 9
figure 9

Adaptive cooperation using ISNR for weak turbulence with perfect and estimated CSI

7.1 Delay analysis

The delay of AC is the sum of:

  • The delay to estimate the ISNRs of direct and relayed links and send them on the feedback channel.

  • The delay to adjust the MCS and select the relay if it is activated.

The delay of NCC is the sum of:

  • The delay to estimate the ISNR of direct link and send it on the feedback channel.

  • The delay to adjust the MCS.

The delay of CC is the sum of:

  • The delay to estimate the ISNRs of relayed links and send them on the feedback channel.

  • The delay to adjust the MCS and select the relay.

Therefore, the delay of AC is slightly higher than that of NCC since it requires the ISNRs of direct and relayed links.

8 Conclusions and perspectives

In this paper, we proposed a new Adaptive Cooperation (AC) protocol that chooses between Cooperative Communications (CC) and Non CC (NCC) in order to maximize the instantaneous or average throughput. The proposed AC protocol has been extended to include AMC. The suggested adaptive cooperation protocol offers a larger throughput than incremental relaying, CC [8-10] and NCC [1-2]. As a perspective, we can extend the proposed AC protocol to hybrid Radio Frequency (RF)/FSO.