From 6d048989976c9c98c7e7e98e802817479ee5c568 Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Wed, 19 Jun 2024 23:16:56 +0200 Subject: [PATCH] Move slides around --- Makefile | 1 + presentation.tex | 9 +- sections/appendix.tex | 679 ++++++++++++++++++++++-- sections/comparison.tex | 772 +++------------------------- sections/lp_dec_using_admm.tex | 98 ---- sections/proximal_decoding.tex | 104 +--- sections/theoretical_background.tex | 12 +- structure.md | 2 +- 8 files changed, 744 insertions(+), 933 deletions(-) diff --git a/Makefile b/Makefile index 37ddf42..5dd2bd3 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ all: + mkdir -p build/build latexmk presentation.tex clean: diff --git a/presentation.tex b/presentation.tex index ca29507..b4b16fa 100644 --- a/presentation.tex +++ b/presentation.tex @@ -1,12 +1,14 @@ \documentclass[10pt, aspectratio=169, usenames, dvipsnames]{beamer} \usepackage{tikz} -\usetikzlibrary{intersections, spy} \usepackage{tikz-3dplot} +\usetikzlibrary{spy, external} +\tikzexternalize[prefix=build/] + \usepackage{pgfplots} \pgfplotsset{compat=newest} -\usepackage{listings} +\usepackage{listings} \usepackage{subcaption} @@ -94,6 +96,7 @@ \input{sections/theoretical_background.tex} \input{sections/lp_dec_using_admm.tex} \input{sections/proximal_decoding.tex} -% \input{sections/comparison.tex} +\input{sections/question_slide.tex} +\input{sections/appendix.tex} \end{document} diff --git a/sections/appendix.tex b/sections/appendix.tex index 155ae2f..72b63bd 100644 --- a/sections/appendix.tex +++ b/sections/appendix.tex @@ -3,6 +3,504 @@ \section{Supplementary Slides}% \label{app:Supplementary Slides} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[t] + \frametitle{Comparison: Decoding Performance} + + \captionsetup[subfigure]{font=footnotesize} + + \hspace*{-0.4cm} + \begin{minipage}[c]{0.9\textwidth} + \centering + + \begin{figure}[H] + \vspace*{-0.8cm} + \centering + + \begin{subfigure}[t]{0.33\textwidth} + \centering + + \begin{tikzpicture}[scale=0.8] + \begin{axis}[ + grid=both, + xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, + ymode=log, + ymax=1.5, ymin=8e-5, + width=1.2\textwidth, + height=0.825\textwidth, + ] + + \addplot[scol2, line width=1pt, solid] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] + {res/proximal/2d_ber_fer_dfr_963965.csv}; + \addplot[scol2, only marks, mark=square, line width=1pt] + table [x=SNR, y=FER, col sep=comma, + discard if not={gamma}{0.05}, discard if gt={SNR}{5.5}] + {res/hybrid/2d_ber_fer_dfr_963965.csv}; + \addplot[KITorange, line width=1pt] + table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}] + %{res/hybrid/2d_ber_fer_dfr_963965.csv}; + {res/admm/ber_2d_963965.csv}; + \addplot[Black, line width=1pt] + table [col sep=comma, x=SNR, y=FER,] + {res/generic/fer_ml_9633965.csv}; + \end{axis} + \end{tikzpicture} + + \vspace*{-2mm} + + \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ + \citereference{Mac23, 96.33.965}} + \end{subfigure}% + \begin{subfigure}[t]{0.33\textwidth} + \centering + + \begin{tikzpicture}[scale=0.8] + \begin{axis}[ + grid=both, + xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, + ymode=log, + ymax=1.5, ymin=8e-5, + width=1.2\textwidth, + height=0.825\textwidth, + ] + + \addplot[scol2, line width=1pt] + table [x=SNR, y=FER, col sep=comma, + discard if not={gamma}{0.05}, + discard if gt={SNR}{5.5}] + {res/proximal/2d_ber_fer_dfr_20433484.csv}; + \addplot[scol2, only marks, mark=square, line width=1pt] + table [x=SNR, y=FER, col sep=comma, + discard if not={gamma}{0.05}, discard if gt={SNR}{5.5}] + {res/hybrid/2d_ber_fer_dfr_20433484.csv}; + \addplot[KITorange, line width=1pt] + table [x=SNR, y=FER, col sep=comma, + discard if not={mu}{3.0}, + discard if gt={SNR}{5.5}] + {res/admm/ber_2d_20433484.csv}; + \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}; + \end{axis} + \end{tikzpicture} + + \vspace*{-2mm} + + \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$ + \citereference{Mac23, 204.33.484}} + \end{subfigure}% + \begin{subfigure}[t]{0.33\textwidth} + \centering + + \begin{tikzpicture}[scale=0.8] + \begin{axis}[ + grid=both, + xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, + ymode=log, + ymax=1.5, ymin=8e-5, + width=1.2\textwidth, + height=0.825\textwidth, + ] + + \addplot[scol2, line width=1pt] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] + {res/proximal/2d_ber_fer_dfr_40833844.csv}; + \addplot[scol2, only marks, mark=square, line width=1pt] + table [x=SNR, y=FER, col sep=comma, + discard if not={gamma}{0.05}, discard if gt={SNR}{5.5}] + {res/hybrid/2d_ber_fer_dfr_40833844.csv}; + \addplot[KITorange, line width=1pt] + table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}] + {res/admm/ber_2d_40833844.csv}; + \end{axis} + \end{tikzpicture} + + \vspace*{-2mm} + + \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$ + \citereference{Mac23, 408.33.844}} + \end{subfigure}% + + \vspace*{-2mm} + + \begin{subfigure}[t]{0.33\textwidth} + \centering + + \begin{tikzpicture}[scale=0.8] + \begin{axis}[ + grid=both, + xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, + ymode=log, + ymax=1.5, ymin=8e-5, + width=1.2\textwidth, + height=0.825\textwidth, + ] + + \addplot[scol2, line width=1pt] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] + {res/proximal/2d_ber_fer_dfr_bch_31_26.csv}; + \addplot[scol2, only marks, mark=square, line width=1pt] + table [x=SNR, y=FER, col sep=comma, + discard if not={gamma}{0.05}, discard if gt={SNR}{5.5}] + {res/hybrid/2d_ber_fer_dfr_bch_31_26.csv}; + \addplot[KITorange, line width=1pt] + table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}] + {res/admm/ber_2d_bch_31_26.csv}; + \addplot[Black, line width=1pt] + table [x=SNR, y=FER, col sep=comma, + discard if gt={SNR}{5.5}, + discard if lt={SNR}{1}, + ] + {res/generic/fer_ml_bch_31_26.csv}; + \end{axis} + \end{tikzpicture} + + \vspace*{-2mm} + + \caption{BCH code with $n=31, k=26$} + \end{subfigure}% + \begin{subfigure}[t]{0.33\textwidth} + \centering + + \begin{tikzpicture}[scale=0.8] + \begin{axis}[ + grid=both, + xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, + ymode=log, + ymax=1.5, ymin=8e-5, + width=1.2\textwidth, + height=0.825\textwidth, + ] + + \addplot[scol2, line width=1pt] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] + {res/proximal/2d_ber_fer_dfr_20455187.csv}; + \addplot[scol2, only marks, mark=square, line width=1pt] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] + {res/hybrid/2d_ber_fer_dfr_20455187.csv}; + \addplot[KITorange, line width=1pt] + table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}] + {res/admm/ber_2d_20455187.csv}; + \end{axis} + \end{tikzpicture} + + \vspace*{-2mm} + + \caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$ + \citereference{Mac23, 204.55.187}} + \end{subfigure}% + \begin{subfigure}[t]{0.33\textwidth} + \centering + + \begin{tikzpicture}[scale=0.8] + \begin{axis}[ + grid=both, + xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, + ymode=log, + ymax=1.5, ymin=8e-5, + width=1.2\textwidth, + height=0.825\textwidth, + ] + + \addplot[scol2, line width=1pt] + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] + {res/proximal/2d_ber_fer_dfr_pegreg252x504.csv}; + \addplot[scol2, only marks, mark=square, line width=1pt] + table [x=SNR, y=FER, col sep=comma, + discard if not={gamma}{0.05}, discard if gt={SNR}{5.5}] + {res/hybrid/2d_ber_fer_dfr_pegreg252x504.csv}; + \addplot[KITorange, line width=1pt] + table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}] + {res/admm/ber_2d_pegreg252x504.csv}; + \end{axis} + \end{tikzpicture} + + \vspace*{-2mm} + + \caption{LDPC code (progressive edge growth construction) with $n=504, k=252$ + \citereference{Mac23, PEGReg252x504}} + \end{subfigure}% + \end{figure} + \end{minipage}% + \begin{minipage}[c]{0.1\textwidth} + \centering + + \begin{figure} + \centering + \vspace*{-1.2cm} + \hspace*{2mm} + \begin{tikzpicture}[scale=0.8] + \begin{axis}[hide axis, + xmin=10, xmax=50, + ymin=0, ymax=0.4, + legend columns=1, + legend style={draw=white!15!black}] + \addlegendimage{scol2, line width=1pt, solid} + \addlegendentry{Proximal} + + \addlegendimage{scol2, line width=1pt, only marks, mark=square} + \addlegendentry{Improved} + + \addlegendimage{KITorange, line width=1pt} + \addlegendentry{ADMM} + + \addlegendimage{Black, line width=1pt} + \addlegendentry{ML} + \end{axis} + \end{tikzpicture} + \end{figure} + \end{minipage} + + \vspace*{-1mm} + + \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} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[t, fragile] + \frametitle{Comparison: Algorithm Structure} + + \vspace*{-1cm} + + \begin{figure}[h] + \centering + + \begin{subfigure}[b]{0.47\textwidth} + \centering + + \begin{align*} + \text{minimize}\hspace{2mm} & \textcolor{KITblue}{\underbrace{L\left( + \boldsymbol{y} \mid \tilde{\boldsymbol{x}} \right)}_{\text{Likelihood}}} + + \textcolor{KITred}{\underbrace{\gamma h\left( \tilde{\boldsymbol{x}} + \right)} _{\text{Constraints}}} \\ + \text{subject to}\hspace{2mm} &\tilde{\boldsymbol{x}} \in \mathbb{R}^n + \end{align*} + + \vspace*{-5mm} + + \begin{algorithm}[caption={}, label={}, + basicstyle=\fontsize{10}{18}\selectfont + ] +Initialize $\boldsymbol{r}, \boldsymbol{s}, \omega, \gamma$ +while stopping critierion unfulfilled do + $\textcolor{KITblue}{\boldsymbol{r} \leftarrow \boldsymbol{r} + + \omega \nabla L\left( \boldsymbol{y} \mid \boldsymbol{s} \right)} $ + $\textcolor{KITred}{\boldsymbol{s} \leftarrow + \textbf{prox}_{\gamma h}\left( \boldsymbol{r} \right)} $|\Suppressnumber| +|\Reactivatenumber| +end while +return $\hat{\boldsymbol{c}}$ + \end{algorithm} + \end{subfigure}\hfill% + \begin{subfigure}[b]{0.5\textwidth} + \centering + + \begin{align*} + \text{minimize}\hspace{5mm} & + \textcolor{KITblue}{\underbrace{\boldsymbol{\gamma}^\text{T} + \tilde{\boldsymbol{c}}}_{\text{Likelihood}}} + + \textcolor{KITred}{\underbrace{\sum\nolimits_{j\in\mathcal{J}} + g_j\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}} + \right)}_{\text{Constraints}}} \\ + \text{subject to}\hspace{5mm} & + \tilde{\boldsymbol{c}} \in \left[ 0, 1 \right]^n + \end{align*} + + \vspace*{-5mm} + + \begin{algorithm}[caption={}, label={}, + basicstyle=\fontsize{10}{18}\selectfont + ] +Initialize $\tilde{\boldsymbol{c}}, \boldsymbol{z}, \boldsymbol{u}, \boldsymbol{\gamma}, \rho$ +while stopping criterion unfulfilled do + $\textcolor{KITblue}{\tilde{\boldsymbol{c}} \leftarrow \argmin_{\tilde{\boldsymbol{c}}} + \left( \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}} + + \frac{\rho}{2}\sum_{j\in\mathcal{J}} \left\Vert + \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j + + \boldsymbol{u}_j \right\Vert \right)}$ + $\textcolor{KITred}{\boldsymbol{z}_j \leftarrow \textbf{prox}_{g_j} + \left( \boldsymbol{T}_j\tilde{\boldsymbol{c}} + + \boldsymbol{u}_j \right), \hspace{5mm}\forall j\in\mathcal{J}}$ + $\boldsymbol{u}_j \leftarrow \boldsymbol{u}_j + + \tilde{\boldsymbol{c}} - \boldsymbol{z}_j, \hspace{14.5mm}\forall j\in\mathcal{J}$ +end while +return $\hat{\boldsymbol{c}}$ + \end{algorithm} + \end{subfigure}% +\end{figure}% + +\end{frame} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[t] + \frametitle{Comparison: Time Complexity} + + \vspace*{-6.5mm} + + \begin{itemize} + \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} + \item Measured performance: $\sim\SI{10000}{}$ frames/s + on Intel Core i7-7700HQ @ 2.80GHz; $n=204$ + \item Both algorithms are $\mathcal{O}\left( n \right)$ on average + \end{itemize} + + \bigskip + + \begin{figure}[H] + \centering + + \begin{tikzpicture} + \begin{axis}[ + grid=both, + xlabel={$n$}, ylabel={time per frame (ms)}, + legend style={at={(0.05,0.6)},anchor=south west}, + legend cell align={left}, + width=0.43\textwidth, + height=0.32\textwidth, + ] + \addplot[scol0, only marks, mark=square*] + table [col sep=comma, x=n, y=spf, + y expr=\thisrow{spf} * 1000] + {res/proximal/fps_vs_n.csv}; + \addlegendentry{proximal} + + \addplot[scol1, only marks, mark=*] + table [col sep=comma, x=n, y=spf, + y expr=\thisrow{spf} * 1000] + {res/hybrid/fps_vs_n.csv}; + \addlegendentry{improved ($N=12$)} + + \addplot[scol2, only marks, mark=triangle*] + table [col sep=comma, x=n, y=spf, + y expr=\thisrow{spf} * 1000] + {res/admm/fps_vs_n.csv}; + \addlegendentry{ADMM} + \end{axis} + \end{tikzpicture} + \end{figure} + + \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} + + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[t] + \frametitle{Comparison: Convergence Behavior} + + \vspace*{-6mm} + + \begin{itemize} + \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} + \item Minimum number of iterations independent of SNR + \end{itemize} + + \smallskip + + \begin{figure}[H] + \centering + + \begin{subfigure}[t]{0.5\textwidth} + \centering + + \begin{tikzpicture} + \begin{axis}[ + grid=both, + xlabel={Iterations}, + ylabel={Average $\lVert \boldsymbol{c}-\boldsymbol{\hat{c}} \rVert$}, + width=0.9\textwidth, + height=0.675\textwidth, + %legend pos=outer north east, + ] + \addplot [scol0, mark=none, line width=1pt] + table [col sep=comma, + discard if not={omega}{0.0774263682681127}, + discard if gt={k}{101}, + x=k, y=err] + {res/proximal/2d_avg_error_20433484_1db.csv}; + \addlegendentry{$E_b / N_0 = \SI{1}{dB}$} + \addplot [scol1, mark=none, line width=1pt] + table [col sep=comma, discard if not={omega}{0.0774263682681127}, + discard if gt={k}{101}, + x=k, y=err] + {res/proximal/2d_avg_error_20433484_3db.csv}; + \addlegendentry{$E_b / N_0 = \SI{3}{dB}$} + \addplot [scol2, mark=none, line width=1pt] + table [col sep=comma, discard if not={omega}{0.052233450742668434}, + discard if gt={k}{101}, + x=k, y=err] + {res/proximal/2d_avg_error_20433484_5db.csv}; + \addlegendentry{$E_b / N_0 = \SI{5}{dB}$} + \addplot [KITorange, mark=none, line width=1pt] + table [col sep=comma, discard if not={omega}{0.052233450742668434}, + discard if gt={k}{101}, + x=k, y=err] + {res/proximal/2d_avg_error_20433484_8db.csv}; + \addlegendentry{$E_b / N_0 = \SI{8}{dB}$} + \end{axis} + \end{tikzpicture} + \caption{Proximal Decoding} + \end{subfigure}% + \begin{subfigure}[t]{0.5\textwidth} + \centering + + \begin{tikzpicture} + \begin{axis}[ + grid=both, + width=0.9\textwidth, + height=0.675\textwidth, +% legend pos=outer north east, + xlabel={Iteration}, + ylabel={Average $\left\Vert \hat{\boldsymbol{c}} - \boldsymbol{c} \right\Vert$} + ] + \addplot[scol0, line width=1pt] + table [col sep=comma, x=k, y=err, + discard if not={SNR}{1.0}, + discard if gt={k}{101}] + {res/admm/avg_error_20433484.csv}; + \addlegendentry{$E_b / N_0 = \SI{1}{dB}$} + + \addplot[scol1, line width=1pt] + table [col sep=comma, x=k, y=err, + discard if not={SNR}{2.0}, + discard if gt={k}{101}] + {res/admm/avg_error_20433484.csv}; + \addlegendentry{$E_b / N_0 = \SI{2}{dB}$} + + \addplot[scol2, line width=1pt] + table [col sep=comma, x=k, y=err, + discard if not={SNR}{3.0}, + discard if gt={k}{101}] + {res/admm/avg_error_20433484.csv}; + \addlegendentry{$E_b / N_0 = \SI{3}{dB}$} + + \addplot[KITorange, line width=1pt] + table [col sep=comma, x=k, y=err, + discard if not={SNR}{4.0}, + discard if gt={k}{101}] + {res/admm/avg_error_20433484.csv}; + \addlegendentry{$E_b / N_0 = \SI{4}{dB}$} + \end{axis} + \end{tikzpicture} + \caption{LP Decoding using ADMM} + \end{subfigure}% + \end{figure} + + \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} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{Proximal Decoding: Choice of $\gamma$} @@ -35,15 +533,15 @@ colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_963965.csv}; - \addplot3[NavyBlue, line width=1.5] table [col sep=comma, + \addplot3[scol1, line width=1.5] table [col sep=comma, discard if not={gamma}{0.01}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_963965.csv}; - \addplot3[RedOrange, line width=1.5] table [col sep=comma, + \addplot3[scol2, line width=1.5] table [col sep=comma, discard if not={gamma}{0.05}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_963965.csv}; - \addplot3[ForestGreen, line width=1.5] table [col sep=comma, + \addplot3[scol0, line width=1.5] table [col sep=comma, discard if not={gamma}{0.15}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_963965.csv}; @@ -73,15 +571,15 @@ colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addplot3[NavyBlue, line width=1.5] table [col sep=comma, + \addplot3[scol1, line width=1.5] table [col sep=comma, discard if not={gamma}{0.01}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addplot3[RedOrange, line width=1.5] table [col sep=comma, + \addplot3[scol2, line width=1.5] table [col sep=comma, discard if not={gamma}{0.05}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addplot3[ForestGreen, line width=1.5] table [col sep=comma, + \addplot3[scol0, line width=1.5] table [col sep=comma, discard if not={gamma}{0.15}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_20433484.csv}; @@ -111,15 +609,15 @@ colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_40833844.csv}; - \addplot3[NavyBlue, line width=1.5] table [col sep=comma, + \addplot3[scol1, line width=1.5] table [col sep=comma, discard if not={gamma}{0.01}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_40833844.csv}; - \addplot3[RedOrange, line width=1.5] table [col sep=comma, + \addplot3[scol2, line width=1.5] table [col sep=comma, discard if not={gamma}{0.05}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_40833844.csv}; - \addplot3[ForestGreen, line width=1.5] table [col sep=comma, + \addplot3[scol0, line width=1.5] table [col sep=comma, discard if not={gamma}{0.15}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_40833844.csv}; @@ -152,15 +650,15 @@ colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_bch_31_26.csv}; - \addplot3[NavyBlue, line width=1.5] table [col sep=comma, + \addplot3[scol1, line width=1.5] table [col sep=comma, discard if not={gamma}{0.01}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_bch_31_26.csv}; - \addplot3[RedOrange, line width=1.5] table [col sep=comma, + \addplot3[scol2, line width=1.5] table [col sep=comma, discard if not={gamma}{0.05}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_bch_31_26.csv}; - \addplot3[ForestGreen, line width=1.5] table [col sep=comma, + \addplot3[scol0, line width=1.5] table [col sep=comma, discard if not={gamma}{0.15}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_bch_31_26.csv}; @@ -189,15 +687,15 @@ colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_20455187.csv}; - \addplot3[NavyBlue, line width=1.5] table [col sep=comma, + \addplot3[scol1, line width=1.5] table [col sep=comma, discard if not={gamma}{0.01}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_20455187.csv}; - \addplot3[RedOrange, line width=1.5] table [col sep=comma, + \addplot3[scol2, line width=1.5] table [col sep=comma, discard if not={gamma}{0.05}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_20455187.csv}; - \addplot3[ForestGreen, line width=1.5] table [col sep=comma, + \addplot3[scol0, line width=1.5] table [col sep=comma, discard if not={gamma}{0.15}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_20455187.csv}; @@ -227,15 +725,15 @@ colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_pegreg252x504.csv}; - \addplot3[NavyBlue, line width=1.5] table [col sep=comma, + \addplot3[scol1, line width=1.5] table [col sep=comma, discard if not={gamma}{0.01}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_pegreg252x504.csv}; - \addplot3[RedOrange, line width=1.5] table [col sep=comma, + \addplot3[scol2, line width=1.5] table [col sep=comma, discard if not={gamma}{0.05}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_pegreg252x504.csv}; - \addplot3[ForestGreen, line width=1.5] table [col sep=comma, + \addplot3[scol0, line width=1.5] table [col sep=comma, discard if not={gamma}{0.15}, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_pegreg252x504.csv}; @@ -263,11 +761,11 @@ legend style={draw=white!15!black,legend cell align=left}] \addlegendimage{surf, colormap/viridis} \addlegendentry{$\gamma = \left[ 0\text{:}0.01\text{:}0.16 \right] $}; - \addlegendimage{NavyBlue, line width=1.5pt} + \addlegendimage{scol1, line width=1.5pt} \addlegendentry{$\gamma = 0.01$}; - \addlegendimage{RedOrange, line width=1.5pt} + \addlegendimage{scol2, line width=1.5pt} \addlegendentry{$\gamma = 0.05$}; - \addlegendimage{ForestGreen, line width=1.5pt} + \addlegendimage{scol0, line width=1.5pt} \addlegendentry{$\gamma = 0.15$}; \end{axis} \end{tikzpicture} @@ -280,6 +778,103 @@ Jan. 2023. URL: \url{http://www.inference.org.uk/mackay/codes/data.html}.} \end{frame} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[t] + \frametitle{LP Decoding using ADMM: Choice of $\mu$ and $\rho$} + + \vspace*{-5mm} + + \begin{itemize} + \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} + \item No clear optimum value + \end{itemize} + + \bigskip + + \begin{figure}[H] + \centering + + \begin{subfigure}[c]{0.48\textwidth} + \centering + + \begin{tikzpicture} + \begin{axis}[ + grid=both, + xlabel={$\mu$}, ylabel={FER}, + ymode=log, + width=0.8\textwidth, + height=0.6\textwidth, + ] + \addplot[scol0, line width=1pt] + table [col sep=comma, x=mu, y=FER, + discard if not={SNR}{2.0},] + {res/admm/ber_2d_20433484.csv}; + \addplot[scol1, line width=1pt] + table [col sep=comma, x=mu, y=FER, + discard if not={SNR}{3.0},] + {res/admm/ber_2d_20433484.csv}; + \addplot[scol2, line width=1pt] + table [col sep=comma, x=mu, y=FER, + discard if not={SNR}{4.0},] + {res/admm/ber_2d_20433484.csv}; + \end{axis} + \end{tikzpicture} + \end{subfigure}% + \begin{subfigure}[c]{0.48\textwidth} + \centering + + \begin{tikzpicture} + \begin{axis}[ + grid=both, + xlabel={$\rho$}, ylabel={FER}, + ymode=log, + width=0.8\textwidth, + height=0.6\textwidth, + ] + \addplot[scol0, line width=1pt] + table [col sep=comma, x=rho, y=FER, + discard if not={SNR}{2.0},] + {res/admm/ber_2d_20433484_rho.csv}; + \addplot[scol1, line width=1pt] + table [col sep=comma, x=rho, y=FER, + discard if not={SNR}{3.0},] + {res/admm/ber_2d_20433484_rho.csv}; + \addplot[scol2, line width=1pt] + table [col sep=comma, x=rho, y=FER, + discard if not={SNR}{4.0},] + {res/admm/ber_2d_20433484_rho.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{scol0, line width=1pt} + \addlegendentry{$E_b / N_0 = \SI{2}{dB}$} + \addlegendimage{scol1, line width=1pt} + \addlegendentry{$E_b / N_0 = \SI{3}{dB}$} + \addlegendimage{scol2, line width=1pt} + \addlegendentry{$E_b / N_0 = \SI{4}{dB}$} + \end{axis} + \end{tikzpicture} + \end{subfigure} + \end{figure}% + + \bigskip + + \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} + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] \frametitle{LP Decoding using ADMM: Choice of $\mu$ and $\rho$} @@ -305,15 +900,15 @@ width=1.2\textwidth, height=0.825\textwidth, ] - \addplot[ForestGreen, line width=1pt] + \addplot[scol1, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{2.0},] {res/admm/mu_rho_kavg_963965.csv}; - \addplot[RedOrange, line width=1pt] + \addplot[scol2, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{5.0},] {res/admm/mu_rho_kavg_963965.csv}; - \addplot[NavyBlue, line width=1pt] + \addplot[scol0, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{9.0},] {res/admm/mu_rho_kavg_963965.csv}; @@ -336,15 +931,15 @@ width=1.2\textwidth, height=0.825\textwidth, ] - \addplot[ForestGreen, line width=1pt] + \addplot[scol1, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{2.0},] {res/admm/mu_rho_kavg_20433484.csv}; - \addplot[RedOrange, line width=1pt] + \addplot[scol2, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{5.0},] {res/admm/mu_rho_kavg_20433484.csv}; - \addplot[NavyBlue, line width=1pt] + \addplot[scol0, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{9.0},] {res/admm/mu_rho_kavg_20433484.csv}; @@ -367,15 +962,15 @@ width=1.2\textwidth, height=0.825\textwidth, ] - \addplot[ForestGreen, line width=1pt] + \addplot[scol1, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{2.0},] {res/admm/mu_rho_kavg_40833844.csv}; - \addplot[RedOrange, line width=1pt] + \addplot[scol2, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{5.0},] {res/admm/mu_rho_kavg_40833844.csv}; - \addplot[NavyBlue, line width=1pt] + \addplot[scol0, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{9.0},] {res/admm/mu_rho_kavg_40833844.csv}; @@ -401,15 +996,15 @@ width=1.2\textwidth, height=0.825\textwidth, ] - \addplot[ForestGreen, line width=1pt] + \addplot[scol1, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{2.0},] {res/admm/mu_rho_kavg_bch_31_26.csv}; - \addplot[RedOrange, line width=1pt] + \addplot[scol2, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{5.0},] {res/admm/mu_rho_kavg_bch_31_26.csv}; - \addplot[NavyBlue, line width=1pt] + \addplot[scol0, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{9.0},] {res/admm/mu_rho_kavg_bch_31_26.csv}; @@ -431,15 +1026,15 @@ width=1.2\textwidth, height=0.825\textwidth, ] - \addplot[ForestGreen, line width=1pt] + \addplot[scol1, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{2.0},] {res/admm/mu_rho_kavg_20455187.csv}; - \addplot[RedOrange, line width=1pt] + \addplot[scol2, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{5.0},] {res/admm/mu_rho_kavg_20455187.csv}; - \addplot[NavyBlue, line width=1pt] + \addplot[scol0, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{9.0},] {res/admm/mu_rho_kavg_20455187.csv}; @@ -462,15 +1057,15 @@ width=1.2\textwidth, height=0.825\textwidth, ] - \addplot[ForestGreen, line width=1pt] + \addplot[scol1, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{2.0},] {res/admm/mu_rho_kavg_pegreg252x504.csv}; - \addplot[RedOrange, line width=1pt] + \addplot[scol2, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{5.0},] {res/admm/mu_rho_kavg_pegreg252x504.csv}; - \addplot[NavyBlue, line width=1pt] + \addplot[scol0, line width=1pt] table [col sep=comma, x=rho, y=k_avg, discard if not={mu}{9.0},] {res/admm/mu_rho_kavg_pegreg252x504.csv}; @@ -499,11 +1094,11 @@ legend columns=1, legend style={draw=white!15!black}] - \addlegendimage{NavyBlue, line width=1pt} + \addlegendimage{scol0, line width=1pt} \addlegendentry{$\mu = 9$} - \addlegendimage{RedOrange, line width=1pt} + \addlegendimage{scol2, line width=1pt} \addlegendentry{$\mu = 5$} - \addlegendimage{ForestGreen, line width=1pt} + \addlegendimage{scol1, line width=1pt} \addlegendentry{$\mu = 2$} \end{axis} \end{tikzpicture} diff --git a/sections/comparison.tex b/sections/comparison.tex index b521e50..f7a7c35 100644 --- a/sections/comparison.tex +++ b/sections/comparison.tex @@ -7,283 +7,15 @@ \label{sub:Comparison of Simulation Results} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[t] - \frametitle{Comparison: Convergence Behavior} - - \vspace*{-3mm} - - \begin{itemize} - \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} - \item Minimum number of iterations independent of SNR - \end{itemize} - - \bigskip - - \begin{figure}[H] - \centering - - \begin{subfigure}[t]{0.5\textwidth} - \centering - - \begin{tikzpicture} - \begin{axis}[ - grid=both, - xlabel={Iterations}, - ylabel={Average $\lVert \boldsymbol{c}-\boldsymbol{\hat{c}} \rVert$}, - width=0.9\textwidth, - height=0.675\textwidth, - %legend pos=outer north east, - ] - \addplot [ForestGreen, mark=none, line width=1pt] - table [col sep=comma, - discard if not={omega}{0.0774263682681127}, - discard if gt={k}{101}, - x=k, y=err] - {res/proximal/2d_avg_error_20433484_1db.csv}; - \addlegendentry{$E_b / N_0 = \SI{1}{dB}$} - \addplot [NavyBlue, mark=none, line width=1pt] - table [col sep=comma, discard if not={omega}{0.0774263682681127}, - discard if gt={k}{101}, - x=k, y=err] - {res/proximal/2d_avg_error_20433484_3db.csv}; - \addlegendentry{$E_b / N_0 = \SI{3}{dB}$} - \addplot [RedOrange, mark=none, line width=1pt] - table [col sep=comma, discard if not={omega}{0.052233450742668434}, - discard if gt={k}{101}, - x=k, y=err] - {res/proximal/2d_avg_error_20433484_5db.csv}; - \addlegendentry{$E_b / N_0 = \SI{5}{dB}$} - \addplot [RoyalPurple, mark=none, line width=1pt] - table [col sep=comma, discard if not={omega}{0.052233450742668434}, - discard if gt={k}{101}, - x=k, y=err] - {res/proximal/2d_avg_error_20433484_8db.csv}; - \addlegendentry{$E_b / N_0 = \SI{8}{dB}$} - \end{axis} - \end{tikzpicture} - \end{subfigure}% - \begin{subfigure}[t]{0.5\textwidth} - \centering - - \begin{tikzpicture} - \begin{axis}[ - grid=both, - width=0.9\textwidth, - height=0.675\textwidth, -% legend pos=outer north east, - xlabel={Iteration}, - ylabel={Average $\left\Vert \hat{\boldsymbol{c}} - \boldsymbol{c} \right\Vert$} - ] - \addplot[ForestGreen, line width=1pt] - table [col sep=comma, x=k, y=err, - discard if not={SNR}{1.0}, - discard if gt={k}{101}] - {res/admm/avg_error_20433484.csv}; - \addlegendentry{$E_b / N_0 = \SI{1}{dB}$} - - \addplot[RedOrange, line width=1pt] - table [col sep=comma, x=k, y=err, - discard if not={SNR}{2.0}, - discard if gt={k}{101}] - {res/admm/avg_error_20433484.csv}; - \addlegendentry{$E_b / N_0 = \SI{2}{dB}$} - - \addplot[NavyBlue, line width=1pt] - table [col sep=comma, x=k, y=err, - discard if not={SNR}{3.0}, - discard if gt={k}{101}] - {res/admm/avg_error_20433484.csv}; - \addlegendentry{$E_b / N_0 = \SI{3}{dB}$} - - \addplot[RoyalPurple, line width=1pt] - table [col sep=comma, x=k, y=err, - discard if not={SNR}{4.0}, - discard if gt={k}{101}] - {res/admm/avg_error_20433484.csv}; - \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} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[t] - \frametitle{Comparison: Time Complexity} - - \vspace*{-6.5mm} - - \begin{itemize} - \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} - \item Measured performance: $\sim\SI{10000}{}$ frames/s - on Intel Core i7-7700HQ @ 2.80GHz; $n=204$ - \item Both algorithms are $\mathcal{O}\left( n \right)$ on average - \end{itemize} - - \bigskip - - \begin{figure}[H] - \centering - - \begin{tikzpicture} - \begin{axis}[ - grid=both, - xlabel={$n$}, ylabel={time per frame (ms)}, - legend style={at={(0.05,0.6)},anchor=south west}, - legend cell align={left}, - width=0.43\textwidth, - height=0.32\textwidth, - ] - \addplot[RedOrange, only marks, mark=square*] - table [col sep=comma, x=n, y=spf, - y expr=\thisrow{spf} * 1000] - {res/proximal/fps_vs_n.csv}; - \addlegendentry{proximal} - - \addplot[Gray, only marks, mark=*] - table [col sep=comma, x=n, y=spf, - y expr=\thisrow{spf} * 1000] - {res/hybrid/fps_vs_n.csv}; - \addlegendentry{improved ($N=12$)} - - \addplot[NavyBlue, only marks, mark=triangle*] - table [col sep=comma, x=n, y=spf, - y expr=\thisrow{spf} * 1000] - {res/admm/fps_vs_n.csv}; - \addlegendentry{ADMM} - \end{axis} - \end{tikzpicture} - \end{figure} - - \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} - - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[t] - \frametitle{Comparison: Decoding Performance} - - \vspace{-0.5cm} - - \begin{itemize} - \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} - \end{itemize} - - \begin{figure}[H] - \centering - - \begin{tikzpicture} - \begin{axis}[ - grid=both, - xlabel={$E_b / N_0$}, ylabel={BER}, - ymode=log, - legend columns=2, - legend style={at={(0.5,-0.45)},anchor=south}, - ymax=1.5, ymin=3e-8, - width=0.45\textwidth, - height=0.33\textwidth, - ] - \addplot[RedOrange, mark=*, line width=1pt] - table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}] - {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addplot[RedOrange, mark=triangle, densely dashed, line width=1pt] - table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}] - {res/hybrid/2d_ber_fer_dfr_20433484.csv}; - - \addplot[NavyBlue, line width=1pt, mark=*] - table [x=SNR, y=BER, col sep=comma, - discard if not={mu}{3.0}, - %discard if gt={SNR}{4.0} - ] - {res/admm/ber_2d_20433484.csv}; - - \addplot [RoyalPurple, mark=*, line width=1pt] - table [x=SNR, y=BP, col sep=comma] {res/ber_paper.csv}; - \end{axis} - \end{tikzpicture} - \begin{tikzpicture} - \begin{axis}[ - grid=both, - xlabel={$E_b / N_0$}, ylabel={FER}, - ymode=log, - legend columns=2, - legend style={at={(0.5,-0.45)},anchor=south}, - ymax=1.5, ymin=3e-8, - width=0.45\textwidth, - height=0.33\textwidth, - ] - - \addplot[RedOrange, mark=*, solid, line width=1pt] - table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] - {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addplot[RedOrange, mark=triangle, densely dashed, line width=1pt] - table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] - {res/hybrid/2d_ber_fer_dfr_20433484.csv}; - - \addplot[NavyBlue, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, - discard if not={mu}{3.0}, - %discard if gt={SNR}{4.0} - ] - {res/admm/ber_2d_20433484.csv}; - \addplot[Black, line width=1pt, mark=*] - table [col sep=comma, x=SNR, y=FER, - %discard if gt={SNR}{3.0} - ] - {res/generic/fer_ml_20433484.csv}; - \end{axis} - \end{tikzpicture} - \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{RedOrange, mark=*, line width=1pt} - \addlegendentry{Proximal} - - \addlegendimage{NavyBlue, mark=*, line width=1pt} - \addlegendentry{ADMM} - - \addlegendimage{Black, mark=*, line width=1pt} - \addlegendentry{ML} - - \addlegendimage{RedOrange, mark=triangle, densely dashed, line width=1pt} - \addlegendentry{Improved ($N$=12)} - - \addlegendimage{RoyalPurple, mark=*, line width=1pt} - \addlegendentry{BP} - \end{axis} - \end{tikzpicture} - \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} - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\begin{frame}[t] -% \frametitle{Decoding Performance} +% \frametitle{Comparison: Decoding Performance} % -% \vspace*{-5mm} +% \vspace{-0.5cm} +% +% \begin{itemize} +% \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} +% \end{itemize} % % \begin{figure}[H] % \centering @@ -291,433 +23,99 @@ % \begin{tikzpicture} % \begin{axis}[ % grid=both, -% xlabel={$E_b / N_0 \left( \text{dB} \right) $}, ylabel={FER}, +% xlabel={$E_b / N_0$}, ylabel={BER}, % ymode=log, -% ymax=1.5, ymin=5e-5, -% legend columns = 3, -% legend style={at={(0.5,-0.5)},anchor=south}, +% legend columns=2, +% legend style={at={(0.5,-0.45)},anchor=south}, +% ymax=1.5, ymin=3e-8, % width=0.45\textwidth, -% height=0.3375\textwidth, +% height=0.33\textwidth, % ] -% -% \addplot[RedOrange, line width=1pt, mark=*, solid] -% table [x=SNR, y=FER, col sep=comma, -% discard if not={gamma}{0.05}, -% discard if gt={SNR}{5.5}] +% \addplot[RedOrange, mark=*, line width=1pt] +% table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}] % {res/proximal/2d_ber_fer_dfr_20433484.csv}; -% \addlegendentry{Proximal decoding} -% \addplot[NavyBlue, line width=1pt, mark=triangle, densely dashed] -% table [x=SNR, y=FER, col sep=comma, +% \addplot[RedOrange, mark=triangle, densely dashed, line width=1pt] +% table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}] +% {res/hybrid/2d_ber_fer_dfr_20433484.csv}; +% +% \addplot[NavyBlue, line width=1pt, mark=*] +% table [x=SNR, y=BER, col sep=comma, % discard if not={mu}{3.0}, -% discard if gt={SNR}{4.0}] +% %discard if gt={SNR}{4.0} +% ] % {res/admm/ber_2d_20433484.csv}; -% \addlegendentry{ADMM} -% \addplot[PineGreen, line width=1pt, mark=triangle, solid] -% table [col sep=comma, x=SNR, y=FER, -% discard if gt={SNR}{3.0}] -% {res/generic/fer_ml_20433484.csv}; -% \addlegendentry{ML} +% +% \addplot [RoyalPurple, mark=*, line width=1pt] +% table [x=SNR, y=BP, col sep=comma] {res/ber_paper.csv}; % \end{axis} % \end{tikzpicture} +% \begin{tikzpicture} +% \begin{axis}[ +% grid=both, +% xlabel={$E_b / N_0$}, ylabel={FER}, +% ymode=log, +% legend columns=2, +% legend style={at={(0.5,-0.45)},anchor=south}, +% ymax=1.5, ymin=3e-8, +% width=0.45\textwidth, +% height=0.33\textwidth, +% ] % -% \caption{Comparison of FER of proximal decoding and LP decoding using ADMM% -% \protect\footnotemark{}} -% \end{figure}% +% \addplot[RedOrange, mark=*, solid, line width=1pt] +% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] +% {res/proximal/2d_ber_fer_dfr_20433484.csv}; +% \addplot[RedOrange, mark=triangle, densely dashed, line width=1pt] +% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] +% {res/hybrid/2d_ber_fer_dfr_20433484.csv}; % -% \footnotetext{Simulation performed with (3,6) regular LDPC code with $n=204, k=102$ -% \cite[Code: 204.33.484]{mackay_enc}} +% \addplot[NavyBlue, line width=1pt, mark=*] +% table [x=SNR, y=FER, col sep=comma, +% discard if not={mu}{3.0}, +% %discard if gt={SNR}{4.0} +% ] +% {res/admm/ber_2d_20433484.csv}; +% \addplot[Black, line width=1pt, mark=*] +% table [col sep=comma, x=SNR, y=FER, +% %discard if gt={SNR}{3.0} +% ] +% {res/generic/fer_ml_20433484.csv}; +% \end{axis} +% \end{tikzpicture} +% \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{RedOrange, mark=*, line width=1pt} +% \addlegendentry{Proximal} +% +% \addlegendimage{NavyBlue, mark=*, line width=1pt} +% \addlegendentry{ADMM} +% +% \addlegendimage{Black, mark=*, line width=1pt} +% \addlegendentry{ML} +% +% \addlegendimage{RedOrange, mark=triangle, densely dashed, line width=1pt} +% \addlegendentry{Improved ($N$=12)} +% +% \addlegendimage{RoyalPurple, mark=*, line width=1pt} +% \addlegendentry{BP} +% \end{axis} +% \end{tikzpicture} +% \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} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[t] - \frametitle{Comparison: Decoding Performance} - - \captionsetup[subfigure]{font=footnotesize} - - \hspace*{-0.4cm} - \begin{minipage}[c]{0.9\textwidth} - \centering - - \begin{figure}[H] - \vspace*{-0.8cm} - \centering - - \begin{subfigure}[t]{0.33\textwidth} - \centering - - \begin{tikzpicture}[scale=0.8] - \begin{axis}[ - grid=both, - xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, - ymode=log, - ymax=1.5, ymin=8e-5, - width=1.2\textwidth, - height=0.825\textwidth, - ] - - \addplot[RedOrange, line width=1pt, mark=*, solid] - table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] - {res/proximal/2d_ber_fer_dfr_963965.csv}; - \addplot[RedOrange, mark=triangle, densely dashed, line width=1pt] - table [x=SNR, y=FER, col sep=comma, - discard if not={gamma}{0.05}, discard if gt={SNR}{5.5}] - {res/hybrid/2d_ber_fer_dfr_963965.csv}; - \addplot[NavyBlue, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}] - %{res/hybrid/2d_ber_fer_dfr_963965.csv}; - {res/admm/ber_2d_963965.csv}; - \addplot[Black, line width=1pt, mark=*] - table [col sep=comma, x=SNR, y=FER,] - {res/generic/fer_ml_9633965.csv}; - \end{axis} - \end{tikzpicture} - - \vspace*{-2mm} - - \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ - \citereference{Mac23, 96.33.965}} - \end{subfigure}% - \begin{subfigure}[t]{0.33\textwidth} - \centering - - \begin{tikzpicture}[scale=0.8] - \begin{axis}[ - grid=both, - xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, - ymode=log, - ymax=1.5, ymin=8e-5, - width=1.2\textwidth, - height=0.825\textwidth, - ] - - \addplot[RedOrange, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, - discard if not={gamma}{0.05}, - discard if gt={SNR}{5.5}] - {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addplot[RedOrange, mark=triangle, densely dashed, line width=1pt] - table [x=SNR, y=FER, col sep=comma, - discard if not={gamma}{0.05}, discard if gt={SNR}{5.5}] - {res/hybrid/2d_ber_fer_dfr_20433484.csv}; - \addplot[NavyBlue, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, - discard if not={mu}{3.0}, - discard if gt={SNR}{5.5}] - {res/admm/ber_2d_20433484.csv}; - \addplot[Black, line width=1pt, mark=*] - table [col sep=comma, x=SNR, y=FER, - discard if gt={SNR}{5.5}] - {res/generic/fer_ml_20433484.csv}; - \end{axis} - \end{tikzpicture} - - \vspace*{-2mm} - - \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$ - \citereference{Mac23, 204.33.484}} - \end{subfigure}% - \begin{subfigure}[t]{0.33\textwidth} - \centering - - \begin{tikzpicture}[scale=0.8] - \begin{axis}[ - grid=both, - xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, - ymode=log, - ymax=1.5, ymin=8e-5, - width=1.2\textwidth, - height=0.825\textwidth, - ] - - \addplot[RedOrange, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] - {res/proximal/2d_ber_fer_dfr_40833844.csv}; - \addplot[RedOrange, mark=triangle, densely dashed, line width=1pt] - table [x=SNR, y=FER, col sep=comma, - discard if not={gamma}{0.05}, discard if gt={SNR}{5.5}] - {res/hybrid/2d_ber_fer_dfr_40833844.csv}; - \addplot[NavyBlue, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}] - {res/admm/ber_2d_40833844.csv}; - \end{axis} - \end{tikzpicture} - - \vspace*{-2mm} - - \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$ - \citereference{Mac23, 408.33.844}} - \end{subfigure}% - - \vspace*{-2mm} - - \begin{subfigure}[t]{0.33\textwidth} - \centering - - \begin{tikzpicture}[scale=0.8] - \begin{axis}[ - grid=both, - xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, - ymode=log, - ymax=1.5, ymin=8e-5, - width=1.2\textwidth, - height=0.825\textwidth, - ] - - \addplot[RedOrange, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] - {res/proximal/2d_ber_fer_dfr_bch_31_26.csv}; - \addplot[RedOrange, mark=triangle, densely dashed, line width=1pt] - table [x=SNR, y=FER, col sep=comma, - discard if not={gamma}{0.05}, discard if gt={SNR}{5.5}] - {res/hybrid/2d_ber_fer_dfr_bch_31_26.csv}; - \addplot[NavyBlue, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}] - {res/admm/ber_2d_bch_31_26.csv}; - \addplot[Black, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, - discard if gt={SNR}{5.5}, - discard if lt={SNR}{1}, - ] - {res/generic/fer_ml_bch_31_26.csv}; - \end{axis} - \end{tikzpicture} - - \vspace*{-2mm} - - \caption{BCH code with $n=31, k=26$} - \end{subfigure}% - \begin{subfigure}[t]{0.33\textwidth} - \centering - - \begin{tikzpicture}[scale=0.8] - \begin{axis}[ - grid=both, - xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, - ymode=log, - ymax=1.5, ymin=8e-5, - width=1.2\textwidth, - height=0.825\textwidth, - ] - - \addplot[RedOrange, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] - {res/proximal/2d_ber_fer_dfr_20455187.csv}; - \addplot[RedOrange, mark=triangle, densely dashed, line width=1pt] - table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] - {res/hybrid/2d_ber_fer_dfr_20455187.csv}; - \addplot[NavyBlue, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}] - {res/admm/ber_2d_20455187.csv}; - \end{axis} - \end{tikzpicture} - - \vspace*{-2mm} - - \caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$ - \citereference{Mac23, 204.55.187}} - \end{subfigure}% - \begin{subfigure}[t]{0.33\textwidth} - \centering - - \begin{tikzpicture}[scale=0.8] - \begin{axis}[ - grid=both, - xlabel={$E_b / N_0$ (dB)}, ylabel={FER}, - ymode=log, - ymax=1.5, ymin=8e-5, - width=1.2\textwidth, - height=0.825\textwidth, - ] - - \addplot[RedOrange, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] - {res/proximal/2d_ber_fer_dfr_pegreg252x504.csv}; - \addplot[RedOrange, mark=triangle, densely dashed, line width=1pt] - table [x=SNR, y=FER, col sep=comma, - discard if not={gamma}{0.05}, discard if gt={SNR}{5.5}] - {res/hybrid/2d_ber_fer_dfr_pegreg252x504.csv}; - \addplot[NavyBlue, line width=1pt, mark=*] - table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}] - {res/admm/ber_2d_pegreg252x504.csv}; - \end{axis} - \end{tikzpicture} - - \vspace*{-2mm} - - \caption{LDPC code (progressive edge growth construction) with $n=504, k=252$ - \citereference{Mac23, PEGReg252x504}} - \end{subfigure}% - \end{figure} - \end{minipage}% - \begin{minipage}[c]{0.1\textwidth} - \centering - - \begin{figure} - \centering - \vspace*{-1.2cm} - \hspace*{2mm} - \begin{tikzpicture}[scale=0.8] - \begin{axis}[hide axis, - xmin=10, xmax=50, - ymin=0, ymax=0.4, - legend columns=1, - legend style={draw=white!15!black}] - \addlegendimage{RedOrange, line width=1pt, mark=*, solid} - \addlegendentry{Proximal} - - \addlegendimage{RedOrange, line width=1pt, mark=triangle*, densely dashed} - \addlegendentry{Improved} - - \addlegendimage{NavyBlue, line width=1pt, mark=*} - \addlegendentry{ADMM} - - \addlegendimage{Black, line width=1pt, mark=*} - \addlegendentry{ML} - \end{axis} - \end{tikzpicture} - \end{figure} - \end{minipage} - - \vspace*{-1mm} - - \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} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Theoretical Comparison}% \label{sub:Theoretical Comparison} -\begin{frame}[t, fragile] - \frametitle{Comparison: Algorithm Structure} - - \vspace*{-1cm} - - \begin{figure}[h] - \centering - - \begin{subfigure}[b]{0.47\textwidth} - \centering - - \begin{align*} - \text{minimize}\hspace{2mm} & \textcolor{KITblue}{\underbrace{L\left( - \boldsymbol{y} \mid \tilde{\boldsymbol{x}} \right)}_{\text{Likelihood}}} - + \textcolor{KITred}{\underbrace{\gamma h\left( \tilde{\boldsymbol{x}} - \right)} _{\text{Constraints}}} \\ - \text{subject to}\hspace{2mm} &\tilde{\boldsymbol{x}} \in \mathbb{R}^n - \end{align*} - - \vspace*{-5mm} - - \begin{algorithm}[caption={}, label={}, - basicstyle=\fontsize{10}{18}\selectfont - ] -Initialize $\boldsymbol{r}, \boldsymbol{s}, \omega, \gamma$ -while stopping critierion unfulfilled do - $\textcolor{KITblue}{\boldsymbol{r} \leftarrow \boldsymbol{r} - + \omega \nabla L\left( \boldsymbol{y} \mid \boldsymbol{s} \right)} $ - $\textcolor{KITred}{\boldsymbol{s} \leftarrow - \textbf{prox}_{\gamma h}\left( \boldsymbol{r} \right)} $|\Suppressnumber| -|\Reactivatenumber| -end while -return $\hat{\boldsymbol{c}}$ - \end{algorithm} - \end{subfigure}\hfill% - \begin{subfigure}[b]{0.5\textwidth} - \centering - - \begin{align*} - \text{minimize}\hspace{5mm} & - \textcolor{KITblue}{\underbrace{\boldsymbol{\gamma}^\text{T} - \tilde{\boldsymbol{c}}}_{\text{Likelihood}}} - + \textcolor{KITred}{\underbrace{\sum\nolimits_{j\in\mathcal{J}} - g_j\left( \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \right)}_{\text{Constraints}}} \\ - \text{subject to}\hspace{5mm} & - \tilde{\boldsymbol{c}} \in \left[ 0, 1 \right]^n - \end{align*} - - \vspace*{-5mm} - - \begin{algorithm}[caption={}, label={}, - basicstyle=\fontsize{10}{18}\selectfont - ] -Initialize $\tilde{\boldsymbol{c}}, \boldsymbol{z}, \boldsymbol{u}, \boldsymbol{\gamma}, \rho$ -while stopping criterion unfulfilled do - $\textcolor{KITblue}{\tilde{\boldsymbol{c}} \leftarrow \argmin_{\tilde{\boldsymbol{c}}} - \left( \boldsymbol{\gamma}^\text{T}\tilde{\boldsymbol{c}} - + \frac{\rho}{2}\sum_{j\in\mathcal{J}} \left\Vert - \boldsymbol{T}_j\tilde{\boldsymbol{c}} - \boldsymbol{z}_j - + \boldsymbol{u}_j \right\Vert \right)}$ - $\textcolor{KITred}{\boldsymbol{z}_j \leftarrow \textbf{prox}_{g_j} - \left( \boldsymbol{T}_j\tilde{\boldsymbol{c}} - + \boldsymbol{u}_j \right), \hspace{5mm}\forall j\in\mathcal{J}}$ - $\boldsymbol{u}_j \leftarrow \boldsymbol{u}_j - + \tilde{\boldsymbol{c}} - \boldsymbol{z}_j, \hspace{14.5mm}\forall j\in\mathcal{J}$ -end while -return $\hat{\boldsymbol{c}}$ - \end{algorithm} - \end{subfigure}% -\end{figure}% - -\end{frame} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[t, fragile] - \frametitle{Comparison: Algorithm Structure} - - \vspace*{-0.6cm} - - \begin{figure}[h] - \centering - - \begin{subfigure}{0.48\textwidth} - \centering - - \begin{algorithm}[caption={}, label={},] -Initialize $\boldsymbol{r}, \boldsymbol{s}, \omega, \gamma$ -while stopping critierion unfulfilled do - for $j$ in $\mathcal{J}$ do - $p_j \leftarrow \prod_{i\in N_c\left( j \right) } r_i $ - $\textcolor{KITblue}{M_{j\to i} \leftarrow p_j^2 - p_j}$|\Suppressnumber| -|\vspace{0.7mm}\Reactivatenumber| - end for - for $i$ in $\mathcal{I}$ do - $s_i \leftarrow s_i + \gamma \left[ 4\left( s_i^2 - 1 \right)s_i - \phantom{\frac{4}{s_i}}\right.$|\Suppressnumber| - |\Reactivatenumber|$\left.+ \frac{4}{s_i}\sum_{j\in N_v\left( i \right) } - M_{j\to i} \right] $ - $r_i \leftarrow r_i + \omega \left( s_i - y_i \right)$ - end for -end while -return $\hat{\boldsymbol{c}}$ - \end{algorithm} - \end{subfigure}% - \hfill - \begin{subfigure}{0.48\textwidth} - \centering - - \begin{algorithm}[caption={}, label={},] -Initialize $\tilde{\boldsymbol{c}}, \boldsymbol{z}, \boldsymbol{u}, \boldsymbol{\gamma}, \rho$ -while stopping criterion unfulfilled do - for $j$ in $\mathcal{J}$ do - $\boldsymbol{z}_j \leftarrow \Pi_{P_{d_j}}\left( - \boldsymbol{T}_j\tilde{\boldsymbol{c}} + \boldsymbol{u}_j\right)$ - $\boldsymbol{u}_j \leftarrow \boldsymbol{u}_j + \boldsymbol{T}_j\tilde{\boldsymbol{c}} - - \boldsymbol{z}_j$ - $\textcolor{KITblue}{M_{j\to i} \leftarrow \left( z_j \right)_i - \left( u_j \right)_i, - \hspace{3mm} \forall i \in N_c\left( j \right)}$ - end for - for $i$ in $\mathcal{I}$ do - $\tilde{c}_i \leftarrow \frac{1}{d_i} - \left(\sum_{j\in N_v\left( i \right) } M_{j\to i} - - \frac{\gamma_i}{\mu} \right)$|\Suppressnumber| -|\vspace{7mm}\Reactivatenumber| - end for -end while -return $\hat{\boldsymbol{c}}$ - \end{algorithm} - \end{subfigure}% - \end{figure}% -\end{frame} - diff --git a/sections/lp_dec_using_admm.tex b/sections/lp_dec_using_admm.tex index f6d71da..5d5ef2b 100644 --- a/sections/lp_dec_using_admm.tex +++ b/sections/lp_dec_using_admm.tex @@ -828,104 +828,6 @@ \stopreferences \end{frame} -% TODO: Move this to appendix (or remove it if other slide contains this -% information anyway) -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\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 No clear optimum value - \end{itemize} - - \bigskip - - \begin{figure}[H] - \centering - - \begin{subfigure}[c]{0.48\textwidth} - \centering - - \begin{tikzpicture} - \begin{axis}[ - grid=both, - xlabel={$\mu$}, ylabel={FER}, - ymode=log, - width=0.8\textwidth, - height=0.6\textwidth, - ] - \addplot[scol0, line width=1pt] - table [col sep=comma, x=mu, y=FER, - discard if not={SNR}{2.0},] - {res/admm/ber_2d_20433484.csv}; - \addplot[scol1, line width=1pt] - table [col sep=comma, x=mu, y=FER, - discard if not={SNR}{3.0},] - {res/admm/ber_2d_20433484.csv}; - \addplot[scol2, line width=1pt] - table [col sep=comma, x=mu, y=FER, - discard if not={SNR}{4.0},] - {res/admm/ber_2d_20433484.csv}; - \end{axis} - \end{tikzpicture} - \end{subfigure}% - \begin{subfigure}[c]{0.48\textwidth} - \centering - - \begin{tikzpicture} - \begin{axis}[ - grid=both, - xlabel={$\rho$}, ylabel={FER}, - ymode=log, - width=0.8\textwidth, - height=0.6\textwidth, - ] - \addplot[scol0, line width=1pt] - table [col sep=comma, x=rho, y=FER, - discard if not={SNR}{2.0},] - {res/admm/ber_2d_20433484_rho.csv}; - \addplot[scol1, line width=1pt] - table [col sep=comma, x=rho, y=FER, - discard if not={SNR}{3.0},] - {res/admm/ber_2d_20433484_rho.csv}; - \addplot[scol2, line width=1pt] - table [col sep=comma, x=rho, y=FER, - discard if not={SNR}{4.0},] - {res/admm/ber_2d_20433484_rho.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{scol0, line width=1pt} - \addlegendentry{$E_b / N_0 = \SI{2}{dB}$} - \addlegendimage{scol1, line width=1pt} - \addlegendentry{$E_b / N_0 = \SI{3}{dB}$} - \addlegendimage{scol2, line width=1pt} - \addlegendentry{$E_b / N_0 = \SI{4}{dB}$} - \end{axis} - \end{tikzpicture} - \end{subfigure} - \end{figure}% - - \bigskip - - \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} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\begin{frame}[t] diff --git a/sections/proximal_decoding.tex b/sections/proximal_decoding.tex index 5387af7..751efd2 100644 --- a/sections/proximal_decoding.tex +++ b/sections/proximal_decoding.tex @@ -7,7 +7,7 @@ \label{sub:Decoding Algorithm} \begin{frame}[t] - \frametitle{Proximal Decoding: General Idea \citereference{WT22}} + \frametitle{Proximal Decoding: General Approach \citereference{WT22}} \vspace*{-0.7cm} @@ -71,7 +71,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t] - \frametitle{Proximal Decoding: General Idea} + \frametitle{Proximal Decoding: General Approach} \vspace*{-3mm} @@ -137,8 +137,7 @@ return $\boldsymbol{\hat{c}}$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsection{Analysis of Simulation Results}% -\label{sub:Analysis of Simulation Results} +\subsection{Simulation Results}% \begin{frame}[t] @@ -169,27 +168,27 @@ return $\boldsymbol{\hat{c}}$ ] \addplot [scol0, line width=1pt] - table [x=SNR, y=BER, col sep=comma, + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}, discard if gt={SNR}{5.5},] {res/proximal/2d_ber_fer_dfr_20433484.csv}; \addlegendentry{$\gamma = 0.15$} \addplot [scol1, line width=1pt] - table [x=SNR, y=BER, col sep=comma, + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}, discard if gt={SNR}{5.5},] {res/proximal/2d_ber_fer_dfr_20433484.csv}; \addlegendentry{$\gamma = 0.01$} \addplot [scol2, line width=1pt] - table [x=SNR, y=BER, col sep=comma, + table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}, discard if gt={SNR}{5.5},] {res/proximal/2d_ber_fer_dfr_20433484.csv}; \addlegendentry{$\gamma = 0.05$} \addplot [KITorange, line width=1pt] - table [x=SNR, y=BER, col sep=comma] {res/generic/bp_20433484.csv}; + table [x=SNR, y=FER, col sep=comma] {res/generic/bp_20433484.csv}; \addlegendentry{BP} \end{axis} @@ -208,94 +207,6 @@ return $\boldsymbol{\hat{c}}$ \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{frame}[t] - \frametitle{Proximal Decoding: Choice of $\gamma$} - - \vspace*{-5mm} - - \begin{itemize} - \item (3,6) regular LDPC code with $n=204, k=102$ \citereference{Mac23, 204.33.484} - \item Observation: not great benefit in finding the optimal value for $\gamma$ - \end{itemize} - - \bigskip - - \begin{figure}[H] - \centering - \hspace*{-3.5cm} - \begin{subfigure}[c]{0.4\textwidth} - \centering - \begin{tikzpicture} - \begin{semilogyaxis}[xlabel={$E_b / N_0$ (dB)}, ylabel={BER}, - grid=both, grid style={line width=.1pt}, - width=\textwidth, - height=0.75\textwidth, - legend style={at={(0.05,0.05)},anchor=south west}, - ymin=3e-7, ymax=1.5,] - \addplot [scol0, line width=1pt] table [x=SNR, y=BER, - col sep=comma, discard if not={gamma}{0.15}] - {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addlegendentry{$\gamma = 0.15$} - \addplot [scol1, line width=1pt] table [x=SNR, y=BER, - col sep=comma, discard if not={gamma}{0.01}] - {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addlegendentry{$\gamma = 0.01$} - \addplot [scol2, line width=1pt] table [x=SNR, y=BER, - col sep=comma, discard if not={gamma}{0.05}] - {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addlegendentry{$\gamma = 0.05$} - \end{semilogyaxis} - \end{tikzpicture} - \end{subfigure}% - \hspace{5mm} - \begin{subfigure}[c]{0.4\textwidth} - \centering - - \begin{tikzpicture} - \begin{axis}[view={75}{30}, - zmode=log, - xlabel={$E_b / N_0$ (dB)}, - ylabel={$\gamma$}, - zlabel={BER}, - width=\textwidth, - height=0.75\textwidth, - legend pos=outer north east,] - - \addplot3[surf, - mesh/rows=17, mesh/cols=14, - colormap name={viridis}] table [col sep=comma, - x=SNR, y=gamma, z=BER] - {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addlegendentry{$\gamma = \left[ 0\text{:}0.01\text{:}0.16 \right] $} - \addplot3[scol1, line width=1.5] table [col sep=comma, - discard if not={gamma}{0.01}, - x=SNR, y=gamma, z=BER] - {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addlegendentry{$\gamma = 0.01$} - \addplot3[scol2, line width=1.5] table [col sep=comma, - discard if not={gamma}{0.05}, - x=SNR, y=gamma, z=BER] - {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addlegendentry{$\gamma = 0.05$} - \addplot3[scol0, line width=1.5] table [col sep=comma, - discard if not={gamma}{0.15}, - x=SNR, y=gamma, z=BER] - {res/proximal/2d_ber_fer_dfr_20433484.csv}; - \addlegendentry{$\gamma = 0.15$} - \end{axis} - \end{tikzpicture} - \end{subfigure} - \end{figure} - - \bigskip - - \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} - - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %\begin{frame}[t] % \frametitle{Proximal Decoding: Choice of $\gamma$} @@ -512,6 +423,7 @@ return $\boldsymbol{\hat{c}}$ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\subsection{Improved Algorithm}% \begin{frame}[t, fragile] \frametitle{Proximal Decoding: Frame Error Rate} diff --git a/sections/theoretical_background.tex b/sections/theoretical_background.tex index eaf9649..cb2e24d 100644 --- a/sections/theoretical_background.tex +++ b/sections/theoretical_background.tex @@ -3,8 +3,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsection{Motivation}% -\label{sub:Motivation} +%\subsection{Motivation}% +%\label{sub:Motivation} \begin{frame}[t] \frametitle{Motivation} @@ -31,8 +31,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsection{Presumptions}% -\label{sub:Presumptions} +%\subsection{Presumptions}% +%\label{sub:Presumptions} \begin{frame}[t] \frametitle{Presumptions: Channel \& Modulation} @@ -88,8 +88,8 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\subsection{Optimization as a Decoding Method}% -\label{sub:Optimization as a Decoding Method} +%\subsection{Optimization as a Decoding Method}% +%\label{sub:Optimization as a Decoding Method} \begin{frame}[t] \frametitle{Optimization as a Decoding Method} diff --git a/structure.md b/structure.md index cb58deb..7fd7db6 100644 --- a/structure.md +++ b/structure.md @@ -53,7 +53,7 @@ | 33 | Comparison: FER and BER | S | | 34 | Comparison: FER and BER for more codes | S | | 35 | Comparison: Algorithm structure | - | -| 36 | Comparison: Algorithm structure: Message passing | S | +| 36 | Comparison: Algorithm structure: Message passing | X | | 38 | Conclusion and outlook | R | | 41 | Supplementary slides: Choice of gamma for more codes | - | | 42 | Supplementary slides: Choice of mu and rho for more codes | - |