Compare commits

..

3 Commits
v1.0 ... main

Author SHA1 Message Date
33adff898f Fix mistage in README.md 2024-06-21 00:38:20 +02:00
e4578a2cdb Implement Mai Anh changes 2024-06-21 00:20:24 +02:00
4fb52669c9 Implement Jäkel feedback 2024-06-21 00:05:12 +02:00
5 changed files with 111 additions and 186 deletions

View File

@ -14,7 +14,7 @@ $ make
1. Build docker image 1. Build docker image
```bash ```bash
$ docker build -f dockerfiles/Dockerfile.alpine . -t cel-presentation $ docker build -f Dockerfile . -t cel-presentation
``` ```
1. Build examples 1. Build examples
```bash ```bash

View File

@ -12,6 +12,7 @@
\usepackage{listings} \usepackage{listings}
\usepackage{subcaption} \usepackage{subcaption}
\usepackage{bbm}
% %

View File

@ -51,7 +51,7 @@
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$
\citereference{Mac23, 96.33.965}} \citereference{Mac24, 96.33.965}}
\end{subfigure}% \end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth} \begin{subfigure}[t]{0.33\textwidth}
\centering \centering
@ -90,7 +90,7 @@
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$ \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$
\citereference{Mac23, 204.33.484}} \citereference{Mac24, 204.33.484}}
\end{subfigure}% \end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth} \begin{subfigure}[t]{0.33\textwidth}
\centering \centering
@ -121,7 +121,7 @@
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$ \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$
\citereference{Mac23, 408.33.844}} \citereference{Mac24, 408.33.844}}
\end{subfigure}% \end{subfigure}%
\vspace*{-2mm} \vspace*{-2mm}
@ -190,7 +190,7 @@
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$ \caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$
\citereference{Mac23, 204.55.187}} \citereference{Mac24, 204.55.187}}
\end{subfigure}% \end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth} \begin{subfigure}[t]{0.33\textwidth}
\centering \centering
@ -221,7 +221,7 @@
\vspace*{-2mm} \vspace*{-2mm}
\caption{LDPC code (progressive edge growth construction) with $n=504, k=252$ \caption{LDPC code (progressive edge growth construction) with $n=504, k=252$
\citereference{Mac23, PEGReg252x504}} \citereference{Mac24, PEGReg252x504}}
\end{subfigure}% \end{subfigure}%
\end{figure} \end{figure}
\end{minipage}% \end{minipage}%
@ -237,7 +237,8 @@
xmin=10, xmax=50, xmin=10, xmax=50,
ymin=0, ymax=0.4, ymin=0, ymax=0.4,
legend columns=1, legend columns=1,
legend style={draw=white!15!black}] legend style={draw=white!15!black},
legend cell align={left}]
\addlegendimage{scol2, line width=1pt, solid} \addlegendimage{scol2, line width=1pt, solid}
\addlegendentry{Proximal} \addlegendentry{Proximal}
@ -256,8 +257,8 @@
\vspace*{-1mm} \vspace*{-1mm}
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{frame} \end{frame}
@ -345,7 +346,7 @@ return $\hat{\boldsymbol{c}}$
\begin{itemize} \begin{itemize}
\item Codes: BCH $\left( 31, 11 \right)$; BCH $\left( 31, 26 \right)$; \item Codes: BCH $\left( 31, 11 \right)$; BCH $\left( 31, 26 \right)$;
\citereference{Mac23, 96.3.965; 204.33.484; 204.55.187; 408.33.844; PEGReg252x504} \citereference{Mac24, 96.3.965; 204.33.484; 204.55.187; 408.33.844; PEGReg252x504}
\item Measured performance: $\sim\SI{10000}{}$ frames/s \item Measured performance: $\sim\SI{10000}{}$ frames/s
on Intel Core i7-7700HQ @ 2.80GHz; $n=204$ on Intel Core i7-7700HQ @ 2.80GHz; $n=204$
\item Both algorithms are $\mathcal{O}\left( n \right)$ on average \item Both algorithms are $\mathcal{O}\left( n \right)$ on average
@ -389,8 +390,8 @@ return $\hat{\boldsymbol{c}}$
\smallskip \smallskip
\smallskip \smallskip
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{frame} \end{frame}
@ -401,7 +402,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-6mm} \vspace*{-6mm}
\begin{itemize} \begin{itemize}
\item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac24, 204.33.484}
\item Minimum number of iterations independent of SNR \item Minimum number of iterations independent of SNR
\end{itemize} \end{itemize}
@ -496,8 +497,8 @@ return $\hat{\boldsymbol{c}}$
\end{subfigure}% \end{subfigure}%
\end{figure} \end{figure}
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{frame} \end{frame}
@ -551,7 +552,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$
\citereference{Mac23, 96.3.965}} \citereference{Mac24, 96.3.965}}
\end{subfigure}% \end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth} \begin{subfigure}[t]{0.33\textwidth}
\centering \centering
@ -589,7 +590,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$ \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$
\citereference{Mac23, 204.33.484}} \citereference{Mac24, 204.33.484}}
\end{subfigure}% \end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth} \begin{subfigure}[t]{0.33\textwidth}
\centering \centering
@ -627,7 +628,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$ \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$
\citereference{Mac23, 408.33.844}} \citereference{Mac24, 408.33.844}}
\end{subfigure}% \end{subfigure}%
\vspace*{-2mm} \vspace*{-2mm}
@ -705,7 +706,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$ \caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$
\citereference{Mac23, 204.55.187}} \citereference{Mac24, 204.55.187}}
\end{subfigure}% \end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth} \begin{subfigure}[t]{0.33\textwidth}
\centering \centering
@ -743,7 +744,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-2mm} \vspace*{-2mm}
\caption{LDPC code (progressive edge growth construction) with $n=504, k=252$ \caption{LDPC code (progressive edge growth construction) with $n=504, k=252$
\citereference{Mac23, PEGReg252x504}} \citereference{Mac24, PEGReg252x504}}
\end{subfigure}% \end{subfigure}%
\end{figure} \end{figure}
\end{minipage}% \end{minipage}%
@ -774,8 +775,8 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-1mm} \vspace*{-1mm}
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{frame} \end{frame}
@ -786,7 +787,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-5mm} \vspace*{-5mm}
\begin{itemize} \begin{itemize}
\item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac24, 204.33.484}
\item No clear optimum value \item No clear optimum value
\end{itemize} \end{itemize}
@ -871,8 +872,8 @@ return $\hat{\boldsymbol{c}}$
\bigskip \bigskip
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{frame} \end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@ -918,7 +919,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$
\citereference{Mac23, 96.3.965}} \citereference{Mac24, 96.3.965}}
\end{subfigure}% \end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth} \begin{subfigure}[t]{0.33\textwidth}
\centering \centering
@ -949,7 +950,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$ \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$
\citereference{Mac23, 204.33.484}} \citereference{Mac24, 204.33.484}}
\end{subfigure}% \end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth} \begin{subfigure}[t]{0.33\textwidth}
\centering \centering
@ -980,7 +981,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$ \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$
\citereference{Mac23, 408.33.844}} \citereference{Mac24, 408.33.844}}
\end{subfigure}% \end{subfigure}%
\vspace*{-2mm} \vspace*{-2mm}
@ -1044,7 +1045,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-2mm} \vspace*{-2mm}
\caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$ \caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$
\citereference{Mac23, 204.55.187}} \citereference{Mac24, 204.55.187}}
\end{subfigure}% \end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth} \begin{subfigure}[t]{0.33\textwidth}
\centering \centering
@ -1075,7 +1076,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-2mm} \vspace*{-2mm}
\caption{LDPC code (progressive edge growth construction) with $n=504, k=252$ \caption{LDPC code (progressive edge growth construction) with $n=504, k=252$
\citereference{Mac23, PEGReg252x504}} \citereference{Mac24, PEGReg252x504}}
\end{subfigure}% \end{subfigure}%
\end{figure} \end{figure}
\end{minipage}% \end{minipage}%
@ -1107,7 +1108,7 @@ return $\hat{\boldsymbol{c}}$
\vspace*{-1mm} \vspace*{-1mm}
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{frame} \end{frame}

View File

@ -556,7 +556,7 @@
\text{poly}\left( \mathcal{C} \right) & \ \text{poly}\left( \mathcal{C} \right) & \
\end{align*} \end{align*}
\caption{Motivation} \caption{Lifted integer constraint}
\end{subfigure}% \end{subfigure}%
\hfill% \hfill%
\begin{subfigure}[t]{0.3\textwidth} \begin{subfigure}[t]{0.3\textwidth}
@ -783,10 +783,7 @@
\vspace*{-6mm} \vspace*{-6mm}
\begin{itemize} \begin{itemize}
\item ``Margulis'' LDPC code with $n = 2640$, $k = 1320$ \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac24, 204.33.484}
\citereference{Mac23, Margulis2640.1320.3}
\item Comparison of simulation with results from Barman et al.
\citereference{$\text{Bar}^+\text{13}$}
\end{itemize} \end{itemize}
\bigskip \bigskip
@ -805,124 +802,37 @@
legend pos=outer north east, legend pos=outer north east,
legend cell align={left}, legend cell align={left},
] ]
\addplot[scol0, line width=1pt]
table [col sep=comma, x=SNR, y=FER,]
{res/admm/ber_margulis264013203.csv};
\addlegendentry{ADMM}
\addplot[scol1, line width=1pt] \addplot[scol1, line width=1pt]
table [col sep=comma, x=SNR, y=FER, discard if gt={SNR}{2.2},] table [x=SNR, y=FER, col sep=comma,
{res/generic/fer_bp_mackay_margulis.csv}; discard if not={mu}{3.0},
\addlegendentry{BP \citereference{$\text{Bar}^+\text{13}$}} discard if gt={SNR}{5.5}]
{res/admm/ber_2d_20433484.csv};
\addlegendentry{ADMM}
\addplot [KITorange, line width=1pt]
table [x=SNR, y=FER, col sep=comma,
discard if gt={SNR}{5.5}]
{res/generic/bp_20433484.csv};
\addlegendentry{BP}
\addplot[black, line width=1pt]
table [col sep=comma, x=SNR, y=FER,
discard if gt={SNR}{5.5}]
{res/generic/fer_ml_20433484.csv};
\addlegendentry{ML \citereference{HEL+19}}
\end{axis} \end{axis}
\end{tikzpicture} \end{tikzpicture}
\end{figure}% \end{figure}%
\smallskip \bigskip
\bigskip
\addreferences \addreferences
{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. {Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
{$\text{Bar}^+\text{13}$}{Siddharth Barman et al.: {Hel+19}{Michael Helmling, Stefan Scholl, Florian Gensheimer, Tobias Dietz, Kira Kraft,
\emph{Decomposition Methods for Large Scale LP Decoding}. Stefan Ruzika, and Norbert Wehn. \emph{Database of Channel Codes and
IEEE Transactions on Information Theory 59.12 (2013), pp. 78707886.} ML Simulation Results}. June 2024. URL: \url{www.rptu.de/channel-codes}}
\stopreferences \stopreferences
\end{frame} \end{frame}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{frame}[t]
% \frametitle{LP Decoding using ADMM: Choice of Penalty\\
% Parameters}
%
% \vspace*{-5mm}
%
% \begin{itemize}
% \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484}
% \item For lower decoding time, choose low $\mu$ and high $\rho$
% \end{itemize}
%
% \bigskip
%
% \begin{figure}[H]
% \centering
%
% \begin{subfigure}[c]{0.48\textwidth}
% \centering
%
% \begin{tikzpicture}
% \begin{axis}[
% grid=both,
% xlabel={$\mu$}, ylabel={Average \# of iterations},
% width=0.8\textwidth,
% height=0.6\textwidth,
% ]
% \addplot[ForestGreen, line width=1pt, densely dashed, mark=*]
% table [col sep=comma, x=mu, y=k_avg,
% discard if not={SNR}{2.0},]
% {res/admm/mu_kavg_20433484.csv};
% \addplot[NavyBlue, line width=1pt, densely dashed, mark=*]
% table [col sep=comma, x=mu, y=k_avg,
% discard if not={SNR}{3.0},]
% {res/admm/mu_kavg_20433484.csv};
% \addplot[RedOrange, line width=1pt, densely dashed, mark=*]
% table [col sep=comma, x=mu, y=k_avg,
% discard if not={SNR}{4.0},]
% {res/admm/mu_kavg_20433484.csv};
% \end{axis}
% \end{tikzpicture}
% \end{subfigure}%
% \begin{subfigure}[c]{0.48\textwidth}
% \centering
%
% \begin{tikzpicture}
% \begin{axis}[
% grid=both,
% xlabel={$\rho$}, ylabel={Average \# of iterations},
% width=0.8\textwidth,
% height=0.6\textwidth,
% ]
% \addplot[ForestGreen, line width=1pt, densely dashed, mark=*]
% table [col sep=comma, x=rho, y=k_avg,
% discard if not={SNR}{2.0},]
% {res/admm/rho_kavg_20433484.csv};
% \addplot[NavyBlue, line width=1pt, densely dashed, mark=*]
% table [col sep=comma, x=rho, y=k_avg,
% discard if not={SNR}{3.0},]
% {res/admm/rho_kavg_20433484.csv};
% \addplot[RedOrange, line width=1pt, densely dashed, mark=*]
% table [col sep=comma, x=rho, y=k_avg,
% discard if not={SNR}{4.0},]
% {res/admm/rho_kavg_20433484.csv};
% \end{axis}
% \end{tikzpicture}
% \end{subfigure}%
%
% \begin{subfigure}[t]{\textwidth}
% \centering
%
% \begin{tikzpicture}
% \begin{axis}[hide axis,
% xmin=10, xmax=50,
% ymin=0, ymax=0.4,
% legend columns=3,
% legend style={draw=white!15!black,legend cell align=left}]
%
% \addlegendimage{ForestGreen, line width=1pt, densely dashed, mark=*}
% \addlegendentry{$E_b / N_0 = \SI{2}{dB}$}
% \addlegendimage{RedOrange, line width=1pt, densely dashed, mark=*}
% \addlegendentry{$E_b / N_0 = \SI{3}{dB}$}
% \addlegendimage{NavyBlue, line width=1pt, densely dashed, mark=*}
% \addlegendentry{$E_b / N_0 = \SI{4}{dB}$}
% \end{axis}
% \end{tikzpicture}
% \end{subfigure}
% \end{figure}%
%
% \smallskip
% \smallskip
% \smallskip
%
% \addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
% Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
%\end{frame}
%

View File

@ -32,7 +32,7 @@
\sum_{\boldsymbol{c} \in \mathcal{C} } \sum_{\boldsymbol{c} \in \mathcal{C} }
\delta\left( \tilde{\boldsymbol{x}} - \left( -1 \right)^{\boldsymbol{c}} \delta\left( \tilde{\boldsymbol{x}} - \left( -1 \right)^{\boldsymbol{c}}
\right) \right)
\approx \frac{1}{Z} e^{-\gamma h\left( \tilde{\boldsymbol{x}} \right) } \approx \frac{1}{Z} \mathrm{e}^{-\gamma h\left( \tilde{\boldsymbol{x}} \right) }
\end{align*} \end{align*}
\item Code constraint polynomial: \item Code constraint polynomial:
\begin{minipage}[c]{0.56\textwidth} \begin{minipage}[c]{0.56\textwidth}
@ -126,7 +126,7 @@ $\boldsymbol{s} \leftarrow \boldsymbol{0}$
for $K$ iterations do for $K$ iterations do
$\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $ $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
$\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $ $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
$\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $ $\boldsymbol{\hat{c}} \leftarrow \mathbbm{1}_{\left\{ \boldsymbol{s} \le 0 \right\}}$
if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$ do if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$ do
return $\boldsymbol{\hat{c}}$ return $\boldsymbol{\hat{c}}$
end if end if
@ -146,7 +146,7 @@ return $\boldsymbol{\hat{c}}$
\vspace*{-7mm} \vspace*{-7mm}
\begin{itemize} \begin{itemize}
\item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac24, 204.33.484}
\item Comparison of simulation with results of Wadayama et al. \citereference{WT22} \item Comparison of simulation with results of Wadayama et al. \citereference{WT22}
\end{itemize} \end{itemize}
@ -156,7 +156,7 @@ return $\boldsymbol{\hat{c}}$
\begin{tikzpicture} \begin{tikzpicture}
\begin{axis}[ \begin{axis}[
grid=both, grid style={line width=.1pt}, grid=both, grid style={line width=.1pt},
xlabel={$E_b / N_0$ (dB)}, ylabel={BER}, xlabel={$E_b / N_0$ (dB)}, ylabel={FER},
ymode=log, ymode=log,
legend pos=outer north east, legend pos=outer north east,
width=0.45\textwidth, width=0.45\textwidth,
@ -165,6 +165,7 @@ return $\boldsymbol{\hat{c}}$
xtick={1, 2, ..., 5}, xtick={1, 2, ..., 5},
xmin=0.9, xmax=5.6, xmin=0.9, xmax=5.6,
legend columns=1, legend columns=1,
legend cell align={left},
] ]
\addplot [scol0, line width=1pt] \addplot [scol0, line width=1pt]
@ -199,11 +200,15 @@ return $\boldsymbol{\hat{c}}$
\bigskip \bigskip
\addreference{WT22}{Tadashi Wadayama; Satoshi Takabe: \emph{Proximal Decoding for LDPC
\addreferences
{\text{Mac24}}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}}
{\text{WT22}}{Tadashi Wadayama; Satoshi Takabe: \emph{Proximal Decoding for LDPC
Codes}. IEICE Transactions on Fundamentals of Electronics, Communications and Computer Codes}. IEICE Transactions on Fundamentals of Electronics, Communications and Computer
Sciences advpub (2022), 2022TAP0002.} Sciences advpub (2022), 2022TAP0002.}
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \stopreferences
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}}
\end{frame} \end{frame}
@ -431,7 +436,7 @@ return $\boldsymbol{\hat{c}}$
\begin{itemize} \begin{itemize}
\item (3,6) regular LDPC code with $n=204$,\\ \item (3,6) regular LDPC code with $n=204$,\\
$k=102$ \citereference{Mac23, 204.33.484} $k=102$ \citereference{Mac24, 204.33.484}
\end{itemize} \end{itemize}
\vspace*{-2mm} \vspace*{-2mm}
@ -447,7 +452,7 @@ $\boldsymbol{s} \leftarrow \boldsymbol{0}$
for $K$ iterations do for $K$ iterations do
$\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $ $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
$\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $ $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
$\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $ $\boldsymbol{\hat{c}} \leftarrow \mathbbm{1}_{\left\{ \boldsymbol{s} \le 0 \right\}}$
if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$ do if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$ do
return $\boldsymbol{\hat{c}}$ return $\boldsymbol{\hat{c}}$
end if end if
@ -458,8 +463,8 @@ return $\boldsymbol{\hat{c}}$
\vspace*{-4mm} \vspace*{-4mm}
\hspace*{-4mm} \hspace*{-4mm}
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{minipage}% \end{minipage}%
\begin{minipage}{.6\textwidth} \begin{minipage}{.6\textwidth}
\centering \centering
@ -573,6 +578,7 @@ return $\boldsymbol{\hat{c}}$
scale only axis, scale only axis,
xtick={0, 50, ..., 200}, xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100}, xticklabels={0, 25, ..., 100},
legend cell align={left},
] ]
\addplot [scol0, mark=none, line width=1] \addplot [scol0, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_1] table [col sep=comma, x=k, y=comb_r_s_1]
@ -597,6 +603,7 @@ return $\boldsymbol{\hat{c}}$
scale only axis, scale only axis,
xtick={0, 50, ..., 200}, xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100}, xticklabels={0, 25, ..., 100},
legend cell align={left},
] ]
\addplot [scol0, mark=none, line width=1] \addplot [scol0, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_2] table [col sep=comma, x=k, y=comb_r_s_2]
@ -621,6 +628,7 @@ return $\boldsymbol{\hat{c}}$
scale only axis, scale only axis,
xtick={0, 50, ..., 200}, xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100}, xticklabels={0, 25, ..., 100},
legend cell align={left},
] ]
\addplot [scol0, mark=none, line width=1] \addplot [scol0, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_3] table [col sep=comma, x=k, y=comb_r_s_3]
@ -651,6 +659,7 @@ return $\boldsymbol{\hat{c}}$
scale only axis, scale only axis,
xtick={0, 50, ..., 200}, xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100}, xticklabels={0, 25, ..., 100},
legend cell align={left},
] ]
\addplot [scol0, mark=none, line width=1] \addplot [scol0, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_0] table [col sep=comma, x=k, y=comb_r_s_0]
@ -684,6 +693,7 @@ return $\boldsymbol{\hat{c}}$
scale only axis, scale only axis,
xtick={0, 50, ..., 200}, xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100}, xticklabels={0, 25, ..., 100},
legend cell align={left},
] ]
\addplot [scol0, mark=none, line width=1] \addplot [scol0, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_4] table [col sep=comma, x=k, y=comb_r_s_4]
@ -708,6 +718,7 @@ return $\boldsymbol{\hat{c}}$
scale only axis, scale only axis,
xtick={0, 50, ..., 200}, xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100}, xticklabels={0, 25, ..., 100},
legend cell align={left},
] ]
\addplot [scol0, mark=none, line width=1] \addplot [scol0, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_5] table [col sep=comma, x=k, y=comb_r_s_5]
@ -732,6 +743,7 @@ return $\boldsymbol{\hat{c}}$
scale only axis, scale only axis,
xtick={0, 50, ..., 200}, xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100}, xticklabels={0, 25, ..., 100},
legend cell align={left},
] ]
\addplot [scol0, mark=none, line width=1] \addplot [scol0, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_6] table [col sep=comma, x=k, y=comb_r_s_6]
@ -845,7 +857,7 @@ return $\boldsymbol{\hat{c}}$
\begin{itemize} \begin{itemize}
\item Single decoding using a (3,6) regular LDPC code with $n=204, k=102$ \item Single decoding using a (3,6) regular LDPC code with $n=204, k=102$
\citereference{Mac23, 204.33.484} \citereference{Mac24, 204.33.484}
\item For larger $n$, the gradient itself starts to oscillate \item For larger $n$, the gradient itself starts to oscillate
\item Amplitude of oscillation highly correlated to probability of bit error \item Amplitude of oscillation highly correlated to probability of bit error
\end{itemize} \end{itemize}
@ -867,6 +879,7 @@ return $\boldsymbol{\hat{c}}$
scale only axis, scale only axis,
xtick={0, 100, ..., 400}, xtick={0, 100, ..., 400},
xticklabels={0, 50, ..., 200}, xticklabels={0, 50, ..., 200},
legend cell align={left},
] ]
\addplot [scol0, mark=none, line width=1] \addplot [scol0, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_0] table [col sep=comma, x=k, y=comb_r_s_0]
@ -906,8 +919,8 @@ return $\boldsymbol{\hat{c}}$
\bigskip \bigskip
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{frame} \end{frame}
@ -1047,7 +1060,7 @@ $\boldsymbol{s} \leftarrow \boldsymbol{0}$
for $K$ iterations do for $K$ iterations do
$\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $ $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
$\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $ $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
$\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $ $\boldsymbol{\hat{c}} \leftarrow \mathbbm{1}_{\left\{ \boldsymbol{s} \le 0 \right\}}$
if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$ do if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$ do
return $\boldsymbol{\hat{c}}$ return $\boldsymbol{\hat{c}}$
end if end if
@ -1070,13 +1083,13 @@ $\boldsymbol{s} \leftarrow \boldsymbol{0}$
for $K$ iterations do for $K$ iterations do
$\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $ $\boldsymbol{r} \leftarrow \boldsymbol{s} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s} \right) $
$\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $ $\boldsymbol{s} \leftarrow \boldsymbol{r} - \gamma \nabla h\left( \boldsymbol{r} \right) $
$\boldsymbol{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $ $\boldsymbol{\hat{c}} \leftarrow \mathbbm{1}_{\left\{ \boldsymbol{s} \le 0 \right\}}$
if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$ if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$
return $\boldsymbol{\hat{c}}$ return $\boldsymbol{\hat{c}}$
end if end if
end for end for
$\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits}}$ $\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits}}$
$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\hat{c}}_l\text{ of }\boldsymbol{\hat{c}}\text{ with }N\text{ bits modified}}$ $\textcolor{KITblue}{L' := \left\{ \text{Variations } \boldsymbol{\hat{c}}_l\text{ of }\boldsymbol{\hat{c}}\text{ with }N\text{ bits modified} \right\}}$
$\textcolor{KITblue}{\text{Compute }\boldsymbol{y}^\text{T}\boldsymbol{ \hat{c}}_l \text{ for all codewords } \boldsymbol{\hat{c}}_l}$ $\textcolor{KITblue}{\text{Compute }\boldsymbol{y}^\text{T}\boldsymbol{ \hat{c}}_l \text{ for all codewords } \boldsymbol{\hat{c}}_l}$
$\textcolor{KITblue}{\textbf{return }\boldsymbol{\hat{c}}_l\text{ with highest }\boldsymbol{y}^\text{T}\boldsymbol{ \hat{c}}_l \text{, prioritizing valid codewords}}$ $\textcolor{KITblue}{\textbf{return }\boldsymbol{\hat{c}}_l\text{ with highest }\boldsymbol{y}^\text{T}\boldsymbol{ \hat{c}}_l \text{, prioritizing valid codewords}}$
\end{algorithm} \end{algorithm}
@ -1091,7 +1104,7 @@ $\textcolor{KITblue}{\textbf{return }\boldsymbol{\hat{c}}_l\text{ with highest }
\vspace{-0.6cm} \vspace{-0.6cm}
\begin{itemize} \begin{itemize}
\item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac24, 204.33.484}
\item Up to $\sim \SI{1}{dB}$ improvement \item Up to $\sim \SI{1}{dB}$ improvement
\end{itemize} \end{itemize}
@ -1195,8 +1208,8 @@ $\textcolor{KITblue}{\textbf{return }\boldsymbol{\hat{c}}_l\text{ with highest }
\bigskip \bigskip
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{frame} \end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@ -1206,7 +1219,7 @@ $\textcolor{KITblue}{\textbf{return }\boldsymbol{\hat{c}}_l\text{ with highest }
\vspace*{-5mm} \vspace*{-5mm}
\begin{itemize} \begin{itemize}
\item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac24, 204.33.484}
\item Chosen parameters: $\gamma = 0.05$ \item Chosen parameters: $\gamma = 0.05$
\end{itemize} \end{itemize}
@ -1255,8 +1268,8 @@ $\textcolor{KITblue}{\textbf{return }\boldsymbol{\hat{c}}_l\text{ with highest }
\end{tikzpicture} \end{tikzpicture}
\end{figure}% \end{figure}%
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{frame} \end{frame}
@ -1267,7 +1280,7 @@ $\textcolor{KITblue}{\textbf{return }\boldsymbol{\hat{c}}_l\text{ with highest }
\vspace*{-5mm} \vspace*{-5mm}
\begin{itemize} \begin{itemize}
\item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac24, 204.33.484}
\item Chosen parameters: $N=8, \gamma = 0.05$ \item Chosen parameters: $N=8, \gamma = 0.05$
\end{itemize} \end{itemize}
@ -1403,26 +1416,26 @@ $\textcolor{KITblue}{\textbf{return }\boldsymbol{\hat{c}}_l\text{ with highest }
\centering \centering
\begin{tabular}{c c c c c c} \begin{tabular}{c c c c c c}
$E_b/N_0$ & \shortstack{List size\\ mean} & \shortstack{List size\\ var.} \\ $E_b/N_0$ (dB) & \shortstack{List size\\ mean} \\
\hline \hline
1.0 & 1.0 & 0.0 \\ 1.0 & 1.0 \\
1.5 & 1.0 & 0.0 \\ 1.5 & 1.0 \\
2.0 & 1.0 & 0.0 \\ 2.0 & 1.0 \\
2.5 & 1.0 & 0.0 \\ 2.5 & 1.0 \\
3.0 & 1.0 & 0.0 \\ 3.0 & 1.0 \\
3.5 & 1.0 & 0.0 \\ 3.5 & 1.0 \\
4.0 & 1.0 & 0.0 \\ 4.0 & 1.0 \\
4.5 & 1.0 & 0.0 \\ 4.5 & 1.0 \\
5.0 & 1.0 & 0.0 \\ 5.0 & 1.0 \\
5.5 & 1.0 & 0.0 5.5 & 1.0
\end{tabular} \end{tabular}
\caption{List size statistics for successful decodings (no frame error).} \caption{List size statistics for successful decodings (no frame error).}
\end{subfigure} \end{subfigure}
\end{figure} \end{figure}
\addreference{Mac23}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}. \addreference{Mac24}{David J.C. MacKay: \emph{Encyclopedia of Sparse Graph Codes}.
Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} June 2024. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.}
\end{frame} \end{frame}