Compare commits

8 Commits

7 changed files with 113 additions and 38 deletions

View File

@@ -6,6 +6,6 @@ build_folder:
letter.pdf: letter.tex letter.pdf: letter.tex
latexmk -pdf letter.tex latexmk -pdf letter.tex
clean: clean:
rm -rf build rm -rf build

View File

@@ -1,2 +1,28 @@
# ba-letter # ba-letter
Repository containing latex source for the Bachelor's Thesis paper.
After cloning, make sure to initialize the submodules containing the dependencies:
```bash
$ git submodule update --init
```
## Build
### Build on host
```bash
$ make
```
### Build using docker
1. Build docker image
```bash
$ docker build -f dockerfiles/Dockerfile.alpine . -t ba-letter
```
2. Build examples
```bash
$ docker run --rm -v $PWD:$PWD -w $PWD -u `id -u`:`id -g` ba-letter make
```

View File

@@ -0,0 +1,7 @@
FROM alpine:3.19
RUN apk update && apk upgrade
RUN apk add make texlive texmf-dist-pictures
RUN apk add texmf-dist-publishers
RUN apk add texmf-dist-science
RUN apk add texmf-dist-fontsextra

View File

@@ -0,0 +1,9 @@
FROM archlinux:latest
RUN pacman-key --init
RUN pacman-key --populate archlinux
RUN pacman -Sy archlinux-keyring --noconfirm && pacman -Su --noconfirm
RUN pacman -Syu --noconfirm
RUN pacman -S make perl texlive texlive-binextra texlive-pictures --noconfirm
RUN pacman -S texlive-publishers texlive-mathscience texlive-fontsextra --noconfirm

View File

@@ -0,0 +1,7 @@
FROM ubuntu:22.04
ARG DEBIAN_FRONTEND=noninteractive
RUN apt update -y && apt upgrade -y
RUN apt install make texlive latexmk texlive-pictures -y
RUN apt install make texlive-publishers texlive-science texlive-fonts-extra -y

View File

@@ -1,28 +1,19 @@
\documentclass[journal]{IEEEtran} \documentclass[journal]{IEEEtran}
\usepackage{amsmath,amsfonts} \usepackage{amsmath,amsfonts}
\usepackage{float}
\usepackage{algorithmic} \usepackage{algorithmic}
\usepackage{algorithm} \usepackage{algorithm}
\usepackage{array}
\usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}
\usepackage{textcomp}
\usepackage{stfloats}
\usepackage{url}
\usepackage{verbatim}
\usepackage{graphicx}
\usepackage{cite}
\usepackage[dvipsnames]{xcolor}
\usepackage{float}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{spy, arrows.meta,arrows}
\pgfplotsset{compat=newest}
\usepgfplotslibrary{colormaps}
\usepackage{listings}
\usepackage{lipsum}
\usepackage{dsfont}
\usepackage{ulem}
\usepackage{siunitx} \usepackage{siunitx}
\usepackage{dsfont}
\usepackage{tikz}
\usetikzlibrary{spy, arrows.meta,arrows}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\hyphenation{op-tical net-works semi-conduc-tor IEEE-Xplore} \hyphenation{op-tical net-works semi-conduc-tor IEEE-Xplore}
@@ -274,8 +265,8 @@ function \cite{proximal_paper}
The objective function is minimized using the proximal gradient method, which The objective function is minimized using the proximal gradient method, which
amounts to iteratively performing two gradient-descent steps \cite{proximal_paper} amounts to iteratively performing two gradient-descent steps \cite{proximal_paper}
with the given objective function and considering AWGN channels. with the given objective function and considering AWGN channels.
To this end, two helper variables, $\boldsymbol{r}$ and $\boldsymbol{s}$, are introduced, To this end, two helper variables, $\boldsymbol{r}$ and $\boldsymbol{s}$, are
describing the result of each of the two steps: introduced, describing the result of each of the two steps:
% %
\begin{alignat}{3} \begin{alignat}{3}
\boldsymbol{r} &\leftarrow \boldsymbol{s} \boldsymbol{r} &\leftarrow \boldsymbol{s}
@@ -294,7 +285,8 @@ stages of the decoding process.
As the gradient of the code-constraint polynomial can attain very large values As the gradient of the code-constraint polynomial can attain very large values
in some cases, an additional step is introduced to ensure numerical stability: in some cases, an additional step is introduced to ensure numerical stability:
every current estimate $\boldsymbol{s}$ is projected onto $\left[-\eta, \eta\right]^n$ by a projection every current estimate $\boldsymbol{s}$ is projected onto
$\left[-\eta, \eta\right]^n$ by a projection
$\Pi_\eta : \mathbb{R}^n \rightarrow \left[-\eta, \eta\right]^n$, where $\eta$ $\Pi_\eta : \mathbb{R}^n \rightarrow \left[-\eta, \eta\right]^n$, where $\eta$
is a positive constant slightly larger than one, e.g., $\eta = 1.5$. is a positive constant slightly larger than one, e.g., $\eta = 1.5$.
The resulting decoding process as described in \cite{proximal_paper} is The resulting decoding process as described in \cite{proximal_paper} is
@@ -587,7 +579,8 @@ oscillate after a certain number of iterations.%
Considering the magnitude of oscillation of the gradient of the code constraint Considering the magnitude of oscillation of the gradient of the code constraint
polynomial, some interesting behavior may be observed. polynomial, some interesting behavior may be observed.
Figure \ref{fig:p_error} shows the probability that a component of the estimate Figure \ref{fig:p_error} shows the probability that a component of the estimate
is wrong, determined through a Monte Carlo simulation, when the components of $\boldsymbol{c}$ are ordered from smallest to largest oscillation of is wrong, determined through a Monte Carlo simulation, when the components of
$\boldsymbol{c}$ are ordered from smallest to largest oscillation of
$\left(\nabla h\right)_i$. $\left(\nabla h\right)_i$.
The lower the magnitude of the oscillation, the higher the probability that the The lower the magnitude of the oscillation, the higher the probability that the
@@ -675,15 +668,15 @@ generated and an ``ML-in-the-list'' step is performed.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{Simulation Results \& Discussion} \section{Simulation Results \& Discussion}
Figure \ref{fig:results} shows the FER and BER resulting from applying proximal Figure \ref{fig:results} shows the FER and BER resulting from applying
decoding as presented in \cite{proximal_paper} and the improved algorithm proximal decoding as presented in \cite{proximal_paper} and the improved
presented here when applied to a $\left( 3,6 \right)$-regular LDPC code with $n=204$ and algorithm presented here when applied to a $\left( 3,6 \right)$-regular LDPC
$k=102$ \cite[204.33.484]{mackay}. code with $n=204$ and $k=102$ \cite[204.33.484]{mackay}.
The parameters chosen for the simulation are The parameters chosen for the simulation are
$\gamma = 0.05, \omega=0.05, \eta=1.5, K=200$. $\gamma = 0.05, \omega=0.05, \eta=1.5, K=200$.
Again, these parameters were chosen,% Again, these parameters were chosen,%
% %
\begin{figure}[H] \begin{figure}[ht]
\centering \centering
\begin{tikzpicture} \begin{tikzpicture}
@@ -712,7 +705,7 @@ Again, these parameters were chosen,%
legend columns=2, legend columns=2,
legend style={draw=white!15!black, legend style={draw=white!15!black,
legend cell align=left, legend cell align=left,
at={(0.5,-0.5)},anchor=south} at={(0.5,-0.44)},anchor=south}
] ]
\addplot+[ProxPlot, scol1] \addplot+[ProxPlot, scol1]
@@ -781,15 +774,19 @@ Wadayama et al. \cite{proximal_paper} is introduced for AWGN channels.
It relies on the fact that most errors observed in proximal decoding stem It relies on the fact that most errors observed in proximal decoding stem
from only a few components of the estimate being wrong. from only a few components of the estimate being wrong.
These few erroneous components can mostly be corrected by appending an These few erroneous components can mostly be corrected by appending an
additional step to the original algorithm that is only executed if the algorithm has not converged. additional step to the original algorithm that is only executed if the
algorithm has not converged.
A gain of up to $\sim\SI{1}{dB}$ can be observed, depending on the code, A gain of up to $\sim\SI{1}{dB}$ can be observed, depending on the code,
the parameters considered, and the SNR. the parameters considered, and the SNR.
While this work serves to introduce an approach to improve proximal decoding %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
by appending an ``ML-in-the-list'' step, the method used to detect the most \section{Acknowledgements}
probably wrong components of the estimate is based mainly on empirical
observation and a more mathematically rigorous foundation for determining these This work has received funding in part from the European Research Council
components could be beneficial. (ERC) under the European Unions Horizon 2020 research and innovation
programme (grant agreement No. 101001899) and in part from the German Federal
Ministry of Education and Research (BMBF) within the project Open6GHub
(grant agreement 16KISK010).
% %

29
localSettings.yaml Normal file
View File

@@ -0,0 +1,29 @@
indentPreamble: 1
defaultIndent: ' '
maxNumberOfBackUps: 9
modifyLineBreaks:
preserveBlankLines: 1
condenseMultipleBlankLinesInto: 0
oneSentencePerLine:
manipulateSentences: 1
removeSentenceLineBreaks: 0
sentencesFollow:
par: 1
blankLine: 1
fullStop: 1
exclamationMark: 1
questionMark: 1
rightBrace: 1
commentOnPreviousLine: 1
other: 0
sentencesBeginWith:
A-Z: 1
a-z: 0
other: 0
sentencesEndWith:
basicFullStop: 0
betterFullStop: 1
exclamationMark: 1
questionMark: 1
other: '(?:\.\)(?!\h*[a-z]))|(?:(?<!(?:(?:e\.g)|(?:i\.e)|(?:etc))))\.(?!(?:[a-z]|[A-Z]|\-|\,|\.|[0-9]))'