\section{Theoretical Background}% \label{sec:Theoretical Background} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Motivation}% \label{sub:Motivation} \begin{frame}[t] \frametitle{Motivation} \todo{TODO} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{Presumptions}% \label{sub:Presumptions} \begin{frame}[t] \frametitle{Presumptions: Channel \& Modulation} \tikzstyle{mapper} = [rectangle, minimum width=1.5cm, minimum height=0.7cm, rounded corners=0.1cm, text centered, draw=black, fill=KITgreen!80] \begin{figure}[htpb] \centering \begin{tikzpicture}[scale=1, transform shape] \node (in) {$c\left[ k \right] $}; \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) {$y\left[ k \right] $}; \node[below=0.5cm of add] (noise) {$n\left[ k \right] $}; \node at ($(bpskmap.east)!0.5!(add.west) + (0,0.3cm)$) {$x\left[ k \right] $}; \draw[->] (in) -- (bpskmap); \draw[->] (bpskmap) -- (add); \draw[->] (add) -- (out); \draw[->] (noise) -- (add); \end{tikzpicture} \end{figure} \begin{itemize} \item All simulations are performed with BPSK Modulation: \begin{align*} x\left[ k \right] = \left( -1 \right)^{c\left[ k \right] }, \hspace{5mm} \boldsymbol{c} \in \mathbb{F}_2^n, \hspace{2mm} k\in \left\{ 1, \ldots, n \right\} \end{align*} \item The used channel model is AWGN: \begin{align*} \boldsymbol{y} = \boldsymbol{x} + \boldsymbol{n}, \hspace{5mm}\boldsymbol{n}\sim \mathcal{N} \left(0,\frac{1}{2}\left(\frac{k}{n}\frac{E_b}{N_0}\right)^{-1}\right), \hspace{2mm} \boldsymbol{y}, \boldsymbol{n} \in \mathbb{R}^n \end{align*} \item All zeros assumption: \begin{align*} \boldsymbol{c} = 0 \end{align*} \end{itemize} \end{frame} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \subsection{LP Decoding}% \label{sub:LP Decoding} \begin{frame}[t] \frametitle{LP Decoding} \begin{minipage}[c]{0.6\linewidth} \begin{itemize} \item Codeword Polytope: \begin{align*} \text{poly}\left( \mathcal{C} \right) = \left\{ \sum_{\boldsymbol{c}\in\mathcal{C}}\lambda_{\boldsymbol{c}} \boldsymbol{c} : \lambda_{\boldsymbol{c}} \ge 0, \sum_{\boldsymbol{c}\in\mathcal{C}}\lambda_{\boldsymbol{c}} = 1 \right\}, \hspace{5mm} \lambda_{\boldsymbol{c}} \in \mathbb{R} \end{align*} \item Cost Function: \begin{align*} \sum_{i=1}^{n} \gamma_i c_i, \hspace{5mm}\gamma_i = \log\left( \frac{P\left( Y=y_i | C=0 \right) }{P\left( Y=y_i | C=1 \right) } \right) \end{align*} \item LP Formulation of ML Decoding: \begin{align*} &\text{minimize } \sum_{i=1}^{n} \gamma_i f_i \\ &\text{subject to } \boldsymbol{f}\in\text{poly}\left( \mathcal{C} \right) \end{align*} \end{itemize} \end{minipage}% \hfill% \begin{minipage}[c]{0.4\linewidth} \begin{figure}[H] \centering \tikzstyle{codeword} = [color=KITblue, fill=KITblue, draw, circle, inner sep=0pt, minimum size=4pt] \tdplotsetmaincoords{60}{245} \begin{tikzpicture}[scale=1, transform shape, tdplot_main_coords] % Cube \draw[dashed] (0, 0, 0) -- (2, 0, 0); \draw[dashed] (2, 0, 0) -- (2, 0, 2); \draw[] (2, 0, 2) -- (0, 0, 2); \draw[] (0, 0, 2) -- (0, 0, 0); \draw[] (0, 2, 0) -- (2, 2, 0); \draw[] (2, 2, 0) -- (2, 2, 2); \draw[] (2, 2, 2) -- (0, 2, 2); \draw[] (0, 2, 2) -- (0, 2, 0); \draw[] (0, 0, 0) -- (0, 2, 0); \draw[dashed] (2, 0, 0) -- (2, 2, 0); \draw[] (2, 0, 2) -- (2, 2, 2); \draw[] (0, 0, 2) -- (0, 2, 2); % Codeword Polytope \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 0, 2); \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 2, 0); \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (0, 2, 2); \draw[line width=1pt, color=KITblue] (2, 0, 2) -- (2, 2, 0); \draw[line width=1pt, color=KITblue] (2, 0, 2) -- (0, 2, 2); \draw[line width=1pt, color=KITblue] (0, 2, 2) -- (2, 2, 0); % Polytope Annotations \node[codeword] (c000) at (0, 0, 0) {};% {$\left( 0, 0, 0 \right) $}; \node[codeword] (c101) at (2, 0, 2) {};% {$\left( 1, 0, 1 \right) $}; \node[codeword] (c110) at (2, 2, 0) {};% {$\left( 1, 1, 0 \right) $}; \node[codeword] (c011) at (0, 2, 2) {};% {$\left( 0, 1, 1 \right) $}; \node[color=KITblue, right=0cm of c000] {$\left( 0, 0, 0 \right) $}; \node[color=KITblue, above=0cm of c101] {$\left( 1, 0, 1 \right) $}; \node[color=KITblue, left=0cm of c110] {$\left( 1, 1, 0 \right) $}; \node[color=KITblue, left=0cm of c011] {$\left( 0, 1, 1 \right) $}; % f \node[color=KITgreen, fill=KITgreen, draw, circle, inner sep=0pt, minimum size=4pt] (f) at (0.7, 0.7, 1) {}; \node[color=KITgreen, right=0cm of f] {$\boldsymbol{f}$}; \end{tikzpicture} \caption{$\text{poly}\left( \mathcal{C} \right)$ for $n=3$} \end{figure} \end{minipage} \end{frame} \begin{frame}[t] \frametitle{LP Relaxation} \begin{minipage}[c]{0.6\linewidth} \begin{itemize} \item Set of all variable nodes incident to a check node: \begin{align*} N\left( j \right) \equiv \left\{ i | i\in \mathcal{I}, \boldsymbol{H}_{i,j} = 1 \right\}, j \in \mathcal{J} \end{align*} \todo{Is this correct? Shouldn't i and j be switched around?} \item ``Illegal configurations'' \begin{align*} S \subseteq N\left( j \right), \left| S \right| \text{odd} \end{align*} \item Relaxed polytope representation: \begin{align*} \sum_{i\in \left( N\left( j \right) \setminus S\right) } f_i + \sum_{i\in S} \left( 1 - f_i \right) \ge 1 \end{align*} ``$\boldsymbol{f}$ is separated by at least one bitflip from all illegal configurations'' \end{itemize} \end{minipage}% \hfill% \begin{minipage}[c]{0.4\linewidth} \begin{figure}[H] \centering \tikzstyle{codeword} = [color=KITblue, fill=KITblue, draw, circle, inner sep=0pt, minimum size=4pt] \tdplotsetmaincoords{60}{245} \begin{tikzpicture}[scale=1, transform shape, tdplot_main_coords] % Cube \draw[dashed] (0, 0, 0) -- (2, 0, 0); \draw[dashed] (2, 0, 0) -- (2, 0, 2); \draw[] (2, 0, 2) -- (0, 0, 2); \draw[] (0, 0, 2) -- (0, 0, 0); \draw[] (0, 2, 0) -- (2, 2, 0); \draw[] (2, 2, 0) -- (2, 2, 2); \draw[] (2, 2, 2) -- (0, 2, 2); \draw[] (0, 2, 2) -- (0, 2, 0); \draw[] (0, 0, 0) -- (0, 2, 0); \draw[dashed] (2, 0, 0) -- (2, 2, 0); \draw[] (2, 0, 2) -- (2, 2, 2); \draw[] (0, 0, 2) -- (0, 2, 2); % Codeword Polytope \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 0, 2); \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (2, 2, 0); \draw[line width=1pt, color=KITblue] (0, 0, 0) -- (0, 2, 2); \draw[line width=1pt, color=KITblue] (2, 0, 2) -- (2, 2, 0); \draw[line width=1pt, color=KITblue] (2, 0, 2) -- (0, 2, 2); \draw[line width=1pt, color=KITblue] (0, 2, 2) -- (2, 2, 0); % Polytope Annotations \node[codeword, color=KITred] (c111) at (2, 2, 2) {};% {$\left( 0, 0, 0 \right) $}; \node[codeword, color=KITred] (c001) at (0, 0, 2) {};% {$\left( 1, 0, 1 \right) $}; \node[codeword, color=KITred] (c100) at (2, 0, 0) {};% {$\left( 1, 1, 0 \right) $}; \node[codeword, color=KITred] (c010) at (0, 2, 0) {};% {$\left( 0, 1, 1 \right) $}; \node[color=KITred, left=0cm of c111] {$\left( 1, 1, 1 \right) $}; \node[color=KITred, right=0cm of c001] {$\left( 0, 0, 1 \right) $}; \node[color=KITred, right=0.35cm of c100] {$\left( 1, 0, 0 \right) $}; \node[color=KITred, below=0cm of c010] {$\left( 0, 1, 0 \right) $}; \end{tikzpicture} \caption{Relaxed polytope for $n=3$} \end{figure} \end{minipage} \todo{How is this a relaxation and not just an alternative formulation? We have just switched out valid codewords for invalid ones} \todo{Is LP Relaxation relevant as theoretical background?} \end{frame}