Second round of corrections

This commit is contained in:
Andreas Tsouchlos 2023-01-25 23:10:32 +01:00
parent f433607ce6
commit d4e531d47c
4 changed files with 73 additions and 60 deletions

View File

@ -26,6 +26,11 @@
\usetikzlibrary{external}
\tikzexternalize[prefix=build/]
\DeclareMathOperator*{\argmax}{arg\,max}
\DeclareMathOperator*{\argmin}{arg\,min}
\usepackage{csquotes}
\usepackage[citestyle=numeric, style=alphabetic, backend=biber,
doi=false,url=false,isbn=false]{biblatex}

View File

@ -7,11 +7,27 @@
\label{sub:Alg Proximal Decoding}
\begin{frame}[t]
\frametitle{Proximal Decoding: General Idea}
\todo{How do I properly cite \cite{proximal_paper} here?}
\frametitle{Proximal Decoding: General Idea \cite{proximal_paper}}
\begin{itemize}
\item MAP rule:
\begin{align*}
\hat{\boldsymbol{x}}
= \argmax_{x\in\mathbb{R}}\left[
f_{\boldsymbol{Y}}\left( \boldsymbol{y} | \boldsymbol{x} \right)
f_{\boldsymbol{X}}\left( \boldsymbol{x} \right) \right]
= \argmax_{x\in\mathbb{R}}\left[
e^{-L\left( \boldsymbol{y} | \boldsymbol{x}\right)}
f_{\boldsymbol{X}}\left( \boldsymbol{x} \right) \right]
\end{align*}
\item Approximation of prior PDF:
\begin{align*}
f_{\boldsymbol{X}}\left( \boldsymbol{x} \right)
= \frac{1}{\left| \mathcal{C}\left( \boldsymbol{H} \right) \right| }
\sum_{c \in \mathcal{C}\left( \boldsymbol{H} \right) }
\delta\left( \boldsymbol{x} - \boldsymbol{c} \right)
\approx \frac{1}{Z} e^{-\gamma h\left( x \right) }
\end{align*}
\item Code constraint polynomial:
\begin{align*}
h\left( \boldsymbol{x} \right) =
@ -25,24 +41,6 @@
\right\},
i \in \mathcal{I}
\end{align*}
\item Approximation of prior PDF:
\begin{align*}
f_{\boldsymbol{X}}\left( \boldsymbol{x} \right)
= \frac{1}{\left| \mathcal{C}\left( \boldsymbol{H} \right) \right| }
\sum_{c \in \mathcal{C}\left( \boldsymbol{H} \right) }
\delta\left( \boldsymbol{x} - \boldsymbol{c} \right)
\approx \frac{1}{Z} e^{-\gamma h\left( x \right) }
\end{align*}
\item MAP rule:
\begin{align*}
\hat{\boldsymbol{x}}
= arg\max_{x\in\mathbb{R}}\left[
f_{\boldsymbol{Y}}\left( \boldsymbol{y} | \boldsymbol{x} \right)
f_{\boldsymbol{X}}\left( \boldsymbol{x} \right) \right]
= arg\max_{x\in\mathbb{R}}\left[
e^{-L\left( \boldsymbol{y} | \boldsymbol{x}\right)}
e^{-\gamma h\left( \boldsymbol{x} \right) } \right]
\end{align*}
\end{itemize}
\end{frame}
@ -65,13 +63,15 @@
\item Code proximal operator \cite{proximal_algorithms}:
\begin{align*}
\text{prox}_{\gamma h} \left( \boldsymbol{x} \right) &\equiv
arg\min_{\boldsymbol{z}\in\mathbb{R}} \left(
\argmin_{\boldsymbol{z}\in\mathbb{R}} \left(
\gamma h\left( \boldsymbol{z} \right) + \frac{1}{2} \lVert \boldsymbol{z}
- \boldsymbol{x} \rVert^2 \right)\\
&\approx \boldsymbol{x} - \gamma \nabla h\left( \boldsymbol{x} \right),
\hspace{5mm} \gamma \text{ small}
\end{align*}
\item Iterative decoding process:
\item Iterative decoding process\footnote{In these two equations the parameter $k$
describes the index of the current iteration, not the dimension of the data word}
:
\begin{align*}
\boldsymbol{r}^{\left( k+1 \right) } &= \boldsymbol{s}^{\left( k \right) }
- \omega \nabla L\left( \boldsymbol{y} | \boldsymbol{s}^{\left( k \right) }
@ -89,14 +89,14 @@
\begin{frame}[t, fragile]
\frametitle{Proximal Decoding: Algorithm}
\begin{itemize}
\item Resulting terative decoding algorithm \cite{proximal_paper}:
\item Resulting iterative decoding algorithm \cite{proximal_paper}:
\end{itemize}
\vspace{2mm}
\begin{algorithm}[caption={}, label={}]
$\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) $
$\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)} \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) $

View File

@ -190,7 +190,7 @@
\addlegendentry{$\gamma = 0.15$}
\end{axis}
\end{tikzpicture}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$\\ \cite[\text{96.3.965}]{mackay_enc}}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=96, k=48$ \cite[\text{96.3.965}]{mackay_enc}}
\end{subfigure}%
\begin{subfigure}[c]{0.33\textwidth}
\centering
@ -223,7 +223,7 @@
\addlegendentry{$\gamma = 0.15$}
\end{axis}
\end{tikzpicture}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$\\ \cite[\text{204.33.484}]{mackay_enc}}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=204, k=102$ \cite[\text{204.33.484}]{mackay_enc}}
\end{subfigure}%
\begin{subfigure}[c]{0.33\textwidth}
\centering
@ -256,7 +256,7 @@
\addlegendentry{$\gamma = 0.15$}
\end{axis}
\end{tikzpicture}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$\\ \cite[\text{408.33.844}]{mackay_enc}}
\caption{$\left( 3, 6 \right)$-regular LDPC code with $n=408, k=204$ \cite[\text{408.33.844}]{mackay_enc}}
\end{subfigure}
\begin{subfigure}[c]{0.33\textwidth}
\centering
@ -322,7 +322,7 @@
\addlegendentry{$\gamma = 0.15$}
\end{axis}
\end{tikzpicture}
\caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$\\ \cite[\text{204.55.187}]{mackay_enc}}
\caption{$\left( 5, 10 \right)$-regular LDPC code with $n=204, k=102$ \cite[\text{204.55.187}]{mackay_enc}}
\end{subfigure}%
\begin{subfigure}[c]{0.33\textwidth}
\centering
@ -355,7 +355,7 @@
\addlegendentry{$\gamma = 0.15$}
\end{axis}
\end{tikzpicture}
\caption{LDPC code (Progressive Edge Growth Construction) with $n=504, k=252$\\ \cite[\text{PEGReg252x504}]{mackay_enc}}
\caption{LDPC code (Progressive Edge Growth Construction) with $n=504, k=252$ \cite[\text{PEGReg252x504}]{mackay_enc}}
\end{subfigure}%
\end{figure}
\end{frame}
@ -384,7 +384,7 @@
]
$\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) $
$\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)}\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) $
@ -473,7 +473,8 @@ Output $\boldsymbol{\hat{x}}$
\setcounter{footnote}{0}
\begin{itemize}
\item $\nabla L$ and $\nabla h$ generally end up in an equilibrium
\item $\nabla L \left( \boldsymbol{y} \mid \boldsymbol{x} \right) $
and $\nabla h \left( \boldsymbol{x} \right) $ generally end up in an equilibrium
\end{itemize}
\todo{Fix $K=100\ne 200$}
@ -485,7 +486,7 @@ Output $\boldsymbol{\hat{x}}$
\begin{tikzpicture}[scale = 0.35]
\begin{axis}[
grid=both,
xlabel={$k$},
xlabel={Iterations},
width=8cm,
height=3cm,
scale only axis,
@ -500,14 +501,14 @@ Output $\boldsymbol{\hat{x}}$
table [col sep=comma, x=k, y=grad_h_1]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\nabla L$}
\addlegendentry{$\nabla h$}
\addlegendentry{$\nabla L \left[ 2 \right] $}
\addlegendentry{$\nabla h \left[ 2 \right] $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.35]
\begin{axis}[
grid=both,
xlabel={$k$},
xlabel={Iterations},
width=8cm,
height=3cm,
scale only axis,
@ -522,14 +523,14 @@ Output $\boldsymbol{\hat{x}}$
table [col sep=comma, x=k, y=grad_h_2]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\nabla L$}
\addlegendentry{$\nabla h$}
\addlegendentry{$\nabla L \left[ 3 \right] $}
\addlegendentry{$\nabla h \left[ 3 \right] $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.35]
\begin{axis}[
grid=both,
xlabel={$k$},
xlabel={Iterations},
width=8cm,
height=3cm,
scale only axis,
@ -544,8 +545,8 @@ Output $\boldsymbol{\hat{x}}$
table [col sep=comma, x=k, y=grad_h_3]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\nabla L$}
\addlegendentry{$\nabla h$}
\addlegendentry{$\nabla L \left[ 4 \right] $}
\addlegendentry{$\nabla h \left[ 4 \right] $}
\end{axis}
\end{tikzpicture}
\end{minipage}%
@ -555,7 +556,7 @@ Output $\boldsymbol{\hat{x}}$
\begin{tikzpicture}[scale = 0.85]
\begin{axis}[
grid=both,
xlabel={$k$},
xlabel={Iterations},
width=8cm,
height=3cm,
scale only axis,
@ -570,8 +571,8 @@ Output $\boldsymbol{\hat{x}}$
table [col sep=comma, x=k, y=grad_h_0]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\nabla L$}
\addlegendentry{$\nabla h$}
\addlegendentry{$\nabla L \left[ 1 \right] $}
\addlegendentry{$\nabla h \left[ 1 \right] $}
\end{axis}
\end{tikzpicture}
\end{minipage}%
@ -581,7 +582,7 @@ Output $\boldsymbol{\hat{x}}$
\begin{tikzpicture}[scale = 0.35]
\begin{axis}[
grid=both,
xlabel={$k$},
xlabel={Iterations},
width=8cm,
height=3cm,
scale only axis,
@ -596,14 +597,14 @@ Output $\boldsymbol{\hat{x}}$
table [col sep=comma, x=k, y=grad_h_4]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\nabla L$}
\addlegendentry{$\nabla h$}
\addlegendentry{$\nabla L \left[ 5 \right] $}
\addlegendentry{$\nabla h \left[ 5 \right] $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.35]
\begin{axis}[
grid=both,
xlabel={$k$},
xlabel={Iterations},
width=8cm,
height=3cm,
scale only axis,
@ -618,14 +619,14 @@ Output $\boldsymbol{\hat{x}}$
table [col sep=comma, x=k, y=grad_h_5]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\nabla L$}
\addlegendentry{$\nabla h$}
\addlegendentry{$\nabla L \left[ 6 \right] $}
\addlegendentry{$\nabla h \left[ 6 \right] $}
\end{axis}
\end{tikzpicture}\\
\begin{tikzpicture}[scale = 0.35]
\begin{axis}[
grid=both,
xlabel={$k$},
xlabel={Iterations},
width=8cm,
height=3cm,
scale only axis,
@ -640,13 +641,14 @@ Output $\boldsymbol{\hat{x}}$
table [col sep=comma, x=k, y=grad_h_6]
{res/proximal/comp_bch_7_4_combined.csv};
\addlegendentry{est}
\addlegendentry{$\nabla L$}
\addlegendentry{$\nabla h$}
\addlegendentry{$\nabla L \left[ 7 \right] $}
\addlegendentry{$\nabla h \left[ 7 \right] $}
\end{axis}
\end{tikzpicture}
\end{minipage}
\caption{Internal variables of proximal decoder as a function of $k$ ($n=7$)\footnotemark}
\caption{Internal variables of proximal decoder
as a function of the iteration ($n=7$)\footnotemark}
\footnotetext{A single decoding is shown, using the BCH$\left( 7,4 \right) $ code;
$\gamma = 0.05, \omega = 0.05, E_b / N_0 = \SI{5}{dB}$}
@ -691,8 +693,8 @@ Output $\boldsymbol{\hat{x}}$
table [col sep=comma, x=k, y=grad_h_0]
{res/proximal/extreme_components_20433484_combined.csv};
\addlegendentry{est}
\addlegendentry{$\nabla L$}
\addlegendentry{$\nabla h$}
\addlegendentry{$\nabla L \left[ 1 \right] $}
\addlegendentry{$\nabla h \left[ 1 \right] $}
\end{axis}
\end{tikzpicture}
@ -865,7 +867,7 @@ Output $\boldsymbol{\hat{x}}$
]
$\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) $
$\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)} \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) $
@ -888,7 +890,7 @@ Output $\boldsymbol{\hat{x}}$
]
$\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) $
$\boldsymbol{r}^{\left( k+1 \right)} = \boldsymbol{s}^{(k)} - \omega \nabla L \left( \boldsymbol{y} \mid \boldsymbol{s}^{(k)}\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) $

View File

@ -70,15 +70,21 @@
\node[mapper, right=0.5cm of in] (bpskmap) {Mapper};
\node[right=1.5cm of bpskmap,
draw, circle, inner sep=0pt, minimum size=0.5cm] (add) {$+$};
\node[right=0.5cm of add] (out) {$\boldsymbol{y}$};
\node[below=0.5cm of add] (noise) {$\boldsymbol{z}$};
\node[mapper, right=1.5cm of add] (decoder) {Decoder};
\node[mapper, right=1.5cm of decoder] (demapper) {Demapper};
\node[right=0.5cm of demapper] (out) {$\boldsymbol{\hat{c}}$};
\node at ($(bpskmap.east)!0.5!(add.west) + (0,0.3cm)$) {$\boldsymbol{x}$};
\node at ($(add.east)!0.5!(decoder.west) + (0,0.3cm)$) {$\boldsymbol{y}$};
\node at ($(decoder.east)!0.5!(demapper.west) + (0,0.3cm)$) {$\boldsymbol{\hat{x}}$};
\draw[->] (in) -- (bpskmap);
\draw[->] (bpskmap) -- (add);
\draw[->] (add) -- (out);
\draw[->] (add) -- (decoder);
\draw[->] (noise) -- (add);
\draw[->] (decoder) -- (demapper);
\draw[->] (demapper) -- (out);
\end{tikzpicture}
\end{figure}