Complete first draft of warm-start sliding-window decoding section

This commit is contained in:
2026-05-03 01:11:22 +02:00
parent 5fabe2e146
commit 72461fe555

View File

@@ -724,21 +724,20 @@ structure by passing soft information from earlier to later spatial positions.
% Passing messages requires messages % Passing messages requires messages
% TODO: Move this to the intro?
The act of passing messages from one window to the next requires The act of passing messages from one window to the next requires
there being messages at the end of decoding that are still relevant there being messages after completing decoding of one window that are
to the decoding process. still relevant to the decoding of the next.
This somewhat limits the variety of inner decoders the warm-start This may somewhat limit the variety of \emph{inner decoders}, i.e.,
the decoders decoding the individual windows, the warm-start
initialization can be used with. initialization can be used with.
E.g., \ac{bp}+\ac{osd} does not immediately seem suitable, though E.g., \ac{bp}+\ac{osd} does not immediately seem suitable, though
this remains to be investigated. this remains to be investigated.
\red{[Something general about the available decoders]} We chose to investigate first plain \ac{bp} due to its simplicity and
\red{[Define inner decoder]} then \ac{bpgd} because of the availability of recently computed messages.
% Proposed modification: Mathematical definition % TODO: Include this?
% \content{Mention that our own work ties into the bottom category in
\content{Mention that our own work ties into the bottom category in % \Cref{fig:literature}}
\Cref{fig:literature}}
%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%
\subsection{Warm Start For Belief Propagation Decoding} \subsection{Warm Start For Belief Propagation Decoding}
@@ -861,7 +860,7 @@ this remains to be investigated.
\caption{ \caption{
\red{Visualization of the messages used for the \red{Visualization of the messages used for the
initialization of the next window.} initialization of the next window under BP decoding.}
\Acfp{vn} are represented using green circles while \acfp{cn} \Acfp{vn} are represented using green circles while \acfp{cn}
are represented using blue squares. are represented using blue squares.
} }
@@ -877,12 +876,14 @@ we perform a \emph{warm start} by initializing the messages in the
overlapping region to the values last held during the decoding of the overlapping region to the values last held during the decoding of the
previous window. previous window.
% Practical realization: Problem with naive approach
To see how we realize this in practice, we reiterate the steps of the To see how we realize this in practice, we reiterate the steps of the
\ac{bp} algorithm \ac{bp} algorithm
\begin{align} \begin{align}
\label{eq:init} \label{eq:init}
\text{Initialization: } & L_{i \rightarrow j} = \tilde{L}_i \\[3mm] \text{Initialization: } & L_{i \rightarrow j} = \tilde{L}_i \\[3mm]
\text{\ac{cn} Update (Sum-Product): }& \text{\ac{cn} Update (SPA): }&
\displaystyle L_{i \leftarrow j} = \displaystyle L_{i \leftarrow j} =
2\cdot(-1)^{s_j}\cdot\tanh^{-1} 2\cdot(-1)^{s_j}\cdot\tanh^{-1}
\!\left( \!\left(
@@ -891,8 +892,8 @@ To see how we realize this in practice, we reiterate the steps of the
\right) \\[3mm] \right) \\[3mm]
\text{\ac{cn} Update (Min-Sum): }& \text{\ac{cn} Update (Min-Sum): }&
\displaystyle L_{i \leftarrow j} = (-1)^{s_j}\cdot \prod_{i' \displaystyle L_{i \leftarrow j} = (-1)^{s_j}\cdot \prod_{i'
\in \mathcal{N}(j)\setminus i} \sign \left( L_{i' \rightarrow j} \in \mathcal{N}(j)\setminus \{i\}} \sign \left( L_{i' \rightarrow j}
\right) \cdot \min_{i' \in \mathcal{N}(j)\setminus i} \lvert \right) \cdot \min_{i' \in \mathcal{N}(j)\setminus \{i\}} \lvert
L_{i'\rightarrow j} \rvert \\[3mm] L_{i'\rightarrow j} \rvert \\[3mm]
\label{eq:vn_update} \label{eq:vn_update}
\text{\ac{vn} Update: } & \displaystyle L_{i \rightarrow j} = \text{\ac{vn} Update: } & \displaystyle L_{i \rightarrow j} =
@@ -921,6 +922,8 @@ This means that simply initializing the edges in the overlap region
with the exising $L_{i\rightarrow j}$ messages and starting the with the exising $L_{i\rightarrow j}$ messages and starting the
decoding of the next window with a \ac{cn} update is not enough. decoding of the next window with a \ac{cn} update is not enough.
% Practical realization: working approach
We can resolve this issue by initializing the edges using the existing We can resolve this issue by initializing the edges using the existing
\ac{cn} to \ac{vn} messages $L_{i\leftarrow j}$ and beginning the \ac{cn} to \ac{vn} messages $L_{i\leftarrow j}$ and beginning the
decoding of the next window with a \ac{vn} update instead. decoding of the next window with a \ac{vn} update instead.
@@ -928,6 +931,8 @@ This way, we recompute the existing $L_{i\rightarrow j}$ messages and
additionally compute the messages crossing the window boundary. additionally compute the messages crossing the window boundary.
We can then continue decoding the next window as usual. We can then continue decoding the next window as usual.
% Practical realization: Simplification of algorithm
We can further simplify the algorithm. We can further simplify the algorithm.
Looking carefully at \Cref{eq:vn_update} we notice that when the Looking carefully at \Cref{eq:vn_update} we notice that when the
\ac{cn} to \ac{vn} messages $L_{i\leftarrow j}$ have been zero-initialized, \ac{cn} to \ac{vn} messages $L_{i\leftarrow j}$ have been zero-initialized,
@@ -954,7 +959,7 @@ Note that the decoding procedure performed on the individual windows
% tex-fmt: off % tex-fmt: off
\tikzexternaldisable \tikzexternaldisable
\begin{algorithm}[t] \begin{algorithm}[t]
\caption{Sliding-window belief propagation (BP) decoding algorithm with warm-start.} \caption{Sliding-window belief propagation (BP) decoding algorithm with warm start.}
\label{alg:warm_start_bp} \label{alg:warm_start_bp}
\begin{algorithmic}[1] \begin{algorithmic}[1]
\State \textbf{Initialize:} $\hat{\bm{e}}^\text{total} \leftarrow \bm{0}$ \State \textbf{Initialize:} $\hat{\bm{e}}^\text{total} \leftarrow \bm{0}$
@@ -988,14 +993,25 @@ Note that the decoding procedure performed on the individual windows
\subsection{Warm Start for Belief Propagation with Guided Decimation Decoding} \subsection{Warm Start for Belief Propagation with Guided Decimation Decoding}
\label{subsec:Warm-Start Belief Propagation with Guided Decimation Decoding} \label{subsec:Warm-Start Belief Propagation with Guided Decimation Decoding}
% Intro % Intro: Recap of BPGD
\content{Call back to previous paragraph: BPGD is one option where We now direct our attention at using \ac{bpgd} as an inner decoder.
relevant messages are available} Recall that for \ac{bpgd}, after a number $T \in \mathbb{N}$ of
\content{Modified structure of BPGD $\rightarrow$ In addition to iterations we decimate
messages, pass decimation info} the most reliable \ac{vn}, meaning we perform a hard decision and
\content{(?) Explicitly mention decimation info = channel llrs?} remove it from the following decoding process.
\content{(?) Algorithm}
This means that when moving from one window to the next, we now have
more information available: not just the \ac{bp} messages but also the
information about what \acp{vn} were decimated and to what values.
We call this \emph{decimation information} in the following.
We can extend \Cref{alg:warm_start_bp} by additionally passing the
decimation information after initializing the \ac{cn} to \ac{vn} messages.
\Cref{fig:messages_decimation_tanner} visualizes this process.
% TODO: Do this in the fundamentals chapter. Then write a proper
% algorithm for warm-start sliding-window decoding with BPGD as well
%\content{(?) Explicitly mention decimation info = channel llrs?}
\begin{figure}[t] \begin{figure}[t]
\centering \centering
@@ -1125,12 +1141,45 @@ messages, pass decimation info}
\end{tikzpicture} \end{tikzpicture}
\caption{ \caption{
Visualization of the messages and decimation information used for the \red{Visualization of the messages and decimation information
initialization of the next window. used for the
initialization of the next window under \ac{bpgd} decoding}.
\Acfp{vn} are represented using green circles while \acfp{cn}
are represented using blue squares.
} }
\label{fig:messages_decimation_tanner} \label{fig:messages_decimation_tanner}
\end{figure} \end{figure}
% % tex-fmt: off
% \tikzexternaldisable
% \begin{algorithm}[t]
% \caption{Sliding-window decoding algorithm with warm start for generic inner decoder.}
% \label{alg:warm_start_general}
% \begin{algorithmic}[1]
% \State \textbf{Initialize:} $\hat{\bm{e}}^\text{total} \leftarrow \bm{0}$
% \State \textbf{Initialize:} $L_{i\leftarrow j} = 0
% ~\forall~ i\in \mathcal{I}, j\in \mathcal{J}$
% \For{$\ell = 0, \ldots, n_\text{win}-1$}
% \State Obtain $\hat{\bm{e}}^{(\ell)}$ from inner decoder
% \State $\displaystyle\left(\hat{\bm{e}}^\text{total}\right)_{\mathcal{I}^{(\ell)}_\text{commit}} \leftarrow \hat{\bm{e}}^{(\ell)}_\text{commit}$
% \State $\displaystyle\left(\bm{s}\right)_{\mathcal{J}_\text{overlap}^{(\ell)}}
% \leftarrow \bm{H}_\text{overlap}^{(\ell)}
% \left( \hat{\bm{e}}_\text{commit}^{(\ell)} \right)^\text{T}$
% \If{$\ell < n_\text{win} - 1$}
% \State $L^{(\ell+1)}_{i\leftarrow j} \leftarrow
% L^{(\ell)}_{i\leftarrow j}
% ~\forall~ i \in \mathcal{I}_\text{overlap}^{(\ell)},
% j \in \mathcal{J}_\text{overlap}^{(\ell)}$
% \EndIf
% \EndFor
% \State \textbf{return} $\hat{\bm{e}}$
% \end{algorithmic}
% \end{algorithm}
% \tikzexternalenable
% % tex-fmt: on
%
% \content{Make algorithm 4 specific to BPGD?}
\section{Numerical Results} \section{Numerical Results}
\label{sec:Numerical Results} \label{sec:Numerical Results}