Added fer comparison between proximal and admm
This commit is contained in:
@@ -142,7 +142,7 @@ calculation, whereas with \ac{LP} decoding it occurs due to the approximate
|
||||
formulation of the constraints - independent of the optimization method
|
||||
itself.
|
||||
The advantage which arises because of this when employing \ac{LP} decoding is
|
||||
that it can be easily detected, when the algorithm gets stuck - it
|
||||
that it can be easily detected \todo{Not 'easily' detected}, when the algorithm gets stuck - it
|
||||
returns a solution corresponding to a pseudocodeword, the components of which
|
||||
are fractional.
|
||||
Moreover, when a valid codeword is returned, it is also the \ac{ML} codeword.
|
||||
@@ -244,7 +244,7 @@ computed for each check node (line 6 in figure
|
||||
with proximal decoding, the same message is transmitted to all \acp{VN}
|
||||
(line 5 of figure \ref{fig:comp:message_passing:proximal}).
|
||||
This means that while both algorithms have an average time complexity of
|
||||
$\mathcal{O}\left( n \right)$, more arithmetic operations are required for the
|
||||
$\mathcal{O}\left( n \right)$, more arithmetic operations are required in the
|
||||
\ac{ADMM} case.
|
||||
|
||||
In conclusion, the two algorithms have a very similar structure, where the
|
||||
@@ -278,3 +278,250 @@ more arithmetic operations are necessary in each iteration.
|
||||
\item Proximal decoding faster than \ac{ADMM} $\rightarrow$ dafuq
|
||||
(larger number of iterations before convergence? More values to compute for ADMM?)
|
||||
\end{itemize}
|
||||
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
grid=both,
|
||||
xlabel={$E_b / N_0$}, ylabel={\acs{FER}},
|
||||
ymode=log,
|
||||
width=0.6\textwidth,
|
||||
height=0.45\textwidth,
|
||||
legend style={at={(0.5,-0.7)},anchor=south},
|
||||
]
|
||||
\addplot[RedOrange, line width=1pt, mark=*]
|
||||
table [col sep=comma, x=SNR, y=FER,
|
||||
discard if gt={SNR}{2.2},
|
||||
]
|
||||
{res/admm/fer_paper_margulis.csv};
|
||||
\addlegendentry{Barman et al.}
|
||||
\addplot[NavyBlue, densely dashed, line width=1pt, mark=triangle]
|
||||
table [col sep=comma, x=SNR, y=FER,]
|
||||
{/home/andreas/git/ba_sw/scripts/admm/sim_results/ber_margulis264013203.csv};
|
||||
\addlegendentry{Own results}
|
||||
\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'' \ac{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}$
|
||||
}%
|
||||
%
|
||||
|
||||
\begin{figure}[H]
|
||||
\centering
|
||||
|
||||
\begin{subfigure}[t]{0.48\textwidth}
|
||||
\centering
|
||||
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
grid=both,
|
||||
xlabel={$E_b / N_0$}, ylabel={FER},
|
||||
ymode=log,
|
||||
ymax=1.5, ymin=8e-5,
|
||||
width=\textwidth,
|
||||
height=0.75\textwidth,
|
||||
]
|
||||
|
||||
\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[NavyBlue, mark=triangle, densely dashed]
|
||||
table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}]
|
||||
%{res/hybrid/2d_ber_fer_dfr_963965.csv};
|
||||
{/home/andreas/git/ba_sw/scripts/admm/results/ber_2d_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};
|
||||
% {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};
|
||||
% {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}[t]{0.48\textwidth}
|
||||
\centering
|
||||
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
grid=both,
|
||||
xlabel={$E_b / N_0$}, ylabel={FER},
|
||||
ymode=log,
|
||||
ymax=1.5, ymin=8e-5,
|
||||
width=\textwidth,
|
||||
height=0.75\textwidth,
|
||||
]
|
||||
|
||||
\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[NavyBlue, mark=triangle, densely dashed]
|
||||
table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}]
|
||||
%{res/hybrid/2d_ber_fer_dfr_963965.csv};
|
||||
{/home/andreas/git/ba_sw/scripts/admm/results/ber_2d_bch_31_26.csv};
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
|
||||
\caption{BCH code with $n=31, k=26$}
|
||||
\end{subfigure}%
|
||||
|
||||
\vspace{3mm}
|
||||
|
||||
\begin{subfigure}[t]{0.48\textwidth}
|
||||
\centering
|
||||
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[
|
||||
grid=both,
|
||||
xlabel={$E_b / N_0$}, ylabel={FER},
|
||||
ymode=log,
|
||||
ymax=1.5, ymin=8e-5,
|
||||
width=\textwidth,
|
||||
height=0.75\textwidth,
|
||||
]
|
||||
|
||||
\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[NavyBlue, mark=triangle, densely dashed]
|
||||
table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}]
|
||||
%{res/hybrid/2d_ber_fer_dfr_963965.csv};
|
||||
{/home/andreas/git/ba_sw/scripts/admm/results/ber_2d_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}[
|
||||
grid=both,
|
||||
xlabel={$E_b / N_0$}, ylabel={FER},
|
||||
ymode=log,
|
||||
ymax=1.5, ymin=8e-5,
|
||||
width=\textwidth,
|
||||
height=0.75\textwidth,
|
||||
]
|
||||
|
||||
\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[NavyBlue, mark=triangle, densely dashed]
|
||||
table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}]
|
||||
%{res/hybrid/2d_ber_fer_dfr_963965.csv};
|
||||
{/home/andreas/git/ba_sw/scripts/admm/results/ber_2d_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}[
|
||||
grid=both,
|
||||
xlabel={$E_b / N_0$}, ylabel={FER},
|
||||
ymode=log,
|
||||
ymax=1.5, ymin=8e-5,
|
||||
width=\textwidth,
|
||||
height=0.75\textwidth,
|
||||
]
|
||||
|
||||
\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[NavyBlue, mark=triangle, densely dashed]
|
||||
table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}]
|
||||
%{res/hybrid/2d_ber_fer_dfr_963965.csv};
|
||||
{/home/andreas/git/ba_sw/scripts/admm/results/ber_2d_40833844.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}[
|
||||
grid=both,
|
||||
xlabel={$E_b / N_0$}, ylabel={FER},
|
||||
ymode=log,
|
||||
ymax=1.5, ymin=8e-5,
|
||||
width=\textwidth,
|
||||
height=0.75\textwidth,
|
||||
]
|
||||
|
||||
\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[NavyBlue, mark=triangle, densely dashed]
|
||||
table [x=SNR, y=FER, col sep=comma, discard if not={mu}{3.0}]
|
||||
%{res/hybrid/2d_ber_fer_dfr_963965.csv};
|
||||
{/home/andreas/git/ba_sw/scripts/admm/results/ber_2d_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}[t]{\textwidth}
|
||||
\centering
|
||||
|
||||
\begin{tikzpicture}
|
||||
\begin{axis}[hide axis,
|
||||
xmin=10, xmax=50,
|
||||
ymin=0, ymax=0.4,
|
||||
legend columns=1,
|
||||
legend style={draw=white!15!black}]
|
||||
\addlegendimage{RedOrange, mark=*, solid}
|
||||
\addlegendentry{Proximal decoding}
|
||||
|
||||
\addlegendimage{NavyBlue, mark=triange, densely dashed}
|
||||
\addlegendentry{\acs{LP} decoding using \acs{ADMM}}
|
||||
\end{axis}
|
||||
\end{tikzpicture}
|
||||
\end{subfigure}
|
||||
|
||||
\caption{Comparison of decoding performance between proximal decoding and \ac{LP} decoding
|
||||
using \ac{ADMM}}
|
||||
\label{fig:comp:prox_admm_dec}
|
||||
\end{figure}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user