Added first draft of 'channel coding with LPDC codes' section
This commit is contained in:
parent
9edbbda163
commit
c01958fc0b
@ -44,34 +44,6 @@ Lastly, the optimization methods utilized are described.
|
|||||||
|
|
||||||
\tikzstyle{box} = [rectangle, minimum width=1.5cm, minimum height=0.7cm,
|
\tikzstyle{box} = [rectangle, minimum width=1.5cm, minimum height=0.7cm,
|
||||||
rounded corners=0.1cm, text centered, draw=black, fill=KITgreen!80]
|
rounded corners=0.1cm, text centered, draw=black, fill=KITgreen!80]
|
||||||
\begin{figure}[htpb]
|
|
||||||
\centering
|
|
||||||
|
|
||||||
\begin{tikzpicture}[scale=1, transform shape]
|
|
||||||
\node (in) {$\boldsymbol{c}$};
|
|
||||||
\node[box, right=0.5cm of in] (bpskmap) {Mapper};
|
|
||||||
\node[right=1.5cm of bpskmap,
|
|
||||||
draw, circle, inner sep=0pt, minimum size=0.5cm] (add) {$+$};
|
|
||||||
\node[below=0.5cm of add] (noise) {$\boldsymbol{z}$};
|
|
||||||
\node[box, right=1.5cm of add] (decoder) {Decoder};
|
|
||||||
\node[box, 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) -- (decoder);
|
|
||||||
\draw[->] (noise) -- (add);
|
|
||||||
\draw[->] (decoder) -- (demapper);
|
|
||||||
\draw[->] (demapper) -- (out);
|
|
||||||
\end{tikzpicture}
|
|
||||||
|
|
||||||
\caption{Overview of notation}
|
|
||||||
\label{fig:notation}
|
|
||||||
\end{figure}
|
|
||||||
|
|
||||||
\todo{Note about $\tilde{\boldsymbol{c}}$ (and maybe $\tilde{\boldsymbol{x}}$?)}
|
\todo{Note about $\tilde{\boldsymbol{c}}$ (and maybe $\tilde{\boldsymbol{x}}$?)}
|
||||||
|
|
||||||
@ -80,11 +52,101 @@ Lastly, the optimization methods utilized are described.
|
|||||||
\section{Channel Coding with LDPC Codes}
|
\section{Channel Coding with LDPC Codes}
|
||||||
\label{sec:theo:Channel Coding with LDPC Codes}
|
\label{sec:theo:Channel Coding with LDPC Codes}
|
||||||
|
|
||||||
\begin{itemize}
|
Channel coding describes the process of adding redundancy to information
|
||||||
\item Introduction
|
transmitted over a channel in order to detect and correct any errors
|
||||||
\item Binary linear codes
|
that may occur during the transmission.
|
||||||
\item \Ac{LDPC} codes (especially $i$, $j$, parity check matrix $\boldsymbol{H}$, $N\left( j \right) $ \& $N\left( i \right) $, etc.)
|
Encoding the information using \textit{binary linear codes} is one way of
|
||||||
\end{itemize}
|
conducting this process, whereby \textit{data words} are mapped onto longer
|
||||||
|
\textit{codewords}, which carry redundant information.
|
||||||
|
It can be shown that as the length of the encoded data words becomes greater,
|
||||||
|
the theoretically achievable error-correcting capabilities of the code become
|
||||||
|
better, asymptotically approaching the capacity of the channel.
|
||||||
|
For this reason, \ac{LDPC} codes have become especially popular, given their
|
||||||
|
low memory requirements even for very large codes.
|
||||||
|
|
||||||
|
The lengths of the data words and codewords are denoted by $k$ and $n$,
|
||||||
|
respectively.
|
||||||
|
The set of codewords $\mathcal{C} \subset \mathbb{F}_2^n$ of a binary
|
||||||
|
linear code can be represented using the \textit{parity-check matrix}
|
||||||
|
$\boldsymbol{H} \in \mathbb{F}_2^{m\times n}$, where $m$ represents
|
||||||
|
the number of parity-checks:%
|
||||||
|
%
|
||||||
|
\begin{align*}
|
||||||
|
\mathcal{C} := \left\{ \boldsymbol{c} \in \mathbb{F}_2^n :
|
||||||
|
\boldsymbol{H}\boldsymbol{c}^\text{T} = \boldsymbol{0} \right\}
|
||||||
|
.\end{align*}
|
||||||
|
%
|
||||||
|
A data word $\boldsymbol{u} \in \mathbb{F}_2^k$ can be mapped onto a codword
|
||||||
|
$\boldsymbol{c} \in \mathbb{F}_2^n$ using the \textit{generator matrix}
|
||||||
|
$\boldsymbol{G} \in \mathbb{F}_2^{k\times n}$:%
|
||||||
|
%
|
||||||
|
\begin{align*}
|
||||||
|
\boldsymbol{c} = \boldsymbol{u}\boldsymbol{G}
|
||||||
|
.\end{align*}
|
||||||
|
%
|
||||||
|
|
||||||
|
After obtaining a codeword from a data word, it is transmitted over a channel,
|
||||||
|
as shown in figure \ref{fig:theo:channel_overview}.
|
||||||
|
Using the selected modulation scheme, $\boldsymbol{c}$ is mapped onto
|
||||||
|
$\boldsymbol{x}$.
|
||||||
|
The channel distorts $\boldsymbol{x}$ into $\boldsymbol{y}$, which is what
|
||||||
|
reaches the receiver.
|
||||||
|
The received signal $\boldsymbol{y}$ is then decoded at the receiver to obtain
|
||||||
|
an estimate of the transmitted codeword, $\hat{\boldsymbol{c}}$.
|
||||||
|
Finally, the encoding procedure is reversed and an estimate for the originally
|
||||||
|
sent data word is obtained.
|
||||||
|
|
||||||
|
\begin{figure}[htpb]
|
||||||
|
\centering
|
||||||
|
|
||||||
|
\begin{tikzpicture}[scale=1, transform shape]
|
||||||
|
\node (c) {$\boldsymbol{c}$};
|
||||||
|
\node[box, right=0.5cm of c] (bpskmap) {Mapper};
|
||||||
|
\node[right=1.5cm of bpskmap,
|
||||||
|
draw, circle, inner sep=0pt, minimum size=0.5cm] (add) {$+$};
|
||||||
|
\node[box, right=1.5cm of add] (decoder) {Decoder};
|
||||||
|
\node[box, right=1.5cm of decoder] (demapper) {Demapper};
|
||||||
|
\node[right=0.5cm of demapper] (out) {$\boldsymbol{\hat{c}}$};
|
||||||
|
|
||||||
|
\node (x) at ($(bpskmap.east)!0.5!(add.west) + (0,0.3cm)$) {$\boldsymbol{x}$};
|
||||||
|
\node (y) at ($(add.east)!0.5!(decoder.west) + (0,0.3cm)$) {$\boldsymbol{y}$};
|
||||||
|
\node (x_hat) at ($(decoder.east)!0.5!(demapper.west) + (0,0.3cm)$)
|
||||||
|
{$\boldsymbol{\hat{x}}$};
|
||||||
|
\node[below=0.5cm of add] (z) {$\boldsymbol{z}$};
|
||||||
|
|
||||||
|
\draw[->] (c) -- (bpskmap);
|
||||||
|
\draw[->] (bpskmap) -- (add);
|
||||||
|
\draw[->] (add) -- (decoder);
|
||||||
|
\draw[->] (z) -- (add);
|
||||||
|
\draw[->] (decoder) -- (demapper);
|
||||||
|
\draw[->] (demapper) -- (out);
|
||||||
|
|
||||||
|
\coordinate (top_left) at ($(x.north west) + (-0.1cm, 0.1cm)$);
|
||||||
|
\coordinate (top_right) at ($(y.north east) + (+0.1cm, 0.1cm)$);
|
||||||
|
\coordinate (bottom_center) at ($(z.south) + (0cm, -0.1cm)$);
|
||||||
|
\draw[dashed] (top_left) -- (top_right) |- (bottom_center) -| cycle;
|
||||||
|
\node[below=0.25cm of z] (text) {Channel};
|
||||||
|
\end{tikzpicture}
|
||||||
|
|
||||||
|
\caption{Overview of codeword transmission}
|
||||||
|
\label{fig:theo:channel_overview}
|
||||||
|
\end{figure}
|
||||||
|
|
||||||
|
The decoding process itself is generally based either on the \ac{MAP} or the \ac{ML}
|
||||||
|
criterion:%
|
||||||
|
%
|
||||||
|
\begin{align*}
|
||||||
|
\hat{\boldsymbol{c}}_{\text{\ac{MAP}}} &= \argmax_{\boldsymbol{c} \in \mathcal{C}}
|
||||||
|
p_{\boldsymbol{C} \mid \boldsymbol{Y}} \left(\boldsymbol{c} \mid \boldsymbol{y}
|
||||||
|
\right)
|
||||||
|
\hat{\boldsymbol{c}}_{\text{\ac{ML}}} &= \argmax_{\boldsymbol{c} \in \mathcal{C}}
|
||||||
|
f_{\boldsymbol{Y} \mid \boldsymbol{C}} \left( \boldsymbol{y} \mid \boldsymbol{c}
|
||||||
|
\right)
|
||||||
|
.\end{align*}%
|
||||||
|
%
|
||||||
|
The methods examined in this work are all based on \textit{soft-decision} decoding,
|
||||||
|
i.e., $\boldsymbol{y}$ is considered to be in $\mathbb{R}^n$ and no preliminary decision
|
||||||
|
is made by a demodulator.
|
||||||
|
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
@ -94,6 +156,7 @@ Lastly, the optimization methods utilized are described.
|
|||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Introduction to message passing
|
\item Introduction to message passing
|
||||||
\item Overview of \ac{BP} algorithm
|
\item Overview of \ac{BP} algorithm
|
||||||
|
\item \Ac{LDPC} codes (especially $i$, $j$, parity check matrix $\boldsymbol{H}$, $N\left( j \right) $ \& $N\left( i \right) $, etc.)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user