ba-thesis/latex/presentations/final/sections/examination_results.tex

1941 lines
90 KiB
TeX

\section{Analysis}%
\label{sec:Analysis}
\subsection{Proximal Decoding}%
\label{sub:Ex Proximal Decoding}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Bit Error Rate and Performance}
\vspace*{-0.5cm}
\begin{itemize}
\item Comparison of simulation%
\footnote{(3,6) regular LDPC code with $n=204, k=102$
\cite[\text{204.33.484}]{mackay_enc}}
with results of Wadayama et al. \cite{proximal_paper}
\end{itemize}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[
grid=both, grid style={line width=.1pt},
xlabel={$E_b / N_0$ (dB)}, ylabel={BER},
ymode=log,
legend pos=outer north east,
width=0.45\textwidth,
height=0.3375\textwidth,
ymax=1.2, ymin=0.8e-4,
xtick={1, 2, ..., 5},
xmin=0.9, xmax=5.6,
legend columns=2,
]
\addplot [ForestGreen, mark=triangle, dashed, line width=1pt]
table [x=SNR, y=BER, 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 [ForestGreen, mark=*, line width=1pt]
table [x=SNR, y=gamma_0_15, col sep=comma] {res/ber_paper.csv};
\addlegendentry{$\gamma = 0.15$ (Wadayama et al.)}
\addplot [NavyBlue, mark=triangle, dashed, line width=1pt]
table [x=SNR, y=BER, 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 [NavyBlue, mark=*, line width=1pt]
table [x=SNR, y=gamma_0_01, col sep=comma] {res/ber_paper.csv};
\addlegendentry{$\gamma = 0.01$ (Wadayama et al.)}
\addplot [RedOrange, mark=triangle, dashed, line width=1pt]
table [x=SNR, y=BER, 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 [RedOrange, mark=*, line width=1pt]
table [x=SNR, y=gamma_0_05, col sep=comma] {res/ber_paper.csv};
\addlegendentry{$\gamma = 0.05$ (Wadayama et al.)}
\addplot [RoyalPurple, mark=*, line width=1pt]
table [x=SNR, y=BP, col sep=comma] {res/ber_paper.csv};
\addlegendentry{BP}
\end{axis}
\end{tikzpicture}
\caption{Simulation results for $\omega = 0.05, K=100$}
\label{fig:sim_results_prox}
\end{figure}
\vspace*{-0.5cm}
\begin{itemize}
\item $\mathcal{O}\left(n \right) $ time complexity - same as BP;
only multiplication and addition necessary \cite{proximal_paper}
\item Measured performance: $\sim\SI{10000}{}$ frames/s
on Intel Core i7-7700HQ @ 2.80GHz; $n=204$
\end{itemize}
\vspace{3mm}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Choice of $\gamma$}
\setcounter{footnote}{0}
\begin{itemize}
\item Simulation%
\footnote{(3,6) regular LDPC code with $n=204, k=102$
\cite[\text{204.33.484}]{mackay_enc}}
results for different values of $\gamma$
\end{itemize}
\begin{figure}[H]
\centering
\begin{subfigure}[c]{0.5\textwidth}
\centering
\begin{tikzpicture}
\begin{semilogyaxis}[xlabel={$E_b / N_0$ (dB)}, ylabel={BER},
grid=both, grid style={line width=.1pt},
width=0.8\textwidth,
height=0.6\textwidth,
legend style={at={(0.05,0.05)},anchor=south west},
ymin=3e-7, ymax=1.5,]
\addplot [ForestGreen, mark=*] 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 [NavyBlue, mark=*] 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 [RedOrange, mark=*] 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}%
\begin{subfigure}[c]{0.5\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[view={75}{30},
zmode=log,
xlabel={$E_b / N_0$ (dB)},
ylabel={$\gamma$},
zlabel={BER},
width=0.8\textwidth,
height=0.6\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};
\addlegendentry{$\gamma = \left[ 0\text{:}0.01\text{:}0.16 \right] $}
\addplot3[NavyBlue, 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[RedOrange, 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[ForestGreen, 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}
\caption{BER for $\omega = 0.05, K=100$}
\label{fig:ber_3d}
\end{figure}
\begin{itemize}
\item Not great benefit in finding the optimal value for $\gamma$
\end{itemize}
\vspace{3mm}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{frame}[t]
% \frametitle{Proximal Decoding: Choice of $\gamma$}
%
% \begin{minipage}[c]{0.9\textwidth}
% \centering
%
% \begin{figure}[H]
% \vspace*{-0.5cm}
% \hspace*{-0.7cm}
% \centering
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[view={75}{30},
% zmode=log,
% xlabel={$E_b / N_0$ (dB)},
% ylabel={$\gamma$},
% zlabel={BER},]
% \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[RedOrange, 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[NavyBlue, 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[ForestGreen, 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}
% \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ \cite[\text{96.3.965}]{mackay_enc}}
% \end{subfigure}%
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[view={75}{30},
% zmode=log,
% xlabel={$E_b/N_0$ (dB)},
% ylabel={$\gamma$},
% zlabel={BER},]
% \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[RedOrange, 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[NavyBlue, 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[ForestGreen, 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}
% \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$ \cite[\text{204.33.484}]{mackay_enc}}
% \end{subfigure}%
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[view={75}{30},
% zmode=log,
% xlabel={$E_b / N_0$ (dB)},
% ylabel={$\gamma$},
% zlabel={BER},]
% \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[RedOrange, 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[NavyBlue, 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[ForestGreen, 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}
% \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$ \cite[\text{408.33.844}]{mackay_enc}}
% \end{subfigure}
% \hspace*{-0.7cm}
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[view={75}{30},
% zmode=log,
% xlabel={$E_b / N_0$ (dB)},
% ylabel={$\gamma$},
% zlabel={BER},]
% \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[RedOrange, 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[NavyBlue, 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[ForestGreen, 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}
% \caption{BCH code with $n=31, k=26$\\[2\baselineskip]}
% \end{subfigure}%
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[view={75}{30},
% zmode=log,
% xlabel={$E_b / N_0$ (dB)},
% ylabel={$\gamma$},
% zlabel={BER},]
% \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[RedOrange, 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[NavyBlue, 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[ForestGreen, 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}
% \caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$ \cite[\text{204.55.187}]{mackay_enc}}
% \end{subfigure}%
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[view={75}{30},
% zmode=log,
% xlabel={$E_b / N_0$ (dB)},
% ylabel={$\gamma$},
% zlabel={BER},]
% \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[RedOrange, 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[NavyBlue, 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[ForestGreen, 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}
% \caption{LDPC code (Progressive Edge Growth Construction) with $n=504, k=252$ \cite[\text{PEGReg252x504}]{mackay_enc}}
% \end{subfigure}%
% \end{figure}
% \end{minipage}%
% \begin{minipage}[c]{0.1\textwidth}
% \centering
%
% \begin{figure}[H]
% \vspace*{-1.5cm}
% \hspace*{-0.75cm}
% \centering
% \begin{tikzpicture}[scale=0.7]
% \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{NavyBlue, line width=1.5pt}
% \addlegendentry{$\gamma = 0.01$};
% \addlegendimage{RedOrange, line width=1.5pt}
% \addlegendentry{$\gamma = 0.05$};
% \addlegendimage{ForestGreen, line width=1.5pt}
% \addlegendentry{$\gamma = 0.15$};
% \end{axis}
% \end{tikzpicture}
% \end{figure}
% \end{minipage}
%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t, fragile]
\frametitle{Proximal Decoding: Frame Error Rate}
\setcounter{footnote}{0}
\begin{itemize}
\item Analysis of simulated%
\footnote{(3,6) regular LDPC code with $n=204, k=102$
\cite[\text{204.33.484}]{mackay_enc}}
BER and FER
\end{itemize}
\begin{minipage}{.4\textwidth}
\centering
\begin{figure}[htpb]
\centering
\begin{algorithm}[caption={}, label={}]
$\boldsymbol{s} \leftarrow \boldsymbol{0}$
for $K$ iterations do
$\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{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $
if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$ do
return $\boldsymbol{\hat{c}}$
end if
end for
return $\boldsymbol{\hat{c}}$
\end{algorithm}
\vspace*{-5mm}
\caption{Proximal decoding algorithm \cite{proximal_paper}}
\end{figure}
\end{minipage}%
\begin{minipage}{.6\textwidth}
\centering
\begin{figure}[H]
\vspace*{-9mm}
\centering
\begin{tikzpicture}[scale=0.7]
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={BER},
ymode=log,
legend style={at={(0.05,0.05)},anchor=south west},
ymax=1.5, ymin=3e-7,
width=0.7\textwidth,
height=0.6\textwidth,
]
\addplot [ForestGreen, mark=*]
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 [NavyBlue, mark=*]
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 [RedOrange, mark=*]
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{axis}
\end{tikzpicture}
\begin{tikzpicture}[scale=0.7]
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={FER},
ymode=log,
legend style={at={(0.05,0.05)},anchor=south west},
ymax=1.5, ymin=3e-7,
width=0.7\textwidth,
height=0.6\textwidth,
]
\addplot [ForestGreen, mark=*]
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addlegendentry{$\gamma = 0.15$}
\addplot [NavyBlue, mark=*]
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addlegendentry{$\gamma = 0.01$}
\addplot [RedOrange, mark=*]
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addlegendentry{$\gamma = 0.05$}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale=0.7]
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={Decoding Failure Rate},
ymode=log,
legend style={at={(0.05,0.05)},anchor=south west},
ymax=1.5, ymin=3e-7,
width=0.7\textwidth,
height=0.6\textwidth,
]
\addplot [ForestGreen, mark=*]
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.15}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addlegendentry{$\gamma = 0.15$}
\addplot [NavyBlue, mark=*]
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.01}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addlegendentry{$\gamma = 0.01$}
\addplot [RedOrange, mark=*]
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addlegendentry{$\gamma = 0.05$}
\end{axis}
\end{tikzpicture}
\caption{Simulation results for $\omega = 0.05, K=100$}
\label{fig:simulation_results_ber_fer_dfr}
\end{figure}
\end{minipage}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Oscillation of Estimate}
\setcounter{footnote}{0}
\begin{itemize}
\item $\nabla L \left( \boldsymbol{y} \mid \tilde{\boldsymbol{x}} \right) $
and $\nabla h \left( \tilde{\boldsymbol{x}} \right) $ generally end up
in an equilibrium
\end{itemize}
\begin{figure}[H]
\centering
\begin{minipage}[c]{0.25\textwidth}
\centering
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
]
\addplot [NavyBlue, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_1]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [ForestGreen, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_L_1]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [RedOrange, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_h_1]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\left(\nabla L \right)_2$}
\addlegendentry{$\left(\nabla h \right)_2 $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
]
\addplot [NavyBlue, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_2]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [ForestGreen, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_L_2]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [RedOrange, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_h_2]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\left(\nabla L \right)_3$}
\addlegendentry{$\left(\nabla h \right)_3 $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
]
\addplot [NavyBlue, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_3]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [ForestGreen, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_L_3]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [RedOrange, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_h_3]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\left(\nabla L \right)_4$}
\addlegendentry{$\left(\nabla h \right)_4 $}
\end{axis}
\end{tikzpicture}
\end{minipage}%
\begin{minipage}[c]{0.5\textwidth}
\vspace*{-1cm}
\centering
\begin{tikzpicture}[, spy using outlines={circle, magnification=6,
connect spies}]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=0.8\textwidth,
height=0.35\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
]
\addplot [NavyBlue, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_0]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [ForestGreen, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_L_0]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [RedOrange, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_h_0]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\left(\nabla L \right)_1$}
\addlegendentry{$\left(\nabla h \right)_1 $}
\coordinate (spypoint) at (axis cs:100,1.12);
\coordinate (magnifyglass) at (axis cs:180,2.75);
\end{axis}
\spy [black, size=2cm] on (spypoint)
in node[fill=white] at (magnifyglass);
\end{tikzpicture}
\end{minipage}%
\begin{minipage}[c]{0.25\textwidth}
\centering
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
]
\addplot [NavyBlue, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_4]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [ForestGreen, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_L_4]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [RedOrange, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_h_4]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\left(\nabla L \right)_5$}
\addlegendentry{$\left(\nabla h \right)_5 $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
]
\addplot [NavyBlue, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_5]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [ForestGreen, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_L_5]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [RedOrange, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_h_5]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\left(\nabla L \right)_6$}
\addlegendentry{$\left(\nabla h \right)_6 $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
]
\addplot [NavyBlue, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_6]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [ForestGreen, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_L_6]
{res/proximal/comp_bch_7_4_combined.csv};
\addplot [RedOrange, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_h_6]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\left(\nabla L \right)_7$}
\addlegendentry{$\left(\nabla h \right)_7 $}
\end{axis}
\end{tikzpicture}
\end{minipage}
\caption{Internal variables of proximal decoder
as a function of the number of iterations ($n=7$)\footnotemark}
\footnotetext{A single decoding is shown, using the BCH$\left( 7,4 \right) $ code;
$\gamma = 0.05, \omega = 0.05, E_b / N_0 = \SI{5}{dB}$}
\end{figure}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Visualization of Gradients}
\setcounter{footnote}{0}
\begin{figure}[H]
\centering
\begin{subfigure}[c]{0.5\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[xmin = -1.25, xmax=1.25,
ymin = -1.25, ymax=1.25,
xlabel={$x_1$}, ylabel={$x_2$},
width=0.9\textwidth,
height=0.8\textwidth,
grid=major, grid style={dotted},
view={0}{90}]
\addplot3[point meta=\thisrow{grad_norm},
point meta min=1,
point meta max=3,
quiver={u=\thisrow{grad_0},
v=\thisrow{grad_1},
scale arrows=.05,
every arrow/.append style={%
line width=.3+\pgfplotspointmetatransformed/1000,
-{Latex[length=0pt 5,width=0pt 3]}
},
},
quiver/colored = {mapped color},
colormap/rocket,
-stealth,
]
table[col sep=comma] {res/proximal/2d_grad_L.csv};
\end{axis}
\end{tikzpicture}
\caption{$\nabla L \left(\boldsymbol{y} \mid \tilde{\boldsymbol{x}} \right)$
for a repetition code with $n=2$\footnotemark}
\end{subfigure}%
\begin{subfigure}[c]{0.5\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[xmin = -1.25, xmax=1.25,
ymin = -1.25, ymax=1.25,
width=0.9\textwidth,
height=0.8\textwidth,
xlabel={$x_1$}, ylabel={$x_2$},
grid=major, grid style={dotted},
view={0}{90}]
\addplot3[point meta=\thisrow{grad_norm},
point meta min=1,
point meta max=4,
quiver={u=\thisrow{grad_0},
v=\thisrow{grad_1},
scale arrows=.03,
every arrow/.append style={%
line width=.3+\pgfplotspointmetatransformed/1000,
-{Latex[length=0pt 5,width=0pt 3]}
},
},
quiver/colored = {mapped color},
colormap/rocket,
-stealth,
]
table[col sep=comma] {res/proximal/2d_grad_h.csv};
\end{axis}
\end{tikzpicture}
\caption{$\nabla h \left( \tilde{\boldsymbol{x}} \right) $ for a repetition code
with $n=2$}
\end{subfigure}%
\end{figure}
\footnotetext{In an AWGN Channel $\nabla L\left( \boldsymbol{y} \mid
\tilde{\boldsymbol{x}}\right)
\propto \left( \tilde{\boldsymbol{x}} - \boldsymbol{y} \right)$
\cite[Sec. 4.1]{proximal_paper}}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoder: Oscillation of $\nabla h\left( \tilde{\boldsymbol{x}} \right) $}
\setcounter{footnote}{0}
\begin{itemize}
\item For larger $n$, the gradient itself starts to oscillate
\item The amplitude of the oscillation seems to be highly correlated
with the probability of a bit error
\end{itemize}
\begin{figure}
\centering
\begin{subfigure}[t]{0.5\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
grid=both,
xlabel={Iterations},
width=0.85\textwidth,
height=0.4\textwidth,
scale only axis,
xtick={0, 100, ..., 400},
xticklabels={0, 50, ..., 200},
]
\addplot [NavyBlue, mark=none, line width=1]
table [col sep=comma, x=k, y=comb_r_s_0]
{res/proximal/extreme_components_20433484_combined.csv};
\addplot [ForestGreen, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_L_0]
{res/proximal/extreme_components_20433484_combined.csv};
\addplot [RedOrange, mark=none, line width=1]
table [col sep=comma, x=k, y=grad_h_0]
{res/proximal/extreme_components_20433484_combined.csv};
\addlegendentry{est}
\addlegendentry{$\left(\nabla L \right)_1$}
\addlegendentry{$\left(\nabla h \right)_1$}
\end{axis}
\end{tikzpicture}
\caption{Internal variables of proximal decoder as a function of the iteration
($n=204$)\footnotemark}
\end{subfigure}%
\begin{subfigure}[t]{0.5\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
point meta min = -1,
point meta max = 1,
grid=both,
xlabel={$Var\left( \nabla h\left( \tilde{\boldsymbol{x}} \right) \right) $},
ylabel={Bit error (bool)},
ytick={0, 1},
width=0.85\textwidth,
height=0.4\textwidth,
scale only axis,
% colormap/viridis,
]
\addplot [RoyalPurple, only marks,]
table [col sep=comma, x=grad_h_vars, y=bit_error]
{res/proximal/extreme_components_20433484_variance.csv};
\end{axis}
\end{tikzpicture}
\caption{Correlation between bit error and amplitude of oscillation}
\end{subfigure}
\end{figure}
\footnotetext{A single decoding is shown, using a (3,6) regular LDPC code
with $n=204, k=102$ \cite[\text{204.33.484}]{mackay_enc};
$\gamma = 0.05, \omega = 0.05, E_b / N_0 = \SI{5}{dB}$}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\newcommand{\tikzbracemark}[1]{\tikz[overlay,remember picture] \node (#1) {};}
%
%\newcommand*{\AddNote}[4]{%
% \begin{tikzpicture}[overlay, remember picture]
% \draw [decoration={brace,amplitude=0.5em},decorate,ultra thick]
% ($(#3)!([yshift=1.5ex]#1)!($(#3)-(0,1)$)$) --
% ($(#3)!(#2)!($(#3)-(0,1)$)$)
% node [align=center, text width=2cm, pos=0.5, anchor=west] {#4};
% \end{tikzpicture}
%}%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{frame}[t, fragile]
% \frametitle{Proximal Decoding: Improvement using ``ML-on-List''}
% \setcounter{footnote}{0}
%
% \begin{itemize}
% \item Comparison of proximal \& hybrid-proximal-ML\\
% decoding simulation
% \footnote{(3,6) regular LDPC Code with $n=204, k=102$
% \cite[Code: 204.33.484]{mackay_enc}}
% results
% \end{itemize}
%
% \begin{minipage}{.4\textwidth}
% \centering
%
% \begin{algorithm}[caption={}, label={},
% basicstyle=\fontsize{6.5}{7.5}\selectfont
% ]
%$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$$\hspace{4.185cm}\tikzbracemark{prox-start}$
%for $k=0$ to $K-1$ do
% $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $
% Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$
% $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $
% $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $
% If $\boldsymbol{\hat{x}}$ passes the parity check condition, output $\boldsymbol{\hat{x}}$
%end for $\tikzbracemark{prox-end}$
%Find $N$ most probably wrong bits $\hspace{2cm}\tikzbracemark{ml-start}$
%Generate variations $\boldsymbol{\tilde{x}}_n$ of $\boldsymbol{\hat{x}}$ with the $N$ bits modified
%Compute $d\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right) \forall n \in \left[ 1 : N-1 \right] $
%Output $\boldsymbol{\tilde{x}}_n$ with lowest $d\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right)$ $\tikzbracemark{ml-end}$
% \end{algorithm}
%
% \AddNote{prox-start}{prox-end}{prox-start}{\small Proximal\\Decoding}
% \AddNote{ml-start}{ml-end}{ml-start}{\small ML-on-List}
% \end{minipage}%
% \begin{minipage}{.6\textwidth}
% \centering
% \begin{figure}[H]
% \centering
% \vspace*{-12mm}
%
% \begin{tikzpicture}[scale=0.42]
% \begin{axis}[
% grid=both,
% xlabel={SNR}, ylabel={BER},
% ymode=log,
% legend style={at={(0.05,0.05)},anchor=south west},
% ymax=1.5, ymin=3e-8,
% ]
%
% \addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}]
% {res/proximal/2d_ber_fer_dfr_20433484.csv};
% \addlegendentry{proximal}
% \addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}]
% {res/hybrid/2d_ber_fer_dfr_20433484.csv};
% \addlegendentry{hybrid prox. \& ML}
% \end{axis}
% \end{tikzpicture}
% \begin{tikzpicture}[scale=0.42]
% \begin{axis}[
% grid=both,
% xlabel={SNR}, ylabel={FER},
% ymode=log,
% legend style={at={(0.05,0.05)},anchor=south west},
% ymax=1.5, ymin=3e-8,
% ]
%
% \addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
% {res/proximal/2d_ber_fer_dfr_20433484.csv};
% \addlegendentry{proximal}
% \addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
% {res/hybrid/2d_ber_fer_dfr_20433484.csv};
% \addlegendentry{hybrid prox. \& ML}
% \end{axis}
% \end{tikzpicture}\\
% \begin{tikzpicture}[scale=0.42]
% \begin{axis}[
% grid=both,
% xlabel={SNR}, ylabel={Decoding Failure Rate},
% ymode=log,
% legend style={at={(0.05,0.05)},anchor=south west},
% ymax=1.5, ymin=3e-8,
% ]
%
% \addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}]
% {res/proximal/2d_ber_fer_dfr_20433484.csv};
% \addlegendentry{proximal}
% \addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}]
% {res/hybrid/2d_ber_fer_dfr_20433484.csv};
% \addlegendentry{hybrid prox. \& ML}
% \end{axis}
% \end{tikzpicture}
%
% \caption{Simulation results for $\gamma = 0.05, \omega = 0.05, K=200, N=12$}
% \label{fig:simulation_results_hybrid}
% \end{figure}
% \end{minipage}
%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t, fragile]
\frametitle{Proximal Decoding: Improvement using \\``ML-in-the-List''}
\setcounter{footnote}{0}
\vspace*{-0.7cm}
\begin{itemize}
\item Improvement of proximal decoding by adding an ``ML-in-the-List'' step after
iterating
\end{itemize}
\vspace*{-2mm}
\begin{minipage}[t]{.48\textwidth}
\centering
\begin{figure}
\centering
\begin{algorithm}[caption={}, label={}, basicstyle=\fontsize{9.5}{11.5}\selectfont]
$\boldsymbol{s} \leftarrow \boldsymbol{0}$
for $K$ iterations do
$\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{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $
if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$ do
return $\boldsymbol{\hat{c}}$
end if
end for
return $\boldsymbol{\hat{c}}$
\end{algorithm}
\vspace*{-5mm}
\caption{Proximal decoding algorithm \cite{proximal_paper}}
\end{figure}
\end{minipage}%
\hfill\begin{minipage}[t]{.48\textwidth}
\centering
\begin{figure}
\centering
\begin{algorithm}[caption={}, label={}, basicstyle=\fontsize{9.5}{11.5}\selectfont]
$\boldsymbol{s} \leftarrow \boldsymbol{0}$
for $K$ iterations do
$\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{\hat{x}} \leftarrow \text{sign}\left( \boldsymbol{s} \right) $
if $\boldsymbol{H}\boldsymbol{\hat{c}} = \boldsymbol{0}$
return $\boldsymbol{\hat{c}}$
end if
end for
$\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$
$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{c}}_l\text{ of }\boldsymbol{\hat{c}}\text{ with the }N\text{ bits modified.}}$
$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \tilde{c}}_l, \boldsymbol{\hat{c}} \right) \text{ for all valid codewords } \boldsymbol{\tilde{c}}_l}$
$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d_H\left( \boldsymbol{ \tilde{c}}_l, \boldsymbol{\hat{c}} \right)}$
\end{algorithm}
\vspace*{-5mm}
\caption{Improved proximal decoding algorithm}
\end{figure}
\end{minipage}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Improvement using \\``ML-in-the-List''}
\vspace{-0.5cm}
\begin{itemize}
\item Comparison of proximal \& improved (correction of $N = \SI{12}{\bit}$)
decoding simulation%
\footnote{(3,6) regular LDPC code with $n=204, k=102$
\cite[Code: 204.33.484]{mackay_enc}}
results
\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.33\textwidth,
height=0.28\textwidth,
]
\addplot[ForestGreen, mark=*, solid]
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.15}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addplot[Emerald, mark=triangle, densely dashed]
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.15}]
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
\addplot[NavyBlue, mark=*, solid]
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.01}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addplot[RoyalPurple, mark=triangle, densely dashed]
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.01}]
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
\addplot[RedOrange, mark=*, solid]
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addplot[red, mark=triangle, densely dashed]
table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}]
{res/hybrid/2d_ber_fer_dfr_20433484.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.33\textwidth,
height=0.28\textwidth,
]
\addplot[ForestGreen, mark=*, solid]
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addplot[Emerald, mark=triangle, densely dashed]
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
\addplot[NavyBlue, mark=*, solid]
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addplot[RoyalPurple, mark=triangle, densely dashed]
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
\addplot[RedOrange, mark=*, solid]
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addplot[red, mark=triangle, densely dashed]
table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$}, ylabel={Decoding Failure Rate},
ymode=log,
legend columns=2,
legend style={at={(0.5,-0.45)},anchor=south},
ymax=1.5, ymin=3e-8,
width=0.33\textwidth,
height=0.28\textwidth,
]
\addplot[ForestGreen, mark=*, solid]
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.15}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addplot[Emerald, mark=triangle, densely dashed]
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.15}]
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
\addplot[NavyBlue, mark=*, solid]
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.01}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addplot[RoyalPurple, mark=triangle, densely dashed]
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.01}]
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
\addplot[RedOrange, mark=*, solid]
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}]
{res/proximal/2d_ber_fer_dfr_20433484.csv};
\addplot[red, mark=triangle, densely dashed]
table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}]
{res/hybrid/2d_ber_fer_dfr_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{ForestGreen, mark=*, solid}
\addlegendentry{proximal, $\gamma = 0.15$}
\addlegendimage{NavyBlue, mark=*, solid}
\addlegendentry{proximal, $\gamma = 0.01$}
\addlegendimage{RedOrange, mark=*, solid}
\addlegendentry{proximal, $\gamma = 0.05$}
\addlegendimage{Emerald, mark=triangle, densely dashed}
\addlegendentry{improved, $\gamma = 0.15$}
\addlegendimage{RoyalPurple, mark=triangle, densely dashed}
\addlegendentry{improved, $\gamma = 0.01$}
\addlegendimage{red, mark=triangle, densely dashed}
\addlegendentry{improved, $\gamma = 0.05$}
\end{axis}
\end{tikzpicture}
\caption{Simulation results for $\gamma = 0.05, \omega = 0.05, K=200, N=12$}
\label{fig:simulation_results_hybrid}
\end{figure}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{frame}[t]
% \frametitle{Proximal Decoding: Improvement}
%
% \begin{minipage}[c]{0.9\textwidth}
% \centering
% \begin{figure}[H]
% \vspace*{-0.6cm}
% \hspace*{-0.7cm}
% \centering
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
%
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[
% grid=both,
% xlabel={$E_b / N_0$}, ylabel={FER},
% ymode=log,
% legend columns=1,
% legend pos=outer north east,
% %legend columns=2,
% %legend style={at={(0.5,-0.45)},anchor=south},
% ymax=1.5, ymin=8e-5,
% ]
%
% \addplot[ForestGreen, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
% {res/proximal/2d_ber_fer_dfr_963965.csv};
% \addplot[Emerald, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
% {res/hybrid/2d_ber_fer_dfr_963965.csv};
%
% \addplot[NavyBlue, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
% {res/proximal/2d_ber_fer_dfr_963965.csv};
% \addplot[RoyalPurple, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
% {res/hybrid/2d_ber_fer_dfr_963965.csv};
%
% \addplot[RedOrange, 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[red, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
% {res/hybrid/2d_ber_fer_dfr_963965.csv};
% \end{axis}
% \end{tikzpicture}
% \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ \cite[\text{96.3.965}]{mackay_enc}}
% \end{subfigure}%
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[
% grid=both,
% xlabel={$E_b / N_0$}, ylabel={FER},
% ymode=log,
% legend columns=1,
% legend pos=outer north east,
% xmin=0.5, xmax=6, xtick={1, ..., 5},
% ymax=1.5, ymin=8e-5,
% ]
%
% \addplot[ForestGreen, mark=*, solid,]
% 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};
% \addplot[Emerald, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma,
% discard if not={gamma}{0.15},
% discard if gt={SNR}{5.5},]
% {res/hybrid/2d_ber_fer_dfr_20433484.csv};
%
% \addplot[NavyBlue, mark=*, solid]
% 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};
% \addplot[RoyalPurple, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma,
% discard if not={gamma}{0.01},
% discard if gt={SNR}{5.5},]
% {res/hybrid/2d_ber_fer_dfr_20433484.csv};
%
% \addplot[RedOrange, mark=*, solid]
% 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[red, mark=triangle, densely dashed]
% 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};
% \end{axis}
% \end{tikzpicture}
% \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$ \cite[\text{204.33.484}]{mackay_enc}}
% \end{subfigure}%
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[
% grid=both,
% xlabel={$E_b / N_0$}, ylabel={FER},
% ymode=log,
% legend columns=1,
% legend pos=outer north east,
% %legend columns=2,
% %legend style={at={(0.5,-0.45)},anchor=south},
% ymax=1.5, ymin=8e-5,
% ]
%
% \addplot[ForestGreen, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
% {res/proximal/2d_ber_fer_dfr_40833844.csv};
% \addplot[Emerald, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
% {res/hybrid/2d_ber_fer_dfr_40833844.csv};
%
% \addplot[NavyBlue, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
% {res/proximal/2d_ber_fer_dfr_40833844.csv};
% \addplot[RoyalPurple, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
% {res/hybrid/2d_ber_fer_dfr_40833844.csv};
%
% \addplot[RedOrange, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
% {res/proximal/2d_ber_fer_dfr_40833844.csv};
% \addplot[red, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
% {res/hybrid/2d_ber_fer_dfr_40833844.csv};
% \end{axis}
% \end{tikzpicture}
% \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$ \cite[\text{408.33.844}]{mackay_enc}}
% \end{subfigure}
% \hspace*{-0.7cm}
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[
% grid=both,
% xlabel={$E_b / N_0$}, ylabel={FER},
% ymode=log,
% legend columns=1,
% legend pos=outer north east,
% %legend columns=2,
% %legend style={at={(0.5,-0.45)},anchor=south},
% ymax=1.5, ymin=8e-5,
% ]
%
% \addplot[ForestGreen, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
% {res/proximal/2d_ber_fer_dfr_bch_31_26.csv};
% \addplot[Emerald, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
% {res/hybrid/2d_ber_fer_dfr_bch_31_26.csv};
%
% \addplot[NavyBlue, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
% {res/proximal/2d_ber_fer_dfr_bch_31_26.csv};
% \addplot[RoyalPurple, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
% {res/hybrid/2d_ber_fer_dfr_bch_31_26.csv};
%
% \addplot[RedOrange, mark=*, solid]
% 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[red, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
% {res/hybrid/2d_ber_fer_dfr_bch_31_26.csv};
% \end{axis}
% \end{tikzpicture}
% \caption{BCH code with $n=31, k=26$\\[\baselineskip]}
% \end{subfigure}%
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[
% grid=both,
% xlabel={$E_b / N_0$}, ylabel={FER},
% ymode=log,
% legend columns=1,
% legend pos=outer north east,
% %legend columns=2,
% %legend style={at={(0.5,-0.45)},anchor=south},
% ymax=1.5, ymin=8e-5,
% ]
%
% \addplot[ForestGreen, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
% {res/proximal/2d_ber_fer_dfr_20455187.csv};
% \addplot[Emerald, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
% {res/hybrid/2d_ber_fer_dfr_20455187.csv};
%
% \addplot[NavyBlue, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
% {res/proximal/2d_ber_fer_dfr_20455187.csv};
% \addplot[RoyalPurple, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
% {res/hybrid/2d_ber_fer_dfr_20455187.csv};
%
% \addplot[RedOrange, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
% {res/proximal/2d_ber_fer_dfr_20455187.csv};
% \addplot[red, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
% {res/hybrid/2d_ber_fer_dfr_20455187.csv};
% \end{axis}
% \end{tikzpicture}
% \caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$ \cite[\text{204.55.187}]{mackay_enc}}
% \end{subfigure}%
% \begin{subfigure}[c]{0.33\textwidth}
% \centering
% \begin{tikzpicture}[scale=0.4]
% \begin{axis}[
% grid=both,
% xlabel={$E_b / N_0$}, ylabel={FER},
% ymode=log,
% legend columns=1,
% legend pos=outer north east,
% ymax=1.5, ymin=8e-5,
% ]
%
% \addplot[ForestGreen, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
% {res/proximal/2d_ber_fer_dfr_pegreg252x504.csv};
% \addplot[Emerald, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.15}]
% {res/hybrid/2d_ber_fer_dfr_pegreg252x504.csv};
%
% \addplot[NavyBlue, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
% {res/proximal/2d_ber_fer_dfr_pegreg252x504.csv};
% \addplot[RoyalPurple, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.01}]
% {res/hybrid/2d_ber_fer_dfr_pegreg252x504.csv};
%
% \addplot[RedOrange, mark=*, solid]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
% {res/proximal/2d_ber_fer_dfr_pegreg252x504.csv};
% \addplot[red, mark=triangle, densely dashed]
% table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}]
% {res/hybrid/2d_ber_fer_dfr_pegreg252x504.csv};
% \end{axis}
% \end{tikzpicture}
% \caption{LDPC code (progressive edge growth construction) with $n=504, k=252$ \cite[\text{PEGReg252x504}]{mackay_enc}}
% \end{subfigure}%
% \end{figure}
% \end{minipage}%
% \begin{minipage}[c]{0.1\textwidth}
% \centering
%
% \begin{figure}
% \vspace*{-1.5cm}
% \hspace*{-0.7cm}
% \centering
% \begin{tikzpicture}[scale=0.7]
% \begin{axis}[hide axis,
% xmin=10, xmax=50,
% ymin=0, ymax=0.4,
% legend style={draw=white!15!black,legend cell align=left}]
% \addlegendimage{ForestGreen, mark=*, solid}
% \addlegendentry{proximal, $\gamma = 0.15$}
%
% \addlegendimage{Emerald, mark=triangle, densely dashed}
% \addlegendentry{improved, $\gamma = 0.15$}
%
% \addlegendimage{NavyBlue, mark=*, solid}
% \addlegendentry{proximal, $\gamma = 0.01$}
%
% \addlegendimage{RoyalPurple, mark=triangle, densely dashed}
% \addlegendentry{improved, $\gamma = 0.01$}
%
% \addlegendimage{RedOrange, mark=*, solid}
% \addlegendentry{proximal, $\gamma = 0.05$}
%
% \addlegendimage{red, mark=triangle, densely dashed}
% \addlegendentry{improved, $\gamma = 0.05$}
% \end{axis}
% \end{tikzpicture}
%
% \end{figure}
% \end{minipage}
%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Average Error}
\setcounter{footnote}{0}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[
grid=both,
xlabel={Iterations},
ylabel={Average $\lVert \boldsymbol{c}-\boldsymbol{\hat{c}} \rVert$},
width=0.45\textwidth,
height=0.3375\textwidth,
legend pos=outer north east,
]
\addplot [ForestGreen, mark=none, line width=1pt]
table [col sep=comma, discard if not={omega}{0.0774263682681127}, 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}, 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}, 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}, 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{Average error for $\SI{500000}{}$ decodings, $
\omega = 0.05, \gamma = 0.05, K=200$\footnotemark}
\end{figure}
\footnotetext{Simulation performed with (3,6) regular LDPC code with $n=204, k=102$
\cite[Code: 204.33.484]{mackay_enc}}
\begin{itemize}
\item With increasing iterations, the average error asymptotically
approaches a minimum, non-zero value
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{Proximal Decoding: Time Complexity}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[
grid=both,
xlabel={$n$}, ylabel={time per frame (s)},
legend style={at={(0.05,0.7)},anchor=south west},
legend cell align={left},
width=0.45\textwidth,
height=0.3375\textwidth,
]
\addplot[RedOrange, only marks, mark=*]
table [col sep=comma, x=n, y=spf]
{res/proximal/fps_vs_n.csv};
\addlegendentry{proximal}
\addplot[RoyalPurple, only marks, mark=triangle*]
table [col sep=comma, x=n, y=spf]
{res/hybrid/fps_vs_n.csv};
\addlegendentry{improved ($\SI{12}{\bit}$)}
\end{axis}
\end{tikzpicture}
\caption{Time complexity of proximal decoding and improved implementation\footnotemark}
\label{fig:fps_vs_n}
\end{figure}
\footnotetext{The points shown were calculated by evaluating the metadata
of BER simulation results for the following codes:
BCH $\left( 31, 11 \right)$;
BCH $\left( 31, 26 \right)$;
\cite[\text{96.3.965; 204.33.484;
204.55.187; 408.33.844; PEGReg252x504}]{mackay_enc}
}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%\begin{frame}[t]
% \frametitle{Conclusion}
%
% \begin{itemize}
% \item Analysis of proximal decoding for AWGN channels:
% \begin{itemize}
% \item Error correcting performance (BER, FER, decoding failures)
% \item Computational performance ($\mathcal{O}\left( n \right) $ time complexity,
% fast implementation possible)
% \item Number of iterations independent of SNR
% \end{itemize}
% \item Suggestion for improvement of proximal decoding:
% \begin{itemize}
% \item Addition of ``ML-in-the-list'' step
% \item Up to $\sim\SI{1}{dB}$ gain under certain conditions
% \end{itemize}
% \end{itemize}
%\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{LP Decoding using ADMM}%
\label{sub:LP Decoding using ADMM}
\begin{frame}[t]
\frametitle{LP Decoding using ADMM}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[
grid=both,
xlabel={$E_b / N_0 \left( \text{dB} \right) $}, ylabel={FER},
ymode=log,
width=0.45\textwidth,
height=0.325\textwidth,
%legend style={at={(0.03,0.04)},anchor=south west},
legend pos=outer north east,
]
\addplot[RedOrange, line width=1pt]
table [col sep=comma, x=SNR, y=FER,
discard if gt={SNR}{2.2},
]
{res/admm/fer_paper_margulis.csv};
\addlegendentry{ADMM (Barman et al.)}
\addplot[NavyBlue, only marks, mark=o, line width=1pt]
table [col sep=comma, x=SNR, y=FER,]
{res/admm/ber_margulis264013203.csv};
\addlegendentry{ADMM (Own results)}
\addplot[RoyalPurple, line width=1pt, densely dashed]
table [col sep=comma, x=SNR, y=FER, discard if gt={SNR}{2.2},]
{res/generic/fer_bp_mackay_margulis.csv};
\addlegendentry{BP (Barman et al.)}
\end{axis}
\end{tikzpicture}
\caption{Comparison of datapoints from Barman et al. with own simulation results%
\protect\footnotemark{}}
\label{fig:admm:results}
\end{figure}%
%
\footnotetext{``Margulis'' LDPC code with $n = 2640$, $k = 1320$
\cite[\text{Margulis2640.1320.3}]{mackay_enc}; $K=200, \mu = 3.3, \rho=1.9,
\epsilon_{\text{pri}} = 10^{-5}, \epsilon_{\text{dual}} = 10^{-5}$
}%
%
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{LP Decoding using ADMM: Choice of Penalty\\
Parameters}
\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.9\textwidth,
height=0.675\textwidth,
]
\addplot[ForestGreen, line width=1pt, densely dashed, mark=*]
table [col sep=comma, x=mu, y=FER,
discard if not={SNR}{2.0},]
{res/admm/ber_2d_20433484.csv};
\addplot[RedOrange, line width=1pt, densely dashed, mark=*]
table [col sep=comma, x=mu, y=FER,
discard if not={SNR}{3.0},]
{res/admm/ber_2d_20433484.csv};
\addplot[NavyBlue, line width=1pt, densely dashed, mark=*]
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.9\textwidth,
height=0.675\textwidth,
]
\addplot[ForestGreen, line width=1pt, densely dashed, mark=*]
table [col sep=comma, x=rho, y=FER,
discard if not={SNR}{2.0},]
{res/admm/ber_2d_20433484_rho.csv};
\addplot[RedOrange, line width=1pt, densely dashed, mark=*]
table [col sep=comma, x=rho, y=FER,
discard if not={SNR}{3.0},]
{res/admm/ber_2d_20433484_rho.csv};
\addplot[NavyBlue, line width=1pt, densely dashed, mark=*]
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{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}
\caption{Relation between $\mu$ and $\rho$ and decoding performance%
\protect\footnotemark{}}
\end{figure}%
\footnotetext{Simulation performed with (3,6) regular LDPC code with $n=204, k=102$
\cite[Code: 204.33.484]{mackay_enc}}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{LP Decoding using ADMM: Choice of Penalty\\
Parameters}
\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.9\textwidth,
height=0.675\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[RedOrange, 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[NavyBlue, 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.9\textwidth,
height=0.675\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[RedOrange, 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[NavyBlue, 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}
\caption{Relation between $\mu$ and $\rho$ and speed of convergence%
\protect\footnotemark{}}
\end{figure}%
\footnotetext{Simulation performed with (3,6) regular LDPC code with $n=204, k=102$
\cite[Code: 204.33.484]{mackay_enc}}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{LP Decoding using ADMM: Average Error}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[
grid=both,
width=0.45\textwidth,
height=0.3375\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}{100}]
{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}{100}]
{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}{100}]
{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}{100}]
{res/admm/avg_error_20433484.csv};
\addlegendentry{$E_b / N_0 = \SI{4}{dB}$}
\end{axis}
\end{tikzpicture}
\caption{Average error for $\SI{100000}{}$ decodings\protect\footnotemark{}}
\end{figure}%
\footnotetext{Simulation performed with (3,6) regular LDPC code with $n=204, k=102$
\cite[Code: 204.33.484]{mackay_enc}}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}[t]
\frametitle{LP Decoding using ADMM: Time Complexity}
\begin{figure}[h]
\centering
\begin{tikzpicture}
\begin{axis}[grid=both,
xlabel={$n$}, ylabel={Time per frame (s)},
width=0.45\textwidth,
height=0.3375\textwidth,
legend style={at={(0.03,0.96)},anchor=north west},
%legend pos=outer north east,
legend cell align={left},]
% \addplot[RedOrange, only marks, mark=*]
% table [col sep=comma, x=n, y=spf]
% {res/proximal/fps_vs_n.csv};
% \addlegendentry{Proximal decoding}
\addplot[RoyalPurple, only marks, mark=triangle*]
table [col sep=comma, x=n, y=spf]
{res/admm/fps_vs_n.csv};
% \addlegendentry{LP decoding using ADMM}
\end{axis}
\end{tikzpicture}
\caption{Timing requirements of the LP decoding imlementation%
\protect\footnotemark{}}
\end{figure}%
\footnotetext{The points shown were calculated by evaluating the metadata
of BER simulation results for the following codes:
BCH $\left( 31, 11 \right)$;
BCH $\left( 31, 26 \right)$;
\cite[\text{96.3.965; 204.33.484;
204.55.187; 408.33.844; PEGReg252x504}]{mackay_enc}
}
\end{frame}