\chapter{Introduction}%
\label{chapter:introduction}

Channel coding using binary linear codes is a way of enhancing the reliability
of data by detecting and correcting any errors that may occur during
its transmission or storage.
One class of binary linear codes, \ac{LDPC} codes, has become especially
popular due to being able to reach arbitrarily small probabilities of error
at code rates up to the capacity of the channel \cite[Sec. II.B.]{mackay_rediscovery},
while retaining a structure that allows for very efficient decoding.
While the established decoders for \ac{LDPC} codes, such as \ac{BP} and the
\textit{min-sum algorithm}, offer good decoding performance, they are suboptimal
in most cases and exhibit an \textit{error floor} for high \acp{SNR}
\cite[Sec. 15.3]{ryan_lin_2009}, making them unsuitable for applications
with extreme reliability requirements.

Optimization based decoding algorithms are an entirely different way of approaching
the decoding problem.
The first introduction of optimization techniques as a way of decoding binary
linear codes was conducted in Feldman's 2003 Ph.D. thesis and a subsequent paper,
establishing the field of \ac{LP} decoding \cite{feldman_thesis}, \cite{feldman_paper}.
There, the \ac{ML} decoding problem is approximated by a \textit{linear program}, i.e.,
a linear, convex optimization problem, which can subsequently be solved using
several different algorithms \cite{alp}, \cite{interior_point},
\cite{original_admm}, \cite{pdd}.
More recently, novel approaches such as \textit{proximal decoding} have been
introduced. Proximal decoding is based on a non-convex optimization formulation
of the \ac{MAP} decoding problem \cite{proximal_paper}.

The motivation behind applying optimization methods to channel decoding is to
utilize existing techniques in the broad field of optimization theory, as well
as to find new decoding methods not suffering from the same disadvantages as
existing message passing based approaches or exhibiting other desirable properties.
\Ac{LP} decoding, for example, comes with strong theoretical guarantees
allowing it to be used as a way of closely approximating \ac{ML} decoding
\cite[Sec. I]{original_admm},
and proximal decoding is applicable to non-trivial channel models such
as \ac{LDPC}-coded massive \ac{MIMO} channels \cite{proximal_paper}.

This thesis aims to further the analysis of optimization based decoding
algorithms as well as to verify and complement the considerations present in
the existing literature.
Specifically, the proximal decoding algorithm and \ac{LP} decoding using
the \ac{ADMM} \cite{original_admm} are explored within the context of
\ac{BPSK} modulated \ac{AWGN} channels.
Implementations of both decoding methods are produced, and based on simulation
results from those implementations the algorithms are examined and compared.
Approaches to determine the optimal value of each parameter are derived and
the computational and decoding performance of the algorithms is examined.
An improvement on proximal decoding is suggested, achieving up to 1 dB of gain,
depending on the parameters chosen and the code considered.
