\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 reasonable decoding performance, they are suboptimal in most cases and exhibit an \textit{error floor} for high \acp{SNR}, making them unsuitable for applications with extreme reliability requirements. Optimization based decoding algorithms are an entirely different way of approaching the decoding problem. The initial introduction of optimization techniques as a way of decoding binary linear codes was conducted in Feldman's 2003 Ph.D. thesis and 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}, 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 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 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.