From 77fce73273e11b4bc0feeb9a3c0bc632bd9eb1df Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Tue, 24 Jan 2023 00:07:15 +0100 Subject: [PATCH] Added 6-sublot BER surface plot; Added pgf externalization --- latex/presentations/midterm/presentation.bib | 4 +- latex/presentations/midterm/presentation.tex | 2 + .../midterm/sections/decoding_algorithms.tex | 2 +- .../midterm/sections/examination_results.tex | 481 ++++++++++++++---- 4 files changed, 391 insertions(+), 98 deletions(-) diff --git a/latex/presentations/midterm/presentation.bib b/latex/presentations/midterm/presentation.bib index ad02070..c868b97 100644 --- a/latex/presentations/midterm/presentation.bib +++ b/latex/presentations/midterm/presentation.bib @@ -25,7 +25,7 @@ journal = {IEEE Transactions on Information Theory}, author = {Berlekamp, E. and McEliece, R. and van Tilborg, H.}, year = {1978}, - month = {May}, + month = {5}, pages = {384–386}, % url = {https://authors.library.caltech.edu/5607/1/BERieeetit78.pdf} } @@ -64,7 +64,7 @@ url = {https://doi.org/10.1561/2400000003}, doi = {10.1561/2400000003}, journal = {Found. Trends Optim.}, - month = {jan}, + month = {1}, pages = {127–239}, numpages = {113} } diff --git a/latex/presentations/midterm/presentation.tex b/latex/presentations/midterm/presentation.tex index 5b5ceac..eed20c9 100644 --- a/latex/presentations/midterm/presentation.tex +++ b/latex/presentations/midterm/presentation.tex @@ -23,6 +23,8 @@ %\setbeamertemplate{note page}[plain] %\setbeameroption{show notes on second screen=right} \usepgfplotslibrary{colorbrewer} +\usetikzlibrary{external} +\tikzexternalize[prefix=build/] \usepackage{csquotes} \usepackage[citestyle=numeric, style=alphabetic, backend=biber, diff --git a/latex/presentations/midterm/sections/decoding_algorithms.tex b/latex/presentations/midterm/sections/decoding_algorithms.tex index 406bbef..c92b2b8 100644 --- a/latex/presentations/midterm/sections/decoding_algorithms.tex +++ b/latex/presentations/midterm/sections/decoding_algorithms.tex @@ -83,7 +83,7 @@ \begin{frame}[t, fragile] \frametitle{Proximal Decoding: Algorithm} \begin{itemize} - \item Resulting terative decoding algorithm: + \item Resulting terative decoding algorithm \cite{proximal_paper}: \vspace{2mm} \begin{algorithm}[caption={}, label={}] $\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ diff --git a/latex/presentations/midterm/sections/examination_results.tex b/latex/presentations/midterm/sections/examination_results.tex index bd82517..b043cbb 100644 --- a/latex/presentations/midterm/sections/examination_results.tex +++ b/latex/presentations/midterm/sections/examination_results.tex @@ -95,7 +95,9 @@ legend style={at={(0.05,0.05)},anchor=south west}, ymin=3e-7, ymax=1.5,] \foreach \gamma in {0.01, 0.05, 0.15}{ - \addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{\gamma}] {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addplot table [x=SNR, y=BER, + col sep=comma, discard if not={gamma}{\gamma}] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; \legend{\gamma} } \legend{$\gamma=0.01$, $\gamma=0.05$, $\gamma=0.15$} @@ -111,13 +113,26 @@ xlabel={SNR}, ylabel={$\gamma$}, zlabel={BER},] - \addplot3[surf, mesh/rows=17, mesh/cols=14, colormap/viridis] table [col sep=comma, x=SNR, y=gamma, z=BER] {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addplot3[surf, + mesh/rows=17, mesh/cols=14, + colormap/viridis] table [col sep=comma, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; \addlegendentry{$\gamma = \left[ 0\text{:}.01\text{:}.16 \right] $} - \addplot3[red, line width=1.5] table[col sep=comma, discard if not={gamma}{0.05}, x=SNR, y=gamma, z=BER] {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addplot3[red, line width=1.5] table [col sep=comma, + discard if not={gamma}{0.05}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; \addlegendentry{$\gamma = 0.05$} - \addplot3[blue, line width=1.5] table[col sep=comma, discard if not={gamma}{0.01}, x=SNR, y=gamma, z=BER] {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addplot3[blue, line width=1.5] table [col sep=comma, + discard if not={gamma}{0.01}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; \addlegendentry{$\gamma = 0.01$} - \addplot3[brown, line width=1.5] table[col sep=comma, discard if not={gamma}{0.15}, x=SNR, y=gamma, z=BER] {res/2d_ber_fer_dfr_20433484_proximal.csv}; + \addplot3[brown, line width=1.5] table [col sep=comma, + discard if not={gamma}{0.15}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20433484_proximal.csv}; \addlegendentry{$\gamma = 0.15$} \end{axis} \end{tikzpicture} @@ -134,6 +149,215 @@ \end{frame} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\begin{frame}[t] + \frametitle{Proximal Decoding: Choice of $\gamma$} + + \begin{figure}[H] + \vspace*{-0.5cm} + \centering + \begin{subfigure}[c]{0.33\textwidth} + \centering + \begin{tikzpicture}[scale=0.35] + \begin{axis}[view={75}{60}, + zmode=log, + xlabel={SNR}, + ylabel={$\gamma$}, + zlabel={BER},] + \addplot3[surf, + mesh/rows=17, mesh/cols=10, + colormap/viridis] table [col sep=comma, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_963965.csv}; + \addlegendentry{$\gamma = \left[ 0\text{:}.01\text{:}.16 \right] $} + \addplot3[red, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.05}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_963965.csv}; + \addlegendentry{$\gamma = 0.05$} + \addplot3[blue, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.01}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_963965.csv}; + \addlegendentry{$\gamma = 0.01$} + \addplot3[brown, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.15}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_963965.csv}; + \addlegendentry{$\gamma = 0.15$} + \end{axis} + \end{tikzpicture} + \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$\\ \cite[Code: 96.3.965]{mackay_enc}} + \end{subfigure}% + \begin{subfigure}[c]{0.33\textwidth} + \centering + \begin{tikzpicture}[scale=0.35] + \begin{axis}[view={75}{60}, + zmode=log, + xlabel={SNR}, + ylabel={$\gamma$}, + zlabel={BER},] + \addplot3[surf, + mesh/rows=17, mesh/cols=14, + colormap/viridis] table [col sep=comma, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20433484.csv}; + \addlegendentry{$\gamma = \left[ 0\text{:}.01\text{:}.16 \right] $} + \addplot3[red, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.05}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20433484.csv}; + \addlegendentry{$\gamma = 0.05$} + \addplot3[blue, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.01}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20433484.csv}; + \addlegendentry{$\gamma = 0.01$} + \addplot3[brown, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.15}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20433484.csv}; + \addlegendentry{$\gamma = 0.15$} + \end{axis} + \end{tikzpicture} + \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$\\ \cite[Code: 204.33.484]{mackay_enc}} + \end{subfigure}% + \begin{subfigure}[c]{0.33\textwidth} + \centering + \begin{tikzpicture}[scale=0.35] + \begin{axis}[view={75}{60}, + zmode=log, + xlabel={SNR}, + ylabel={$\gamma$}, + zlabel={BER},] + \addplot3[surf, + mesh/rows=17, mesh/cols=10, + colormap/viridis] table [col sep=comma, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_40833844.csv}; + \addlegendentry{$\gamma = \left[ 0\text{:}.01\text{:}.16 \right] $} + \addplot3[red, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.05}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_40833844.csv}; + \addlegendentry{$\gamma = 0.05$} + \addplot3[blue, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.01}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_40833844.csv}; + \addlegendentry{$\gamma = 0.01$} + \addplot3[brown, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.15}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_40833844.csv}; + \addlegendentry{$\gamma = 0.15$} + \end{axis} + \end{tikzpicture} + \caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$\\ \cite[Code: 408.33.844]{mackay_enc}} + \end{subfigure} + \begin{subfigure}[c]{0.33\textwidth} + \centering + \begin{tikzpicture}[scale=0.35] + \begin{axis}[view={75}{60}, + zmode=log, + xlabel={SNR}, + ylabel={$\gamma$}, + zlabel={BER},] + \addplot3[surf, + mesh/rows=17, mesh/cols=10, + colormap/viridis] table [col sep=comma, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_bch_31_26.csv}; + \addlegendentry{$\gamma = \left[ 0\text{:}.01\text{:}.16 \right] $} + \addplot3[red, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.05}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_bch_31_26.csv}; + \addlegendentry{$\gamma = 0.05$} + \addplot3[blue, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.01}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_bch_31_26.csv}; + \addlegendentry{$\gamma = 0.01$} + \addplot3[brown, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.15}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_bch_31_26.csv}; + \addlegendentry{$\gamma = 0.15$} + \end{axis} + \end{tikzpicture} + \caption{BCH code with $n=31, k=26$} + \end{subfigure}% + \begin{subfigure}[c]{0.33\textwidth} + \centering + \begin{tikzpicture}[scale=0.35] + \begin{axis}[view={75}{60}, + zmode=log, + xlabel={SNR}, + ylabel={$\gamma$}, + zlabel={BER},] + \addplot3[surf, + mesh/rows=17, mesh/cols=10, + colormap/viridis] table [col sep=comma, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20455187.csv}; + \addlegendentry{$\gamma = \left[ 0\text{:}.01\text{:}.16 \right] $} + \addplot3[red, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.05}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20455187.csv}; + \addlegendentry{$\gamma = 0.05$} + \addplot3[blue, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.01}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20455187.csv}; + \addlegendentry{$\gamma = 0.01$} + \addplot3[brown, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.15}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_20455187.csv}; + \addlegendentry{$\gamma = 0.15$} + \end{axis} + \end{tikzpicture} + \caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$\\ \cite[Code: 204.55.187]{mackay_enc}} + \end{subfigure}% + \begin{subfigure}[c]{0.33\textwidth} + \centering + \begin{tikzpicture}[scale=0.35] + \begin{axis}[view={75}{60}, + zmode=log, + xlabel={SNR}, + ylabel={$\gamma$}, + zlabel={BER},] + \addplot3[surf, + mesh/rows=17, mesh/cols=10, + colormap/viridis] table [col sep=comma, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_pegreg252x504.csv}; + \addlegendentry{$\gamma = \left[ 0\text{:}.01\text{:}.16 \right] $} + \addplot3[red, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.05}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_pegreg252x504.csv}; + \addlegendentry{$\gamma = 0.05$} + \addplot3[blue, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.01}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_pegreg252x504.csv}; + \addlegendentry{$\gamma = 0.01$} + \addplot3[brown, line width=1.5] table[col sep=comma, + discard if not={gamma}{0.15}, + x=SNR, y=gamma, z=BER] + {res/2d_ber_fer_dfr_pegreg252x504.csv}; + \addlegendentry{$\gamma = 0.15$} + \end{axis} + \end{tikzpicture} + \caption{LDPC code (Progressive Edge Growth Construction) with $n=504, k=252$\\ \cite[Code: PEGReg252x504]{mackay_enc}} + \end{subfigure}% + \end{figure} +\end{frame} + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t, fragile] \frametitle{Proximal Decoding: Frame Error Rate} @@ -149,7 +373,10 @@ \begin{minipage}{.4\textwidth} \centering - \begin{algorithm}[caption={}, label={}, + \begin{figure}[htpb] + \centering + + \begin{algorithm}[caption={}, label={}, basicstyle=\fontsize{7.5}{9.5}\selectfont ] $\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ @@ -161,7 +388,10 @@ for $k=0$ to $K-1$ do If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop. end for Output $\boldsymbol{\hat{x}}$ - \end{algorithm} + \end{algorithm} + + \caption{Proximal decoding algorithm \cite{proximal_paper}} + \end{figure} \end{minipage}% \begin{minipage}{.6\textwidth} \centering @@ -234,17 +464,118 @@ Output $\boldsymbol{\hat{x}}$ \end{frame} -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\newcommand{\tikzbracemark}[1]{\tikz[overlay,remember picture] \node (#1) {};} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\newcommand{\tikzbracemark}[1]{\tikz[overlay,remember picture] \node (#1) {};} +% +%\newcommand*{\AddNote}[4]{% +% \begin{tikzpicture}[overlay, remember picture] +% \draw [decoration={brace,amplitude=0.5em},decorate,ultra thick] +% ($(#3)!([yshift=1.5ex]#1)!($(#3)-(0,1)$)$) -- +% ($(#3)!(#2)!($(#3)-(0,1)$)$) +% node [align=center, text width=2cm, pos=0.5, anchor=west] {#4}; +% \end{tikzpicture} +%}% +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%\begin{frame}[t, fragile] +% \frametitle{Proximal Decoding: Improvement using ``ML-on-List''} +% \setcounter{footnote}{0} +% +% \begin{itemize} +% \item Comparison of proximal \& hybrid-proximal-ML\\ +% decoding simulation +% \footnote{(3,6) regular LDPC Code with $n=204, k=102$ +% \cite[Code: 204.33.484]{mackay_enc}} +% results +% \end{itemize} +% +% \begin{minipage}{.4\textwidth} +% \centering +% +% \begin{algorithm}[caption={}, label={}, +% basicstyle=\fontsize{6.5}{7.5}\selectfont +% ] +%$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$$\hspace{4.185cm}\tikzbracemark{prox-start}$ +%for $k=0$ to $K-1$ do +% $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $ +% Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ +% $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ +% $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ +% If $\boldsymbol{\hat{x}}$ passes the parity check condition, output $\boldsymbol{\hat{x}}$ +%end for $\tikzbracemark{prox-end}$ +%Find $N$ most probably wrong bits $\hspace{2cm}\tikzbracemark{ml-start}$ +%Generate variations $\boldsymbol{\tilde{x}}_n$ of $\boldsymbol{\hat{x}}$ with the $N$ bits modified +%Compute $d\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right) \forall n \in \left[ 1 : N-1 \right] $ +%Output $\boldsymbol{\tilde{x}}_n$ with lowest $d\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right)$ $\tikzbracemark{ml-end}$ +% \end{algorithm} +% +% \AddNote{prox-start}{prox-end}{prox-start}{\small Proximal\\Decoding} +% \AddNote{ml-start}{ml-end}{ml-start}{\small ML-on-List} +% \end{minipage}% +% \begin{minipage}{.6\textwidth} +% \centering +% \begin{figure}[H] +% \centering +% \vspace*{-12mm} +% +% \begin{tikzpicture}[scale=0.42] +% \begin{axis}[ +% grid=both, +% xlabel={SNR}, ylabel={BER}, +% ymode=log, +% legend style={at={(0.05,0.05)},anchor=south west}, +% ymax=1.5, ymin=3e-8, +% ] +% +% \addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}] +% {res/2d_ber_fer_dfr_20433484_proximal.csv}; +% \addlegendentry{proximal} +% \addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}] +% {res/2d_ber_fer_dfr_20433484_hybrid.csv}; +% \addlegendentry{hybrid prox. \& ML} +% \end{axis} +% \end{tikzpicture} +% \begin{tikzpicture}[scale=0.42] +% \begin{axis}[ +% grid=both, +% xlabel={SNR}, ylabel={FER}, +% ymode=log, +% legend style={at={(0.05,0.05)},anchor=south west}, +% ymax=1.5, ymin=3e-8, +% ] +% +% \addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] +% {res/2d_ber_fer_dfr_20433484_proximal.csv}; +% \addlegendentry{proximal} +% \addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] +% {res/2d_ber_fer_dfr_20433484_hybrid.csv}; +% \addlegendentry{hybrid prox. \& ML} +% \end{axis} +% \end{tikzpicture}\\ +% \begin{tikzpicture}[scale=0.42] +% \begin{axis}[ +% grid=both, +% xlabel={SNR}, ylabel={Decoding Failure Rate}, +% ymode=log, +% legend style={at={(0.05,0.05)},anchor=south west}, +% ymax=1.5, ymin=3e-8, +% ] +% +% \addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}] +% {res/2d_ber_fer_dfr_20433484_proximal.csv}; +% \addlegendentry{proximal} +% \addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}] +% {res/2d_ber_fer_dfr_20433484_hybrid.csv}; +% \addlegendentry{hybrid prox. \& ML} +% \end{axis} +% \end{tikzpicture} +% +% \caption{Simulation results for $\gamma = 0.05, \omega = 0.05, K=200, N=12$} +% \label{fig:simulation_results_hybrid} +% \end{figure} +% \end{minipage} +%\end{frame} -\newcommand*{\AddNote}[4]{% - \begin{tikzpicture}[overlay, remember picture] - \draw [decoration={brace,amplitude=0.5em},decorate,ultra thick] - ($(#3)!([yshift=1.5ex]#1)!($(#3)-(0,1)$)$) -- - ($(#3)!(#2)!($(#3)-(0,1)$)$) - node [align=center, text width=2cm, pos=0.5, anchor=west] {#4}; - \end{tikzpicture} -}% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \begin{frame}[t, fragile] @@ -252,96 +583,56 @@ Output $\boldsymbol{\hat{x}}$ \setcounter{footnote}{0} \begin{itemize} - \item Comparison of proximal \& hybrid-proximal-ML\\ - decoding simulation - \footnote{(3,6) regular LDPC Code with $n=204, k=102$ - \cite[Code: 204.33.484]{mackay_enc}} - results + \item Improvement of proximal decoding by adding an ``ML-on-list'' step after iterating \end{itemize} - \begin{minipage}{.4\textwidth} + \begin{minipage}[t]{.48\textwidth} \centering - \begin{algorithm}[caption={}, label={}, - basicstyle=\fontsize{6.5}{7.5}\selectfont + \begin{figure} + \centering + + \begin{algorithm}[caption={}, label={}, + basicstyle=\fontsize{7.5}{9.5}\selectfont ] -$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$$\hspace{4.185cm}\tikzbracemark{prox-start}$ +$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ for $k=0$ to $K-1$ do $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $ Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ - If $\boldsymbol{\hat{x}}$ passes the parity check condition, output $\boldsymbol{\hat{x}}$ -end for $\tikzbracemark{prox-end}$ -Find $N$ most probably wrong bits $\hspace{2cm}\tikzbracemark{ml-start}$ -Generate variations $\boldsymbol{\tilde{x}}_n$ of $\boldsymbol{\hat{x}}$ with the $N$ bits modified -Compute $d\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right) \forall n \in \left[ 1 : N-1 \right] $ -Output $\boldsymbol{\tilde{x}}_n$ with lowest $d\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right)$ $\tikzbracemark{ml-end}$ - \end{algorithm} + If $\boldsymbol{\hat{x}}$ passes the parity check condition, break the loop. +end for +Output $\boldsymbol{\hat{x}}$ + \end{algorithm} + + \caption{Proximal decoding algorithm \cite{proximal_paper}} + \end{figure} - \AddNote{prox-start}{prox-end}{prox-start}{\small Proximal\\Decoding} - \AddNote{ml-start}{ml-end}{ml-start}{\small ML-on-List} \end{minipage}% - \begin{minipage}{.6\textwidth} + \hfill\begin{minipage}[t]{.48\textwidth} \centering - \begin{figure}[H] - \centering - \vspace*{-12mm} - - \begin{tikzpicture}[scale=0.42] - \begin{axis}[ - grid=both, - xlabel={SNR}, ylabel={BER}, - ymode=log, - legend style={at={(0.05,0.05)},anchor=south west}, - ymax=1.5, ymin=3e-8, - ] + \begin{figure} + \centering - \addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}] - {res/2d_ber_fer_dfr_20433484_proximal.csv}; - \addlegendentry{proximal} - \addplot table [x=SNR, y=BER, col sep=comma, discard if not={gamma}{0.05}] - {res/2d_ber_fer_dfr_20433484_hybrid.csv}; - \addlegendentry{hybrid prox. \& ML} - \end{axis} - \end{tikzpicture} - \begin{tikzpicture}[scale=0.42] - \begin{axis}[ - grid=both, - xlabel={SNR}, ylabel={FER}, - ymode=log, - legend style={at={(0.05,0.05)},anchor=south west}, - ymax=1.5, ymin=3e-8, - ] + \begin{algorithm}[caption={}, label={}, + basicstyle=\fontsize{7.5}{9.5}\selectfont + ] +$\boldsymbol{s}^{\left( 0 \right)} = \boldsymbol{0}$ +for $k=0$ to $K-1$ do + $\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{s}^{(k)}; \boldsymbol{y} \right) $ + Compute $\nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right)$ + $\boldsymbol{s}^{\left( k+1 \right)} = \boldsymbol{r}^{(k+1)} - \gamma \nabla h\left( \boldsymbol{r}^{\left( k+1 \right) } \right) $ + $\boldsymbol{\hat{x}} = \text{sign}\left( \boldsymbol{s}^{\left( k+1 \right) } \right) $ + $\textcolor{KITblue}{\text{If }\boldsymbol{\hat{x}}\text{ passes the parity check condition, output }\boldsymbol{\hat{x}}}$ +end for +$\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$ +$\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{x}}_n\text{ of }\boldsymbol{\hat{x}}\text{ with the }N\text{ bits modified.}}$ +$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right) \forall n \in \left[ 1 : N-1 \right]}$ +$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{x}}_n\text{ with lowest }d_H\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right)}$ + \end{algorithm} - \addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] - {res/2d_ber_fer_dfr_20433484_proximal.csv}; - \addlegendentry{proximal} - \addplot table [x=SNR, y=FER, col sep=comma, discard if not={gamma}{0.05}] - {res/2d_ber_fer_dfr_20433484_hybrid.csv}; - \addlegendentry{hybrid prox. \& ML} - \end{axis} - \end{tikzpicture}\\ - \begin{tikzpicture}[scale=0.42] - \begin{axis}[ - grid=both, - xlabel={SNR}, ylabel={Decoding Failure Rate}, - ymode=log, - legend style={at={(0.05,0.05)},anchor=south west}, - ymax=1.5, ymin=3e-8, - ] - - \addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}] - {res/2d_ber_fer_dfr_20433484_proximal.csv}; - \addlegendentry{proximal} - \addplot table [x=SNR, y=DFR, col sep=comma, discard if not={gamma}{0.05}] - {res/2d_ber_fer_dfr_20433484_hybrid.csv}; - \addlegendentry{hybrid prox. \& ML} - \end{axis} - \end{tikzpicture} - - \caption{Simulation results for $\gamma = 0.05, \omega = 0.05, K=200, N=12$} - \label{fig:simulation_results_hybrid} + \caption{Hybrid proximal \& ML decoding algorithm} \end{figure} \end{minipage} \end{frame} @@ -376,7 +667,7 @@ end for Output $\boldsymbol{\hat{x}}$ \end{algorithm} - \caption{Proximal decoding algorithm} + \caption{Proximal decoding algorithm \cite{proximal_paper}} \end{figure} \end{minipage}% @@ -398,8 +689,8 @@ for $k=0$ to $K-1$ do end for $\textcolor{KITblue}{\text{Find }N\text{ most probably wrong bits.}}$ $\textcolor{KITblue}{\text{Generate variations } \boldsymbol{\tilde{x}}_n\text{ of }\boldsymbol{\hat{x}}\text{ with the }N\text{ bits modified.}}$ -$\textcolor{KITblue}{\text{Compute }d_H\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right) \forall n \in \left[ 1 : N-1 \right]}$ -$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{x}}_n\text{ with lowest }d_H\left( \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \right)}$ +$\textcolor{KITblue}{\text{Compute }\langle \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \rangle \forall n \in \left[ 1 : N-1 \right]}$ +$\textcolor{KITblue}{\text{Output }\boldsymbol{\tilde{x}}_n\text{ with lowest }\langle \boldsymbol{ \tilde{x}}_n, \boldsymbol{\hat{x}} \rangle}$ \end{algorithm} \caption{Hybrid proximal \& ML decoding algorithm}