1
$\begingroup$

I am working with the 5G NR polar code and have implemented the CRC-Aided Successive Cancellation List decoder based on this paper (Tal et al. 2012).

As my decoder is only used to decode a limited number of message length (code dimension) and code rate, it has been optimized in many ways to speed up the processing time.

Everything is perfect until one day, I learn that abut half of the bits of the messages are known (specifically, set to $0$). This is equivalent to reduce the code dimension by a factor of two, or double the real coderate.

To write it down mathematically, for a given code dimension $k$ and coderate $k/n$, codeword $\mathbf{c}$ (an $n\times 1$ vector) is generated by the generating matrix $\mathbf{G}$ (an $n\times k$ matrix) from message $\mathbf{m}$ (an $k\times 1$ vector):

$$\mathbf{c} = \mathbf{G} \mathbf{m} = [\mathbf{g_1} \mathbf{g_2} ... \mathbf{g_j} ... \mathbf{g_{j+\alpha-1}} ... \mathbf{g_k}] \times \begin{bmatrix}m_1\\m_2\\...\\m_j\\...\\m_{j+\alpha-1}\\...\\m_k\end{bmatrix}\tag{1}$$

where $m_j=m_{j+1}=...=m_{j+\alpha-1} = 0$. Then (1) is equivalent to

$$\mathbf{c} = \mathbf{G'} \mathbf{m'} = [\mathbf{g_1} \mathbf{g_2} ... \mathbf{g_{j-1}} \mathbf{g_{j+\alpha}} ... \mathbf{g_k}] \times \begin{bmatrix}m_1\\m_2\\...\\m_{j-1}\\m_{j+\alpha}\\...\\m_k\end{bmatrix}\tag{2}$$

where $\mathbf{G'}$ is an $n\times (k-\alpha)$ matrix, and $\mathbf{m'}$ is an $(k-\alpha) \times 1$ vector.

The optimal way should be implementing a decoder for the check matrix $\mathbf{H}'$ of (2). However, because I have spent months to optimize my decoder implemented for the check matrix $\mathbf{H}$ of (1), is there any way to reuse it?

I am thinking about some ways to transform the received soft-bit codeword to take into account the known bits of the associated message.

(The question is specifically about the 5G NR polar code family and its decoder. But as I focus on a fixed code dimension and code rate, I believe this is applicable for any linear block code).

$\endgroup$
0

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.