Reorganized proximal analysis results and continued writing

This commit is contained in:
Andreas Tsouchlos 2023-04-08 21:09:28 +02:00
parent 672af2f897
commit 8196381319

View File

@ -322,8 +322,21 @@ $[-\eta, \eta]$ individually.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Simulation Results}% \section{Analysis and Simulation Results}%
\label{sec:prox:Simulation Results} \label{sec:prox:Analysis and Simulation Results}
In this section, the general behaviour of the proximal decoding algorithm is
analyzed.
The impact of the parameters $\gamma$, as well as $\omega$, $K$ and $\eta$ is
examined.
The decoding performance is assessed on the basis of the \ac{BER} and the
\ac{FER} as well as the \textit{decoding failure rate} - the rate at which
the algorithm produces erroneous results.
The convergence properties are reviewed and related to the decoding
performance.
Finally, the computational performance is examined on a theoretical basis
as well as on the basis of the implementation completed in the context of this
work.
All simulation results presented hereafter are based on Monte Carlo All simulation results presented hereafter are based on Monte Carlo
simulations. simulations.
@ -333,9 +346,18 @@ stated.
\todo{Mention number of datapoints from which each graph was created for \todo{Mention number of datapoints from which each graph was created for
non ber and fer curves} non ber and fer curves}
\subsection{Choice of Parameters}
First, the effect of the parameter $\gamma$ is investigated.
Figure \ref{fig:prox:results} shows a comparison of the decoding performance Figure \ref{fig:prox:results} shows a comparison of the decoding performance
of the proximal decoding algorithm as presented by Wadayama et al. in of the proximal decoding algorithm as presented by Wadayama et al. in
\cite{proximal_paper} and the implementation realized for this work. \cite{proximal_paper} and the implementation realized for this work.
\noindent The \ac{BER} curves for three different choices of the parameter
$\gamma$ are shown, as well as the \ac{BER} curve resulting from decoding
using \ac{BP}, as a reference.
The results from Wadayama et al. are shown with solid lines,
while the newly generated ones are shown with dashed lines.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
@ -344,9 +366,9 @@ of the proximal decoding algorithm as presented by Wadayama et al. in
\begin{axis}[grid=both, grid style={line width=.1pt}, \begin{axis}[grid=both, grid style={line width=.1pt},
xlabel={$E_b / N_0$ (dB)}, ylabel={BER}, xlabel={$E_b / N_0$ (dB)}, ylabel={BER},
ymode=log, ymode=log,
legend style={at={(0.5,-0.55)},anchor=south}, legend style={at={(0.5,-0.7)},anchor=south},
width=0.75\textwidth, width=0.6\textwidth,
height=0.5625\textwidth, height=0.45\textwidth,
ymax=1.2, ymin=0.8e-4, ymax=1.2, ymin=0.8e-4,
xtick={1, 2, ..., 5}, xtick={1, 2, ..., 5},
xmin=0.9, xmax=5.6, xmin=0.9, xmax=5.6,
@ -388,24 +410,37 @@ of the proximal decoding algorithm as presented by Wadayama et al. in
\end{axis} \end{axis}
\end{tikzpicture} \end{tikzpicture}
\caption{Simulation results\protect\footnotemark{} for $\omega = 0.05, K=100$} \caption{Comparison of datapoints from Wadayama et al. with own simulation results%
\protect\footnotemark{}}
\label{fig:prox:results} \label{fig:prox:results}
\end{figure} \end{figure}
% %
\footnotetext{(3,6) regular LDPC code with n = 204, k = 102 \cite[204.33.484]{mackay_enc}}% \footnotetext{(3,6) regular LDPC code with $n = 204$, $k = 102$
\cite[\text{204.33.484}]{mackay_enc}; $\omega = 0.05, K=200, \eta=1.5$
}%
% %
\noindent It is noticeable that for a moderately chosen value of $\gamma$
Looking at the graph in figure \ref{fig:prox:results} one might notice that for ($\gamma = 0.05$) the decoding performance is better than for low
a moderately chosen value of $\gamma$ ($\gamma = 0.05$) the decoding ($\gamma = 0.01$) or high ($\gamma = 0.15$) values.
performance is better than for low ($\gamma = 0.01$) or high
($\gamma = 0.15$) values.
The question arises if there is some optimal value maximazing the decoding The question arises if there is some optimal value maximazing the decoding
performance, especially since the decoding performance seems to dramatically performance, especially since the decoding performance seems to dramatically
depend on $\gamma$. depend on $\gamma$.
To better understand how $\gamma$ and the decoding performance are To better understand how $\gamma$ and the decoding performance are
related, figure \ref{fig:prox:results} was recreated, but with a considerably related, figure \ref{fig:prox:results} was recreated, but with a considerably
larger selection of values for $\gamma$ (figure \ref{fig:prox:results_3d}).% larger selection of values for $\gamma$.
% In this new graph, shown in figure \ref{fig:prox:results_3d}, instead of
stacking the \ac{BER} curves on top of one another in the same plot, the
visualization is extended to three dimensions.
The previously shown results are highlighted.
Evidently, while the decoding performance does depend on the value of
$\gamma$, there is no single optimal value offering optimal performance, but
rather a certain interval in which it stays largely unchanged.
When examining a number of different codes (figure
\ref{fig:prox:results_3d_multiple}), it is apparent that while the exact
landscape of the graph depends on the code, the general behaviour is the same
in each case.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
@ -416,8 +451,8 @@ larger selection of values for $\gamma$ (figure \ref{fig:prox:results_3d}).%
xlabel={$E_b / N_0$ (dB)}, xlabel={$E_b / N_0$ (dB)},
ylabel={$\gamma$}, ylabel={$\gamma$},
zlabel={BER}, zlabel={BER},
legend pos=outer north east, %legend pos=outer north east,
%legend style={at={(0.5,-0.55)},anchor=south}, legend style={at={(0.5,-0.7)},anchor=south},
ytick={0, 0.05, 0.1, 0.15}, ytick={0, 0.05, 0.1, 0.15},
width=0.6\textwidth, width=0.6\textwidth,
height=0.45\textwidth,] height=0.45\textwidth,]
@ -446,19 +481,21 @@ larger selection of values for $\gamma$ (figure \ref{fig:prox:results_3d}).%
\end{axis} \end{axis}
\end{tikzpicture} \end{tikzpicture}
\caption{BER\protect\footnotemark{} for $\omega = 0.05, K=100$} \caption{Visualization of relationship between the decoding performance\protect\footnotemark{}
and the parameter $\gamma$}
\label{fig:prox:results_3d} \label{fig:prox:results_3d}
\end{figure}% \end{figure}%
% %
\footnotetext{(3,6) regular LDPC code with n = 204, k = 102 \cite[\text{204.33.484}]{mackay_enc}}% \footnotetext{(3,6) regular LDPC code with n = 204, k = 102 \cite[\text{204.33.484}]{mackay_enc};
$\omega = 0.05, K=200, \eta=1.5$
}%
% %
\noindent Evidently, while the performance does depend on the value of \noindent This indicates \todo{This is a result fit for the conclusion}
$\gamma$, there is no single optimal value offering optimal performance, but that while the choice of the parameter $\gamma$ significantly
rather a certain interval in which the performance stays largely the same. affects the decoding performance, there is not much benefit attainable in
When examining a number of different codes (figure undertaking an extensive search for an exact optimum.
\ref{fig:prox:results_3d_multiple}), it is apparent that while the exact Rather, a preliminary examination providing a rough window for $\gamma$ may
landscape of the graph depends on the code, the general behaviour is the same be sufficient.
in each case.
\begin{figure}[H] \begin{figure}[H]
\centering \centering
@ -688,12 +725,105 @@ in each case.
A similar analysis was performed to determine the optimal values for the other A similar analysis was performed to determine the optimal values for the other
parameters, $\omega$, $K$ and $\eta$. parameters, $\omega$, $K$ and $\eta$.
TODO Changing the parameter $\eta$ does not appear to have a significant effect on
the decoding performance, which seems sensible considering its only purpose
is ensuring numerical stability.
\subsection{Decoding Performance}
\begin{figure}[H]
\centering
\begin{tikzpicture}
\begin{axis}[grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={BER},
ymode=log,
width=0.48\textwidth,
height=0.36\textwidth,
legend style={at={(0.05,0.05)},anchor=south west},
ymax=1.5, ymin=3e-7,]
\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}%
\hfill%
\begin{tikzpicture}
\begin{axis}[grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={FER},
ymode=log,
width=0.48\textwidth,
height=0.36\textwidth,
legend style={at={(0.05,0.05)},anchor=south west},
ymax=1.5, ymin=3e-7,]
\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}\\[1em]
\begin{tikzpicture}
\begin{axis}[grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={Decoding Failure Rate},
ymode=log,
width=0.48\textwidth,
height=0.36\textwidth,
legend style={at={(0.05,0.05)},anchor=south west},
ymax=1.5, ymin=3e-7,]
\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{Cmoparison\protect\footnotemark{} of \ac{FER}, \ac{BER} and
decoding failure rate; $\omega = 0.05, K=100$}
\label{fig:prox:ber_fer_dfr}
\end{figure}%
%
\footnotetext{(3,6) regular LDPC code with n = 204, k = 102 \cite[\text{204.33.484}]{mackay_enc}}%
%
Until now, only the \ac{BER} has been considered to assess the decoding Until now, only the \ac{BER} has been considered to assess the decoding
performance. performance.
The \ac{FER}, however, shows considerably worse performance, as can be seen in The \ac{FER}, however, shows considerably worse performance, as can be seen in
figure \ref{TODO}. figure \ref{fig:prox:ber_fer_dfr}.
Besides the \ac{BER} and \ac{FER} curves, the figure also shows the
\textit{decoding failure rate}.
This is the rate at which the iterative process produces erroneous codewords,
i.e., the stopping criterion (line 6 of algorithm \ref{TODO}) is never
satisfied and the maximum number of itertations $K$ is reached without
converging to a valid codeword.
One possible explanation might be found in the structure of the proxmal One possible explanation might be found in the structure of the proxmal
decoding algorithm \ref{TODO} itself. decoding algorithm \ref{TODO} itself.
As it comprises two separate steps, one responsible for addressing the As it comprises two separate steps, one responsible for addressing the
@ -743,6 +873,8 @@ This course of thought will be picked up in section
\end{itemize} \end{itemize}
\end{itemize} \end{itemize}
\subsection{Convergence Properties}
\subsection{Computational Performance}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%