Add SC-LDPC Tanner Graph, fix qualitative LDPC plot, add decoding paragraph

This commit is contained in:
2026-04-08 23:58:34 +02:00
parent 1d822dac8b
commit 5c4bad30e2
2 changed files with 137 additions and 143 deletions

View File

@@ -1,4 +1,23 @@
@article{dirac_new_1939,
title = {A new notation for quantum mechanics},
volume = {35},
issn = {1469-8064, 0305-0041},
url = {https://www.cambridge.org/core/journals/mathematical-proceedings-of-the-cambridge-philosophical-society/article/abs/new-notation-for-quantum-mechanics/4631DB9213D680D6332BA11799D76AFB},
doi = {10.1017/S0305004100021162},
abstract = {In mathematical theories the question of notation, while not of primary importance, is yet worthy of careful consideration, since a good notation can be of great value in helping the development of a theory, by making it easy to write down those quantities or combinations of quantities that are important, and difficult or impossible to write down those that are unimportant. The summation convention in tensor analysis is an example, illustrating how specially appropriate a notation can be.},
language = {en},
number = {3},
urldate = {2025-11-28},
journal = {Mathematical Proceedings of the Cambridge Philosophical Society},
author = {Dirac, P. a. M.},
month = jul,
year = {1939},
note = {TLDR: In mathematical theories the question of notation is yet worthy of careful consideration, since a good notation can be of great value in helping the development of a theory, by making it easy to write down those quantities or combinations of quantities that are important, and difficult or impossible towrite down those that are unimportant.},
keywords = {/unread},
pages = {416--418},
}
@article{huang_improved_2023, @article{huang_improved_2023,
title = {Improved {Noisy} {Syndrome} {Decoding} of {Quantum} {LDPC} {Codes} with {Sliding} {Window}}, title = {Improved {Noisy} {Syndrome} {Decoding} of {Quantum} {LDPC} {Codes} with {Sliding} {Window}},
url = {http://arxiv.org/abs/2311.03307}, url = {http://arxiv.org/abs/2311.03307},
@@ -1505,7 +1524,7 @@ We study the performance of medium-length quantum LDPC (QLDPC) codes in the depo
month = may, month = may,
year = {2016}, year = {2016},
note = {ISSN: 1938-1883}, note = {ISSN: 1938-1883},
keywords = {/unread, Block codes, Complexity theory, Decoding, Iterative decoding, Sparse matrices, Throughput}, keywords = {/unread, Decoding, Complexity theory, Iterative decoding, Block codes, Sparse matrices, Throughput},
pages = {1--6}, pages = {1--6},
file = {Full Text PDF:/home/andreas/workspace/work/hiwi/Zotero/storage/TRN7GLTA/Hassan et al. - 2016 - Fully parallel window decoder architecture for spatially-coupled LDPC codes.pdf:application/pdf}, file = {Full Text PDF:/home/andreas/workspace/work/hiwi/Zotero/storage/TRN7GLTA/Hassan et al. - 2016 - Fully parallel window decoder architecture for spatially-coupled LDPC codes.pdf:application/pdf},
} }
@@ -1525,7 +1544,7 @@ We study the performance of medium-length quantum LDPC (QLDPC) codes in the depo
month = jul, month = jul,
year = {2014}, year = {2014},
note = {TLDR: This article reviews a particularly exciting new class of low-density parity check codes called spatially coupled codes, which promise excellent performance over a broad range of channel conditions and decoded error rate requirements.}, note = {TLDR: This article reviews a particularly exciting new class of low-density parity check codes called spatially coupled codes, which promise excellent performance over a broad range of channel conditions and decoded error rate requirements.},
keywords = {/unread, Block codes, Convolutional codes, Decoding, Iterative decoding, Sparse matrices}, keywords = {/unread, Decoding, Iterative decoding, Block codes, Sparse matrices, Convolutional codes},
pages = {168--176}, pages = {168--176},
file = {Full Text PDF:/home/andreas/workspace/work/hiwi/Zotero/storage/WH3R5BMN/Costello et al. - 2014 - Spatially coupled sparse codes on graphs theory and practice.pdf:application/pdf}, file = {Full Text PDF:/home/andreas/workspace/work/hiwi/Zotero/storage/WH3R5BMN/Costello et al. - 2014 - Spatially coupled sparse codes on graphs theory and practice.pdf:application/pdf},
} }

View File

@@ -122,24 +122,17 @@ An input message $\bm{u}\in \mathbb{F}_2^k$ is mapped onto a codeword $\bm{x}
\in \mathbb{F}_2^n$. This is passed on to a modulator, which \in \mathbb{F}_2^n$. This is passed on to a modulator, which
interacts with the physical channel. interacts with the physical channel.
A demodulator processes the channel output and forwards the result A demodulator processes the channel output and forwards the result
$\bm{y} \in \mathbb{R}^n$ to a decoder. $\bm{y}$ to a decoder.
We differentiate between \textit{soft-decision} decoding, where
$\bm{y} \in \mathbb{R}^n$, and \textit{hard-decision} decoding, where
$\bm{y} \in \mathbb{F}_2^n$ \cite[Sec.~1.5.1.3]{ryan_channel_2009}.
Finally, the decoder is responsible for obtaining an estimate Finally, the decoder is responsible for obtaining an estimate
$\hat{\bm{u}} \in \mathbb{F}_2^k$ of the original input message. $\hat{\bm{u}} \in \mathbb{F}_2^k$ of the original input message.
This is done by first finding an estimate $\hat{\bm{x}}$ of the sent This is done by first finding an estimate $\hat{\bm{x}}$ of the sent
codeword and undoing the encoding. codeword and undoing the encoding.
The decoding problem that we generally attempt to solve thus consists The decoding problem that we generally attempt to solve thus consists
in finding the best estimate $\hat{\bm{x}}$ given $\bm{y}$. in finding the best estimate $\hat{\bm{x}}$ given $\bm{y}$.
One approach is to use the \ac{ml} criterion \cite[Sec.
1.4]{ryan_channel_2009}
\begin{align*}
\hat{\bm{u}}_\text{ML} = \arg\max_{\bm{x} \in \mathcal{C}}
P(\bm{Y} = \bm{y} \vert \bm{X} = \bm{x})
.
\end{align*}
Finally, we differentiate between \textit{soft-decision} decoding, where
$\bm{y} \in \mathbb{R}^n$, and \textit{hard-decision} decoding, where
$\bm{y} \in \mathbb{F}_2^n$ \cite[Sec.~1.5.1.3]{ryan_channel_2009}.
%
\begin{figure}[t] \begin{figure}[t]
\centering \centering
@@ -186,7 +179,7 @@ $\bm{y} \in \mathbb{F}_2^n$ \cite[Sec.~1.5.1.3]{ryan_channel_2009}.
Shannon's noisy-channel coding theorem is stated for codes whose block Shannon's noisy-channel coding theorem is stated for codes whose block
length approaches infinity. This suggests that as the block length length approaches infinity. This suggests that as the block length
becomes larger, the performance of the considered condes should becomes larger, the performance of the considered codes should
generally improve. generally improve.
However, the size of the \ac{pcm}, and thus in general the decoding complexity, However, the size of the \ac{pcm}, and thus in general the decoding complexity,
of a linear block code grows quadratically with $n$. of a linear block code grows quadratically with $n$.
@@ -316,9 +309,10 @@ qualitative performance characteristic of an \ac{ldpc} code
\begin{axis}[ \begin{axis}[
width=12cm, width=12cm,
height=9cm, height=9cm,
xlabel={$E_b/N_0$ (dB)}, xlabel={Signal-to-noise ratio},
ylabel={\ac{ber}}, ylabel={Error rate},
xmin=0, xmax=6, % xmin=0, xmax=6,
enlarge x limits=false,
ymin=1e-9, ymax=1, ymin=1e-9, ymax=1,
ticks=none, ticks=none,
% y tick label={}, % y tick label={},
@@ -330,57 +324,51 @@ qualitative performance characteristic of an \ac{ldpc} code
legend cell align={left}, legend cell align={left},
] ]
\addplot+[mark=none, solid, thick, smooth] coordinates { \addplot+[mark=none, solid, smooth, KITblue] coordinates {
(0.0, 1.2e-1) (4.5789E-01, 1.1821E-01)
(0.3, 1.1e-1) (6.6842E-01, 9.4575E-02)
(0.5, 9e-2) (8.6316E-01, 5.2657E-02)
(0.7, 5e-2) (1.0421E+00, 2.2183E-02)
(0.8, 2e-2) (1.1789E+00, 8.3588E-03)
(0.9, 5e-3) (1.3368E+00, 1.4835E-03)
(1.0, 8e-4) (1.4895E+00, 1.6852E-04)
(1.1, 1e-4) (1.5842E+00, 2.8285E-05)
(1.2, 1.5e-5) (1.6737E+00, 4.2465E-06)
(1.3, 3e-6) (1.7684E+00, 3.4519E-07)
(1.4, 5e-7) (1.8316E+00, 3.9213E-08)
(1.5, 8e-8) (1.8684E+00, 6.2247E-09)
(1.6, 2e-8) (1.9053E+00, 1E-09)
(1.8, 8e-9)
(2.0, 5e-9)
(2.5, 3e-9)
(3.0, 2e-9)
}; };
\addlegendentry{Regular LDPC-BC} \addlegendentry{Regular}
\addplot+[mark=none, solid, thick, smooth] coordinates { \addplot+[mark=none, solid, smooth, KITorange] coordinates {
(0.0, 1.5e-1) (4.5789E-01, 1.1821E-01)
(0.3, 1.4e-1) (6.4211E-01, 4.9800E-02)
(0.5, 1.2e-1) (7.5263E-01, 1.2700E-02)
(0.6, 1.0e-1) (8.1579E-01, 2.3177E-03)
(0.7, 6e-2) (8.6842E-01, 3.5779E-04)
(0.8, 1e-2) (9.1053E-01, 5.3716E-05)
(0.85, 2e-3) (9.4737E-01, 4.8818E-06)
(0.9, 2e-4) (9.8947E-01, 6.5555E-07)
(0.95, 2e-5) (1.0421E+00, 9.5713E-08)
(1.0, 1.5e-6) % (1.0684E+00, 2.9670E-08)
(1.05, 1e-7) (1.1474E+00, 1.2499E-08)
(1.1, 1e-8) (1.3000E+00, 7.1560E-09)
(1.2, 3e-9) (1.4579E+00, 6.0535E-09)
(1.5, 1.5e-9) % (1.6105E+00, 5E-09)
(2.0, 1e-9) (1.9579E+00, 4E-09)
(2.5, 8e-10) (2.2947E+00, 3.1876E-09)
(3.0, 6e-10) % (2.8842E+00, 2.0403E-09)
}; };
\addlegendentry{Irregular LDPC-BC} \addlegendentry{Irregular}
\draw[red, thick, rounded corners=12pt] \draw[gray, densely dashed]
(axis cs:0.55, 2e-3) rectangle (axis cs:1.55, 5e-5); (axis cs:0.65, 2e-3) rectangle (axis cs:1.65, 5e-5);
\node[red, font=\small\bfseries, anchor=west] at (axis \node[below] at (axis cs:1.15, 6e-5) {Waterfall};
cs:1.6, 4e-4) {Waterfall};
\draw[red, thick, rounded corners=12pt] \draw[gray, densely dashed]
(axis cs:1.6, 8e-9) rectangle (axis cs:3.2, 4e-10); (axis cs:1, 6e-8) rectangle (axis cs:2, 2e-9);
\node[red, font=\small\bfseries, anchor=west] at (axis \node[above] at (axis cs:1.5, 7e-8) {Error floor};
cs:3.3, 2e-9) {Error floor};
\end{axis} \end{axis}
\end{tikzpicture} \end{tikzpicture}
@@ -427,16 +415,17 @@ This is achieved by connecting some \acp{vn} of one spatial position to
\begin{align*} \begin{align*}
\bm{H} = \bm{H} =
\begin{pmatrix} \begin{pmatrix}
\bm{H}_0(1) & & & & \\ \bm{H}_0(1) & & \\
\vdots & \ddots & & & \\ \vdots & \ddots & \\
\bm{H}_W(1) & & \bm{H}_0(L) & & \\ \bm{H}_W(1) & & \bm{H}_0(L) \\
& \ddots & & & \\ & \ddots & \\
& & \bm{H}_W(L) & & \\ & & \bm{H}_W(L) \\
\end{pmatrix} \end{pmatrix}
, ,
\end{align*} \end{align*}
% %
where $W \in \mathbb{N}$ is the \textit{coupling width}. where $W \in \mathbb{N}$ is the \textit{coupling width} and $L \in
\mathbb{N}$ is the number of spatial positions.
This construction results in a Tanner graph as depicted in This construction results in a Tanner graph as depicted in
\autoref{fig:sc-ldpc-tanner}. \autoref{fig:sc-ldpc-tanner}.
@@ -463,7 +452,7 @@ This construction results in a Tanner graph as depicted in
\coordinate (temp) at ($(vn01)!0.5!(vn02)$); \coordinate (temp) at ($(vn01)!0.5!(vn02)$);
\node[CN, left = of temp] (cn00) {}; \node[CN, right = of temp] (cn00) {};
\node[CN, below = of cn00] (cn01) {}; \node[CN, below = of cn00] (cn01) {};
\draw (vn00) -- (cn00); \draw (vn00) -- (cn00);
@@ -473,18 +462,18 @@ This construction results in a Tanner graph as depicted in
\draw (vn02) -- (cn01); \draw (vn02) -- (cn01);
\draw (vn04) -- (cn01); \draw (vn04) -- (cn01);
\foreach \i in {1,2,3,4} { \foreach \i in {1,2,3} {
\pgfmathtruncatemacro{\prev}{\i-1} \pgfmathtruncatemacro{\previ}{\i-1}
\node[VN, right = 25mm of vn\previ 0] (vn\i0) {};
\node[VN, right = 25mm of vn\prev 0] (vn\i0) {}; \foreach \j in {1,...,4} {
\node[VN, below = of vn\i0] (vn\i1) {}; \pgfmathtruncatemacro{\prevj}{\j-1}
\node[VN, below = of vn\i1] (vn\i2) {}; \node[VN, below = of vn\i\prevj] (vn\i\j) {};
\node[VN, below = of vn\i2] (vn\i3) {}; }
\node[VN, below = of vn\i3] (vn\i4) {};
\coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$); \coordinate (temp) at ($(vn\i1)!0.5!(vn\i2)$);
\node[CN, left = of temp] (cn\i0) {}; \node[CN, right = of temp] (cn\i0) {};
\node[CN, below = of cn\i0] (cn\i1) {}; \node[CN, below = of cn\i0] (cn\i1) {};
\draw (vn\i0) -- (cn\i0); \draw (vn\i0) -- (cn\i0);
@@ -495,12 +484,33 @@ This construction results in a Tanner graph as depicted in
\draw (vn\i4) -- (cn\i1); \draw (vn\i4) -- (cn\i1);
} }
\foreach \i in {1,2,3,4} { \node[right = 25mm of vn30] (vn40) {};
\pgfmathtruncatemacro{\prev}{\i-1} \node[below = of vn40] (vn41) {};
\node[below = of vn41] (vn42) {};
\node[below = of vn42] (vn43) {};
\node[below = of vn43] (vn44) {};
\draw (vn\prev 3) -- (cn\i 0); \coordinate (temp) at ($(vn41)!0.5!(vn42)$);
\draw (vn\prev 4) -- (cn\i 1);
\node[right = of temp] (cn40) {};
\node[below = of cn40] (cn41) {};
\foreach \i in {0,1,2} {
\pgfmathtruncatemacro{\next}{\i+1}
\pgfmathtruncatemacro{\nextnext}{\i+2}
\draw (vn\i 3) to[bend right] (cn\next 1);
\draw (vn\i 1) to[bend left] (cn\nextnext 0);
} }
\draw (vn33) to[bend right] (cn41);
\node at ($(cn40)!0.5!(cn41)$) {\dots};
\draw[decorate, decoration={brace, amplitude=10pt}]
([xshift=-5mm,yshift=2mm]vn00.north) --
([xshift=5mm,yshift=2mm]vn00.north -| cn20.north)
node[midway, above=4mm] {W};
\end{tikzpicture} \end{tikzpicture}
\caption{ \caption{
@@ -518,71 +528,36 @@ later passed to subsequent spatial positions during decoding.
This is precisely the effect that leads to the good performance of This is precisely the effect that leads to the good performance of
\ac{sc}-\ac{ldpc} codes in the waterfall region \cite{costello_spatially_2014}. \ac{sc}-\ac{ldpc} codes in the waterfall region \cite{costello_spatially_2014}.
\subsection{Belief Propagation} \subsection{Iterative Decoding}
% TODO: Add exact reference % TODO: Add exact reference
As mentioned above, \ac{ldpc} codes are generally decoded using \ac{ldpc} codes are generally decoded using efficient iterative
efficient iterative algorithms, something that is possilbe due to algorithms, something that is possilbe due to their sparsity
their sparsity \cite[\red{WHERE?}]{ryan_channel_2009}. \cite[Sec.~5.3]{ryan_channel_2009}.
Specifically, the \ac{spa} is a general decoder that provides The algorithm originally proposed for this purpose by Gallager in
near-optimal performance across many different scenarios. 1960 is now known as the \ac{spa} \cite[5.4.1]{ryan_channel_2009},
Often, the term \ac{bp} is used to denote a whole class of variants also called \ac{bp}.
of the \ac{spa}, e.g., the \ac{nms} algorithm.
% % - SPA uses symbol-wise MAP as decision criterion for each symmbol
% Preliminaires (LLRs, etc.) % - Optimal when Tanner graph is a tree, suboptimal with cycles
% % - Use of LLRs instead of probabilties directly
% - Actual algorithm
% - CNs: single parity-check codes; VNs: repetition codes
% - Algorithm
% TODO: Make this about the SPA or message passing decoders in general? % Min-sum algorithm
The \ac{spa} approximates the marginals of the % Approximation of CN update by min sum operation
probability distributions of the \acp{vn} by passing
\textit{messages} along the edges of the Tanner graph \red{[CITATION]}.
The messages take the form of \acp{llr}
%
% TODO: Proper LLR equation
\begin{align*}
L(x) = \log\left( \frac{P(X=0)}{P(X=1)} \right)
.%
\end{align*}
%
\noindent\red{[LLRs]}
% For \ac{sc}-\ac{ldpc} codes, the iterative decoding procedure is wrapped by a
% SPA equations windowing step. This is done to reduce the latency and memory and
% also the overall computational complexity \cite{costello_spatially_2014}.
To this end, the \ac{pcm} is split into several overlapping windows.
During decoding, the messages that are passed along the edges of the
graph in the overlapping regions are kept in memory and used for the
decoding of subsequent blocks \cite[Sec.~III~C.]{costello_spatially_2014}.
\noindent\red{[SPA]} % BP for SC-LDPC codes
% Windowed decoding
%
% NMS equations
%
\noindent\red{[NMS]}
%
% SC-LDPC decoding
%
\noindent\red{[BP for SC-LDPC codes]}
\red{
\begin{itemize}
\item SPA and NMS algorithms
% TODO: Would it be better to split this into a separate section?
\item Sliding-window decoding of SC-LDPC codes
\cite{costello_spatially_2014} \cite{hassan_fully_2016}
\begin{itemize}
\item Windowed decoding
\item The core property of SC-LDPC decoders is the
passing of reliability information (in the form
of LLRs, i.e., soft information) from one window
to the next.
This way, the highly reliable information from
the initial windows is passed on to subsequent
windows \cite{costello_spatially_2014}.
\end{itemize}
\end{itemize}
}
\section{Quantum Mechanics and Quantum Information Science} \section{Quantum Mechanics and Quantum Information Science}
\label{sec:Quantum Mechanics and Quantum Information Science} \label{sec:Quantum Mechanics and Quantum Information Science}