# Multilevel Coding for the Full-Duplex Decode-Compress-Forward Relay Channel
## 3 Decode-Compress-Forward
### Discrete Memoryless Full-Duplex Relay  
Block Markov encoding for decode-compress forward is shown in Figure 3 over four transmission blocks. In each transmission block, the source and the relay send a compress-forward component that is superimposed on a decode-forward component. A detailed system design and analysis is explained as follows:  
In \(g\) transmission blocks, a sequence of \((g-1)\) i.i.d. messages \(W_{j}\in[1:2^{nR}],j\in[1:g-1]\) is transmitted. Each message \(W_{j}\) is split into two messages \(W_{dj}\in[1:2^{nR_{d}}]\) and \(W_{cj}\in[1:2^{nR_{c}}]\) for \(j\in[1:g-1]\). This implies that \(R=R_{d}+R_{c}\), where \(R\) is the total rate, and \(R_{d}\), \(R_{c}\), respectively, indicate the rate carried by decode-forward and compress-forward components of signaling. Figure 2: MLC and multi-stage decoding in the point to point channel. **Codebook generation:**  
For each block \(j\in[1:g]\), randomly and independently generate \(2^{nR_{d}}\) sequences \(U^{n}_{2d}(w_{d(j-1)})\) according to  
\[\prod_{i=1}^{n}P_{U_{2d}}(u_{2 di}).\]  
For each \(w_{d(j-1)}\in[1:2^{nR_{d}}]\), randomly and conditionally independently generate \(2^{nR^{\prime}}\) sequences \(X^{n}_{2}(l_{j-1}|w_{d(j-1)}),l_{j-1}\in[1:2^{nR^{\prime}}]\), each according to  
\[\prod_{i=1}^{n}P_{X_{2}|U_{2d}}(x_{2i}|u_{2 di}(w_{d(j-1)})).\]  
For each \(l_{j-1}\in[1:2^{nR^{\prime}}]\), randomly and conditionally independently, generate \(2^{nR^{\prime\prime}}\) sequences \(\hat{Y}^{n}_{2}(k_{j}|l_{j-1}),k_{j}\in[1:2^{nR^{\prime\prime}}]\) each according to  
\[\prod_{i=1}^{n}P_{\hat{Y}_{2}|X_{2i}}(\hat{y}_{2i}|x_{2i}(l_{j-1}|w_{d(j-1)}).\]  
\(R^{\prime\prime}\) represents the compression rate at the relay. In addition, for each \(w_{d(j-1)}\), randomly and conditionally independently generate \(2^{nR_{d}}\) sequences \(U^{n}_{1d}(w_{dj}|w_{d(j-1)}),w_{dj}\in[1:2^{nR_{d}}]\), each according to  
\[\prod_{i=1}^{n}P_{U_{1d}|U_{2d}}(u_{1 di}|u_{2 di}(w_{d(j-1)})).\]  
Finally, for each pair of messages \(w_{d(j-1)}\) and \(w_{dj}\), randomly and conditionally independent generate \(2^{nR_{c}}\) sequences \(X^{n}_{1}(w_{cj}|w_{d(j)},w_{d(j-1)})\), each according to  
\[\prod_{i=1}^{n}P_{X_{1}|U_{2d},U_{1d}}(x_{1i}|u_{2 di}(w_{d(j-1)}),u_{1 di}(w_{d (j-1)})).\]  
This defines the codebooks  
\[\mathcal{C}_{j}=\{x^{n}_{1}(w_{cj}|w_{dj},w_{d(j-1)}),x^{n}_{2}(l_{j}|w_{d(j-1 )})\},\quad j\in[1:g].\]  
Figure 3: Decode-Compress-Forward transmission over four transmission blocks. **The source node:**  
In block \(j\), the pair of messages \(w_{dj}\) and \(w_{cj}\) are to be transmitted. The encoder at the source node chooses \(x_{1}(w_{cj}|w_{dj},w_{d(j-1)})\) from codebook \(\mathcal{C}_{j}\). The messages of the last block are considered to be \(w_{cg}=w_{dg}=1\). **The relay node:**  
The decoding phase of the relay uses typicality decoding as follows: first, assume that \(\tilde{w}_{d0}=1\). Second, at the end of block \(j\), the relay finds a unique \(\tilde{w}_{dj}\) such that  
\[(x_{1}^{n}(w_{cj}|\tilde{w}_{dj},\tilde{w}_{d(j-1)}),x_{2}^{n}(l_{j-1}|\tilde{ w}_{d(j-1)}),y_{2}^{n}(j))\in\mathcal{T}_{\epsilon}^{(n)}\]  
for any \(w_{cj}\), where \(\mathcal{T}_{\epsilon}^{(n)}\) denotes the jointly typical sets of the corresponding random variables. The relay then finds \(k_{j}\) such that  
\[\big{(}y_{2}^{n}(j),\hat{y}_{2}^{n}(k_{j}|l_{j-1}),x_{2}^{n}(l_{j-1})\big{)} \in\mathcal{T}_{\epsilon}^{(n)},\]  
and if there is more than one \(k_{j}\), the relay selects one at random and if the relay does not find any \(k_{j}\), then, it selects one uniformly at random from \([1:2^{nR^{\prime\prime}}]\). Based on \(k_{j}\), the relay determines \(l_{j}\) as it is the bin index of \(k_{j}\). In the transmission phase, in block \(j\), the relay chooses \(x_{2}(l_{j-1}|w_{d(j-1)})\) from codebook \(\mathcal{C}_{j}\). **The destination node:**  
The destination uses backward decoding, so it waits until the reception of the \(g\) blocks and then starts decoding from the last block and successively toward the first block.