01.12.2015  Research  Ausgabe 1/2015 Open Access
Jointly optimized multiple ReedMuller codes for wireless halfduplex codedcooperative network with joint decoding
Wichtige Hinweise
Competing interests
The authors declare that they have no competing interests.
1 Introduction
In modern wireless communications, one of the most important aspects is to reduce the channel impairments over the signal propagation. The signal is distorted in a number of ways as it propagates through a wireless channel. Many phenomena like reflection, diffraction, and scattering are responsible for the loss of quality of service (QoS) [
1]. Various diversity techniques such as time, frequency, polarization, and space are suggested in the literature to improve the quality of a wireless channel [
1]. However, spatial diversity has proven to be the most effective diversity technique to combat the channel effects [
2
4]. Unfortunately, many mobile communication devices are not capable to exploit this spatial diversity due to the constraints such as power, size, and hardware complexity. However, novel ideas such as the threeterminal communication [
5] and the user cooperation to provide uplink diversity via single antenna sharing [
6
8] provide suitable alternative and allow the mobile devices to take advantages of the spatial diversity.
The idea of codedcooperative diversity was first introduced in [
9]. In order to achieve the codedcooperative diversity, many distributed coding schemes have been reported in the literature such as the convolutional codes [
10,
11], distributed spacetime coding [
12,
13], distributed lowdensity paritycheck codes (DLDPC) [
14,
15] and distributed turbo codes (DTC) [
16,
17] and more recently the polar codes [
18,
19]. However, the BER performance of binary turbo and the LDPC codes largely depends on the information block size, the longer the better and vice versa, whereas for the short nonbinary turbo and LDPC codes, reasonable performances under the iterative decoding are reported in [
20,
21]. In many existing and emerging applications (such as devicetodevice and sensor networks), it is possible to have scenarios, which may transmit small information block size. Thus, it provides one of the many motivations for our work to develop such a codedcooperative scheme, which may be useful particularly for applications having small information block size and require low encoding and decoding complexity. For any communication system, there is and always will be a tradeoff between the complexity and performance as suggested in [
22].
Anzeige
In this paper, we present a novel codedcooperative scheme based on ReedMuller (RM) codes [
23,
24]. The recursive algebraic structure of RM codes makes them different and in many ways superior over other linear block codes. RM codes have low encoding and decoding complexity which is a desirable feature in most of the practical applications [
25]. Their algebraic structure and construction allows them to be used as suitable channel codes in a codedcooperative communication system. There are various methods already suggested in the literature about the recursive construction of RM codes [
26]. However, in order to use RM codes in a codedcooperative diversity scheme, we use Plotkin’s construction [
27]. In a codedcooperative scheme, the source and the relay terminal jointly contribute to build good codes at the destination. The code is good at the destination as it is superior in its decoding properties as compared to the code transmitted at the source without any coded cooperation. To get the maximum coding gains from this joint construction, a joint decoding scheme is established at the destination. The relay plays a vital role in the code construction at the destination and a good code design at the relay can greatly improve the overall performance of the codedcooperative scheme. Based on this fact, we also propose an efficient algorithm to design a good code at the relay. In [
28,
29], Plotkin’s construction is used in conjunction with the superposition coding for cooperative broadcasting in wireless networks. In superposition coding [
30], two modulated subcode sequences, produced by the two coordinated and independent sources, are combined at the antenna of the receiver (also referred as over the air mixing [
31]). The received modulated signals from the two cooperative broadcasting sources are added over the field of real numbers (or depending on the signal constellation used). That scheme also showed promising BER performance gains; however, the scheme proposed in this paper is entirely different from the former in many ways. Firstly, we use Plotkin’s construction to construct a new code at the destination, and binary addition of unmodulated codewords takes place at the relay instead of real number addition as suggested in [
28,
29]. Secondly, there is only one source in our scheme, and there is no over the air mixing, whereas in [
28,
29], two independent source nodes broadcast their information to the destination node and over the air mixing is performed.
This paper is organized as follows: Section
2 presents a generalized threeterminalbased codedcooperative network and gives the channel description. In Section
3, preliminaries related to the RM codes and Plotkin’s construction are presented. Section
4 presents the encoding scheme for RM codedcooperative and noncooperative networks. In Section
5, the code design for the singlerelay coded cooperation is presented. Performance analysis for RMcodebased cooperative and noncooperative schemes over the Rayleigh fading channel is presented in Section
6. Section
7 presents various MonteCarlo simulations and shows the significance of the proposed RM codedcooperative scheme. Section
8 presents the conclusion of the article.
2 Threeterminalbased codedcooperative communication model
It comprises three communication terminals or nodes such as the source
S, the relay
R, and the destination
D. All these terminals have single antenna to transmit and receive, and they communicate with each other in halfduplex mode. The complete endtoend transmission of an information sequence takes two time slots. During the first time slot, the source
S encodes the message bits using the code
C
_{1} and modulates binary codeword using the binary phase shift keying (BPSK) modulation. The BPSKmodulated signal
\( {\mathbf{x}}^s=\left[{x}_1^s,{x}_2^s,\dots, {x}_L^s\right] \) is a vector of length
L and is broadcasted to the relay and the destination, where each entry in
x
^{ s } is
\( {x}_l^s\in \left\{1,+1\right\},\ l=1,2,\dots, L \). The received signal vector
y
_{1} at the relay is given as:
where
n
_{ s,r } = [
n
_{ s,r(1)},
n
_{ s,r(2)}, …,
n
_{ s,r(L)}] is a vector of complex additive Gaussian noise with each component
n
_{ s,r(j)}, (
j = 1, 2, …,
L) is a zeromean complex Gaussian random variable (RV) with independent real and imaginary components of variance
N
_{0}/2, and
h
_{ s,r } = [
h
_{ s,r(1)},
h
_{ s,r(2)}, …,
h
_{ s,r(L)}] is a channel fading coefficient vector whose entries
h
_{ s,r(j)}, (
j = 1, 2, …,
L) are independent and identically distributed (i.i.d.) complex Gaussian random variables with zeromean and 0.5 variance per dimension. In the case of the fast Rayleigh fading, the fading coefficients change independently over the transmission of every symbol
\( {x}_l^s \), whereas in the case of the slow Rayleigh fading, the fading coefficients remain constant for the whole frame
x
^{s} and change independently over transmission of every next frame. The signal received at the destination
y
_{2} during the first time slot is given as:
where
h
_{ s,d } is a channel fading coefficient vector and
n
_{ s,d } is a Gaussian noise vector which are defined similarly as
h
_{ s,r } and
n
_{ s,r }, respectively.
$$ {\mathbf{y}}_1={\mathbf{h}}_{s,r}{\mathbf{x}}^s+{\mathbf{n}}_{s,r} $$
(1)
$$ {\mathbf{y}}_2={\mathbf{h}}_{s,d}{\mathbf{x}}^s+{\mathbf{n}}_{s,d} $$
(2)
Anzeige
During the second time slot, the recovered information bits at the relay node (received in the first time slot), are reencoded using the code
C
_{2}. After BPSK modulation of the binary codeword, the relay transmits its signal
\( {\mathbf{x}}^r=\left[{x}_1^r,{x}_2^r,\dots, {x}_L^r\right] \) to the destination node, where
x
^{ r } is a vector of length
L and each entry in
x
^{ r } is
\( {x}_l^r\in\ \left\{1,+1\right\},\ l=1,2,\dots, L \). The transmission of
x
^{ r } to the destination during the second time slot is represented with a dashed line as shown in Figure
1.
The signal received
y
_{3} at the destination during the second time slot is modeled as:
where
h
_{ r,d } is a channel fading coefficient vector and
n
_{ r,d } is a Gaussian noise vector which are defined similarly as
h
_{ s,r } and
n
_{ s,r }. Finally, the overall received signal
y at the destination is modeled as follows:
where ‘’ represents the concatenation of the two signals received during the first and the second time slots. This signal
y is passed to the decoder to recover the information sequence generated at the source.
$$ {\mathbf{y}}_3={\mathbf{h}}_{r,d}{\mathbf{x}}^r+{\mathbf{n}}_{r,d} $$
(3)
$$ \mathbf{y}=\left{\mathbf{y}}_2\right{\mathbf{y}}_3\Big $$
(4)
3 Fundamentals of RM codes
RM codes belong to a family of linear block codes, which have very nice mathematical properties. Before we discuss the motivation of this paper, let us present some preliminaries related to the RM codes and Plotkin’s construction. Mathematically, RM codes are best described using Boolean function as follows:
‘The
r
^{ th } order binary RM code
ℛ(
r,
m) of block length
n = 2
^{ m }, for 0 ≤
r ≤
m, is the set of all vectors
f, where
f(
α
_{1},
α
_{2}, …,
α
_{ m }) is a Boolean function which is a polynomial of degree at most
r’ [
26], where
m and
r are any positive integer. The binary
r
^{ th } order
ℛ(
r,
m) code has the dimension
k given as:
and the minimum Hamming distance is
d = 2
^{ m − r }. RM codes can be constructed in different ways such as algebraically,
mfold Kronecker product or by Plotkin’s construction [
25
27,
32]. However, Plotkin’s construction provides the motivation for utilizing RM codes in the codedcooperative diversity scheme. RM codes of length 2
^{ m + 1} can be obtained via RM codes of length 2
^{ m } using Plotkin’s construction. Let
C
_{1}(
n,
k
_{1},
d
_{1}) =
ℛ(
r + 1,
m) and
C
_{2}(
n,
k
_{2},
d
_{2}) =
ℛ(
r,
m) be the two RM codes, where
n is the codeword length,
k
_{1} and
k
_{2,} are the dimensions, and
d
_{1} and
d
_{2} are the minimum Hamming distances of the codes
C
_{1} and
C
_{2} respectively. Then, according to Plotkin’s construction, we get a new RM code such as,
\( {\tilde{C}}_3\left(\tilde{N},\tilde{k},{d}_3\right)=\mathcal{R}\left(r+1,\kern0.5em m+1\right) \) defined as:
where
u,
v are the binary codeword vectors, + is an addition over GF(2) field. The new code
\( {\tilde{C}}_3 \) has the codeword length
Ñ = 2
n, dimension
\( \tilde{k}={k}_1+{k}_2 \) and the minimum Hamming distance is given as [
25]:
$$ k=1+\left(\begin{array}{c}\hfill m\hfill \\ {}\hfill 1\hfill \end{array}\right)+\left(\begin{array}{c}\hfill m\hfill \\ {}\hfill 2\hfill \end{array}\right)+\dots +\left(\begin{array}{c}\hfill m\hfill \\ {}\hfill r\hfill \end{array}\right) $$
(5)
$$ \begin{array}{c}{\tilde{C}}_3=\mathcal{R}\left(r+1,\kern0.5em m+1\right)\\ {}=\left\{\left\mathbf{u}\right\mathbf{u}+\mathbf{v}\Big:\kern0.1em \mathbf{u}\in \mathcal{R}\left(r+1,\kern0.1em m\right),\kern0.2em \mathbf{v}\in \mathcal{R}\left(r,\kern0.1em m\right)\kern0.1em \right\}\end{array} $$
(6)
$$ {d}_3= \min \left\{\kern0.1em 2{d}_1,\kern0.1em {d}_2\right\} $$
(7)
Plotkin’s construction is also referred to as 
u
u +
v construction.
4 RM codedcooperative and noncooperative schemes
Based on the codedcooperative scheme in Section
2, we propose a generalized threeterminalbased RM codedcooperative scheme as shown in Figure
2.
×
However, this time, the codes used at the source and at the relay are two distinct RM codes
C
_{1}(
n,
k
_{1},
d
_{1}) =
ℛ(
r + 1,
m) and
C
_{2}(
n,
k
_{2},
d
_{2}) =
ℛ(
r,
m), respectively. The information sequence
m
_{1} generated at the source takes two time slots to be recovered at the destination. During the first time slot,
k
_{1} message bits are encoded using the
ℛ(
r + 1,
m) code, and the resultant codeword vector
u of length
n = 2
^{ m } is then BPSKmodulated. The modulated signal
x
^{s} is broadcasted simultaneously to the relay and the destination nodes. The relay decodes the received signal
y
_{1} to recover the information sequence transmitted at the source. The recovered information sequence
\( {\tilde{\mathbf{m}}}_1=\left[{\tilde{m}}_1,{\tilde{m}}_2,\dots, {\tilde{m}}_{k_1}\right] \) may or may not be error free, depending on the
S
R link.
During the second time slot, the relay performs
partial encoding using
ℛ(
r,
m) code and selects only
k
_{2} message bits out of
k
_{1} recovered message bits, where
k
_{2} <
k
_{1}. The term partial indicates that not all the recovered
k
_{1} message bits are reencoded at the relay, thus encoding complexity is significantly reduced at the relay terminal. The selection criteria of
k
_{2} message bits is explained in Section
5 and has significant impact on the overall performance of the RM codedcooperative scheme. The selected
k
_{2} information bits are then encoded using
ℛ(
r,
m) code to produce the codeword
v of the length
n = 2
^{ m }. In the next step, the direct sum of two codewords
ũ and
v is determined, i.e., 
ũ +
v where
ũ is a recovered codeword at the relay,
ũ may or may not equal to
u depending on the
S
R link condition. However, for notational simplicity, we assume
ũ =
u in the rest of the paper unless specified. This direct sum is BPSKmodulated as
x
^{ r } and transmitted to the destination node during the second time slot as shown with a dashed line in Figure
3.
×
At the destination node, the signals transmitted at the source and at the relay during the first and second time slots, respectively, are concatenated as in (4). The demodulated codeword 
u
u +
v at the destination belongs to a new code
C
_{3} which is jointly constructed by the source and the relay nodes. Moreover,
\( {C}_3\subseteq {\tilde{C}}_3=\mathcal{R}\left(r+1,\kern0.5em m+1\right) \) due to the fact that the message bits
m
_{2} encoded at the relay are the function of the message bits
\( {\tilde{\mathbf{m}}}_1 \) recovered at the relay, i.e.,
\( {\mathbf{m}}_2\left({\tilde{\mathbf{m}}}_1\right) \). In other words, message bits at the relay
m
_{2} are not independent or generated randomly, they are in fact subset of
\( {\tilde{\mathbf{m}}}_1 \). If
m
_{2} is the function of
\( {\tilde{\mathbf{m}}}_1 \), then the code
C
_{2} generated at the relay is also a function of the code generated at the source
C
_{1} i.e.,
C
_{2}(
C
_{1}). Then, the jointly constructed code
C
_{3} at destination is given as:
where
C
_{3} has the codeword length
N = 2
n and the minimum Hamming distance is
d
_{3} ≥ min{2
d
_{1},
d
_{2}}, for RM codes particularly
d
_{3} = min{2
d
_{1},
d
_{2}} as given in (7). Since
\( {\mathbf{m}}_2\left({\tilde{\mathbf{m}}}_1\right) \), therefore we have all possible codewords at the destination equal to
\( {2}^{k_1} \) instead of
\( {2}^{k_1+{k}_2} \) as
\( {2}^{k_2} \) codewords are expurgated. The codeword obtained at the destination due to joint construction of the source and the relay is given as:
$$ {C}_3=\left{C}_1\right{C}_1+{C}_2\left({C}_1\right)\Big $$
(8)
$$ \left\mathbf{u}\right\mathbf{u}+\mathbf{v}\left=\right\underset{1^{\mathrm{st}\ }\mathrm{part}}{\underbrace{u_1,{u}_2,\dots, {u}_n}}\left\overset{2^{\mathrm{nd}}\ \mathrm{part}}{\overbrace{{\left(u+v\right)}_1,{\left(u+v\right)}_2\dots, {\left(u+v\right)}_n}}\right $$
(9)
The first part in (9) is in fact a codeword generated at the source, and the second part is a codeword generated at the relay. The second part provides additional redundancy, which is exploited by the joint decoding at the destination. The word ‘joint’ here refers to the fact that the signals received from the source
y
_{2} and the relay
y
_{3} during different time slots are jointly decoded as a single received vector
y = 
y
_{2}
y
_{3}. The code rate of the overall distributed code is
\( {R}_c^0={k}_1/2n \).
Due to the rich algebraic structure of the RM codes, there are several decoding methods already reported in the literature. Majority decoding was the first algorithm proposed for RM codes. Recursive algorithms and multistage decoding algorithms are discussed in [
33,
34]. A simplified algorithm for softdecision decoding of RM codes is suggested in [
35]. RM codes of longer lengths can be decomposed to the constituent codes and suboptimal techniques can be used for the decoding, with less complexity [
25]. However, in this paper, we use the majority logic decoding and soft decision maximum likelihood decoding (SDMLD) with an assumption of perfect channel state information (CSI) known at the destination. For joint SDMLD, the decision metric used is given as:
where ‖. ‖
_{ F } represents the Frobenius norm. The joint decoding (majority logic or SDMLD) of the overall concatenated received signal
y = 
y
_{2}
y
_{3} results in the information sequence
\( \tilde{\mathbf{m}} \) of length
\( \tilde{k}={k}_1+{k}_2 \) as follows:
where we are interested only in the first part
\( {\tilde{\mathbf{m}}}_1 \), which is in fact the original message transmitted at the source.
$$ \zeta \left(\mathbf{y},\mathbf{x}\right)={\left\Vert \left{\mathbf{y}}_2\left{\mathbf{y}}_3\right\left{\mathbf{h}}_{s,d}{\mathbf{x}}^s\right{\mathbf{h}}_{r,d}{\mathbf{x}}^r\right\right\Vert}_F $$
(10)
$$ \begin{array}{l}\tilde{\mathbf{m}}=\left{\tilde{\mathbf{m}}}_1\right{\tilde{\mathbf{m}}}_2\Big\\ {}\tilde{\mathbf{m}}=\left\underset{1^{\mathrm{st}}\ \mathrm{part}}{\underbrace{{\tilde{m}}_1,{\tilde{m}}_2,\dots, {\tilde{m}}_{k_1}}}\right\overset{2^{\mathrm{nd}}\ \mathrm{part}}{\overbrace{{\tilde{m}}_{k_1+1},\dots, {\tilde{m}}_{k_2}}}\Big\end{array} $$
(11)
In order to show the effect of cooperative diversity, and a suitable benchmark to the proposed RM coded
cooperative scheme, we consider a non
cooperative RMcodebased transmission scheme as shown in Figure
4.
×
In a non
cooperative scheme, both the source and the relay units assumed in the coded
cooperative scheme are considered to be a single source unit, i.e., the source employs two encoders
C
_{1} =
ℛ(
r + 1,
m) and
C
_{2} =
ℛ(
r,
m); information bit selection for encoding by the
C
_{2} =
ℛ(
r,
m) encoder is similar to the codedcooperative scheme, explained in the next section. The direct sum of the two codewords
u +
v generated by each encoder is then concatenated with the codeword
u generated by the first encoder
C
_{1} =
ℛ(
r + 1,
m) by an additional block constructing the 
u
u +
v codeword, which is then modulated and sent to the destination.
5 Code design for partial encoding at the relay
In this section, we suggest a design criterion to select
k
_{2} message bits out of
k
_{1} recovered message bits at the relay. An efficient algorithm to achieve the design criterion is also proposed. The codeword 
u
u +
v ∈
C
_{3} of minimum Hamming distance
d
_{3} = min{2
d
_{1},
d
_{2}} may occur at the destination due to the following worst case scenario that is when a codeword of minimum Hamming distance
d
_{1} is generated at the source, i.e., wt(
u) = 2
^{ m − r − 1} =
d
_{1} (where wt is the Hamming weight), and at the relay, the allzero codeword, i.e.,
v =
0 ⇒ wt(
v) = 0 is generated (where
0 bold style is the allzero codeword vector). Consequently, the weight of the codeword 
u
u +
v constructed at the destination is:
$$ {d}_3=\mathrm{wt}\left(\left\mathbf{u}\Big\mathbf{u}+\mathbf{v}\right\right)=\mathrm{wt}\left(\left\mathbf{u}\Big\mathbf{u}\right\right)=2{d}_1 $$
(12)
Therefore, to avoid this worst case also referred to as the first worst case scenario hereafter, we propose a design criterion as follows:
‘Select a subset
C
_{3} of
\( {\tilde{C}}_3=\mathcal{R}\left(r+1,\kern0.5em m+1\right) \) code at the destination with as few as possible codewords of minimum Hamming distance
d
_{3} = 2
^{ m − r }
.’
In order to meet the design criterion, the code at the relay must be designed in such a way that it avoids the worst case scenario. Let us first define some nomenclature before we present design steps of the proposed algorithm to achieve the design objective.
i.
The first worst case scenario is defined as an event when the codeword generated at the source achieves minimum Hamming weight, i.e., wt(
u) =
d
_{1} and at the relay, the allzero codeword, i.e.,
v =
0 ⇒ wt(
v) = 0 is obtained. Let
K
_{1} represent the number of occurrences for the first worst case scenario.
ii.
The second worst case scenario is defined as an event in which the codeword of minimum Hamming distance
\( {d}_3^{1\mathrm{s}\mathrm{t}}={d}_3 \) is obtained at the destination, due to the joint encoding of the source and the relay nodes. Let
K
_{2} represent the number of occurrences for the second worst case scenario, where
K
_{2} =
K
_{ b } is also referred to as the error coefficient of any linear block code.
iii.
Similarly, the third worst case scenario is defined as an event in which the codeword of Hamming distance
\( {d}_3^{2\mathrm{n}\mathrm{d}} \) just greater than the
\( {d}_3^{1\mathrm{s}\mathrm{t}} \) is obtained at the destination, due to the joint encoding of the source and the relay nodes, where
\( {d}_3^{1\mathrm{s}\mathrm{t}}<{d}_3^{2\mathrm{n}\mathrm{d}}<\dots <{d}_3^{N\mathrm{t}\mathrm{h}} \), and
\( {d}_3^{N\mathrm{t}\mathrm{h}} \) is the maximum Hamming distance of a codeword. Let
K
_{3} represent the number of occurrences for the third worst case scenario.
iv.

Ω represents the cardinality of any set
Ω.
v.
a →
b represents that the selection of quantity a results in the quantity
b.
The design steps of the proposed algorithm are as follows:
1)
Determine
A = {
m
_{ κ }}, which is a set of all message blocks that result in the codewords of minimum Hamming distance
d
_{1} at the source, where
κ = 1, 2, …,
K
_{ b }, and
ϑ = 
A.
2)
Determine B = {
λ
_{ g }}, which is a set of unique combinations
\( {\boldsymbol{\uplambda}}_g=\left[{\lambda}_1,{\lambda}_2,\dots, {\lambda}_{k_2}\right] \), where
g = 1, 2, …,
S and each
λ
_{ g } is a vector of length
k
_{2,}
S = 
B and is determined as:
$$ S=\left(\begin{array}{c}\hfill {k}_1\hfill \\ {}\hfill {k}_2\hfill \end{array}\right)=\frac{k_1!}{k_2!\left({k}_1{k}_2\right)!} $$
(13)
3)
Determine the first worst case scenarios
K
_{1}, ∀
m
_{ κ } ∈ A and ∀
λ
_{ g } ∈ B by keeping each unique combination
λ
_{ g } intermediately fixed at the relay.
4)
Select
λ
_{ g } → min(
K
_{1}) and store it in the set C. If 
C = 1, then go to step 9 else proceed to step 5.
5)
Determine the second worst case scenarios
K
_{2}, ∀
m
_{ κ } ∈ A and ∀
λ
_{ g } ∈ C by keeping each unique combination
λ
_{ g } intermediately fixed at the relay.
6)
Select
λ
_{ g } → min(
K
_{2}) and store it in the set D. If D = 1, then go to step 9 else proceed to step 7.
7)
Determine the third worst case scenarios
K
_{3}, ∀
m
_{ κ } ∈ A and ∀
λ
_{ g } ∈ D by keeping each unique combination
λ
_{ g } intermediately fixed at the relay.
8)
Select
λ
_{ g } → min(
K
_{3}) and store it in the set E. If E = 1, then go to step 9 else arbitrarily choose any unique combination
λ
_{ g } ∈ E and proceed to step 9.
9)
The optimum combination
λ
^{ o } =
λ
_{ g } is selected. End of the algorithm.
Finally, the optimum combination
λ
^{ o } is fixed at the relay, and only the
k
_{2} information bits defined by
λ
^{ o } are further encoded using
ℛ(
r,
m) code to get the codeword
v.
The algorithm is efficient in a way that it does not require all the message blocks
\( {2}^{k_1} \) generated at the source to be considered for the algorithm search. Only the
\( \vartheta <<{2}^{k_1} \) number of message blocks, which results in codewords of minimum Hamming distance
d
_{1} at the source is considered in the design of an algorithm. The total number of elementary operations (additions and multiplications)
Θ if the algorithm converges at step 6 is as follows:
where Θ shows that the complexity to determine the optimal combination
λ
^{ o } increases with an increase in the dimension of the codes, i.e.,
k
_{1} and
k
_{2} used at the source and at the relay, respectively, and with the codeword block length
n. It should be noted that if algorithm converges at step four, then the complexity of the algorithm is obviously less than Θ and increases if algorithm does not converge at step 6. The straightforward proof of (14) is given in the
Appendix section.
$$ \Theta =S\vartheta \left[2n\left({k}_1+{k}_2\right)+N2\right] $$
(14)
For a better understanding of the proposed algorithm, we present the following illustrative example.
5.1 Example 1
Consider a RM codedcooperative scheme in which the source employs
C
_{1}(
n
_{1} = 16,
k
_{1} = 11,
d
_{1} = 4) =
ℛ(2, 4) code and the relay employs
C
_{2}(
n
_{2} = 16,
k
_{2} = 5,
d
_{2} = 8) =
ℛ(1, 4) code, and their joint coded cooperation results in a new code
\( {C}_3\subseteq {\tilde{C}}_3=\mathcal{R}\left(2,\kern0.5em 5\right) \) at the destination. The source can encode
k
_{1} = 11 message bits, and the relay can encode only
k
_{2} = 5 message bits out of
k
_{1} = 11 message bits (recovered at the relay). The selection procedure of
k
_{2} = 5 out of
k
_{1} = 11 message bits according to the proposed algorithm is explained as follows.
In the first step, we determine
A = {
m
_{ κ }} i.e., the set of all message blocks which result in the codewords of minimum Hamming distance
d
_{1} = 4 at the source. For
ℛ(2, 4) code,
ϑ = 
A = 140, this parameter can be determined using computer simulations or by using the generalized formula in [
26]. Then, according to step 2, we have
S = 462 unique combinations
λ
_{ g } = [
λ
_{1},
λ
_{2}, …,
λ
_{5}] using (13) in which 5 bit positions can be chosen out of total 11 bit positions. Let these unique combinations be stored in
B = {
λ
_{ g }}.. In the third step,
K
_{1} is determined ∀
λ
_{ g } ∈
B and the minimum number of the first worst cases is observed to be min(
K
_{1}) = 4. In the fourth step, the unique combinations which resulted in min(
K
_{1}) = 4 cases, i.e.,
λ
_{ g } → min(
K
_{1}) are stored in C as shown in Table
1.
Table 1
Pool ‘
C
’, unique combinations out of 462 combinations, which result in least number of
K
_{1}
and
K
_{2}
cases
\( {C}_3\subseteq \left\{{\tilde{C}}_3\right\} \)
Serial number

Pool ‘
C
’

K
_{ 1 }

K
_{ 2 }


Sequence of bit positions


1

6,7,8,9,10

4

30

2

6,7,8,9,11

4

24

3

6,7,810,11

4

20

4

6,7,9,10,11

4

36

5

6,8,9,10,11

4

24

6

7,8,9,10,11

4

24

The cardinality of the set
C is 
C = 6. Since, 
C > 1 we proceed to step 5. In the fifth step,
K
_{2} is determined ∀
λ
_{ g } ∈
C by keeping each
λ
_{ g } intermediately fixed at the relay and transmitting all
m
_{ κ } ∈
A. The unique combination
λ
_{ g } → min(
K
_{2}) = 20 also shown in Table
1 is stored in the set
D, where 
D = 1, therefore, we proceed to step 9, and the optimum combination
λ
^{ o } is chosen as
λ
^{ o } =
λ
_{ g } = {6, 7, 8, 10, 11} → min(
K
_{2}) = 20 and the algorithm search is terminated.
6 Average error probability
6.1 AWGN channel
In this section, we present the performance analysis of the designed code
C
_{3} under the SDMLD and over an AWGN channel. The union bound estimate of error probability per information bit
P
_{ b }(
E) for any binary linear code with code rate
R
_{ c } and dimension
k using SDMLD is given as [
36]:
where
γ
_{ b } is the signaltonoise ratio (SNR) per information bit
Q(.) is a Gaussian
Q function, and
w
_{ i } is a Hamming weight of a codeword. For probability of bit error
P
_{ b }, we substitute
P
_{ b }(
E) in the following equation:
where
N is a codeword length,
A
_{ w } is a weight enumerating factor and usually determined via exhaustive computer search. However, for RM codes,
A
_{ w } can also be determined analytically as suggested in [
26].
$$ {P}_b(E)\le {\displaystyle \sum_{i=2}^{2^k}Q\left(\sqrt{2{R}_c{w}_i{\gamma}_b}\right)} $$
(15a)
$$ {P}_b={\displaystyle \sum_{w={d}_{\min}}^N\frac{A_w}{k}{P}_b(E)} $$
(15b)
As an example, we present the performance analysis of the designed code
\( {C}_3\subseteq {\tilde{C}}_3=\mathcal{R}\left(2,\kern0.5em 5\right) \), which is joint constructed by
ℛ(2, 4) and
ℛ(1, 4) codes. To compute
P
_{ b }, we first determine the weight distribution of the code
C
_{3} via exhaustive computer search and is given as follows:
$$ \begin{array}{l}{A}_0=1,{A}_8=20,{A}_{12}=416,{A}_{16}=1,174,\\ {}{A}_{20}=416,{A}_{24}=20,{A}_{32}=1\end{array} $$
Thus, a probability of bit error
P
_{ b } for the code
C
_{3} using (15b) is given as:
$$ {P}_b=\frac{1}{k}\left(\begin{array}{c}20Q\left(\sqrt{2{R}_c{w}_8\frac{E_b}{N_0}}\right)+416Q\left(\sqrt{2{R}_c{w}_{12}\frac{E_b}{N_0}}\right)+1,174Q\left(\sqrt{2{R}_c{w}_{16}\frac{E_b}{N_0}}\right)\\ {}+416Q\left(\sqrt{2{R}_c{w}_{20}\frac{E_b}{N_0}}\right)+20Q\left(\sqrt{2{R}_c{w}_{24}\frac{E_b}{N_0}}\right)+Q\left(\sqrt{2{R}_c{w}_{32}\frac{E_b}{N_0}}\right)\end{array}\right) $$
(16)
The bound in (16) is plotted in Figure
5 along with the numerical simulation results for the code
\( {C}_3\subseteq\ {\tilde{C}}_3=\mathcal{R}\left(2,\kern0.5em 5\right) \), both results are in close agreement to each other particularly at high SNR. The BER performances of some of the wellknown RM codes such as
ℛ(2, 4),
ℛ(2, 5) and
ℛ(3, 7) [
25] are also shown in Figure
5. The idea is to show the performance of the proposed code with reference to the existing wellknown RM codes in the literature. However, the code rate is not uniform except for the
ℛ(2, 5) and
ℛ(3, 7) codes, i.e.,
R
_{ c } = 1/2, and it will not be fair to compare the BER performances of other codes with different rates. However, the code
ℛ(3, 7) with the highest
d
_{min} and information length
k outperforms all the other codes; moreover, this result is intuitive as seen from (15a) and (15b).
×
6.2 Rayleigh fading channel
In this section, we present average error probability bounds for the RMbased noncooperative and codedcooperative schemes over the fast Rayleigh fading channel. At first, we consider a noncooperative scheme, and using the techniques outlined in the available literature [
10,
36], the unconditional error probability is as follows:
$$ {P}_b(E)=\frac{1}{\pi }{\displaystyle \underset{0}{\overset{\pi /2}{\int }}}{\left(1+\frac{{\overline{\gamma}}_{SD}}{{ \sin}^2\phi}\right)}^{\mathrm{wt}\left(\left\mathbf{u}\Big\mathbf{u}+\mathbf{v}\right\right)}d\phi $$
(17)
The integral in (17) can be determined using available computer packages. Then, to determine the average error probability
P
_{ b }, we substitute
P
_{ b }(
E) in (15b). For a proposed RM codedcooperative scheme, the unconditional error probability is as follows:
$$ \begin{array}{l}{P}_b(E)=\frac{1}{\pi }{\displaystyle \underset{0}{\overset{\pi /2}{\int }}}{\left(1+\frac{{\overline{\gamma}}_{SD}}{2{ \sin}^2\phi}\right)}^{{w}_1}{\left(1+\frac{{\overline{\gamma}}_{RD}}{2{ \sin}^2\phi}\right)}^{{w}_2}d\phi \\ {}\end{array} $$
(18)
The upper bound can easily be obtained by assuming
sin
^{2}
ϕ = 1 and is given as:
$$ {P}_b(E)\le \frac{1}{2}{\left(\frac{1}{1+{\overline{\gamma}}_{SD}}\right)}^{wt\left(\mathbf{u}\right)}{\left(\frac{1}{1+{\overline{\gamma}}_{RD}}\right)}^{wt\left(\mathbf{u}+\mathbf{v}\right)} $$
(19)
From (18), it can be seen that the diversity order of the codedcooperative scheme is equal to the Hamming weight
w =
w
_{1} +
w
_{2}, which is similar to the diversity order of the noncooperative scheme. Moreover, in the case of the fast Rayleigh fading if
γ
_{ RD } =
γ
_{ SD }, then the BER performances of the codedcooperative and noncooperative schemes are identical. In the fast Rayleigh fading, the relay node can provide extra benefit only if
γ
_{ RD } >
γ
_{ SD }. However, in the case of the slow Rayleigh fading, the true significance of the relay node (or coded cooperation), i.e., the spatial diversity, is observed even if
γ
_{ RD } =
γ
_{ SD }, and the scenarios such as
γ
_{ RD } >
γ
_{ SD } can be beneficial but not mandatory. These facts are also supported with the help of MonteCarlo simulations presented in the next section.
7 Simulation results and observations
For the simulations, we consider two different cases to generalize our proposed RM codedcooperative scheme and the code design algorithm at the relay. In the first case,
ℛ(2, 4) and
ℛ(1, 4) codes are considered for encoding, and in the second case, we use
ℛ(2, 5) and
ℛ(1, 5) codes for the encoding. The Rayleigh fading channel is considered among all the communication nodes with perfect CSI known at all corresponding receivers. All transmitting nodes transmit at an equal power, and BPSK modulation is used for the transmission of a codeword over radio frequency (RF) channel. BER simulations are reported in terms of SNR per information bit, defined as
γ
_{ SD }/
R
_{ c }, where
γ
_{ SD } is the SNR per code bit between the
S
D link and
R
_{ c } is the code rate at which the source encodes message bits.
7.1 Case I
The first case employs
C
_{1} =
ℛ(2, 4), and
C
_{2} =
ℛ(1, 4) codes for encoding. In the case of coded cooperation,
C
_{1} =
ℛ(2, 4) code is used at the source and
C
_{2} =
ℛ(1, 4) code is used at the relay, and they jointly construct a new code
C
_{3} at the destination, where
\( {C}_3\subseteq {\tilde{C}}_3=\mathcal{R}\left(2,\kern0.5em 5\right) \). The source encodes
k
_{1} = 11 message bits, and the relay encodes only
k
_{2} = 5 bits, which are selected from
k
_{1} bits (decoded at the relay). The optimum bit selection rule was determined in Example 1, i.e.,
λ
^{ o } = {6, 7, 8, 10, 11}. The code rate at the source is
R
_{ c } = 11/16, and the code rate of the overall distributed code is
\( {R}_c^0=11/32 \). For case I, the source node of noncooperative scheme consists of two encoders
C
_{1} =
ℛ(2, 4) and
C
_{2} =
ℛ(1, 4). The information bit selection for encoding by the second encoder
C
_{2} =
ℛ(1, 4) is similar to the codedcooperative scheme. The direct sum of the two codewords
u +
v generated by each encoder is determined and then concatenated with the codeword
u ∈
ℛ(2, 4) resulting in the codeword 
u
u +
v ∈
C
_{3}, which is then BPSKmodulated and sent to the destination. Both codedcooperative and noncooperative schemes are compared under the condition of an equal rate (11/32) for a fair comparison. BER performance simulations for case I are presented for six different scenarios.
For the first scenario, we compare the BER performances of RM codedcooperative and noncooperative schemes over the fast Rayleigh fading channel. Ideal
S
R link
γ
_{ SR } = ∞ is assumed, and SDMLD is used at the destination. From Figure
6, it is noticed that the codedcooperative diversity scheme does not provide any additional BER performance gains over the noncooperative scheme if relay has no or 0dB gain relative to the source, i.e.,
γ
_{ SD } =
γ
_{ RD }, which should not be surprising since it is a known fact for a fast Rayleigh fading channel [
10] also shown in (17) and (19). The codedcooperative scheme outperforms the noncooperative scheme only when
γ
_{ RD } =
γ
_{ SD } + 3 dB. The theoretical and simulated performance of the designed code
C
_{3} validate each other.
×
The first scenario (with the fast Rayleigh fading channel) shows only one side of the picture and does not give insight to the concept of path diversity due to the relay node. Therefore, to show the effect of path diversity due to the relay node, we now present a second scenario, which assumes a slow Rayleigh fading channel among all the communication nodes. The BER performances of RM codedcooperative and noncooperative schemes are shown in Figure
7 over the slow Rayleigh fading channel and SDMLD decoding at the destination. It is observed that the RM codedcooperative scheme with
γ
_{ SR } = ∞,
γ
_{ SD } =
γ
_{ RD } outperforms the noncooperative scheme with a coding gain margin of more than 10 dB at BER ≈ 10
^{−5}, which improves further when
γ
_{ RD } =
γ
_{ SD } + 10 dB. This is where the true capability of the codedcooperative system comes into display, and merely constructing a good code at the destination is not enough to combat the channel fading. It is due to these joint construction and the joint decoding features of the codedcooperative scheme, which make it superior over the noncooperative alternatives.
×
The third scenario is the continuity of the second scenario with the difference that the majority logic decoding is used at the destination. The BER performances of RM codedcooperative and noncooperative schemes over a slow Rayleigh fading channel are shown in Figure
8, where the RM codedcooperative scheme with
γ
_{ SR } = ∞,
γ
_{ SD } =
γ
_{ RD } provides a coding gain of more than 5 dB at BER ≈ 10
^{−3}, which improves further when
γ
_{ RD } =
γ
_{ SD } + 10 dB.
×
In the fourth scenario, we present the effectiveness of the proposed algorithm for code design at the relay. Therefore, we present the comparison between the two RM codedcooperative schemes: in one scheme, the code at the relay is designed according to the proposed design criterion, whereas in the other scheme, the code at the relay is randomly selected; in other words, it is not necessary that it avoids the worst case scenarios. Moreover, in both of the schemes, we assume
γ
_{ RD } =
γ
_{ SD } and joint SDMLD is used at the destination and the channel is fast Rayleigh fading. It is shown in Figure
9, that the optimally designed relay provides 1.2dB gain at BER ≈ 10
^{−5} as compared to the randomly designed relay. The loss in the BER performance of randomly designed relay is obvious since the codedcooperative scheme does not achieve full diversity.
×
The fifth scenario is the most practical one for this case. In this scenario, we assume that the
S
R link is nonideal
γ
_{ SR } ≠ ∞ and
γ
_{ SD } =
γ
_{ RD }. Studies have shown that when the cooperation between the source and the relay decrease, maybe due to the noisy
S
R link, the overall BER performance of a codedcooperative scheme approaches the BER performance of a noncooperative scheme [
10,
37]. However, in most of the practical scenarios, the codedcooperative scheme outperforms its noncooperative counterparts in terms of energy consumption, coverage, and outage probability [
38]. From Figure
10, it can be seen that at
γ
_{ SR } = 8 dB, the relay is in outage, and hence, the overall BER performance of the cooperative system is significantly degraded.
×
This degradation is due to the uncontrolled error propagation at the relay. The most common remedy to control this error propagation is the utilization of cyclic redundancy check (CRC) at the relay as suggested in [
10]. Based on the CRC, the relay decides whether to participate in the cooperation or not; however, error control at the relay is beyond the scope of this paper, and interested reader is referred to [
39]. It is observed that at
γ
_{ SR } = 15 dB the performance of the codedcooperative scheme significantly improves and approaches the performance of the codedcooperative scheme with ideal
S
R link, i.e.,
γ
_{ SR } = ∞.
Finally, for the sixth scenario, we examine the performance of proposed codedcooperative scheme and noncooperative scheme based on the power consumed to achieve the same BER. The best scheme is the one that consumes less power to achieve the same BER; this type of analysis for cooperative and noncooperative systems is also presented in [
40]. Figure
11 shows a power consumption comparison between the codedcooperative scheme and the noncooperative scheme.
×
The source transmission power
P
_{ s } is used as a proxy to the SNR per bit
γ
_{ SD } and changed independently. In Figure
11, BER curves are plotted for different levels of relay transmission power
P
_{ r } = 14, 16.8, and 19 dBm. It is observed that to achieve BER ≈ 10
^{−3} the noncooperative scheme consumes
P
_{total} =
P
_{ s } = 56.2 mW, where
P
_{ total } is the total transmission power and the codedcooperative scheme consumed only
P
_{total} =
P
_{ s } +
P
_{ r } = 28.2 mW, where
P
_{ s } = 3.1 mW,
P
_{ r } = 25.1 mW. Moreover, under a total power constraint, i.e.,
P
_{total} = 56.2 mW, the codedcooperative scheme achieves BER ≈ 1.4 × 10
^{−4}. The results clearly show that the codedcooperative scheme outperforms the noncooperative scheme based on power consumption. Further, it is observed that the overall BER performance of the codedcooperative scheme improves when
P
_{ r } is increased at the relay even if the
P
_{ s } is kept fixed.
7.2 Case II
In this case, the two codes used for encoding are
C
_{1} =
ℛ(2, 5) and
C
_{2} =
ℛ(1, 5). For RM codedcooperative scheme
C
_{1} =
ℛ(2, 5) code is used at the source and
C
_{2} =
ℛ(1, 5) code is used at the relay, and at the destination, they jointly construct a new code
C
_{3}, where
\( {C}_3\subseteq {\tilde{C}}_3=\mathcal{R}\left(2,\kern0.5em 6\right) \). The source terminal encodes
k
_{1} = 16 message bits, and the relay encodes
k
_{2} = 6 message bits, which are in fact chosen according to the proposed design criterion. It is observed during the search for an optimum combination
λ
^{ o } that there are two combinations
λ
_{1} and
λ
_{2} in
D, which result in equal number of
K
_{2} worst cases where
D is:
$$ D=\left\{\begin{array}{l}{\boldsymbol{\uplambda}}_1=\left(7,8,9,11,13,14\right)\\ {}{\boldsymbol{\uplambda}}_2=\left(6,8,9,11,13,14\right)\end{array}\right. $$
(20)
Since 
D > 1, therefore we proceed to step 7 of the design algorithm. In the seventh step, we observed that again the two combinations
λ
_{1} and
λ
_{2} result in equal and minimum number of
K
_{3} worst cases. Consequently, 
E = 2 > 1 therefore, we select arbitrarily
λ
_{1} as the optimum combination, i.e.,
λ
^{ o } =
λ
_{1}. The code rate at the source is
R
_{ c } = 1/2, and the overall code rate of the codedcooperative scheme is
\( {R}_c^0=1/4 \).
For case II, the noncooperative scheme consists of two encoders
C
_{1} =
ℛ(2, 5) and
C
_{2} =
ℛ(1, 5) at the source node, and the optimum bit selection rule for the second encoder is
λ
^{ o } =
λ
_{1} also shown in (20). The direct sum of two codewords generated by the two encoders is determined as
u +
v, and concatenated with the codeword
u generated by the first encoder
C
_{1} =
ℛ(2, 5), to construct a codeword 
u
u +
v, which is then BPSKmodulated and sent to the destination. Both cooperative and noncooperative schemes are compared under the condition of an equal rate (1/4) for a fair comparison. For case II, we consider only one scenario that is the BER performance comparison of RM codedcooperative and noncooperative scheme over the slow Rayleigh fading channel with the assumptions such as
γ
_{ SR } = ∞,
γ
_{ SD } =
γ
_{ RD }, and
γ
_{ RD } =
γ
_{ SD } + 10 dB as shown in Figure
12, where the codedcooperative scheme outperforms the noncooperative scheme with a margin of more than 10 dB at BER ≈ 10
^{−5}.
×
8 Conclusions
We presented a novel RM codedcooperative diversity scheme for halfduplex wireless relay networks. The RM codedcooperative scheme clearly outperforms the RM noncooperative scheme, and comprehensive BER performance gains are observed for the SDMLD (≥10 dB) and for the majority logic decoding (≥5 dB) relative to the noncooperative schemes in Rayleigh fading channels.
The BER performance gains achieved are due to the following factors. At first, it is the joint construction of two channel codes such as
ℛ(
r + 1,
m) code (of small minimum Hamming distance
d
_{1}) used at the source and
ℛ(
r,
m) code used at the relay to construct a
ℛ(
r + 1,
m + 1) code (of large minimum Hamming distance
d
_{3}) at the destination. The second factor is the design criterion and an efficient algorithm to ensure that the jointly constructed code
C
_{3} has the better weight distribution among all the possible subcodes of the code
\( {\tilde{C}}_3 \). Thirdly, the joint decoding of the two signals received in two different time slots, transmitted at the source and the relay, provides additional coding gain. Finally, it is the path diversity provided by the relay node that contributes to improve the overall BER performance of the RM codedcooperative scheme. The performance gains achieved due to the RM codedcooperative scheme are shown with the help of numerical simulations and validated with the theoretical bounds.
In this paper, we presented only two RM codes at the source. However, the proposed methodology of coded cooperation can be extended in general to other longer length and higher order RM codes as well as to any other family of binary linear block codes. The proposed encoding scheme and code design algorithm at the relay can easily be extended to the multirelay/user and multihop systems; we leave this as our future research work. Moreover, further work is required in performing the suboptimum decoding of the jointly constructed code particularly of longer lengths.
Acknowledgements
The authors are thankful to the editor and the anonymous reviewers for their technical comments and suggestions to improve the overall quality of this manuscript
Open AccessThis article is distributed under the terms of the Creative Commons Attribution 4.0 International License (
https://creativecommons.org/licenses/by/4.0), which permits use, duplication, adaptation, distribution, and reproduction in any medium or format, as long as 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.
Appendix
To encode one message of block length
k
_{1} at the source, the number of multiplication operations performed is
\( {\varTheta}_s^{\times }={k}_1n \), where
n is the number of columns in the generator matrix employed at the source and at the relay, and the number of addition operations is
\( {\varTheta}_s^{+}=\left({k}_11\right)n \), hence, the total elementary operations involved in encoding one message block are
\( {\varTheta}_s^1={\varTheta}_s^{\times }+{\varTheta}_s^{+}=n\left(2{k}_11\right) \). Then, for
ϑ message blocks which result in the codewords of minimum Hamming distance
d
_{1} at the source, the number of elementary operations becomes:
$$ {\varTheta}_{\mathrm{source}}=\vartheta n\left(2{k}_11\right) $$
(21)
Similarly, at the relay, the total number of elementary operations to encode
ϑ message blocks each of length
k
_{2} is:
where the second part in (22) is due to the direct sum of the two codewords generated at the source and at the relay. Hence, the total number of elementary operations performed for each unique combination
λ
_{ g } intermediately fixed at the relay and ∀
m
_{ κ } ∈ A is:
$$ {\varTheta}_{\mathrm{relay}}=\vartheta n\left(2{k}_21\right)+\underset{\mathrm{Direct}\mathrm{Sum}}{\underbrace{\vartheta n}} $$
(22)
$$ \begin{array}{c}{\varTheta}^1=\vartheta n\left(2{k}_11\right)+\vartheta n\left(2{k}_21\right)+\vartheta n\\ {}=\vartheta n\left[2\left({k}_1+{k}_2\right)1\right]\end{array} $$
(23)
Thus, for
S unique combinations intermediately fixed at the relay and
ϑ message blocks, the number of elementary operations is:
$$ {\varTheta}^S=S\vartheta n\left[2\left({k}_1+{k}_2\right)1\right] $$
(24)
To determine the Hamming weight of a binary codeword 
u
u +
v of length
N,
N − 1 additions are performed. Thus, for
ϑ message blocks and
S unique combinations, the number of addition operations at the destination becomes
Sϑ(
N − 1). Finally, the total number of elementary operations is given as:
$$ \varTheta =S\vartheta \left[2n\left({k}_1+{k}_2\right)+N2\right] $$
(25)
Note:
Θ is the number of total elementary operations performed if algorithm converges at step 6 of the design algorithm.
Competing interests
The authors declare that they have no competing interests.