In time slot 1, the source utilizes RS code
\(RS_1 (N,K_1)\) of dimension
\(K_1\) and length
N over GF(
\(2^{n}\)) (
\(n=1, 2,\cdots\)) to encode the non-binary information sequence
\({\textbf {m}}_1\), where each element in GF(
\(2^n\)) can be denoted as a binary vector with length
n. The RS code
\(RS_1\) has code rate
\(R_1=K_1/N\) and generator polynomial
\({\textbf {g}}_1 (X)=(X-\beta )(X-\beta ^{2} )\cdots (X-\beta ^{N-K_1})\), where
\(\beta ^{f_1}\in\) GF(
\(2^n\)) are the roots of
\({\textbf {g}}_1 (X)\) for
\(f_1\in \{1,2,\cdots ,N-K_1\}\). Then, the codeword polynomial
\({\textbf {c}}_1 (X)\) of systematic codeword
\({\textbf {c}}_1\) is expressed as
$$\begin{aligned} {\textbf {c}}_1(X) = X^{N-K_1}{} {\textbf {m}}_1(X)+{\textbf {p}}_1(X) \end{aligned}$$
(1)
where the expression
\({\textbf {m}}_1(X)=m_0^{(1)}+m_1^{(1)} X+\cdots +m_{K_1-1}^{(1)} X^{K_1-1}\) with
\(m_{i_1}^{(1)}\in\) GF(
\(2^n\))
\((i_1=0,1,\cdots ,K_1-1)\) is the polynomial representation of message sequence
\({\textbf {m}}_1\), and
\({\textbf {c}}_1 (X)=c_0^{(1)}+c_1^{(1)} X+\cdots +c_{N-1}^{(1)} X^{N-1}\) with
\(c_{l_1}^{(1)}\in\) GF(
\(2^n\))
\((l_1=0,1,\cdots ,N-1)\). Furthermore,
\({{\textbf {p}}}_1 (X)=p_0^{(1)}+p_1^{(1)} X+\cdots +p_{N-K_1-1}^{(1)} X^{N-K_1-1}\) having
\(p_{\zeta _1}^{(1)}\in\) GF(
\(2^n\))
\((\zeta _1=0,1,\cdots ,N-K_1-1)\) is the parity polynomial and can be computed using polynomial division in GF(
\(2^n\)) such as
$$\begin{aligned} {\textbf {p}}_1 (X)=X^{N-K_1}{} {\textbf {m}}_1 (X)/{\textbf {g}}_1(X) \end{aligned}$$
(2)
The codeword polynomial
\({\textbf {c}}_1(X)\) can be represented in sequence form, i.e.,
\({\textbf {c}}_1=[c_0^{(1)},c_1^{(1)},\cdots ,c_{N-1}^{(1)}]=[{\textbf {p}}_1,{\textbf {m}}_1]\), where the expressions
\({\textbf {p}}_1=[p_0^{(1)},p_1^{(1)},\cdots ,p_{N-K_1-1}^{(1)}]\) and
\({\textbf {m}}_1=[m_0^{(1)},m_1^{(1)},\cdots ,m_{K_1-1}^{(1)}]\) are the parity and message symbol sequences, respectively. Since RS code is a non-binary MDS code, the minimum distance of RS code
\(RS_1\) is exactly expressed as
\(d_1=N-K_1+1\). In the following, the binary vector
\({\textbf {c}}'=[c_0',c_1',\cdots ,c_{n-1}']\) representation for each codeword symbol
\(c_{l_1}^{(1)}\) is partitioned into two parts. The first
\(n_a=\textrm{log}_2\) (
\(N_{\textrm{t}}\)) bits of
\({\textbf {c}}'\) are given into the antenna mapper to select one active transmit antenna index labeled by
\(a_S (\tau _1)\in \left\{ 1,2,\ldots ,N_{\textrm{t}} \right\}\), where
\(\tau _1 \in \{0,1,\cdots ,N-1\}\). The remaining
\(n_c=n-n_a={\textrm{log}}_2\)(
M) bits are sent to the signal mapper that outputs an
M-QAM/PSK modulated symbol
\(c_S (\tau _1) \in \varLambda\) with
\(\varLambda\) being the signal constellation. Through SM, the modulated symbol
\(c_{S} (\tau _1)\) is transmitted at the
\(a_S (\tau _1 )\)th antenna, and the transmission vector
\({\textbf {x}}_S (\tau _1 )=[\cdots ,0,c_S (\tau _1 ),0,\cdots ]^T\) is generated, where
\([\cdot ]^T\) denotes the transpose of a vector or matrix. For illustration, Table
1 exhibits different mapping results of SM scheme with code over GF(
\(2^4\)), where the product of
\(N_{\mathrm{{t}}}\) and
M is equal to 16, i.e.,
\(MN_{\mathrm{{t}}}=16\). In Table
1, the notation
\(\alpha\) is a primitive element of GF(
\(2^4\)). Accordingly,
\(\alpha ^{-\infty }\triangleq {0},\alpha ^0=1, \alpha ,\cdots ,\alpha ^{14}\) constitute all the elements of GF(
\(2^4\)). In fact, various finite fields possess different communication scenarios under various combinations of
\(N_{\mathrm{{t}}}\) and
M. These communication scenarios with RS code over GF(
\(2^3\)), GF(
\(2^4\)),
GF(
\(2^5\)) and GF(
\(2^6\)) are given in Table
2, respectively. At the relay and destination nodes, the received signals
\({\textbf {y}}_{S,R}(\tau _1)\) and
\({\textbf {y}}_{S,D}(\tau _1)\) are separately mathematically written as
$$\begin{aligned} {\textbf {y}}_{S,R}(\tau _1 )&={\textbf {H}}_{S,R}{} {\textbf {x}}_S(\tau _1)+{\textbf {n}}_{S,R}(\tau _1)\nonumber \\&={\textbf {h}}_{S,R}^{a_S (\tau _1)}c_S (\tau _1 )+{\textbf {n}}_{S,R}(\tau _1 ) \end{aligned}$$
(3)
$$\begin{aligned} {\textbf {y}}_{S,D}(\tau _1 )&={\textbf {H}}_{S,D}{} {\textbf {x}}_S(\tau _1)+{\textbf {n}}_{S,D}(\tau _1)\nonumber \\&={\textbf {h}}_{S,D}^{a_S (\tau _1)}c_S (\tau _1)+{\textbf {n}}_{S,D}(\tau _1 ) \end{aligned}$$
(4)
where
\({\textbf {H}}_{S,R}\) and
\({\textbf {n}}_{S,R}(\tau _1)\) in (
3) separately denote the
\(N_{\mathrm{{t}}}\times N_{\mathrm{{t}}}\) channel matrix and
\(N_{\mathrm{{t}}}\times 1\) noise vector, and their entries separately follow complex Gaussian distribution
CN(0, 1) and
\(CN(0,N_0)\) with
\(N_0\) being the noise power spectral density.
\({\textbf {H}}_{S,D}\) and
\({\textbf {n}}_{S,D}(\tau _1)\) in (
4) are defined like
\({\textbf {H}}_{S,R}\) and
\({\textbf {n}}_{S,R}(\tau _1)\) in (
3), respectively. Furthermore,
\({\textbf {h}}_{S,R}^{a_S (\tau _1)}\) and
\({\textbf {h}}_{S,D}^{a_S (\tau _1)}\) stand for the
\(a_S (\tau _1)\)th columns of channel matrices
\({\textbf {H}}_{S,R}\) and
\({\textbf {H}}_{S,D}\), respectively. The relay node then performs the SM demodulation [
18] for antenna index
\(a_S (\tau _1)\) and modulated signal
\(c_S (\tau _1)\).
In time slot 2, the demodulated sequence
\(\tilde{{\textbf {c}}} _1\) is given into the
\(RS_1\) decoder to generate the estimated information sequence
\({\textbf {m}}_1\). The sequence
\({\textbf {m}}_2\) is then selected from
\({\textbf {m}}_1\) and again encoded by the RS code
\(RS_2 (N,K_2)\) of dimension
\(K_2\) and length
N over GF(
\(2^n\)). The RS code
\(RS_2\) has the minimum distance
\(d_2=N-K_2+1\). After the encoding of RS code
\(RS_2\), the generated non-binary systematic codeword
\({\textbf {c}}_2=[{\textbf {p}}_2,{\textbf {m}}_2]\) is sent to the SM mapper that provides the transmission vector
\({\textbf {x}}_R (\tau _2 )=[\cdots ,0,c_R (\tau _2 ),0,\cdots ]^T\) with
\(\tau _2\in \{0,1,\cdots ,N-1\}\), where the modulated symbol
\(c_R (\tau _2 )\) is conveyed at the
\(a_R (\tau _2)\)th antenna. The received signal
\({\textbf {y}}_{R,D} (\tau _2)\) at the destination node is mathematically modeled as
$$\begin{aligned} {\textbf {y}}_{R,D}(\tau _2 )&={\textbf {H}}_{R,D}{} {\textbf {x}}_R(\tau _2)+{\textbf {n}}_{R,D}(\tau _2)\nonumber \\&={\textbf {h}}_{R,D}^{a_R(\tau _2)}c_R(\tau _2)+{\textbf {n}}_{R,D}(\tau _2) \end{aligned}$$
(5)
where the definitions of
\({\textbf {H}}_{R,D}\) and
\({\textbf {n}}_{R,D}(\tau _2)\) are similar to
\({\textbf {H}}_{S,R}\) and
\({\textbf {n}}_{S,R}(\tau _1)\) in (
3), respectively.
\({\textbf {h}}_{R,D}^{a_R(\tau _2)}\) denotes the
\(a_R(\tau _2)\)th column of the channel matrix
\({\textbf {H}}_{R,D}\). Afterward, the spatial demodulation is utilized to detect the received sequences during their respective time slots. Finally, the joint decoding is performed to generate the estimated information sequence
\(\bar{{\textbf {m}}}_1\) of
\({\textbf {m}}_1\) transmitted at the source node.
As mentioned earlier, the generated codeword belongs to the subcode of
C of
\(\bar{C}\). It should be noted that the codeword with weight
\(d_1\) is likely to occur. This is due to the worst scenario that zero weight codeword is generated at the relay when the codeword with weight
\(d_1\) is produced at the source node. Therefore, the design criterion of an optimized subcode is to avoid large number of worst scenarios, which implies
\({\textbf {m}}_2\) must be suitably selected from
\({\textbf {m}}_1\) at the relay. The detailed optimized subcode design approaches by properly selecting information at the relay are given in Sect.
4.
Table 1
Different mapping results of SM scheme with code over GF(\(\varvec{2^{4}}\))
0 | \((0\quad 0\quad 0\quad 0)\) | \((1,-3+i)\) | \((1,-1-i)\) | \((1,-1)\) |
1 | \((1\quad 0\quad 0\quad 0)\) | \((2,-3+i)\) | \((3,-1-i)\) | \((5,-1)\) |
\(\alpha\) | \((0\quad 1\quad 0\quad 0)\) | \((1,3+i)\) | \((2,-1-i)\) | \((3,-1)\) |
\(\alpha ^2\) | \((0\quad 0\quad 1\quad 0)\) | \((1,-1+i)\) | \((1,1-i)\) | \((2,-1)\) |
\(\alpha ^3\) | \((0\quad 0\quad 0\quad 1)\) | \((1,-3-i)\) | \((1,-1+i)\) | (1, 1) |
\(\alpha ^4\) | \((1\quad 1\quad 0\quad 0)\) | \((2,3+i)\) | \((4,-1-i)\) | \((7,-1)\) |
\(\alpha ^5\) | \((0\quad 1\quad 1\quad 0)\) | \((1,1+i)\) | \((2,1-i)\) | \((4,-1)\) |
\(\alpha ^6\) | \((0\quad 0\quad 1\quad 1)\) | \((1,-1-i)\) | \((1,1+i)\) | (2, 1) |
\(\alpha ^7\) | \((1\quad 1\quad 0\quad 1)\) | \((2,3-i)\) | \((4,-1+i)\) | (7, 1) |
\(\alpha ^8\) | \((1\quad 0\quad 1\quad 0)\) | \((2,-1+i)\) | \((3,1-i)\) | \((6,-1)\) |
\(\alpha ^9\) | \((0\quad 1\quad 0\quad 1)\) | \((1,3-i)\) | \((2,-1+i)\) | (3, 1) |
\(\alpha ^{10}\) | \((1\quad 1\quad 1\quad 0)\) | \((2,1+i)\) | \((4,1-i)\) | \((8,-1)\) |
\(\alpha ^{11}\) | \((0\quad 1\quad 1\quad 1)\) | \((1,1-i)\) | \((2,1+i)\) | (4, 1) |
\(\alpha ^{12}\) | \((1\quad 1\quad 1\quad 1)\) | \((2,1-i)\) | \((4,1+i)\) | (8, 1) |
\(\alpha ^{13}\) | \((1\quad 0\quad 1\quad 1)\) | \((2,-1-i)\) | \((3,1+i)\) | (6, 1) |
\(\alpha ^{14}\) | \((1\quad 0\quad 0\quad 1)\) | \((2,-3-i)\) | \((3,-1+i)\) | (5, 1) |
Table 2
Different communication scenarios with RS code over various Galois fields
\(\textrm{GF}(2^3)\) | 2 | 4 |
4 | 2 |
\(\textrm{GF}(2^4)\) | 2 | 8 |
4 | 4 |
8 | 2 |
\(\textrm{GF}(2^5)\) | 2 | 16 |
4 | 8 |
8 | 4 |
16 | 2 |
\(\textrm{GF}(2^6)\) | 2 | 32 |
4 | 16 |
8 | 8 |
16 | 4 |
32 | 2 |