Added descriptive text in appendix and moved around the order of figures

This commit is contained in:
Andreas Tsouchlos 2023-04-11 16:09:17 +02:00
parent f884042269
commit 5dbe90e1d4
2 changed files with 273 additions and 234 deletions

View File

@ -2,6 +2,45 @@
\chapter{A Comparison of the Behaviour of Proximal Decoding for Various Codes}
In this chapter, the results obtained with the proximal decoding algorithm,
shown in chapter \ref{chapter:proximal_decoding},
are revisited and expanded to a number of different codes.
These codes include a BCH code with $n=31$, four \ac{LDPC} codes with
lengths $n=96, n=204, n=204$ and $n=408$, respectively, and a progressive
edge growth construction \ac{LDPC} code with $n=504$.
All \ac{LDPC} codes have been taken from \cite{mackay_enc}.
This selection of codes was chosen as it comprises a variety of codes of
different lengths, rates and construction schemes.
Figure \ref{fig:prox:results_3d_multiple} depicts how the choice of the
parameter $\gamma$ affects the decoding performance.
The \ac{BER} curves for three values of $\gamma$ are highlighted in each case:
$\gamma = 0.01, \gamma=0.05$ and $\gamma=0.15$.
These are the same values chosen by Wadayama et al. for the presentation of
their results in \cite[Sec. 5.1]{proximal_paper}
and they seem to suitably describe the behaviour of the decoding performance
over a wide range of values for $\gamma$.
The parameter $\omega$ is chosen to be $0.05$ and the maximum number of
iterations performed $K$ is 100.
$\eta$ is set to $1.5$.
In figure \ref{fig:prox:gamma_omega_multiple}, the relationship between
$\gamma$ and $\omega$ and how they affect the \ac{BER} is shown.
This time a constant $E_b / N_0$ of $\SI{4}{dB}$ is chosen.
Again, the maximum number of iterations is set to $K=100$ and $\eta$
is set to $1.5$.
The possible gain in the decoding performance achievable using the
improved proximal decoding algorithm presented in section
\ref{sec:prox:Improved Implementation} is illustrated in figure
\ref{fig:prox:improved:comp}.
The parameters chosen are the same as for the reconstruction of the results
of Wadayama et al. in section \ref{sec:prox:Analysis and Simulation Results},
i.e., $\omega = 0.05, K=100, \eta=1.5$ and
$\gamma \in \left\{ 0.01, 0.05, 0.15 \right\}$.
\begin{figure}[H]
\centering
@ -228,10 +267,238 @@
\end{subfigure}
\caption{BER for $\omega = 0.05, K=100$ (different codes)}
\caption{Dependence of the \ac{BER} on the value of the parameter $\gamma$ for various codes}
\label{fig:prox:results_3d_multiple}
\end{figure}
\begin{figure}[H]
\centering
\begin{subfigure}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_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}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_bch_31_26.csv};
\end{axis}
\end{tikzpicture}
\caption{BCH code with $n=31, k=26$\\[2\baselineskip]}
\end{subfigure}%
\vspace{3mm}
\begin{subfigure}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_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}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_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}%
\vspace{3mm}
\begin{subfigure}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_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}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_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{5mm}
\begin{subfigure}{\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
hide axis,
scale only axis,
height=0pt,
width=0pt,
colormap/viridis,
colorbar horizontal,
point meta min=-5.7,
point meta max=-0.5,
colorbar style={
title={BER},
width=10cm,
xtick={-5,-4,...,-1},
xticklabels={$10^{-5}$,$10^{-4}$,$10^{-3}$,$10^{-2}$,$10^{-1}$}
}]
\addplot [draw=none] coordinates {(0,0)};
\end{axis}
\end{tikzpicture}
\end{subfigure}%
\caption{The \ac{BER} as a function of $\gamma$ and $\omega$ for various codes}
\label{fig:prox:gamma_omega_multiple}
\end{figure}
\begin{figure}[H]
\centering
@ -542,234 +809,6 @@
\label{fig:prox:improved:comp}
\end{figure}
\begin{figure}[H]
\centering
\begin{subfigure}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_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}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_bch_31_26.csv};
\end{axis}
\end{tikzpicture}
\caption{BCH code with $n=31, k=26$\\[2\baselineskip]}
\end{subfigure}%
\vspace{3mm}
\begin{subfigure}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_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}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_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}%
\vspace{3mm}
\begin{subfigure}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_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}[t]{0.48\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
colormap/viridis,
xlabel={$\omega$}, ylabel={$\gamma$},
at={(0,0)}, view={0}{90},
zmode=log,
ytick={0, 0.05, 0.1, 0.15},
yticklabels={0, 0.05, 0.1, 0.15},
xtick={0.05, 0.1, 0.15, 0.2},
xticklabels={0.05, 0.1, 0.15, 0.2},
width=\textwidth,
height=0.75\textwidth,
point meta min=-5.7,
point meta max=-0.5,
]
\addplot3[
surf,
shader=flat,
mesh/rows=17, mesh/cols=10,
]
table [col sep=comma, x=omega, y=gamma, z=BER]
{res/proximal/2d_ber_fer_dfr_gamma_omega_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{5mm}
\begin{subfigure}{\textwidth}
\centering
\begin{tikzpicture}
\begin{axis}[
hide axis,
scale only axis,
height=0pt,
width=0pt,
colormap/viridis,
colorbar horizontal,
point meta min=-5.7,
point meta max=-0.5,
colorbar style={
title={BER},
width=10cm,
xtick={-5,-4,...,-1},
xticklabels={$10^{-5}$,$10^{-4}$,$10^{-3}$,$10^{-2}$,$10^{-1}$}
}]
\addplot [draw=none] coordinates {(0,0)};
\end{axis}
\end{tikzpicture}
\end{subfigure}%
\caption{}
\label{fig:prox:gamma_omega_multiple}
\end{figure}
%\chapter{\acs{LP} Decoding using \acs{ADMM} as a Proximal Algorithm}%
%\label{chapter:LD Decoding using ADMM as a Proximal Algorithm}

View File

@ -449,8 +449,8 @@ in each case.
xlabel={$E_b / N_0$ (dB)},
ylabel={$\gamma$},
zlabel={BER},
%legend pos=outer north east,
legend style={at={(0.5,-0.7)},anchor=south},
legend pos=outer north east,
%legend style={at={(0.5,-0.7)},anchor=south},
ytick={0, 0.05, 0.1, 0.15},
width=0.6\textwidth,
height=0.45\textwidth,]
@ -528,7 +528,7 @@ depicted in figure \ref{fig:prox:gamma_omega_multiple}.
point meta min=-5.7,
point meta max=-0.5,
colorbar style={
title={BER},
title={$E_b / N_0$},
ytick={-5,-4,...,-1},
yticklabels={$10^{-5}$,$10^{-4}$,$10^{-3}$,$10^{-2}$,$10^{-1}$}
}]
@ -548,7 +548,7 @@ depicted in figure \ref{fig:prox:gamma_omega_multiple}.
\end{figure}%
%
\footnotetext{(3,6) regular \ac{LDPC} code with n = 204, k = 102
\cite[\text{204.33.484}]{mackay_enc}; $SNR=\SI{4}{dB}, K=100, \eta=1.5$
\cite[\text{204.33.484}]{mackay_enc}; $E_b / N_0=\SI{4}{dB}, K=100, \eta=1.5$
}%
%
@ -561,7 +561,7 @@ different \acp{SNR}.
The plots have been generated by averaging the error over TODO decodings.
As some decodings go one for more iterations than others, the number of values
which are averaged for each datapoints vary.
This explains the bump observable around $k=\text{TODO}$, since after
This explains the bump visible around $k=\text{TODO}$, since after
this point more and more correct decodings converge and stop iterating,
leaving more and more faulty ones to be averaged.
Remarkably, the \ac{SNR} seems to not have any impact on the number of