Rescaled all figures; Lu23 -> Lu22

This commit is contained in:
Andreas Tsouchlos 2023-04-18 15:43:34 +02:00
parent 5ca2410a8f
commit c4bd9701e0
5 changed files with 120 additions and 79 deletions

View File

@ -72,7 +72,7 @@
@mastersthesis{yanxia_lu_thesis,
author = {Lu, Yanxia},
title = {Realization of Channel Decoding Using Optimization Techniques},
year = {2023},
year = {2022},
type = {Bachelor's Thesis},
institution = {KIT},
}

View File

@ -126,6 +126,9 @@
% marcos used throughout the slides
\input{\templates/makros_own.tex}
\tikzstyle{every node}=[font=\small]
\title{Application of Optimization Algorithms for Channel Decoding}
\subtitle{\small Final Presentation, 20.04.2023}

View File

@ -64,20 +64,20 @@
\centering
\begin{figure}[H]
\vspace*{-0.5cm}
\vspace*{-0.7cm}
\centering
\begin{subfigure}[t]{0.33\textwidth}
\centering
\begin{tikzpicture}[scale=0.4]
\begin{tikzpicture}[scale=0.8]
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={FER},
ymode=log,
ymax=1.5, ymin=8e-5,
% width=1.1\textwidth,
% height=0.825\textwidth,
width=1.2\textwidth,
height=0.85\textwidth,
]
\addplot[RedOrange, line width=1pt, mark=*, solid]
@ -93,20 +93,22 @@
\end{axis}
\end{tikzpicture}
\vspace*{-1mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$
\cite[\text{96.3.965}]{mackay_enc}}
\end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth}
\centering
\begin{tikzpicture}[scale=0.4]
\begin{tikzpicture}[scale=0.8]
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={FER},
ymode=log,
ymax=1.5, ymin=8e-5,
% width=1.1\textwidth,
% height=0.825\textwidth,
width=1.2\textwidth,
height=0.85\textwidth,
]
\addplot[RedOrange, line width=1pt, mark=*, solid]
@ -124,19 +126,21 @@
\end{axis}
\end{tikzpicture}
\vspace*{-1mm}
\caption{BCH code with $n=31, k=26$}
\end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth}
\centering
\begin{tikzpicture}[scale=0.4]
\begin{tikzpicture}[scale=0.8]
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={FER},
ymode=log,
ymax=1.5, ymin=8e-5,
% width=1.1\textwidth,
% height=0.825\textwidth,
width=1.2\textwidth,
height=0.85\textwidth,
]
\addplot[RedOrange, line width=1pt, mark=*, solid]
@ -156,6 +160,8 @@
\end{axis}
\end{tikzpicture}
\vspace*{-1mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$
\cite[\text{204.33.484}]{mackay_enc}}
\end{subfigure}%
@ -163,14 +169,14 @@
\begin{subfigure}[t]{0.33\textwidth}
\centering
\begin{tikzpicture}[scale=0.4]
\begin{tikzpicture}[scale=0.8]
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={FER},
ymode=log,
ymax=1.5, ymin=8e-5,
% width=1.1\textwidth,
% height=0.825\textwidth,
width=1.2\textwidth,
height=0.85\textwidth,
]
\addplot[RedOrange, line width=1pt, mark=*, solid]
@ -182,20 +188,22 @@
\end{axis}
\end{tikzpicture}
\vspace*{-1mm}
\caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$
\cite[\text{204.55.187}]{mackay_enc}}
\end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth}
\centering
\begin{tikzpicture}[scale=0.4]
\begin{tikzpicture}[scale=0.8]
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={FER},
ymode=log,
ymax=1.5, ymin=8e-5,
% width=1.1\textwidth,
% height=0.825\textwidth,
width=1.2\textwidth,
height=0.85\textwidth,
]
\addplot[RedOrange, line width=1pt, mark=*, solid]
@ -207,20 +215,22 @@
\end{axis}
\end{tikzpicture}
\vspace*{-1mm}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$
\cite[\text{204.33.484}]{mackay_enc}}
\end{subfigure}%
\begin{subfigure}[t]{0.33\textwidth}
\centering
\begin{tikzpicture}[scale=0.4]
\begin{tikzpicture}[scale=0.8]
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$ (dB)}, ylabel={FER},
ymode=log,
ymax=1.5, ymin=8e-5,
% width=1.1\textwidth,
% height=0.825\textwidth,
width=1.2\textwidth,
height=0.85\textwidth,
]
\addplot[RedOrange, line width=1pt, mark=*, solid]
@ -232,6 +242,8 @@
\end{axis}
\end{tikzpicture}
\vspace*{-1mm}
\caption{LDPC code (progressive edge growth construction) with $n=504, k=252$
\cite[\text{PEGReg252x504}]{mackay_enc}}
\end{subfigure}%
@ -243,18 +255,18 @@
\begin{figure}
\centering
\vspace*{-1.2cm}
\hspace*{-0.5cm}
\begin{tikzpicture}[scale=0.7]
\hspace*{2mm}
\begin{tikzpicture}[scale=0.8]
\begin{axis}[hide axis,
xmin=10, xmax=50,
ymin=0, ymax=0.4,
legend columns=1,
legend style={draw=white!15!black}]
\addlegendimage{RedOrange, line width=1pt, mark=*, solid}
\addlegendentry{Proximal decoding}
\addlegendentry{Proximal}
\addlegendimage{NavyBlue, line width=1pt, mark=triangle, densely dashed}
\addlegendentry{LP decoding}
\addlegendentry{ADMM}
% \addlegendimage{PineGreen, line width=1pt, mark=triangle*, solid}
% \addlegendentry{ML}
@ -466,7 +478,7 @@ return $\tilde{\boldsymbol{c}}$
\item Addition of "ML-in-the-List" step
\item Up to $\sim \SI{1}{dB}$ gain under certain conditions
\end{itemize}
\item Comparison of the two decoding algorithms
\item Comparison
\begin{itemize}
\item based on simulation results
\item based on their theoretical structure

View File

@ -20,14 +20,14 @@
\begin{figure}[H]
\centering
\begin{tikzpicture}[scale=0.5]
\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=11.5cm,
height=8cm,
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,
@ -103,9 +103,11 @@
\begin{subfigure}[c]{0.5\textwidth}
\centering
\begin{tikzpicture}[scale=0.52]
\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,
@ -126,12 +128,14 @@
\begin{subfigure}[c]{0.5\textwidth}
\centering
\begin{tikzpicture}[scale=0.55]
\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,
@ -424,16 +428,18 @@ return $\boldsymbol{\hat{c}}$
\begin{minipage}{.6\textwidth}
\centering
\begin{figure}[H]
\vspace*{-8mm}
\vspace*{-9mm}
\centering
\begin{tikzpicture}[scale=0.42]
\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}]
@ -449,13 +455,15 @@ return $\boldsymbol{\hat{c}}$
\addlegendentry{$\gamma = 0.05$}
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}[scale=0.42]
\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}]
@ -471,13 +479,15 @@ return $\boldsymbol{\hat{c}}$
\addlegendentry{$\gamma = 0.05$}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale=0.42]
\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}]
@ -513,15 +523,16 @@ return $\boldsymbol{\hat{c}}$
\end{itemize}
\begin{figure}[H]
\centering
\begin{minipage}[c]{0.25\textwidth}
\centering
\begin{tikzpicture}[scale = 0.35]
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=8cm,
height=3cm,
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
@ -540,12 +551,12 @@ return $\boldsymbol{\hat{c}}$
\addlegendentry{$\left(\nabla h \right)_2 $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.35]
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=8cm,
height=3cm,
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
@ -564,12 +575,12 @@ return $\boldsymbol{\hat{c}}$
\addlegendentry{$\left(\nabla h \right)_3 $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.35]
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=8cm,
height=3cm,
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
@ -593,13 +604,13 @@ return $\boldsymbol{\hat{c}}$
\vspace*{-1cm}
\centering
\begin{tikzpicture}[scale = 0.85, spy using outlines={circle, magnification=6,
\begin{tikzpicture}[, spy using outlines={circle, magnification=6,
connect spies}]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=8cm,
height=3cm,
width=0.8\textwidth,
height=0.35\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
@ -617,8 +628,8 @@ return $\boldsymbol{\hat{c}}$
\addlegendentry{$\left(\nabla L \right)_1$}
\addlegendentry{$\left(\nabla h \right)_1 $}
\coordinate (spypoint) at (axis cs:100,0.53);
\coordinate (magnifyglass) at (axis cs:175,2);
\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);
@ -627,12 +638,12 @@ return $\boldsymbol{\hat{c}}$
\begin{minipage}[c]{0.25\textwidth}
\centering
\begin{tikzpicture}[scale = 0.35]
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=8cm,
height=3cm,
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
@ -651,12 +662,12 @@ return $\boldsymbol{\hat{c}}$
\addlegendentry{$\left(\nabla h \right)_5 $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.35]
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=8cm,
height=3cm,
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
@ -675,12 +686,12 @@ return $\boldsymbol{\hat{c}}$
\addlegendentry{$\left(\nabla h \right)_6 $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.35]
\begin{tikzpicture}[scale = 0.7]
\begin{axis}[
grid=both,
xlabel={Iterations},
width=8cm,
height=3cm,
width=1.2\textwidth,
height=0.45\textwidth,
scale only axis,
xtick={0, 50, ..., 200},
xticklabels={0, 25, ..., 100},
@ -722,10 +733,12 @@ return $\boldsymbol{\hat{c}}$
\centering
\begin{tikzpicture}[scale=0.8]
\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},
@ -753,9 +766,11 @@ return $\boldsymbol{\hat{c}}$
\begin{subfigure}[c]{0.5\textwidth}
\centering
\begin{tikzpicture}[scale=0.8]
\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}]
@ -808,12 +823,12 @@ return $\boldsymbol{\hat{c}}$
\begin{subfigure}[t]{0.5\textwidth}
\centering
\begin{tikzpicture}[scale = 0.85]
\begin{tikzpicture}
\begin{axis}[
grid=both,
xlabel={Iterations},
width=8cm,
height=3cm,
width=0.85\textwidth,
height=0.4\textwidth,
scale only axis,
xtick={0, 100, ..., 400},
xticklabels={0, 50, ..., 200},
@ -839,7 +854,7 @@ return $\boldsymbol{\hat{c}}$
\begin{subfigure}[t]{0.5\textwidth}
\centering
\begin{tikzpicture}[scale = 0.85]
\begin{tikzpicture}
\begin{axis}[
point meta min = -1,
point meta max = 1,
@ -847,8 +862,8 @@ return $\boldsymbol{\hat{c}}$
xlabel={$Var\left( \nabla h\left( \tilde{\boldsymbol{x}} \right) \right) $},
ylabel={Bit error (bool)},
ytick={0, 1},
width=8cm,
height=3cm,
width=0.85\textwidth,
height=0.4\textwidth,
scale only axis,
% colormap/viridis,
]
@ -1067,7 +1082,7 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
\begin{figure}[H]
\centering
\begin{tikzpicture}[scale=0.55]
\begin{tikzpicture}
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$}, ylabel={BER},
@ -1075,6 +1090,8 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
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}]
@ -1098,7 +1115,7 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}[scale=0.55]
\begin{tikzpicture}
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$}, ylabel={FER},
@ -1106,6 +1123,8 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
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]
@ -1130,7 +1149,7 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}[scale=0.55]
\begin{tikzpicture}
\begin{axis}[
grid=both,
xlabel={$E_b / N_0$}, ylabel={Decoding Failure Rate},
@ -1138,6 +1157,8 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
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]
@ -1162,7 +1183,7 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
{res/hybrid/2d_ber_fer_dfr_20433484.csv};
\end{axis}
\end{tikzpicture}
\begin{tikzpicture}[scale=0.7]
\begin{tikzpicture}
\begin{axis}[hide axis,
xmin=10, xmax=50,
ymin=0, ymax=0.4,
@ -1490,11 +1511,13 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
\begin{figure}[H]
\centering
\begin{tikzpicture}[scale=0.6]
\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]
@ -1537,12 +1560,14 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
\begin{figure}[H]
\centering
\begin{tikzpicture}[scale=0.7]
\begin{tikzpicture}
\begin{axis}[
grid=both,
xlabel={$n$}, ylabel={time per frame (s)},
legend style={at={(0.05,0.77)},anchor=south west},
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]
@ -1829,8 +1854,9 @@ $\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{c}}_l\text{ with lowest }d
\begin{tikzpicture}
\begin{axis}[
grid=both,
width=0.5\textwidth,
height=0.375\textwidth,
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$}
]

View File

@ -10,11 +10,11 @@
\frametitle{Motivation}
\begin{itemize}
\item The general [ML] decoding problem for linear codes and the general problem
of finding the weights of a linear code are both NP-complete. \cite{ml_np_hard_proof}
of finding the weights of a linear code are both NP-complete \cite{ml_np_hard_proof}.
\item The iterative messagepassing algorithms preferred in practice do not guarantee
optimality and may fail to decode correctly when the graph contains cycles.
\cite{ldpc_conv}
\item The standard message-passing algorithms used for decoding [LDPC and turbo codes]
optimality and may fail to decode correctly when the graph contains cycles
\cite{ldpc_conv}.
\item The standard message-passing algorithms used for decoding LDPC and turbo codes
are often difficult to analyze. \cite{feldman_thesis}
\end{itemize}