Skip to content


  • Research
  • Open Access

Joint interference cancellation and relay selection algorithms based on greedy techniques for cooperative DS-CDMA systems

EURASIP Journal on Wireless Communications and Networking20162016:59

  • Received: 3 July 2015
  • Accepted: 8 February 2016
  • Published:


In this work, we propose interference cancellation techniques and a multi-relay selection algorithm based on greedy methods for the uplink of cooperative direct-sequence code-division multiple access (DS-CDMA) systems. We first devise low-cost list-based successive interference cancellation (GL-SIC) and parallel interference cancellation (GL-PIC) algorithms with RAKE receivers as the front-end that can approach the maximum likelihood detector performance and be used at both the relays and the destination of cooperative systems. Unlike prior art, the proposed GL-SIC and GL-PIC algorithms exploit the Euclidean distance between users of interest and the potential nearest constellation point with a chosen threshold in order to build an effective list of detection candidates. A low complexity multi-relay selection algorithm based on greedy techniques that can approach the performance of an exhaustive search is also proposed. A cross-layer design strategy that brings together the proposed multi-user detection algorithms, and the greedy relay selection is then developed along with an analysis of the proposed techniques. Simulations show an excellent bit error rate performance of the proposed detection and relay selection algorithms as compared to existing techniques.


  • DS-CDMA networks
  • Cooperative systems
  • Relay selection
  • Greedy algorithms
  • SIC detection
  • PIC detection

1 Introduction

Multi-path fading is a major constraint that seriously limits the performance of wireless communications. Indeed, severe fading has a detrimental effect on the received signals and can lead to a degradation of the transmission of information and the reliability of the network. Cooperative diversity is a technique that has been widely considered in recent years [1] as an effective tool to deal with this problem. Several cooperative schemes have been proposed in the literature [24], and among the most effective ones are amplify-and-forward (AF) and decode-and-forward (DF) [4]. For an AF protocol, relays cooperate and amplify the received signals with a given transmit power amplifying their own noise. With the DF protocol, relays decode the received signals and then forward the re-encoded message to the destination. Consequently, better performance and lower power consumption can be obtained when appropriate decoding and relay selection strategies are applied.

1.1 Prior and related work

Direct-sequence code-division multiple access (DS-CDMA) systems are a multiple access technique that can be incorporated with cooperative systems in ad hoc and sensor networks [57]. Due to the multiple access interference (MAI) effect that arises from nonorthogonal received waveforms and narrowband interfering signals, the system performance may be adversely affected. To deal with this issue, multi-user detection (MUD) techniques have been developed [8] as an effective approach to suppress MAI. The optimal detector, known as maximum likelihood (ML) detector, has been proposed in [9]. However, this method is infeasible for ad hoc and sensor networks considering its computational complexity. Motivated by this fact, several sub-optimal strategies have been developed: the linear detector [10], the successive interference cancellation (SIC) [11], the parallel interference cancellation (PIC) [12], and the minimum mean-square error (MMSE) decision feedback detector [13]. A key challenge is how to design interference cancellation techniques with low cost and near ML performance. Moreover, such interference cancellation algorithms should be suitable to cooperative relaying systems and feasible for deployment at the relays and small devices.

In cooperative relaying systems, different strategies that utilize multiple relays have been recently introduced in [1418]. Among these approaches, a greedy algorithm is an effective way to approach the global optimal solution. Greedy algorithms are important mathematical techniques that follow the approach of obtaining a locally optimal solution to complex problems with low cost in a step-by-step manner. Decisions at each step in the greedy process are made to provide the largest benefit based on improving the local state without considering the global situation. Greedy algorithms may fail to achieve the globally optimal choice as they do not execute all procedures exhaustively; however, they are still useful as they usually present a lower cost and can provide acceptable approximations. Greedy algorithms have been widely applied in sparse approximation [19], internet routing [20], and arithmetic coding [21]. In [19], orthogonal matching pursuit (OMP) and basis pursuit (BP) are two major greedy approaches that are used to approximate an arbitrary input signal with the near-optimal linear combination of various elements from a redundant dictionary. In [20], greedy routing is mentioned as a routing strategy where messages are simply forwarded to the node that is closest to the destination. In order to reduce the computational complexity and improve the overall speed of arithmetic coding, a greedy re-normalization step that contains greedy thresholding and greedy outputting is proposed and analyzed in [21]. In relay-assisted systems, greedy algorithms are used in [16, 17] to search for the best set of relays; however, with insufficient numbers of combinations considered, a significant performance loss is experienced as compared to an exhaustive search.

1.2 Contributions

This work presents cost-effective interference cancellation algorithms and multi-relay selection algorithms for cooperative DS-CDMA systems. The proposed interference cancellation algorithms do not require matrix inversions and rely on the RAKE receiver as the front-end. A cross-layer optimization approach that jointly considers the proposed interference cancellation and relay selection algorithms for ad hoc and sensor networks is also proposed. The proposed techniques are not limited to DS-CDMA systems and could also be applied to multi-antenna and multi-carrier systems. Cross-layer designs that integrate different layers of the network have been employed in prior work [22, 23] to guarantee the quality of service and help increase the capacity, reliability, and coverage of systems. However, MUD techniques with relay selection in cooperative relaying systems have not been discussed widely in the literature. In [3, 24], an MMSE-MUD technique has been applied to cooperative systems, where the results indicate that the transmissions are more resistant to MAI and obtain a significant performance gain when compared with a single direct transmission. However, extra costs are introduced, as matrix inversions are required when an MMSE filter is deployed.

The contributions of this paper are summarized as follows:
  • We propose a low-cost greedy list-based successive interference cancellation (GL-SIC) multi-user detection method that can be applied at both the relays and the destination of wireless systems.

  • We also develop a low-cost greedy list-based parallel interference cancellation (GL-PIC) strategy which employs RAKE receivers as the front-end and can approach the ML detector performance.

  • We present a low-complexity multi-relay selection algorithm based on greedy techniques that can approach the performance of an exhaustive search.

  • An analysis of the computational complexity, the greedy relay selection method, and the cross-layer design is presented.

  • A cross-layer design that incorporates the optimization of the proposed GL-SIC and GL-PIC techniques, and the improved greedy multi-relay selection algorithm for the uplink of a cooperative DS-CDMA system is developed and evaluated.

The rest of this paper is organized as follows. In Section 2, the system model is described. In Section 3, the GL-SIC multi-user detection method is presented. In Section 4, the GL-PIC multi-user detection method is then developed. In Section 5, the relay selection strategy is proposed. In Section 6, the computational complexity and the greedy relay selection process are analyzed. In Section 7, the cross-layer design is explained. In Section 8, simulation results are presented and discussed. Finally, conclusions are drawn in Section 9.

Notation: in this paper, we use boldface upper and boldface lower fonts to denote matrices and vectors, respectively. (.) T and (.) H represent the transpose and Hermitian transpose, respectively. (.)−1 stands for the matrix inversion, E[.] denotes the expected value, . indicates the norm of a scalar, and . implies the norm of a vector.

2 Cooperative DS-CDMA system model

We consider the uplink of a synchronous DS-CDMA system with K users (k 1,k 2,…k K ), L relays (l 1,l 2,…l L ), N chips per symbol, and L p (L p <N) propagation paths for each link. The system is equipped with a DF protocol at each relay, and we assume that the transmit data are organized in packets comprising P symbols. The received signals are filtered by a matched filter, sampled at chip rate to obtain sufficient statistics and organized into M×1 vectors y sd, y sr, and y rd, which represent the signals received from the sources (users) to the destination, the sources to the relays, and the relays to the destination, respectively. The proposed algorithms for interference mitigation and relay selection are employed at the relays and at the destination. As shown in Fig. 1, the cooperation takes place in two phases. During the first phase, the received data at the destination and the l-th relay can be described by
$$\begin{array}{@{}rcl@{}} \textbf{y}_{\text{sd}}&=& \sum\limits_{k=1}^{K}a_{\text{sd}}^{k}\textbf{S}_{k} \textbf{h}_{\text{sd},k}b_{k}+\textbf{n}_{\text{sd}}, \end{array} $$
Fig. 1
Fig. 1

Uplink of a cooperative DS-CDMA system

$$\begin{array}{@{}rcl@{}} \textbf{y}_{\text{sr}_{l}}&=&\sum\limits_{k=1}^{K}a_{\text{sr}_{l}}^{k}\textbf{S}_{k}\textbf{h}_{\text{sr}_{l},k}b_{k}+\textbf{n}_{\text{sr}_{l}}, \end{array} $$
where M=N+L p −1, b k {+1,−1} correspond to the transmitted symbols, \(a_{\text {sd}}^{k}\) and \(a_{\text {sr}_{l}}^{k}\) represent the k-th user’s amplitude from the source to the destination and the source to relay l. The vectors h sd,k and \(\phantom {\dot {i}\!}\textbf {h}_{\text {sr}_{l},k}\) are the L p ×1 channel vectors for user k from the source to the destination and the source to relay l, respectively. The M×1 noise vectors n sd and \(\phantom {\dot {i}\!}\textbf {n}_{\text {sr}_{l}}\) contain samples of zero mean complex Gaussian noise with variance σ 2. The M×L p matrix S k contains the signature sequence of each user shifted down by one position at each column that forms
$$ \textbf{S}_{k} = \left[\begin{array}{c c c } s_{k}(1) & & \mathbf{0} \\ \vdots & \ddots & s_{k}(1) \\ s_{k}(N) & & \vdots \\ \mathbf{0} & \ddots & s_{k}(N) \\ \end{array}\right], $$
where s k =[s k (1),s k (2),…s k (N)] T is the signature sequence for user k. During the second phase of the transmission, each relay decodes and reconstructs the received signals using a DF protocol, then they forward the processed signals to the destination. It is assumed that each relay is perfectly synchronized and transmits at the same time; the signals received at the destination are then expressed by
$$ \textbf{y}_{\text{rd}}= \sum\limits_{l=1}^{L} \sum\limits_{k=1}^{K} a_{r_{l}d}^{k}\textbf{S}_{k} \textbf{h}_{r_{l}d,k}\hat{b}_{r_{l}d,k}+\textbf{n}_{\text{rd}}, $$

where \(a_{r_{l}d}^{k}\) is the amplitude for source (user) k from the l-th relay to the destination, \(\textbf {h}_{r_{l}d,k}\) is the L p ×1 channel vector for user k from the l-th relay to the destination, n rd is the M×1 zero mean complex Gaussian noise with variance σ 2, and \(\hat {b}_{r_{l}d,k}\) is the decoded symbol at the output of relay l after using the DF protocol.

The received signal at the destination comprises the data transmitted during two phases that are jointly processed at the destination. Therefore, the received signal is described by a 2M×1 vector formed by stacking the received signals from the relays and the sources as given by
$$\begin{array}{@{}rcl@{}} \left[\begin{array}{l}\textbf{y}_{\text{sd}}\\ \textbf{y}_{\text{rd}}\\ \end{array}\right] & = \left[\begin{array}{l} \sum\limits_{k=1}^{K} a_{\text{sd}}^{k}\textbf{S}_{k}\textbf{h}_{\text{sd},k}b_{k} \\ \sum\limits_{l=1}^{L}\sum\limits_{k=1}^{K} a_{r_{l}d}^{k}\textbf{S}_{k}\textbf{h}_{r_{l}d,k}\hat{b}_{r_{l}d,k}\\ \end{array} \right] + \left[ \begin{array}{l} \textbf{n}_{\text{sd}}\\ \textbf{n}_{\text{rd}}\\ \end{array}\right]. \end{array} $$
The received signal in (5) can then be described by
$$ \textbf{y}_{d}(i)=\sum\limits_{k=1}^{K} \textbf{C}_{k} \textbf{H}_{k}(i)\textbf{A}_{k}(i) \textbf{b}_{k}(i) +\textbf{n}(i), $$
where i denotes the time instant corresponding to one symbol in the transmitted packet and its received and relayed copies. C k is a 2M×(L+1)L p matrix comprising shifted versions of S k as given by
$$ \textbf{C}_{k} = \left[\begin{array}{c c c c} \textbf{S}_{k} & \textbf{0} & \ldots & \textbf{0} \\ \textbf{0} & \ \ \textbf{S}_{k} & \ldots & \ \ \textbf{S}_{k}\\ \end{array}\right], $$
H k (i) represents a (L+1)L p ×(L+1) channel matrix between the sources and the destination and the relays and the destination links as given by
$$ \textbf{H}_{k}(i) = \left[\begin{array}{c c c c} \textbf{h}_{\text{sd},k} & \textbf{0} & \ldots & \textbf{0} \\ \textbf{0} & \ \ \textbf{h}_{r_{1}d,k} & \ldots & \ \ \textbf{h}_{r_{L}d,k}\\ \end{array}\right]. $$

The matrix A k (i) is an (L+1)×(L+1) diagonal matrix of amplitudes for user k, \(\textbf {b}_{k}(i)=[b_{k},\hat {b}_{r_{1}d,k},\hat {b}_{r_{2}d,k},\ldots \hat {b}_{r_{L}d,k}]^{T}\) is an (L+1)×1 vector for user k that contains the transmitted symbol at the source and the detected symbols at the output of each relay, and n(i) is a 2M×1 noise vector.

3 Proposed GL-SIC multi-user detection

In this section, we detail the GL-SIC multi-user detector that can be applied in the uplink of a cooperative system. The GL-SIC detector uses the RAKE receiver as the front-end, so that the matrix inversion required by the MMSE filter can be avoided. The GL-SIC detector exploits the Euclidean distance between the users of interest and their nearest constellation points, with multiple ordering at each stage; all possible lists of tentative decisions for each user are generated. When seeking appropriate candidates, a greedy-like technique is performed to build each list and all possible estimates within the list are examined when unreliable users are detected. Unlike prior work which employs the concept of Euclidean distance with multiple feedback SIC (MF-SIC) [25], GL-SIC does not require matrix inversions and jointly considers multiple numbers of users, constellation constraints, and re-ordering at each detection stage to obtain an improvement in detection performance.

3.1 Proposed GL-SIC design

In the following, we describe the process for initially detecting n users described by the indices k 1,k 2,…,k n at the first stage. Other users can be obtained accordingly. As shown by Fig. 2, β is the distance between two nearest constellation points, d th is the threshold. The soft output of the RAKE receiver for user k is then obtained by
$$ u_{k}(i)=\textbf{w}_{k}^{H}\textbf{y}_{\text{sr}_{l}}(i), $$
Fig. 2
Fig. 2

The reliability check in BPSK and QPSK constellations

where \(\phantom {\dot {i}\!}\textbf {y}_{\text {sr}_{l}}(i)\) represents the received signal from the source to the l-th relay, u k (i) stands for the soft output of the i-th symbol for user k, and w k denotes the RAKE receiver that corresponds to a filter matched to the effective signature at the receiver. After that, we order all users according to a decreasing power level and organize them into a K×1 vector t a . We choose the first n entries [t a (1),t a (2),…,t a (n)] which denote users k 1,k 2,…,k n ; the reliability of each of the n users is examined by the corresponding Euclidean distance between the desired user and its nearest constellation point c as explained next.

Decision reliable:If all n users are considered reliable
$$ u_{\textbf{t}_{a}(t)}(i)\notin \textbf{C}_{\text{grey}},\ \ \ {\text{for}} \ t\in [1,2,\ldots,n], $$
these soft estimates will then be applied to a slicer Q(·) as
$$ \hat{b}_{\textbf{t}_{a}(t)}(i)=Q(u_{\textbf{t}_{a}(t)}(i)),\ {\text{for}}\ t\in [1,2,\ldots,n], $$
where \(\hat {b}_{\textbf {t}_{a}(t)}(i)\) denotes the detected symbol for the t a (t)-th user, C grey is the shadowed area in Fig. 2, it should be noted that the shadowed region would spread along both the vertical and horizontal directions. The cancellation is then performed in the same way as a conventional SIC where we mitigate the impact of MAI brought by these users
$$ \textbf{y}_{\text{sr}_{l},s+1}(i)=\textbf{y}_{\text{sr}_{l},s}(i)-\sum\limits_{t=1}^{n}\boldsymbol{h}_{\text{sr}_{l},\textbf{t}_{a}(t)}(i) \hat{b}_{\textbf{t}_{a}(t)}(i), $$

where the italic font \(\boldsymbol {h}_{\text {sr}_{l},\textbf {t}_{a}(t)}(i) = a_{\text {sr}_{l}}^{\textbf {t}_{a}(t)}\textbf {S}_{\textbf {t}_{a}(t)}(i)\textbf {h}_{\text {sr}_{l},\textbf {t}_{a}(t)}(i)\) stands for the desired user’s channel vector associated with the link between the source and the l-th relay and \(\phantom {\dot {i}\!}\textbf {y}_{\text {sr}_{l},s}\) is the received signal from the source to the l-th relay at the s-th (s=1,2,…,K/n) cancellation stage. The process is then repeated with another set of n users being selected from the remaining users at the following stage, and this algorithm changes to the unreliable mode when unreliable users are detected. Additionally, since the interference created by the previous users with the strongest power has been mitigated, improved estimates are obtained by reordering the remaining users.

Decision unreliable:(a). If part of the n users are determined as reliable, while others are considered as unreliable, we have
$$ u_{\textbf{t}_{p}(t)}(i) \notin \textbf{C}_{\text{grey}},\ \ \ {\text{for}}\ t\in [1,2,\ldots,n_{p}], $$
$$ u_{\textbf{t}_{q}(t)}(i) \in \textbf{C}_{\text{grey}},\ \ \ {\text{for}}\ t\in [1,2,\ldots,n_{q}], $$
where t p is a 1×n p vector that contains n p reliable users and t q is a 1×n q vector that includes n q unreliable users, subject to \(\textbf {t}_{p}\cap \textbf {t}_{q}=\varnothing \) and t p t q =[1,2,…n] with n p +n q =n. Consequently, the n p reliable users are applied to the slicer Q(·) directly and the n q unreliable ones are examined in terms of all possible constellation points c m (m[1,2,…,N c ]) from the 1×N c constellation points set CF, where F is a subset of the complex field, N c is the number of constellation points, and the index of m is the index number from C that employed to search for the constellation points according to the modulation type. The detected symbols are given by
$$\begin{array}{*{20}l} \hat{b}_{\textbf{t}_{p}(t)}(i)&=Q(u_{\textbf{t}_{p}(t)}(i)), {\text{for}}\ t\in [1,2,\ldots,n_{p}], \end{array} $$
$$\begin{array}{*{20}l} \hat{b}_{\textbf{t}_{q}(t)}(i)&=c^{m},\ \ {\text{for}}\ t\in [1,2,\ldots,n_{q}], \end{array} $$

At this point, \(N_{c}^{n_{q}}\) combinations of candidates for n q users are generated. The detection tree is then split into \(N_{c}^{n_{q}}\) branches. After this processing, (12) is applied with its corresponding combination to ensure that the interference caused by the n detected users is mitigated. Following that, \(N_{c}^{n_{q}}\) numbers of updated \(\phantom {\dot {i}\!}\textbf {y}_{\text {sr}_{l}}(i)\) are generated, we reorder the remaining users at each cancellation stage and compute a conventional SIC with RAKE receivers for each branch.

The following K×1 different ordered candidate detection lists are then produced:
$$ {}\textbf{b}^{j}(i)=[\textbf{s}_{\text{pre}}(i), \ \ \textbf{s}_{p}(i),\ \ \textbf{s}^{j}_{q}(i),\ \ \textbf{s}^{j}_{\text{next}}(i)]^{T}\!, \ j\in [1,2,\ldots,N_{c}^{n_{q}}], $$
  • \(\textbf {s}_{\text {pre}}(i)=[\hat {b}_{\textbf {t}_{a}(1)}(i),\hat {b}_{\textbf {t}_{a}(2)}(i),\ldots ]^{T}\) stands for the previous stages detected reliable symbols,

  • \(\textbf {s}_{p}(i)=[\hat {b}_{\textbf {t}_{p}(1)}(i), \hat {b}_{\textbf {t}_{p}(2)}(i),\ldots,\hat {b}_{\textbf {t}_{p}(n_{p})}(i)]^{T}\) is a n p ×1 vector that denotes the current stage reliable symbols detected directly from slicer Q(·) when (13) occurs,

  • \(\textbf {s}^{j}_{q}(i)=[c_{\textbf {t}_{q}(1)}^{m},c_{\textbf {t}_{q}(2)}^{m},\ldots,c_{\textbf {t}_{q}(n_{q})}^{m}]^{T}, j\in [1,2,\ldots,N_{c}^{n_{q}}]\) is a n q ×1 vector that contains the detected symbols deemed unreliable at the current stage as in (14), each entry of this vector is allocated a value from the constellation point set C; therefore, since each entry goes through all possible constellation points, with n q users contained in \(\textbf {s}^{j}_{q}(i)\), \(N_{c}^{n_{q}}\) combinations need to be considered and examined. j is the index number from all \(N_{c}^{n_{q}}\) combinations of \(\textbf {s}^{j}_{q}(i)\).

  • \(\textbf {s}^{j}_{\text {next}}(i)=[\ldots,\hat {b}_{\textbf {t}'(1)}^{\textbf {s}^{j}_{q}}(i),\ldots,\hat {b}_{\textbf {t}'(n)}^{\textbf {s}^{j}_{q}}(i)]^{T}\) includes the corresponding detected symbols in the following stages after the j-th combination of s q (i) is allocated to the unreliable user vector t q ,

  • t is a n×1 vector that contains the users from the last stage.

(b). If all n users are considered as unreliable, then we have
$$ u_{\textbf{t}_{b}(t)}(i) \in \textbf{C}_{\text{grey}},\ \ \ {\text{for}}\ t\in [1,2,\ldots,n], $$
where t b =[1,2,…,n] and all n unreliable users can assume the values in C. In this case, the detection tree will be split into \({N_{c}^{n}}\) branches to produce
$$ \hat{b}_{\textbf{t}_{b}(t)}(i)=c^{m}, \ {\text{for}}\ t\in [1,2,\ldots,n]. $$

Similarly, (12) is then applied and a conventional SIC with different orderings at each cancellation stage is performed via each branch.

Since all possible constellation values are tested for all unreliable users, we have the candidate lists
$$ \textbf{b}^{j}(i)=[\textbf{s}_{\text{pre}}(i),\ \textbf{s}_{b}^{j}(i),\ \ \textbf{s}^{j}_{\text{next}}(i)]^{T}, \ j\in [1,2,\ldots,{N_{c}^{n}}], $$
  • \(\textbf {s}_{\text {pre}}(i)=[\hat {b}_{\textbf {t}_{a}(1)}(i),\hat {b}_{\textbf {t}_{a}(2)}(i),\ldots ]^{T}\) are the reliable symbols that are detected from previous stages,

  • \(\textbf {s}_{b}^{j}(i)=[c_{\textbf {t}_{b}(1)}^{m},c_{\textbf {t}_{b}(2)}^{m},\ldots,c_{\textbf {t}_{b}(n)}^{m}]^{T}, j\in [1,2,\ldots,{N_{c}^{n}}]\) is a n×1 vector that represents the number of users n which are regarded as unreliable at the current stage as shown by (18), each entry of \(\textbf {s}_{b}^{j}\) is assigned a value from the constellation point set C.

  • The vector \(\textbf {s}^{j}_{\text {next}}(i)=[\ldots,\hat {b}_{\textbf {t}'(1)}^{\textbf {s}_{b}^{j}}(i),\ldots,\hat {b}_{\textbf {t}'(n)}^{\textbf {s}_{b}^{j}}(i)]^{T}\) contains the corresponding detected symbols in the following stages after the j-th combination of s b (i) is allocated to all unreliable users.

After the candidates are generated, lists are built for each group of users, and the ML rule is used to choose the best candidate list as described by
$$ \textbf{b}^{\text{best}}(i)= {\text{arg}}\min_{\substack{1\leq j\leq N_{c}^{n_{q}} \text{or}\ {N_{c}^{n}}}}\parallel \textbf{y}_{\text{sr}_{l}}(i)-\textbf{H}_{\text{sr}_{l}}(i)\textbf{b}^{j}(i)\parallel^{2}, $$

where \(\textbf {H}_{\text {sr}_{l}}(i)= \left [\begin {array}{c c c c} \boldsymbol {h}_{\text {sr}_{l},1} & \ \ \boldsymbol {h}_{\text {sr}_{l},2} &\ldots & \ \ \boldsymbol {h}_{\text {sr}_{l},K} \end {array}\right ]\) is an M×K channel matrix for all users from the source to the l-th relay, \(\boldsymbol {h}_{\text {sr}_{l},k}=a_{\text {sr}_{l}}^{k}\textbf {S}_{k}(i)\textbf {h}_{\text {sr}_{l},k}(i)\) denotes a M×1 vector for user k from the source to the l-th relay.

Clearly, GL-SIC is a SIC receiver that is split at stage s into \(N_{c}^{n_{q}}\) parallel SIC receivers (branches) where s is the first stage having unreliable users. The best branch is decided at the end using the ML criterion (minimum residual energy). The optimum performance occurs when we examine the reliability for all users. However, in this work, once unreliable users are detected at stage s, for the following s+1, s+2,…, K/n stages, we process users directly through the conventional SIC detector to avoid further split of the detection tree as this would bring high complexity when large number of users are considered. Nevertheless, the performance gain can be compensated when increasing the number of users n that we considered per each stage.

The proposed GL-SIC algorithm is detailed in Algorithm 1.

3.2 GL-SIC with multi-branch processing

The multiple branch (MB) structure [13, 26] that employs multiple parallel processing branches can help to obtain extra detection diversity. Inspired by the MB approach [13, 26], we change the obtained best detection order for b best with indices O=[1,2,…,K] into a group of different detection sequences to form a parallel structure with each branch sharing a different detection order. This approach generates lists with further candidates for detection and can further improve the performance of GL-SIC. Since it is not practical to test all L b =K! possibilities due to the high complexity, a reduced number of branches is employed. Note that a small number of branches capture most of the performance gains and allow the GL-SIC with the MB technique to approach the ML performance. With each index number in \(\textbf {O}_{l_{b}}\) being the corresponding index number in O cyclically shifted to the right by one position as shown by
  • \(\textbf {O}_{l_{1}}=[K,1,2,\ldots,K-2,K-1]\),

  • \(\textbf {O}_{l_{2}}=[K-1,K,1,\ldots,K-3,K-2]\),

  • \(\textbf {O}_{l_{K-1}}=[2,3,4,\ldots,K,1]\),

  • \(\textbf {O}_{l_{K}}=[K,K-1,K-2,\ldots,2,1]\)(reverse order).

After that, each of the K parallel branches computes a GL-SIC algorithm with its corresponding order. After obtaining K+1 different candidate lists according to each branch, a modified ML rule is applied with the following steps:
  1. 1.
    Obtain the best candidate branch \(\textbf {b}^{O_{l_{\text {base}}}}(i)\) among all K+1 (O included) parallel branches according to the ML rule:
    $$ \textbf{b}^{O_{l_{\text{base}}}}(i)= {\text{arg}} \min_{\substack{0\leq b\leq K}}\parallel \textbf{y}_{\text{sr}_{l}}(i)-\textbf{H}_{\text{sr}_{l}}\textbf{b}^{O_{l_{b}}}(i)\parallel^{2} $$
  2. 2.

    Re-examine the detected symbol for user k (k=1,2,…,K) by fixing the detected results of all other unexamined users in \(\textbf {b}^{O_{l_{\text {base}}}}(i)\).

  3. 3.

    Replace the k-th user’s detection result \(\hat b_{k}\) in \(\textbf {b}^{O_{l_{\text {base}}}}(i)\) by its corresponding detected values from all other K branches \(\textbf {b}^{O_{l_{b}}}(i)\), \((l_{b}\neq l_{\text {base}}, \textbf {O}=\textbf {O}_{l_{0}})\phantom {\dot {i}\!}\) with the same index, the combination with the minimum Euclidean distance is selected through the ML rule and the improved estimate of user k is saved and kept.

  4. 4.

    The same process is then repeated with the next user in \(\textbf {b}^{O_{l_{\text {base}}}}(i)\) until all users in \(\textbf {b}^{O_{l_{\text {base}}}}(i)\) are examined.


The proposed modified ML selection technique is shown in Algorithm 2.

4 Proposed GL-PIC multi-user detection

In this section, we present a GL-PIC detector that can be applied at both the relays and destination in the uplink of a cooperative system. The GL-PIC detector uses the RAKE receiver as the front-end, so that the matrix inversion brought by the MMSE filter can be avoided. Specifically, the proposed GL-PIC algorithm determines the reliability of the detected symbol by comparing the Euclidean distance between the symbols of users of interest and the potential nearest constellation point with a chosen threshold. After checking the reliability of the symbol estimates by listing all possible combinations of tentative decisions, the n q most unreliable users are re-examined via a number of selected constellation points in a greedy-like approach, which saves computational complexity by avoiding redundant processing with reliable users. The soft estimates of the RAKE receiver for each user are obtained by
$$ u_{k}(i)=\textbf{w}_{k}^{H}\textbf{y}_{\text{sr}_{l}}(i), $$

As shown in Fig. 2, for the k-th user, the reliability of its soft estimates is determined by the Euclidean distance between u k (i) and its nearest constellation points c.

Decision reliable:If the soft estimates of n a users satisfy the following condition
$$ u_{\textbf{t}_{a}(t)}(i)\notin \textbf{C}_{\text{grey}},\ \ \ {\text{for}} \ t\in [1,2,\ldots,n_{a}], $$
where t a is a 1×n a vector that contains n a reliable estimates, C grey is the grey area in Fig. 2, and the grey area would extend along both the vertical and horizontal directions. These soft estimates are then applied to a slicer Q(·) as described by
$$ \hat{b}_{\textbf{t}_{a}(t)}(i)=Q(u_{\textbf{t}_{a}(t)}(i)),\ {\text{for}}\ t\in [1,2,\ldots,n_{a}], $$

where \(\hat {b}_{\textbf {t}_{a}(t)}(i)\) denotes the detected symbol for the t a (t)-th user.

Decision unreliable:In case that n b users are determined as unreliable, a 1×n b vector t b with n b unreliable estimates included is produced, as given by
$$ u_{\textbf{t}_{b}(t)}(i)\in \textbf{C}_{\text{grey}},\ \ \ {\text{for}} \ t\in [1,2,\ldots,n_{b}], $$
we then sort these unreliable estimates in terms of their Euclidean distance in a descending order. Consequently, the first n q users from the ordered set are deemed as the most unreliable ones as they experience the farthest distance to their reference constellation points. These n q estimates are then examined in terms of all possible constellation values c m (m=1,2,…,N c ) from the 1×N c constellation points set CF, where F is a subset of the complex field, and N c is determined by the modulation type. Meanwhile, the remaining n p =n b n q unreliable users are applied to the slicer Q(·) directly, as described by
$$ \hat{b}_{\textbf{t}_{p}(t)}(i)=Q(u_{\textbf{t}_{p}(t)}(i)), \ \ {\text{for}} \ t\in [1,2,\ldots,n_{p}], $$
$$ \hat{b}_{\textbf{t}_{q}(t)}(i)=c^{m},\ \ {\text{for}} \ t\in [1,2,\ldots,n_{q}], $$

where \(\textbf {t}_{p}\cap \textbf {t}_{q}=\varnothing \) and t p t q =t b .

Therefore, by listing all possible combinations of elements across the n q most unreliable users, the following K×1 tentative candidate decision lists are generated
$$ \textbf{b}^{j}=[\textbf{s}_{a},\ \ \textbf{s}_{p},\ \ \textbf{s}^{j}_{q}]^{T}, \ j\in [1,2,\ldots,N_{c}^{n_{q}}], $$
  • \(\textbf {s}_{a} \ = \ [\hat {b}_{\textbf {t}_{a}(1)},\hat {b}_{\textbf {t}_{a}(2)},\ldots,\hat {b}_{\textbf {t}_{a}(n_{a})}]^{T}\) is a n a ×1 vector that contains the detected values for the n a reliable users,

  • \(\textbf {s}_{p}=[\hat {b}_{\textbf {t}_{p}(1)},\hat {b}_{\textbf {t}_{p}(2)},\ldots,\hat {b}_{\textbf {t}_{p}(n_{p})}]^{T}\) is a n p ×1 vector that represents n p unreliable users that are detected by the slicer Q(·) directly,

  • \(\textbf {s}^{j}_{q}=[c_{\textbf {t}_{q}(1)}^{m},c_{\textbf {t}_{q}(2)}^{m},\ldots,c_{\textbf {t}_{q}(n_{q})}^{m}]^{T}\) is a n q ×1 tentative candidate combination vector. Each entry of the vector is allocated a value from the constellation point set C, and all possible \(N_{c}^{n_{q}}\) combinations need to be considered and examined.

The trade-off between performance and complexity is highly related to the modulation type and the number (n q ) of users we choose from t b . Additionally, the threshold we set at the initial stage is also a key factor that could affect the quality of detection.

After the \(N_{c}^{n_{q}}\) candidate lists are generated, the ML rule is used subsequently to choose the best candidate list as described by
$$ \textbf{b}^{\text{opt}}= {\text{arg}} \min_{\substack{1\leq j\leq N_{c}^{n_{q}}}}\parallel \textbf{y}_{\text{sr}_{l}}(i)-\textbf{H}_{\text{sr}_{l}}\textbf{b}^{j}(i)\parallel^{2}. $$
Following that, b opt is used as the input for a multi-iteration PIC process as described by
$$ \hat{b}_{k}^{i}=Q \big(\textbf{w}_{\text{sr}_{l},k}^{H}\textbf{y}_{\text{sr}_{l}}-\sum\limits_{\substack{j=1\\j\neq k}}^{K} \textbf{w}_{\text{sr}_{l},k}^{H} \textbf{H}_{\text{sr}_{l},j}\hat{b}_{j}^{i-1} \big), i\geq2 $$

where \(\hat {b}_{j}^{\text {opt}}=\hat {b}_{j}^{(i-1)}\) denotes the detected symbol for user j that is used as the input (i=2) for the first PIC iteration, \(\hat {b}_{k}^{i}\) denotes the detected value for user k at the i-th PIC iteration, \(\phantom {\dot {i}\!}\textbf {H}_{\text {sr}_{l},j}\) stands for the channel matrices for the j-th user from the source to the l-th relay, \(\textbf {w}_{\text {sr}_{l},k}^{H}\) represents the RAKE receiver for user k from the source to the l-th relay, and \(\hat {b}_{j}^{i-1}\) is the detected value for user j that comes from the (i−1)-th PIC iteration. Normally, the conventional PIC is performed in a multi-iteration way, where for each iteration, PIC simultaneously subtracts off the interference for each user produced by the remaining ones. The MAI generated by other users is reconstructed based on the tentative decisions from the previous iteration. Therefore, the accuracy of the first iteration would highly affect the PIC performance as error propagation occurs when incorrect information imports. In this case, with the help of the GL-PIC algorithm, the detection performance is improved. The key novelty is that GL-PIC employs more reliable estimates by exploiting prior knowledge of the constellation points. The proposed GL-PIC algorithm is detailed in Algorithm 3.

5 Proposed greedy multi-relay selection method

In this section, a greedy multi-relay selection method is introduced. For this problem, an exhaustive search of all possible subsets of relays is needed to attain the optimum relay combination. However, the major problem that prevents us from applying an exhaustive search in practical communications is its very high computational complexity. With L relays involved in the transmission, an exponential complexity of 2 L −1 would be required. This fact motivates us to seek alternative methods. By eliminating the poorest relay-destination link stage by stage, the standard greedy algorithm can be used in the selection process, yet only a local optimum can be achieved. Unlike existing greedy techniques, the proposed greedy multi-relay selection method can go through a sufficient number of relay combinations and approach the best one based on previous decisions. In the proposed relay selection, the signal-to-interference-plus-noise ratio (SINR) is used as the criterion to determine the optimum relay set. The expression of the SINR for user q is given by
$$ {\mathrm{{SINR}_{q}}} =\frac{E[|\textbf{w}_{q}^{H}\textbf{h}_{q}|^{2}]}{E[|\boldsymbol\eta|^{2}]+n}, $$
where w q denotes the RAKE receiver for user q, E[|η|2] is the interference brought by all other users, and n is the noise. For the purpose of simplicity, the SINR for user q after applying the RAKE receiver is given by
$$ \begin{aligned} {\mathrm{{SINR}_{q}}}= &\frac{\textbf{w}_{q}^{H} \rho_{qq}\textbf{w}_{q}} {\textbf{w}_{q}^{H}\rho_{kq}\textbf{w}_{q}+{\sigma_{N}^{2}}\textbf{w}_{q}^{H}\textbf{w}_{q}}\\ =&\frac{|\textbf{h}_{q}^{H}\textbf{h}_{q}|^{2}} {\sum\limits_{\substack{k=1\\k\neq q}}^{K}|\textbf{h}_{q}^{H} \textbf{h}_{k}|^{2}+{\sigma_{N}^{2}}\textbf{h}_{q}^{H}\textbf{h}_{q}}, \end{aligned} $$
where \(\rho _{\textit {qq}}=\textbf {h}_{q}^{H}\textbf {h}_{q}\) is the correlation coefficient of the desired user q, \(\rho _{\textit {kq}}=\textbf {h}_{q}^{H}\textbf {h}_{k}\) is the cross-correlation coefficient between the signatures of user q and user k (interference component), h q is the channel vector for user q and it should be mentioned that in various relay combinations, the channel vector h q for user q (q=1,2,…,K) is different as different relay-destination links are involved, and \({\sigma _{N}^{2}}\) is the noise variance. This problem thus can be cast as the following optimization:
$$ {\text{SINR}_{\Omega_{\text{best}}}}= \max\limits_{\Omega_{r(q)}} \ \ \{\text{min}({\mathrm{{SINR}_{\Omega_{r(q)}}}}), q=1,\ldots,K\}, $$

where q represents the index number for an arbitrary user, Ω r denotes a possible combination set (rL(L+1)/2) of any number of selected relays, \({\mathrm {{SINR}_{\Omega _{r(q)}}}}\) represents the SINR for user q in set Ω r , and min \(({\mathrm {{SINR}_{\Omega _{r(q)}}}}) = {\mathrm {{SINR}_{\Omega _{r}}}}\) means that the SINR for relay set Ω r is equal to the minimum SINR for a single user in set Ω r . Ω best is the best relay set that provides the highest SINR.

Clearly, we can also consider the SINR for different relay combinations after applying convention SIC, conventional PIC, linear MMSE, or even the proposed detectors. However, RAKE receiver can bring the lowest complexity.

5.1 Standard greedy relay selection algorithm

The standard greedy relay selection method works in stages by removing the single relay according to the channel path power, as given by
$$ P_{h_{r_{l}d}}=\textbf{h}_{r_{l}d}^{H}\textbf{h}_{r_{l}d}, $$
where \(\textbf {h}_{r_{l}d}\) is the channel vector between the l-th relay and the destination. At the first stage, the initial SINR is determined when all L relays are involved in the transmission. Consequently, we cancel the worst relay-destination link and calculate the current SINR for the remaining L−1 relays, as compared with the previous SINR, if
$$ {\mathrm{{SINR}_{cur}}}>{\mathrm{{SINR}_{pre}}}, $$
we update the previous SINR as
$$ {\mathrm{{SINR}_{pre}}} = {\mathrm{{SINR}_{cur}}}, $$

and move to the third stage by removing the current poorest link and repeating the above process. The algorithm stops either when S I N R cur <S I N R pre or when there is only one relay left. The selection is performed once at the beginning of each packet transmission.

5.2 Proposed greedy relay selection algorithm

In order to improve the performance of the standard algorithm, we propose a new greedy relay selection algorithm that is able to achieve a good balance between the performance and the complexity. The proposed method differs from the standard technique as we drop each of the relays in turns rather than drop them based on the channel condition at each stage. The algorithm can be summarized as:
  1. 1.

    Initially, a set Ω A that includes all L relays is generated and its corresponding SINR is calculated, denoted by S I N R pre .

  2. 2.

    For the second stage, we calculate the SINR for L combination sets with each dropping one of the relays from Ω A . After that, we choose the combination set with the highest SINR for this stage, recorded as S I N R cur .

  3. 3.

    Compare S I N R cur with the previous stage S I N R pre , if (36) is true, we save this corresponding relay combination as Ω cur at this stage. Meanwhile, we update the S I N R pre as in (37).

  4. 4.

    After moving to the third stage, we drop relays in turn again from Ω cur obtained in stage two. L−1 new combination sets are generated, we then select the set with the highest SINR and repeat the above process in the following stages until either S I N R cur <S I N R pre or there is only one relay left.


This proposed greedy selection method considers the combination effect of the channel condition so that additional useful sets are examined. When compared with the standard greedy relay selection method, the previous stage decision is more accurate and the global optimum can be approached more closely. Furthermore, its complexity is less than L(L+1)/2, which is much lower than the exhaustive search. Similarly, the whole process is performed only once before each packet and only needs to be repeated when the channels change. The proposed greedy multi-relay selection algorithm is depicted in Algorithm 4.

Finally, it should also be noticed that relay selection can be also operated at the source-relay part as this is a two-phase process. However, in the current manuscript, we only consider the relay selection that occurs during the relay-destination links for the purpose of simplicity.

6 Analysis of the proposed algorithms

In this section, we analyze the computational complexity required by the proposed and existing interference cancellation algorithms and the proposed greedy relay selection method.

6.1 Computational complexity

We first compare the computational complexity of the proposed (GL-SIC and GL-PIC) and other existing interference cancellation algorithms in terms of the required floating point operations (flops). The resulting complexity is calculated as a function of the following parameters:
  • Total number of users K.

  • The number of multi-path channel components L p .

  • The number of constellation points N c that correspond to the modulation type.

  • The parameter M which corresponds to the length of the receive filters, where M=N+L p −1 and N is the spreading gain.

Specifically, in the GL-SIC algorithm, n refers to the number of users we considered per each stage, and in the GL-PIC algorithm, n q represents the number of unreliable users that need to be re-examined in the second processing stage. The required flops are considered both in the case of real and complex matrix operations. It is worth noting that, in real arithmetic, a multiplication followed by an addition requires two flops while for the complex numbers, eight flops are required when an addition is executed after a multiplication. As a result, it can be approximated that the complexity of a complex matrix multiplication is four times of its real counterpart.

Table 1 illustrates a comparison of the computational complexity for various existing detection methods and our proposed algorithms. It is worth noting that the GL-SIC algorithm has variable complexity according to different circumstances as an unpredictable number of unreliable users may appear in any of the stages. As a result, the corresponding worst-case scenario is evaluated when all n users are considered as unreliable at the first stage.
Table 1

Computational complexity of existing and proposed MUD algorithms


Computational complexity (flops)

Matched filter


Conventional SIC

\(M(4{L_{p}^{2}}+4{KL}_{p}-2L_{p} +18K-12)-4K+2\)

Conventional PIC


Linear MMSE receiver


Proposed GL-SIC

\(M(4{L_{p}^{2}}+4{KL}_{p}-2L_{p}+6K) -2K+{N_{c}^{n}}(20MK-8Mn+4M-2K+2n-2) \)

Proposed GL-PIC

\(M(4{L_{p}^{2}}+4{KL}_{p}-2L_{p} +10K+4K^{2})-4K+N_{c}^{n_{q}}(8MK+8M-2)\)

Standard likelihood (ML) detector


For each case shown in Table 1, the upper bound of the complexity is given by the standard ML detector, where it explores all possible combinations of the detected results and chooses the one with the minimum Euclidean distance. However, when a large number of users need to be considered, an exponential complexity growth would limit its application in practical utilization. In contrast, with careful control of the number of unreliable users n and n q being re-examined in both proposed algorithms, a substantial complexity saving is achieved. Additionally, our proposed greedy list-based algorithms offer a clear complexity advantage over the linear MMSE receiver as they adopt the RAKE receiver as the front-end, so that the cubic complexity can be avoided. Another feature to highlight is that although our proposed algorithms have a complexity slightly higher than the matched filter, the conventional SIC, and the conventional PIC, they exhibit significant performance gains over existing techniques.

In order to further investigate the computational complexity for various MUD techniques, we fix the number of users K=10, the number of multi-path channel L p =3, and assume that the BPSK modulation is adopted. The required number of flops (log-scale) of the proposed and existing MUD algorithms are simulated in Fig. 3, where in the GL-SIC algorithm, n=2 users are considered jointly at each stage and in the GL-PIC algorithm, n q =3 unreliable users need to be re-examined in the second processing stage. With the increase of the parameter M, the standard ML detector climbs significantly faster than other MUD schemes, which, from another point of view, demonstrates that the improvement in its performance is achieved at the expense of a large increase in computational complexity. A similar complexity trend for the linear MMSE receiver illustrated in Fig. 3 shows a relatively lower complexity than the standard ML detector; however, its complexity still substantially exceeds that of the remaining strategies as a cubic cost is brought. Another important point observed in Fig. 3 is that our proposed algorithms offer a moderately higher cost than the matched filter, the conventional SIC, and the PIC, whereas they provide a considerable performance advantage over these schemes, resulting in an attractive trade-off between complexity and performance.
Fig. 3
Fig. 3

Computational complexity in flops for various MUD detectors

6.2 Greedy relay selection analysis

The proposed greedy multi-relay selection method is a stepwise backward selection algorithm, where we optimize the selection based on the SINR criterion at each stage. We begin the process when all relays participate in the transmission and then subtract off the contributions brought by each of the relays from set of selected relays of the previous stage. The relay combinations generated at each stage are presented as follows:
$$\begin{aligned} &{\text{Stage} \ 1:} \ \ \{{\Omega_{1}^{1}}\},\\ &{\text{Stage} \ 2:} \ \ \{{\Omega_{1}^{2}},{\Omega_{2}^{2}},{\Omega_{3}^{2}},\ldots,{\Omega_{L}^{2}}\},\\ &\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \vdots \\ &{\mathrm{Stage ~s:}} \ \ \{{\Omega_{1}^{s}},{\Omega_{2}^{s}},{\Omega_{3}^{s}},\ldots,\Omega_{L+2-s}^{s}\},\\ &\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \vdots \\ &{\mathrm{Stage \ L-1:}} \ \ \{\Omega_{1}^{L-1},\Omega_{2}^{L-1},\Omega_{3}^{L-1} \},\\ &{\mathrm{Stage \ L:}} \ \ \{{\Omega_{1}^{L}},{\Omega_{2}^{L}}\}, \end{aligned} $$
where \({\Omega _{i}^{s}}\) denotes the i-th relay combination at the s-th stage. Clearly, the maximum number of relay combinations that we have to consider for all L stages is 1+2+3+…+L=(1+L)L/2, since this algorithm stops either when S I N R cur <S I N R pre or when there is only one relay left, the associated complexity for the proposed greedy relay selection strategy is less than (1+L)L/2.
Compared with the exhaustive search, which is considered as the optimum relay selection method, the number of relay combinations examined at each stage is given by
$$\begin{aligned} &{\text{Stage} \ 1:} \ \ \{{\Omega_{1}^{1}}\},\\ &{\text{Stage} \ 2:} \ \ \{{\Omega_{1}^{2}},{\Omega_{2}^{2}},{\Omega_{3}^{2}},\ldots,{\Omega_{L}^{2}}\},\\ &\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \vdots \\ &{\mathrm{Stage \ s:}} \ \ \{{\Omega_{1}^{s}},{\Omega_{2}^{s}},{\Omega_{3}^{s}},\ldots,\Omega_{\frac {L(L-1)\ldots (L-s+2)}{(s-1)!}}^{s}\},\\ &\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \vdots \\ &{\mathrm{Stage \ L-1:}} \ \ \{\Omega_{1}^{L-1},\Omega_{2}^{L-1},\Omega_{3}^{L-1},\ldots,\Omega_{\frac {L(L-1)}{2}}^{L-1} \},\\ &{\mathrm{Stage \ L:}} \ \ \{{\Omega_{1}^{L}},{\Omega_{2}^{L}}\,{\Omega_{3}^{L}},\ldots,{\Omega_{L}^{L}}\}. \end{aligned} $$
The total number of relay combinations can then be calculated as \({C_{L}^{L}}+C_{L}^{L-1}+C_{L}^{L-2}+\ldots +{C_{L}^{2}}+{C_{L}^{1}}=2^{L}-1\), where each term \({C_{m}^{n}}=\frac {m(m-1)\ldots (m-n+1)}{n!}\) represents the number of combinations that we choose, i.e., n elements from m elements (mn). The proposed greedy algorithm provides a much lower cost with a moderate to large number of relays when compared with the exhaustive search as an exponential complexity is avoided.

In fact, the idea behind the proposed algorithm is to choose relay combinations in a greedy fashion. At each stage, we select the set of relays with the highest SINR and the previous stage result always affects the following stage set of relays candidates. Then, we subtract off the contribution brought by each of the remaining relays and iterate on the residual. After several stages, the algorithm is able to identify the optimum relay set. To this end, we propose the following proposition.


The proposed greedy algorithm achieves an SINR that is bounded as follows:
$${\mathrm{{SINR}_{\Omega standard}}} \leq {\mathrm{{SINR}_{\Omega proposed}}} \leq {\mathrm{{SINR}_{\Omega exhaustive}}} $$


From the proposed greedy algorithm, the set containing the selected relay at the s-th stage is given by
$${} \begin{aligned} \Omega_{\text{proposed}}^{s}=& \ \{m,n,\ldots,p\}\\ =& \ {\text{max}}\left\{\Omega_{\text{proposed}}^{s-1}\!\setminus \!\Omega_{\text{proposed}}^{s-1}(i),i\in[\!1,L\,+\,2\,-\,s]\!\right\}\!,\\ \end{aligned} $$
where Ω s Ω s (i) denotes a complementary set where we drop the i-th relay from the relay set Ω s . m, n and p represent the relay m, the relay n and the relay p, respectively.
We first prove the lower bound for an arbitrary stage s by induction; other stages can be obtained accordingly. Assuming both algorithms achieve the same set at stage s, we have
$$\begin{aligned} &\Omega_{\text{standard}}^{s}= \ \{m,n,\ldots,p\},\\ &\Omega_{\text{proposed}}^{s}= \ \{m,n,\ldots,p\},\\ \end{aligned} $$
which leads to the equality \({\text {SINR}}_{\mathrm {\Omega _{\textit {standard}}^{s}}}={\text {SINR}}_{\mathrm {\Omega _{\textit {proposed}}^{s}}}\), if we then proceed with the proposed greedy algorithm and choose a different set which provides a higher SINR, we have
$$\begin{aligned} &\Omega_{\text{standard}^{s}}= \ \{m,n,\ldots,p\},\\ &\Omega_{\text{proposed}^{s}}= \ \{m,n,\ldots,q\},\\ \end{aligned} $$
with the only different relay being pq, and assuming that q provides a higher SINR than p, we prove the inequality that \({\mathrm {{SINR}_{\Omega standard}^{s}}} \leq {\mathrm {{SINR}_{\Omega proposed}^{s}}}\).
We then investigate the upper bound by comparing the proposed algorithm and the exhaustive search at an arbitrary stage s; other stages can be obtained accordingly. At an arbitrary stage s, since \(\Omega _{\text {proposed}^{s}}\) is a candidate subset of the exhaustive search, we have
$$\begin{aligned} &\Omega_{\text{exhaustive}^{s}}={\text{max}} \ \{ \Omega_{\mathrm{exhautive(i)}^{s}}, i\in[1,C_{L}^{L+1-s}] \},\\ &\Omega_{\text{proposed}^{s}} \in \{ \Omega_{\mathrm{exhautive(i)}^{s}}, i\in[1,C_{L}^{L+1-s}]\},\\ \end{aligned} $$
where \(\Omega _{\mathrm {exhaustive(i)}^{s}}\) represents the i-th relay combination selected at the s-th stage of the exhaustive greedy relay selection method.
Assuming both strategies select the same relay combination at stage s, we have
$$\begin{aligned} &\Omega_{\text{proposed}^{s}}= \ \{m,n,\ldots,p\},\\ &\Omega_{\text{exhaustive}^{s}}= \ \{m,n,\ldots,p\},\\ \end{aligned} $$
this situation again leads to the equality that \({\text {SINR}}_{\mathrm {\Omega _{\textit {proposed}}^{s}}}={\text {SINR}}_{\mathrm {\Omega _{\textit {exhaustive}}^{s}}}\). In contrast, if the exhaustive search picks another relay set belongs to \(\{ \Omega _{\mathrm {exhautive(i)}^{s}}, i\in [1,C_{L}^{L+1-s}] \}\) that provides a higher SINR, clearly, \(\Omega _{\text {proposed}^{s}} \neq \Omega _{\text {exhaustive}^{s}}\), we can then obtain the inequality that \({\text {SINR}}_{\Omega _{\text {proposed}^{s}}} \leq {\text {SINR}}_{\Omega _{\text {exhaustive}^{s}}}\). □

7 Proposed cross-layer design

In this section, we present and analyze a cross-layer design strategy that combines the proposed MUD techniques with the proposed greedy multi-relay selection algorithm for the uplink of the cooperative DS-CDMA networks. This approach jointly considers the performance optimization across different layers of the network, since inappropriate data detection and estimation that are executed at the lower physical layer can spread incorrect information to the data and link layer where relay selection strategy performs, causing the loss of useful information and degradation of the overall system performance. In this case, when improved data detection is obtained at the physical layer, together with an effective relay selection, a better system performance can be achieved.

As stated in previous sections, the system operates in two phases, where for the first phase, the proposed MUD techniques are applied and processed at each of the relays with a DF protocol; after the detection process, the proposed greedy multi-relay selection algorithm is then performed to seek the optimum relay combination. In the second phase, the chosen relays take part in the transmission in order to forward the information to the destination. After all the data are received at the destination, the proposed MUD algorithms are applied to recover the transmitted data.

Given the received data y sd and \(\phantom {\dot {i}\!}\textbf {y}_{\text {sr}_{l}}\) at the destination and each of the relays, we wish to optimize the overall system performance in terms of the bit error rate (BER), through the selection of the received signals y rd at the destination from all relays, the accuracy of the detected symbols \(\hat {b}_{r_{l}d,k}\) at each of the relays, and the detected results \(\hat {b}_{k}\) at the destination, subject to practical system constraints (K, L, L p , H sd, \(\textbf {H}_{\mathrm (sr)_{l}}\), \(\textbf {h}_{r_{l}d}\)). The proposed cross-layer design can be cast into the following optimization problem
$$ {}\begin{aligned} (\hat{\textbf{b}},\!\Omega^{\text{opt}})\,=\,{\text{arg}}&\!\!\min_{1\leq j\leq N_{c}^{n_{q}} \text{or} \ {N_{c}^{n}}}\!\Big\| \! \left[\! \begin{array}{l} \ \ \ \ \ \textbf{y}_{\text{sd}} \\ \sum\limits_{l \in \Omega^{s}}\! \textbf{H}_{r_{l}d} \hat{\textbf{b}}_{r_{l}d}\\ \end{array} \! \!\right] \!\,-\,\! \left[\! \begin{array}{l} \ \ \ \ \textbf{H}_{\text{sd}} \textbf{b}^{j}\\ \sum\limits_{l \in \Omega^{s}}\! \textbf{H}_{r_{l}d} \textbf{b}^{j} \\ \end{array} \!\!\right]\!\Big\|^{2}\\ {\mathrm{subject\ \ to}} &\\ &\Omega^{\text{opt}}= \Omega^{s} {\text{when}} {\text{SINR}}_{\Omega^{s}}< {\text{SINR}}_{\Omega^{s-1}},\\ &{\text{SINR}_{\Omega^{s}}}= {\text{max}} \{ {\text{min}} ({\text{SINR}}_{\Omega^{s}_{i(k)}})\},\\ &k=1,2,\ldots,K,\\ &s\leq L,\\ &i=1,2,\ldots,L+2-s, \end{aligned} $$

where b j stands for the j-th candidate list generated after applying the GL-SIC/GL-PIC algorithms at the destination, s denotes stage index in the relay selection process, Ω s represents the selected relay combination at the stage s, \({\text {SINR}}_{\Omega _{i(k)}^{s}}\) is the SINR for the k-th user in the i-th relay combination at stage s, and Ω opt is the optimum relay combination obtained through the proposed greedy relay selection method. The cross-layer optimization in (38) is a non-convex optimization problem due to the discrete nature of the joint detection and relay selection problems. We propose to solve it in two stages using the proposed greedy detection and relay selection algorithms.

During the first phase, the received vector \(\phantom {\dot {i}\!}\textbf {y}_{\text {sr}_{l}}\) passes through the proposed GL-SIC/GL-PIC algorithms at the relay l, lists of candidate combinations \(\textbf {b}^{j}_{r_{l}d}\) are generated in the lower physical layer, and the corresponding detected result \(\hat {b}_{r_{l}d,k}\) is then obtained via the following ML selection
$$ \hat{\textbf{b}}_{r_{l}d}= {\text{arg}}\min_{\substack{1\leq j\leq N_{c}^{n_{q}} \text{or}\ {N_{c}^{n}}}}\parallel \textbf{y}_{\text{sr}_{l}}-\textbf{H}_{\text{sr}_{l}}\textbf{b}^{j}_{r_{l}d}\parallel^{2}. $$
This interference cancellation operation affects the following process in two different ways.
  • The accuracy of \(\hat {b}_{r_{l}d,k}\) directly controls the re-generated signals y rd received at the destination via the physical layer as can be verified from (4); hence, it further affects the decisions \(\hat {b}_{k}\) made at the end as (5) computes.

  • Improper detection of \(\hat {b}_{r_{l}d,k}\) can cause the error propagation spreads in the second phase.

Consequently, in the second phase, the proposed greedy relay selection strategy is performed at the data and link layer; the selection takes into account the physical layer characteristics as appropriate detection result coming from the lower physical layer can prevent error propagation spreading into the upper data and link layer. In contrast, it also considers the features of the channel combinations so that poor channels can be avoided.

In order to describe this process mathematically, we first define the SINR for the i-th relay combination at an arbitrary stage s as
$$ {\text{SINR}_{{\Omega_{i}^{s}}}} = \min \ \ \{ {\text{SINR}_{\Omega_{i(k)}^{s}}}\}, k=1,2,\ldots,K. $$
This algorithm operates in stages, and the SINR for the selected relay combination at each stage is given by
$${} \begin{aligned} {\text{SINR}}_{\Omega^{1}}= & {\text{SINR}_{\Omega_{A}}}, \Omega^{1}=\Omega_{A}=[1,2,3,\ldots,L], \\ {\text{SINR}}_{\Omega^{2}}= &\max \ \{ {\text{SINR}_{{\Omega_{i}^{2}}}}\}, {\Omega_{i}^{2}}=\Omega^{1}\setminus \Omega^{1}(i),i=1,\ldots,L,\\ {\text{SINR}_{\Omega^{3}}}= &\max \ \{ {\text{SINR}_{{\Omega_{i}^{3}}}}\}, {\Omega_{i}^{3}}\,=\,\Omega^{2}\setminus \!\Omega^{2}(i),i=1,\ldots,L\,-\,1,\\ &\ \ \ \ \ \ \ \ \vdots \\ {\text{SINR}_{\Omega^{L}}}= &\max \ \{ {\text{SINR}_{{\Omega_{i}^{L}}}}\},{\Omega_{i}^{L}}=\Omega^{L-1}\setminus \Omega^{L-1}(i), i=1,2. \end{aligned} $$
The selection stops when \(\phantom {\dot {i}\!}{\text {SINR}_{\Omega ^{s}}}< {\text {SINR}_{\Omega ^{s-1}}}\phantom {\dot {i}\!}\) is achieved, and the optimum relay combination is then computed as Ω opt=Ω s . After that, the selected relays continue to forward the re-generated signals to the destination in the second phase.
At the destination, after we receive both the signals from the direct links and the selected relays, we then apply the GL-SIC/GL-PIC algorithms again to obtain lists of candidates combinations b j , and the ML algorithm is adopted afterwards to choose the optimum detection list as given by
$$ {} \begin{aligned} \hat{\textbf{b}}&= {\text{arg}}\min_{\substack{1\leq j\leq N_{c}^{n_{q}} \text{or}\ {N_{c}^{n}}}}\Big\| \left[ \begin{array}{l} \ \ \ \ \ \textbf{y}_{\text{sd}}\\ \sum\limits_{l \in \Omega^{\text{opt}}} \textbf{y}_{r_{l}d}\\ \end{array} \right] - \left[ \begin{array}{l} \ \ \ \ \ \textbf{H}_{\text{sd}}\\ \sum\limits_{l \in \Omega^{\text{opt}}} \textbf{H}_{r_{l}d}\\ \end{array} \right] \begin{array}{l} \textbf{b}^{j}\\ \end{array}\Big\|^{2}\\ &={\text{arg}}\min_{\substack{1\leq j\leq N_{c}^{n_{q}} \text{or}\ {N_{c}^{n}}}}\Big\| \left[ \begin{array}{l} \ \ \ \ \ \textbf{y}_{\text{sd}}\\ \sum\limits_{l \in \Omega^{\text{opt}}} \textbf{H}_{r_{l}d} \hat{\textbf{b}}_{r_{l}d}\\ \end{array} \! \right] \!\,-\, \left[ \begin{array}{l} \ \ \ \ \ \textbf{H}_{\text{sd}} \textbf{b}^{j}\\ \sum\limits_{l \in \Omega^{\text{opt}}} \textbf{H}_{r_{l}d} \textbf{b}^{j} \\ \end{array} \right]\Big\|^{2}.\\ \end{aligned} $$

The proposed cross-layer design is detailed in Algorithm 5.

8 Simulations

In this section, a simulation study of the proposed multi-user detectors and the low-cost greedy multi-relay selection method is carried out. The DS-CDMA network uses randomly generated spreading codes of length N=32 and N=16; it also employs L p =3 independent paths with the power profile [0,−3,−6 dB] for the transmission link. The corresponding channel coefficients are taken as complex Gaussian variables and normalized to ensure the average power is unity over the packet. Note that due to fading, there are variations over the transmission but we employ the total average power to set the signal-to-noise ratio (SNR). We assume perfectly known channels at the receiver. Equal power allocation is employed during the transmission. The grey area in the GL-SIC and GL-PIC algorithm is determined by the threshold where d th=0.25. We consider packets with 1000 BPSK symbols and average the curves over 300 trials. For the purpose of simplicity, n=2 users are considered in the GL-SIC scheme at each stage and for the GL-PIC strategy, a three-iteration PIC process is adopted. The SNR is defined as \({\text {SNR}}={\sigma _{b}^{2}} / \sigma ^{2}\), where \({\sigma _{b}^{2}}\) corresponds to the signal power and σ 2 is the noise power. The following simulations are compared and analyzed in both non-cooperative and cooperative scenarios.

The first example shown in Fig. 4 illustrates the performance comparison between the proposed GL-SIC interference suppression technique and other multi-user detection methods over the Rayleigh fading channel. The proposed GL-SIC algorithm uses the spreading codes with length N=32, and the overall system is equipped with 20 users that only takes into account the source to the destination link. The conventional SIC detector is the standard SIC with RAKE receivers employed at each stage and the multi-branch multi-feedback SIC (MB MF-SIC) detection algorithm mentioned in [25] is presented here for comparison purposes. We also produce the simulation results for the multi-branch SIC (MB-SIC) detector where four parallel branches with different detection orders are employed. Specifically, the detection order for the first branch is obtained through a power decreasing level, while the detection orders for the remaining three are attained by cyclically shifting the order index from the previous branch to right by one position, similarly, RAKE receivers are adopted at each cancellation stage. Simulation results reveal that our proposed single branch GL-SIC significantly outperforms the linear MMSE receiver and the conventional SIC and exceeds the performance of MB-SIC with L b =4 and MB MF-SIC with L b =4 for the same BER performance.
Fig. 4
Fig. 4

GL-SIC comparison in non-cooperative system with 20 users over Rayleigh fading channel

In the second example, the BER performance of the analyzed detection schemes is then examined for the proposed GL-PIC detector employed in the direct transmission over the Rayleigh fading channel, N=32 and the user number is 20. As depicted in Fig. 5, the results compare the BER versus SNR performance between the conventional detectors and the GL-PIC techniques with different number of unreliable users being re-examined; the figure advises that the GL-PIC algorithm performs better than the conventional SIC detector and the conventional PIC detectors, both with RAKE receivers employed at each cancellation stage. Moreover, with the additional number of unreliable users being re-examined, extra performance gains can be obtained. However, in this non-cooperative Rayleigh fading system, the performance improvement is slight and the detection capability is not that good when compared with the GL-SIC scheme.
Fig. 5
Fig. 5

GL-PIC comparison in non-cooperative system with 20 users over Rayleigh fading channel

The next scenario illustrated in Fig. 6 shows the BER versus SNR plot for the cross-layer design using the proposed detectors and the greedy relay selection method, where we apply the GL-SIC/GL-PIC algorithms at both the relays and the destination in an uplink cooperative scenario with 10 users, 6 relays, and spreading gain N=16. The performance bounds for an exhaustive search of different detectors are presented here for comparison purposes, where it examines all possible relay combinations and picks the best one with the highest SINR. From the results, it can be seen that with the relay selection, the GL-SIC (L b =1) detector performs better than the GL-PIC detector in high SNR region. Furthermore, the BER performance curves of our proposed relay selection algorithm approach almost the same level of the exhaustive search, while keeping the complexity reasonably low for practical utilization.
Fig. 6
Fig. 6

BER versus SNR for uplink cooperative system

In contrast, when the algorithms are assessed in terms of BER versus number of users in Fig. 7 with a fixed SNR = 15 dB. Similarly, we apply both the GL-SIC and the GL-PIC detectors at both the relays and destination. The results indicate that the overall system performance degrades as the number of users increases. In particular, this figure also suggests that our proposed greedy relay selection method has a big advantage for situations without a high load and can approach the exhaustive search very closely with a relatively lower complexity. Additionally, the BER performance curves of GL-SIC detector is better than the GL-PIC detector especially for a large number of users.
Fig. 7
Fig. 7

BER versus number of users for uplink cooperative system

In order to further verify the performance for the proposed cross-layer design, we compare the effect of different detectors with 10 users and 6 relays when this new greedy multi-relay selection algorithm is applied in the system. The results depicted in Fig. 8 with spreading gain N=16 indicate that the GL-SIC (L b =1) approach allows a more effective reduction of BER and achieves the best performance that is quite close to the single user scenario, followed by the MB MF-SIC (L b =4) detector, the MB-SIC (L b =4) detector, the GL-PIC detector, the linear MMSE receiver, the conventional SIC detector, and the conventional PIC detector. Additionally, it is worth noting that some extra performance gains are attained for the GL-PIC approach as more n q unreliable users are selected and re-examined.
Fig. 8
Fig. 8

BER versus SNR for uplink cooperative system with different filters employed at the relays and the destination

In order to see the capability of the proposed algorithms over time-varying channels, we then compare the performance of different detectors with 10 users and 6 relays over a time-varying channel. Specifically, the channels change over each transmitted block according to Clarke’s model with the symbol period T s =10−5 and the maximum Doppler shift f d =20. Similarly, the proposed greedy multi-relay selection method is adopted in the system and perfect channel state information (CSI) is assumed. The simulation results in Fig. 9 with spreading gain N=16 suggest that the GL-SIC (L b =1) achieves the best performance and can approach the single user bound very closely. This is then followed by the MB MF-SIC (L b =4) detector, the MB-SIC (L b =4) detector, the GL-PIC detector, the linear MMSE receiver, the conventional SIC detector, and the conventional PIC detector. In addition, it is clear that when considering the Doppler shift, the overall BER performance decreases.
Fig. 9
Fig. 9

BER versus SNR for uplink cooperative system with different filters employed at the relays and the destination over a time-varying channel

In conclusion, in every scenario, the proposed SIC and PIC algorithms perform better than the standard SIC or PIC. In the literatures, a method of standard SIC receivers with forward error coding (FEC) has been introduced and can perform very well. However, it has also been showed that without FEC, standard SIC receivers can show performance degradation in certain situations (low SNR, highly loaded systems, etc.). As a result, the proposed SIC and PIC receivers have the advantage of considering lists of potential candidates for detection, which can significantly improve the performance as compared to standard SIC/PIC receivers. We have limited our studies to uncoded scenarios but we acknowledge that the performance of GL-SIC and GL-PIC can be further improved with FEC.

9 Conclusions

In this work, we have presented the GL-SIC and GL-PIC interference cancellation algorithms, which can approach the ML performance at a much lower cost than competing techniques. We have also proposed a greedy multi-relay selection algorithms that outperforms existing greedy algorithms and obtains a performance close to an exhaustive search. A novel cross-layer design strategy that incorporates GL-SIC or GL-PIC, and a greedy multi-relay selection algorithm for the uplink of cooperative DS-CDMA systems has been also presented. This approach effectively reduces the error propagation generated at the relays, avoiding the poorest relay-destination link while requiring a low complexity. Simulation results demonstrate that the performance of the proposed cross-layer design is superior to existing techniques, can approach an interference-free scenario, and be applied to other wireless systems.



This work is funded by the ESII consortium under task 26 for low-cost wireless ad hoc and sensor networks.

Part of this work has been presented at the European Signal Processing Conference (EUSIPCO), 2014 and the International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2014, respectively.

Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License(, which permits unrestricted use, distribution, and reproduction in any medium, provided you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license, and indicate if changes were made.

Authors’ Affiliations

Department of Electronics, University of York, York, YO10 5DD, UK
CETUC, PUC-Rio, Brazil


  1. JG Proakis, Digital communications, 4th edn (McGraw-Hill, Inc, New York, 2011).Google Scholar
  2. A Sendonaris, E Erkip, B Aazhang, User cooperation diversity—parts I and II. IEEE Trans. Commun.51(11), 1927–1948 (2003).View ArticleGoogle Scholar
  3. L Venturino, X Wang, M Lops, Multi-user detection for cooperative networks and performance analysis. IEEE Trans. Signal Process.54(9), 3315–3329 (2006).View ArticleGoogle Scholar
  4. JN Laneman, GW Wornell, Cooperative diversity in wireless networks: efficient protocols and outage behaviour. IEEE Trans. Inf. Theory. 50(12), 3062–3080 (2004).View ArticleMathSciNetMATHGoogle Scholar
  5. L Bai, L Zhao, Z Liao, A novel cooperation scheme in wireless sensor networks. IEEE Wirel. Commun. Netw. Conf., 1889–1893 (2008).Google Scholar
  6. MR Souryal, BR Vojcic, RL Pickholtz, Adaptive modulation in ad hoc DS/CDMA packet radio networks. IEEE Trans. Commun.54(4), 714–725 (2006).View ArticleGoogle Scholar
  7. M Levorato, S Tomasin, M Zorzi, Cooperative spatial multiplexing for ad hoc networks with hybrid ARQ: system design and performance analysis. IEEE Trans. Commun.56(9), 1545–1555 (2008).View ArticleGoogle Scholar
  8. S Verdu, Multiuser detection (Cambridge, New York, 1998).MATHGoogle Scholar
  9. S Verdu, Minimum probability of error for asynchronous gaussian multiple-access channels. IEEE Trans. Inform. Theory. IT32(1), 85–96 (1986).View ArticleMathSciNetGoogle Scholar
  10. R Lupas, S Verdu, Linear multiuser detectors for synchronous code-division multiple-access channels. IEEE Trans. Inform. Theory. 35(1), 123–136 (1989).View ArticleMathSciNetMATHGoogle Scholar
  11. P Patel, J Holtzman, Analysis of a simple successive interference cancellation scheme in DS/CDMA systems. IEEE J. Select. Areas Commun.12(5), 796–807 (1994).View ArticleGoogle Scholar
  12. MK Varanasi, B Aazhang, Multistage detection in asynchronous code-division multiple-access communications. IEEE Trans. Commun.38(4), 509–519 (1990).View ArticleGoogle Scholar
  13. RC de Lamare, R Sampaio-Neto, Minimum mean-squared error iterative successive parallel arbitrated decision feedback detectors for DS-CDMA systems. IEEE Trans. Commun.56(5), 778–789 (2008).View ArticleMathSciNetGoogle Scholar
  14. Y Jing, H Jafarkhani, Single and multiple relay selection schemes and their achievable diversity orders. IEEE Trans. Wireless Commun.8(3), 1084–1098 (2009).View ArticleGoogle Scholar
  15. P Clarke, RC de Lamare, Transmit diversity and relay selection algorithms for multi-relay cooperative MIMO systems. IEEE Trans. Veh. Technol. 61(3), 1084–1098 (2012).View ArticleGoogle Scholar
  16. M Ding, S Liu, H Luo, W Chen, MMSE based greedy antenna selection scheme for AF MIMO relay systems. IEEE Signal Process. Lett. 17(5), 433–436 (2010).View ArticleGoogle Scholar
  17. S Song, W Chen, MMSE based greedy eigenmode selection for AF MIMO relay channels. IEEE Globecom, 3628–3632 (2012).Google Scholar
  18. S Talwar, Y Jing, S Shahbazpanahi, Joint relay selection and power allocation for two-way relay networks. IEEE Signal Process. Lett. 18(2), 91–94 (2011).View ArticleGoogle Scholar
  19. J Tropp, Greedy is good: algorithmic results for sparse approximation. IEEE Trans. Inf. Theory. 50(10), 2231–2242 (2004).View ArticleMathSciNetMATHGoogle Scholar
  20. R Flury, SV Pemmaraju, R Wattenhofer, Greedy routing with bounded stretch. IEEE Infocom, 1737–1745 (2009).Google Scholar
  21. Y Jia, E Yang, D He, S Chan, A greedy re-normalization method for arithmetic coding. IEEE Trans. Commun.55(8), 1494–503 (2007).View ArticleGoogle Scholar
  22. RC de Lamare, Joint iterative power allocation and linear interference suppression algorithms for cooperative DS-CDMA networks. IET Commun.6(13), 1930–1942 (2012).View ArticleGoogle Scholar
  23. W Chen, L Dai, KB Letaief, Z Cao, A unified cross-layer framework for resource allocation in cooperative networks. IEEE Trans. Wirel. Commun.7(8), 3000–3012 (2008).View ArticleGoogle Scholar
  24. Y Cao, B Vojcic, in IEEE Wirel. Commun. Netw. Conf. MMSE multiuser detection for cooperative diversity CDMA systems, (2004), pp. 42–47.Google Scholar
  25. P Li, RC de Lamare, Multiple feedback successive interference cancellation detection for multiuser MIMO systems. IEEE Trans. Wirel. Commun.10(8), 2434–2439 (2011).View ArticleGoogle Scholar
  26. P Li, RC de Lamare, R Fa, Multi-feedback successive interference cancellation with multi-branch processing for MIMO systems. Veh. Technol. Conf. VTC Spring, 1–5 (2011).Google Scholar


© Gu and de Lamare. 2016