From c80d37e6b39b9ca8643c574309dbdb5d41750c1c Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Tue, 11 Apr 2023 00:47:23 +0200 Subject: [PATCH] Moved large figures to appendix --- latex/thesis/chapters/appendix.tex | 534 +++++++++++++++++++ latex/thesis/chapters/proximal_decoding.tex | 543 +------------------- 2 files changed, 539 insertions(+), 538 deletions(-) diff --git a/latex/thesis/chapters/appendix.tex b/latex/thesis/chapters/appendix.tex index 0df875a..18677a9 100644 --- a/latex/thesis/chapters/appendix.tex +++ b/latex/thesis/chapters/appendix.tex @@ -1,5 +1,539 @@ \appendix +\chapter{A Comparison of the Behaviour of Various Codes} + +\begin{figure}[H] + \centering + + \begin{subfigure}[c]{0.48\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,] + \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 \ac{LDPC} code with $n=96, k=48$ + \cite[\text{96.3.965}]{mackay_enc}} + \end{subfigure}% + \hfill + \begin{subfigure}[c]{0.48\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,] + \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.48\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,] + \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 \ac{LDPC} code with $n=204, k=102$ + \cite[\text{204.33.484}]{mackay_enc}} + \end{subfigure}% + \hfill + \begin{subfigure}[c]{0.48\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,] + \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 \ac{LDPC} code with $n=204, k=102$ + \cite[\text{204.55.187}]{mackay_enc}} + \end{subfigure}% + + \begin{subfigure}[c]{0.48\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,] + \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 \ac{LDPC} code with $n=408, k=204$ + \cite[\text{408.33.844}]{mackay_enc}} + \end{subfigure}% + \hfill + \begin{subfigure}[c]{0.48\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,] + \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}% + + \vspace{1cm} + + \begin{subfigure}[c]{\textwidth} + \centering + \begin{tikzpicture} + \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{subfigure} + + \caption{BER for $\omega = 0.05, K=100$ (different codes)} + \label{fig:prox:results_3d_multiple} +\end{figure} + +\begin{figure}[H] + \centering + + \begin{subfigure}[c]{0.48\textwidth} + \centering + + \begin{tikzpicture} + \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, + width=\textwidth, + height=0.75\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_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 \ac{LDPC} code with $n=96, k=48$ + \cite[\text{96.3.965}]{mackay_enc}} + \end{subfigure}% + \hfill% + \begin{subfigure}[c]{0.48\textwidth} + \centering + \begin{tikzpicture} + \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, + width=\textwidth, + height=0.75\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_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.48\textwidth} + \centering + \begin{tikzpicture} + \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, + width=\textwidth, + height=0.75\textwidth, + ] + + \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 \ac{LDPC} code with $n=204, k=102$ + \cite[\text{204.33.484}]{mackay_enc}} + \end{subfigure}% + \hfill% + \begin{subfigure}[c]{0.48\textwidth} + \centering + \begin{tikzpicture} + \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, + width=\textwidth, + height=0.75\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_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 \ac{LDPC} code with $n=204, k=102$ + \cite[\text{204.55.187}]{mackay_enc}} + \end{subfigure}% + + \begin{subfigure}[c]{0.48\textwidth} + \centering + \begin{tikzpicture} + \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, + width=\textwidth, + height=0.75\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_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 \ac{LDPC} code with $n=408, k=204$ + \cite[\text{408.33.844}]{mackay_enc}} + \end{subfigure}% + \hfill% + \begin{subfigure}[c]{0.48\textwidth} + \centering + \begin{tikzpicture} + \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, + width=\textwidth, + height=0.75\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_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{\ac{LDPC} code (progressive edge growth construction) with $n=504, k=252$ + \cite[\text{PEGReg252x504}]{mackay_enc}} + \label{fig:prox:improved:comp:504} + \end{subfigure}% + + \vspace{1cm} + + \begin{subfigure}[c]{\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, 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} + \end{subfigure} + + \caption{Comparison of improvement in decoding performance for various + codes} + \label{fig:prox:improved:comp} +\end{figure} + \chapter{\acs{LP} Decoding using \acs{ADMM} as a Proximal Algorithm}% \label{chapter:LD Decoding using ADMM as a Proximal Algorithm} diff --git a/latex/thesis/chapters/proximal_decoding.tex b/latex/thesis/chapters/proximal_decoding.tex index fe7d578..e9eadd2 100644 --- a/latex/thesis/chapters/proximal_decoding.tex +++ b/latex/thesis/chapters/proximal_decoding.tex @@ -479,8 +479,8 @@ in each case. \end{axis} \end{tikzpicture} - \caption{Visualization of relationship between the decoding performance\protect\footnotemark{} - and the parameter $\gamma$} + \caption{Visualization of the relationship between the decoding performance + \protect\footnotemark{} and the parameter $\gamma$} \label{fig:prox:results_3d} \end{figure}% % @@ -542,231 +542,6 @@ certain threshold does not improve the decoding performance. The choice of $\eta$ is insignificant and the parameter is only relevant as a means to bring about numerical stability. -\begin{figure}[H] - \centering - - \begin{subfigure}[c]{0.48\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,] - \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 \ac{LDPC} code with $n=96, k=48$ - \cite[\text{96.3.965}]{mackay_enc}} - \end{subfigure}% - \hfill - \begin{subfigure}[c]{0.48\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,] - \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.48\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,] - \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 \ac{LDPC} code with $n=204, k=102$ - \cite[\text{204.33.484}]{mackay_enc}} - \end{subfigure}% - \hfill - \begin{subfigure}[c]{0.48\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,] - \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 \ac{LDPC} code with $n=204, k=102$ - \cite[\text{204.55.187}]{mackay_enc}} - \end{subfigure}% - - \begin{subfigure}[c]{0.48\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,] - \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 \ac{LDPC} code with $n=408, k=204$ - \cite[\text{408.33.844}]{mackay_enc}} - \end{subfigure}% - \hfill - \begin{subfigure}[c]{0.48\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,] - \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}% - - \vspace{1cm} - - \begin{subfigure}[c]{\textwidth} - \centering - \begin{tikzpicture} - \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{subfigure} - - \caption{BER for $\omega = 0.05, K=100$ (different codes)} - \label{fig:prox:results_3d_multiple} -\end{figure} \subsection{Decoding Performance} @@ -1247,7 +1022,7 @@ gradient of the negative log-likelihood is counteracted. In conclusion, as a general rule, the proximal decoding algorithm reaches an oscillatory state which it cannot escape as a consequence of its structure. -In this state, the constraints may not be satisfied, leading to the algorithm +In this state the constraints may not be satisfied, leading to the algorithm returning an invalid codeword. \begin{figure}[H] @@ -1418,8 +1193,7 @@ Its only difference to algorithm \ref{alg:prox} is that instead of returning the last estimate when no valid result is reached, an ML-in-the-List step is performed. -\begin{minipage}{\linewidth} - \begin{genericAlgorithm}[caption={Improved proximal decoding algorithm}, +\begin{genericAlgorithm}[caption={Improved proximal decoding algorithm}, label={alg:prox:improved},] $\boldsymbol{s} \leftarrow \boldsymbol{0}$ for $K$ iterations do @@ -1437,8 +1211,7 @@ $\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{genericAlgorithm} -\end{minipage} +\end{genericAlgorithm} \todo{Not hamming distance, correlation} @@ -1654,309 +1427,3 @@ negligible computational performance penalty. The improvement is mainly noticable for higher \ac{SNR} values and depends on the code as well as the chosen parameters. -\begin{figure}[H] - \centering - - \begin{subfigure}[c]{0.48\textwidth} - \centering - - \begin{tikzpicture} - \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, - width=\textwidth, - height=0.75\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_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 \ac{LDPC} code with $n=96, k=48$ - \cite[\text{96.3.965}]{mackay_enc}} - \end{subfigure}% - \hfill% - \begin{subfigure}[c]{0.48\textwidth} - \centering - \begin{tikzpicture} - \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, - width=\textwidth, - height=0.75\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_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.48\textwidth} - \centering - \begin{tikzpicture} - \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, - width=\textwidth, - height=0.75\textwidth, - ] - - \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 \ac{LDPC} code with $n=204, k=102$ - \cite[\text{204.33.484}]{mackay_enc}} - \end{subfigure}% - \hfill% - \begin{subfigure}[c]{0.48\textwidth} - \centering - \begin{tikzpicture} - \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, - width=\textwidth, - height=0.75\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_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 \ac{LDPC} code with $n=204, k=102$ - \cite[\text{204.55.187}]{mackay_enc}} - \end{subfigure}% - - \begin{subfigure}[c]{0.48\textwidth} - \centering - \begin{tikzpicture} - \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, - width=\textwidth, - height=0.75\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_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 \ac{LDPC} code with $n=408, k=204$ - \cite[\text{408.33.844}]{mackay_enc}} - \end{subfigure}% - \hfill% - \begin{subfigure}[c]{0.48\textwidth} - \centering - \begin{tikzpicture} - \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, - width=\textwidth, - height=0.75\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_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{\ac{LDPC} code (progressive edge growth construction) with $n=504, k=252$ - \cite[\text{PEGReg252x504}]{mackay_enc}} - \label{fig:prox:improved:comp:504} - \end{subfigure}% - - \vspace{1cm} - - \begin{subfigure}[c]{\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, 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} - \end{subfigure} - - \caption{Comparison of improvement in decoding performance for various - codes} - \label{fig:prox:improved:comp} -\end{figure} -