 Research
 Open Access
 Published:
Joint interference cancellation and relay selection algorithms based on greedy techniques for cooperative DSCDMA systems
EURASIP Journal on Wireless Communications and Networking volume 2016, Article number: 59 (2016)
Abstract
In this work, we propose interference cancellation techniques and a multirelay selection algorithm based on greedy methods for the uplink of cooperative directsequence codedivision multiple access (DSCDMA) systems. We first devise lowcost listbased successive interference cancellation (GLSIC) and parallel interference cancellation (GLPIC) algorithms with RAKE receivers as the frontend 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 GLSIC and GLPIC 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 multirelay selection algorithm based on greedy techniques that can approach the performance of an exhaustive search is also proposed. A crosslayer design strategy that brings together the proposed multiuser 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.
Introduction
Multipath 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 [2–4], and among the most effective ones are amplifyandforward (AF) and decodeandforward (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 reencoded message to the destination. Consequently, better performance and lower power consumption can be obtained when appropriate decoding and relay selection strategies are applied.
Prior and related work
Directsequence codedivision multiple access (DSCDMA) systems are a multiple access technique that can be incorporated with cooperative systems in ad hoc and sensor networks [5–7]. 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, multiuser 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 suboptimal strategies have been developed: the linear detector [10], the successive interference cancellation (SIC) [11], the parallel interference cancellation (PIC) [12], and the minimum meansquare 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 [14–18]. 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 stepbystep 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 nearoptimal 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 renormalization step that contains greedy thresholding and greedy outputting is proposed and analyzed in [21]. In relayassisted 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.
Contributions
This work presents costeffective interference cancellation algorithms and multirelay selection algorithms for cooperative DSCDMA systems. The proposed interference cancellation algorithms do not require matrix inversions and rely on the RAKE receiver as the frontend. A crosslayer 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 DSCDMA systems and could also be applied to multiantenna and multicarrier systems. Crosslayer 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 MMSEMUD 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 lowcost greedy listbased successive interference cancellation (GLSIC) multiuser detection method that can be applied at both the relays and the destination of wireless systems.

We also develop a lowcost greedy listbased parallel interference cancellation (GLPIC) strategy which employs RAKE receivers as the frontend and can approach the ML detector performance.

We present a lowcomplexity multirelay 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 crosslayer design is presented.

A crosslayer design that incorporates the optimization of the proposed GLSIC and GLPIC techniques, and the improved greedy multirelay selection algorithm for the uplink of a cooperative DSCDMA 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 GLSIC multiuser detection method is presented. In Section 4, the GLPIC multiuser 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 crosslayer 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.
Cooperative DSCDMA system model
We consider the uplink of a synchronous DSCDMA 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 lth relay can be described by
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 kth 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
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
where \(a_{r_{l}d}^{k}\) is the amplitude for source (user) k from the lth relay to the destination, \(\textbf {h}_{r_{l}d,k}\) is the L _{ p }×1 channel vector for user k from the lth 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
The received signal in (5) can then be described by
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
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
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.
Proposed GLSIC multiuser detection
In this section, we detail the GLSIC multiuser detector that can be applied in the uplink of a cooperative system. The GLSIC detector uses the RAKE receiver as the frontend, so that the matrix inversion required by the MMSE filter can be avoided. The GLSIC 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 greedylike 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 (MFSIC) [25], GLSIC does not require matrix inversions and jointly considers multiple numbers of users, constellation constraints, and reordering at each detection stage to obtain an improvement in detection performance.
Proposed GLSIC 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
where \(\phantom {\dot {i}\!}\textbf {y}_{\text {sr}_{l}}(i)\) represents the received signal from the source to the lth relay, u _{ k }(i) stands for the soft output of the ith 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
these soft estimates will then be applied to a slicer Q(·) as
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
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 lth relay and \(\phantom {\dot {i}\!}\textbf {y}_{\text {sr}_{l},s}\) is the received signal from the source to the lth relay at the sth (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
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 C⊆F, 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
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:
where

\(\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 jth 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
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
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
where

\(\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 jth 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
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 lth 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 lth relay.
Clearly, GLSIC 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 GLSIC algorithm is detailed in Algorithm 1.
GLSIC with multibranch 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 GLSIC. 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 GLSIC 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,K2,K1]\),

\(\textbf {O}_{l_{2}}=[K1,K,1,\ldots,K3,K2]\),

⋮

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

\(\textbf {O}_{l_{K}}=[K,K1,K2,\ldots,2,1]\)(reverse order).
After that, each of the K parallel branches computes a GLSIC 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.
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} $$((22)) 
2.
Reexamine 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.
Replace the kth 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.
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.
Proposed GLPIC multiuser detection
In this section, we present a GLPIC detector that can be applied at both the relays and destination in the uplink of a cooperative system. The GLPIC detector uses the RAKE receiver as the frontend, so that the matrix inversion brought by the MMSE filter can be avoided. Specifically, the proposed GLPIC 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 reexamined via a number of selected constellation points in a greedylike 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
As shown in Fig. 2, for the kth 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
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
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
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 C⊆F, 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
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
where

\(\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 tradeoff 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
Following that, b ^{opt} is used as the input for a multiiteration PIC process as described by
where \(\hat {b}_{j}^{\text {opt}}=\hat {b}_{j}^{(i1)}\) 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 ith PIC iteration, \(\phantom {\dot {i}\!}\textbf {H}_{\text {sr}_{l},j}\) stands for the channel matrices for the jth user from the source to the lth relay, \(\textbf {w}_{\text {sr}_{l},k}^{H}\) represents the RAKE receiver for user k from the source to the lth relay, and \(\hat {b}_{j}^{i1}\) is the detected value for user j that comes from the (i−1)th PIC iteration. Normally, the conventional PIC is performed in a multiiteration 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 GLPIC algorithm, the detection performance is improved. The key novelty is that GLPIC employs more reliable estimates by exploiting prior knowledge of the constellation points. The proposed GLPIC algorithm is detailed in Algorithm 3.
Proposed greedy multirelay selection method
In this section, a greedy multirelay 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 relaydestination 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 multirelay 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 signaltointerferenceplusnoise ratio (SINR) is used as the criterion to determine the optimum relay set. The expression of the SINR for user q is given by
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
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 crosscorrelation 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 relaydestination links are involved, and \({\sigma _{N}^{2}}\) is the noise variance. This problem thus can be cast as the following optimization:
where q represents the index number for an arbitrary user, Ω _{ r } denotes a possible combination set (r≤L(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.
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
where \(\textbf {h}_{r_{l}d}\) is the channel vector between the lth 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 relaydestination link and calculate the current SINR for the remaining L−1 relays, as compared with the previous SINR, if
we update the previous SINR as
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.
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.
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.
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.
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.
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 multirelay selection algorithm is depicted in Algorithm 4.
Finally, it should also be noticed that relay selection can be also operated at the sourcerelay part as this is a twophase process. However, in the current manuscript, we only consider the relay selection that occurs during the relaydestination links for the purpose of simplicity.
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.
Computational complexity
We first compare the computational complexity of the proposed (GLSIC and GLPIC) 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 multipath 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 GLSIC algorithm, n refers to the number of users we considered per each stage, and in the GLPIC algorithm, n _{ q } represents the number of unreliable users that need to be reexamined 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 GLSIC 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 worstcase scenario is evaluated when all n users are considered as unreliable at the first stage.
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 reexamined in both proposed algorithms, a substantial complexity saving is achieved. Additionally, our proposed greedy listbased algorithms offer a clear complexity advantage over the linear MMSE receiver as they adopt the RAKE receiver as the frontend, 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 multipath channel L _{ p }=3, and assume that the BPSK modulation is adopted. The required number of flops (logscale) of the proposed and existing MUD algorithms are simulated in Fig. 3, where in the GLSIC algorithm, n=2 users are considered jointly at each stage and in the GLPIC algorithm, n _{ q }=3 unreliable users need to be reexamined 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 tradeoff between complexity and performance.
Greedy relay selection analysis
The proposed greedy multirelay 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:
where \({\Omega _{i}^{s}}\) denotes the ith relay combination at the sth 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
The total number of relay combinations can then be calculated as \({C_{L}^{L}}+C_{L}^{L1}+C_{L}^{L2}+\ldots +{C_{L}^{2}}+{C_{L}^{1}}=2^{L}1\), where each term \({C_{m}^{n}}=\frac {m(m1)\ldots (mn+1)}{n!}\) represents the number of combinations that we choose, i.e., n elements from m elements (m≥n). 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.
Proposition.
The proposed greedy algorithm achieves an SINR that is bounded as follows:
Proof.
From the proposed greedy algorithm, the set containing the selected relay at the sth stage is given by
where Ω ^{s}∖Ω ^{s}(i) denotes a complementary set where we drop the ith 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
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
with the only different relay being p≠q, 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
where \(\Omega _{\mathrm {exhaustive(i)}^{s}}\) represents the ith relay combination selected at the sth stage of the exhaustive greedy relay selection method.
Assuming both strategies select the same relay combination at stage s, we have
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+1s}] \}\) 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}}}\). □
Proposed crosslayer design
In this section, we present and analyze a crosslayer design strategy that combines the proposed MUD techniques with the proposed greedy multirelay selection algorithm for the uplink of the cooperative DSCDMA 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 multirelay 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 crosslayer design can be cast into the following optimization problem
where b ^{j} stands for the jth candidate list generated after applying the GLSIC/GLPIC 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 kth user in the ith relay combination at stage s, and Ω ^{opt} is the optimum relay combination obtained through the proposed greedy relay selection method. The crosslayer optimization in (38) is a nonconvex 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 GLSIC/GLPIC 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
This interference cancellation operation affects the following process in two different ways.

The accuracy of \(\hat {b}_{r_{l}d,k}\) directly controls the regenerated 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 ith relay combination at an arbitrary stage s as
This algorithm operates in stages, and the SINR for the selected relay combination at each stage is given by
The selection stops when \(\phantom {\dot {i}\!}{\text {SINR}_{\Omega ^{s}}}< {\text {SINR}_{\Omega ^{s1}}}\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 regenerated 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 GLSIC/GLPIC 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
The proposed crosslayer design is detailed in Algorithm 5.
Simulations
In this section, a simulation study of the proposed multiuser detectors and the lowcost greedy multirelay selection method is carried out. The DSCDMA 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 signaltonoise ratio (SNR). We assume perfectly known channels at the receiver. Equal power allocation is employed during the transmission. The grey area in the GLSIC and GLPIC 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 GLSIC scheme at each stage and for the GLPIC strategy, a threeiteration 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 noncooperative and cooperative scenarios.
The first example shown in Fig. 4 illustrates the performance comparison between the proposed GLSIC interference suppression technique and other multiuser detection methods over the Rayleigh fading channel. The proposed GLSIC 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 multibranch multifeedback SIC (MB MFSIC) detection algorithm mentioned in [25] is presented here for comparison purposes. We also produce the simulation results for the multibranch SIC (MBSIC) 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 GLSIC significantly outperforms the linear MMSE receiver and the conventional SIC and exceeds the performance of MBSIC with L _{ b }=4 and MB MFSIC with L _{ b }=4 for the same BER performance.
In the second example, the BER performance of the analyzed detection schemes is then examined for the proposed GLPIC 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 GLPIC techniques with different number of unreliable users being reexamined; the figure advises that the GLPIC 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 reexamined, extra performance gains can be obtained. However, in this noncooperative Rayleigh fading system, the performance improvement is slight and the detection capability is not that good when compared with the GLSIC scheme.
The next scenario illustrated in Fig. 6 shows the BER versus SNR plot for the crosslayer design using the proposed detectors and the greedy relay selection method, where we apply the GLSIC/GLPIC 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 GLSIC (L _{ b }=1) detector performs better than the GLPIC 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.
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 GLSIC and the GLPIC 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 GLSIC detector is better than the GLPIC detector especially for a large number of users.
In order to further verify the performance for the proposed crosslayer design, we compare the effect of different detectors with 10 users and 6 relays when this new greedy multirelay selection algorithm is applied in the system. The results depicted in Fig. 8 with spreading gain N=16 indicate that the GLSIC (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 MFSIC (L _{ b }=4) detector, the MBSIC (L _{ b }=4) detector, the GLPIC 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 GLPIC approach as more n _{ q } unreliable users are selected and reexamined.
In order to see the capability of the proposed algorithms over timevarying channels, we then compare the performance of different detectors with 10 users and 6 relays over a timevarying 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 multirelay 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 GLSIC (L _{ b }=1) achieves the best performance and can approach the single user bound very closely. This is then followed by the MB MFSIC (L _{ b }=4) detector, the MBSIC (L _{ b }=4) detector, the GLPIC 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.
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 GLSIC and GLPIC can be further improved with FEC.
Conclusions
In this work, we have presented the GLSIC and GLPIC interference cancellation algorithms, which can approach the ML performance at a much lower cost than competing techniques. We have also proposed a greedy multirelay selection algorithms that outperforms existing greedy algorithms and obtains a performance close to an exhaustive search. A novel crosslayer design strategy that incorporates GLSIC or GLPIC, and a greedy multirelay selection algorithm for the uplink of cooperative DSCDMA systems has been also presented. This approach effectively reduces the error propagation generated at the relays, avoiding the poorest relaydestination link while requiring a low complexity. Simulation results demonstrate that the performance of the proposed crosslayer design is superior to existing techniques, can approach an interferencefree scenario, and be applied to other wireless systems.
References
 1
JG Proakis, Digital communications, 4th edn (McGrawHill, Inc, New York, 2011).
 2
A Sendonaris, E Erkip, B Aazhang, User cooperation diversity—parts I and II. IEEE Trans. Commun.51(11), 1927–1948 (2003).
 3
L Venturino, X Wang, M Lops, Multiuser detection for cooperative networks and performance analysis. IEEE Trans. Signal Process.54(9), 3315–3329 (2006).
 4
JN Laneman, GW Wornell, Cooperative diversity in wireless networks: efficient protocols and outage behaviour. IEEE Trans. Inf. Theory. 50(12), 3062–3080 (2004).
 5
L Bai, L Zhao, Z Liao, A novel cooperation scheme in wireless sensor networks. IEEE Wirel. Commun. Netw. Conf., 1889–1893 (2008).
 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).
 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).
 8
S Verdu, Multiuser detection (Cambridge, New York, 1998).
 9
S Verdu, Minimum probability of error for asynchronous gaussian multipleaccess channels. IEEE Trans. Inform. Theory. IT32(1), 85–96 (1986).
 10
R Lupas, S Verdu, Linear multiuser detectors for synchronous codedivision multipleaccess channels. IEEE Trans. Inform. Theory. 35(1), 123–136 (1989).
 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).
 12
MK Varanasi, B Aazhang, Multistage detection in asynchronous codedivision multipleaccess communications. IEEE Trans. Commun.38(4), 509–519 (1990).
 13
RC de Lamare, R SampaioNeto, Minimum meansquared error iterative successive parallel arbitrated decision feedback detectors for DSCDMA systems. IEEE Trans. Commun.56(5), 778–789 (2008).
 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).
 15
P Clarke, RC de Lamare, Transmit diversity and relay selection algorithms for multirelay cooperative MIMO systems. IEEE Trans. Veh. Technol. 61(3), 1084–1098 (2012).
 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).
 17
S Song, W Chen, MMSE based greedy eigenmode selection for AF MIMO relay channels. IEEE Globecom, 3628–3632 (2012).
 18
S Talwar, Y Jing, S Shahbazpanahi, Joint relay selection and power allocation for twoway relay networks. IEEE Signal Process. Lett. 18(2), 91–94 (2011).
 19
J Tropp, Greedy is good: algorithmic results for sparse approximation. IEEE Trans. Inf. Theory. 50(10), 2231–2242 (2004).
 20
R Flury, SV Pemmaraju, R Wattenhofer, Greedy routing with bounded stretch. IEEE Infocom, 1737–1745 (2009).
 21
Y Jia, E Yang, D He, S Chan, A greedy renormalization method for arithmetic coding. IEEE Trans. Commun.55(8), 1494–503 (2007).
 22
RC de Lamare, Joint iterative power allocation and linear interference suppression algorithms for cooperative DSCDMA networks. IET Commun.6(13), 1930–1942 (2012).
 23
W Chen, L Dai, KB Letaief, Z Cao, A unified crosslayer framework for resource allocation in cooperative networks. IEEE Trans. Wirel. Commun.7(8), 3000–3012 (2008).
 24
Y Cao, B Vojcic, in IEEE Wirel. Commun. Netw. Conf. MMSE multiuser detection for cooperative diversity CDMA systems, (2004), pp. 42–47.
 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).
 26
P Li, RC de Lamare, R Fa, Multifeedback successive interference cancellation with multibranch processing for MIMO systems. Veh. Technol. Conf. VTC Spring, 1–5 (2011).
Acknowledgements
This work is funded by the ESII consortium under task 26 for lowcost 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.
Author information
Additional information
Competing interests
The authors declare that they have no competing interests.
Rights and permissions
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0 International License(http://creativecommons.org/licenses/by/4.0/), 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.
About this article
Cite this article
Gu, J., de Lamare, R. Joint interference cancellation and relay selection algorithms based on greedy techniques for cooperative DSCDMA systems. J Wireless Com Network 2016, 59 (2016) doi:10.1186/s136380160556x
Received:
Accepted:
Published:
Keywords
 DSCDMA networks
 Cooperative systems
 Relay selection
 Greedy algorithms
 SIC detection
 PIC detection