From d4e531d47ca3cc896642fb80fec78cf03780ec5d Mon Sep 17 00:00:00 2001 From: Andreas Tsouchlos Date: Wed, 25 Jan 2023 23:10:32 +0100 Subject: [PATCH] Second round of corrections --- latex/presentations/midterm/presentation.tex | 5 ++ .../midterm/sections/decoding_algorithms.tex | 50 +++++++------- .../midterm/sections/examination_results.tex | 68 ++++++++++--------- .../sections/theoretical_background.tex | 10 ++- 4 files changed, 73 insertions(+), 60 deletions(-) diff --git a/latex/presentations/midterm/presentation.tex b/latex/presentations/midterm/presentation.tex index 9291535..8449d46 100644 --- a/latex/presentations/midterm/presentation.tex +++ b/latex/presentations/midterm/presentation.tex @@ -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} diff --git a/latex/presentations/midterm/sections/decoding_algorithms.tex b/latex/presentations/midterm/sections/decoding_algorithms.tex index 2d3e823..c16cce3 100644 --- a/latex/presentations/midterm/sections/decoding_algorithms.tex +++ b/latex/presentations/midterm/sections/decoding_algorithms.tex @@ -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) $ diff --git a/latex/presentations/midterm/sections/examination_results.tex b/latex/presentations/midterm/sections/examination_results.tex index bf10dcc..9890a0c 100644 --- a/latex/presentations/midterm/sections/examination_results.tex +++ b/latex/presentations/midterm/sections/examination_results.tex @@ -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) $ diff --git a/latex/presentations/midterm/sections/theoretical_background.tex b/latex/presentations/midterm/sections/theoretical_background.tex index 3b9c8e7..7e6eda5 100644 --- a/latex/presentations/midterm/sections/theoretical_background.tex +++ b/latex/presentations/midterm/sections/theoretical_background.tex @@ -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}