\appendix \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$} \captionsetup[subfigure]{font=footnotesize} \hspace*{-0.5cm} \begin{minipage}[c]{0.9\textwidth} \centering \begin{figure}[H] \vspace*{-0.7cm} \centering \begin{subfigure}[t]{0.33\textwidth} \centering \begin{tikzpicture}[scale=0.8] \begin{axis}[view={75}{30}, zmode=log, xlabel={$E_b / N_0$ (dB)}, ylabel={$\gamma$}, zlabel={BER}, width=1.2\textwidth, height=0.825\textwidth, legend pos=outer north east,] \addplot3[surf, mesh/rows=17, mesh/cols=10, colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_963965.csv}; \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[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[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}; \end{axis} \end{tikzpicture} \vspace*{-2mm} \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ \citereference{Mac23, 96.3.965}} \end{subfigure}% \begin{subfigure}[t]{0.33\textwidth} \centering \begin{tikzpicture}[scale=0.8] \begin{axis}[view={75}{30}, zmode=log, xlabel={$E_b / N_0$ (dB)}, ylabel={$\gamma$}, zlabel={BER}, width=1.2\textwidth, height=0.825\textwidth, legend pos=outer north east,] \addplot3[surf, mesh/rows=17, mesh/cols=14, colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_20433484.csv}; \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[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[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}; \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}[view={75}{30}, zmode=log, xlabel={$E_b / N_0$ (dB)}, ylabel={$\gamma$}, zlabel={BER}, width=1.2\textwidth, height=0.825\textwidth, legend pos=outer north east,] \addplot3[surf, mesh/rows=17, mesh/cols=10, colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_40833844.csv}; \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[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[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}; \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}[view={75}{30}, zmode=log, xlabel={$E_b / N_0$ (dB)}, ylabel={$\gamma$}, zlabel={BER}, width=1.2\textwidth, height=0.825\textwidth, legend pos=outer north east,] \addplot3[surf, mesh/rows=17, mesh/cols=10, colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_bch_31_26.csv}; \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[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[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}; \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}[view={75}{30}, zmode=log, xlabel={$E_b / N_0$ (dB)}, ylabel={$\gamma$}, zlabel={BER}, width=1.2\textwidth, height=0.825\textwidth, legend pos=outer north east,] \addplot3[surf, mesh/rows=17, mesh/cols=10, colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_20455187.csv}; \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[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[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}; \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}[view={75}{30}, zmode=log, xlabel={$E_b / N_0$ (dB)}, ylabel={$\gamma$}, zlabel={BER}, width=1.2\textwidth, height=0.825\textwidth, legend pos=outer north east,] \addplot3[surf, mesh/rows=17, mesh/cols=10, colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/proximal/2d_ber_fer_dfr_pegreg252x504.csv}; \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[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[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}; \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*{-2cm} \hspace*{-3mm} \begin{tikzpicture}[scale=0.8] \begin{axis}[hide axis, xmin=10, xmax=50, ymin=0, ymax=0.4, 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{scol1, line width=1.5pt} \addlegendentry{$\gamma = 0.01$}; \addlegendimage{scol2, line width=1.5pt} \addlegendentry{$\gamma = 0.05$}; \addlegendimage{scol0, line width=1.5pt} \addlegendentry{$\gamma = 0.15$}; \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] \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$} \captionsetup[subfigure]{font=footnotesize} \begin{minipage}[c]{0.9\textwidth} \centering \hspace*{-4mm} \begin{figure}[H] \centering \vspace*{-7mm} \begin{subfigure}[t]{0.33\textwidth} \centering \begin{tikzpicture}[scale=0.8] \begin{axis}[ grid=both, xlabel={$\rho$}, ylabel={Avg. \# iter.}, ymode=log, width=1.2\textwidth, height=0.825\textwidth, ] \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[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[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}; \end{axis} \end{tikzpicture} \vspace*{-2mm} \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ \citereference{Mac23, 96.3.965}} \end{subfigure}% \begin{subfigure}[t]{0.33\textwidth} \centering \begin{tikzpicture}[scale=0.8] \begin{axis}[ grid=both, xlabel={$\rho$}, ylabel={Avg. \# iter.}, ymode=log, width=1.2\textwidth, height=0.825\textwidth, ] \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[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[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}; \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={$\rho$}, ylabel={Avg. \# iter.}, ymode=log, width=1.2\textwidth, height=0.825\textwidth, ] \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[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[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}; \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={$\rho$}, ylabel={Avg. \# iter.}, ymode=log, width=1.2\textwidth, height=0.825\textwidth, ] \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[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[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}; \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={$\rho$}, ylabel={Avg. \# iter.}, ymode=log, width=1.2\textwidth, height=0.825\textwidth, ] \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[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[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}; \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={$\rho$}, ylabel={Avg. \# iter.}, ymode=log, width=1.2\textwidth, height=0.825\textwidth, ] \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[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[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}; \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*{-1cm} \hspace*{3mm} \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{scol0, line width=1pt} \addlegendentry{$\mu = 9$} \addlegendimage{scol2, line width=1pt} \addlegendentry{$\mu = 5$} \addlegendimage{scol1, line width=1pt} \addlegendentry{$\mu = 2$} \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}