\documentclass{article} \usepackage[utf8x]{inputenc} \usepackage[margin=1in]{geometry} % Adjust margins \usepackage{caption} \usepackage{wrapfig} \usepackage{subcaption} \usepackage{parskip} % dont indent after paragraphs, figures \usepackage{xcolor} %\usepackage{csquotes} % Recommended for biblatex \usepackage{tikz} \usepackage{pgfplots} \usetikzlibrary{positioning} \usepackage{float} \usepackage{amsmath} \PassOptionsToPackage{hyphens}{url} \usepackage{hyperref} % allows urls to follow line breaks of text \usepackage{glossaries} \usepackage[style=ieee, backend=biber, maxnames=1, minnames=1]{biblatex} \addbibresource{correction.bib} \newacronym{snr}{SNR}{signal-to-noise ratio} \title{Error Correction Codes} \date{\today} \begin{document} \maketitle \section{Introduction} When messages are transmitted over real media, errors are inevitably introduced. Examples range from mundane sources of errors like scratches on CDs and capacitive coupling of conductors to geomagnetic storms. Though the source of errors are manifold, they are ubiquitous and need to be accounted for if we want any real chance of reading a correct message at the end. On a basic level, we can understand that a channel with a lower \textit{\acrfull{snr}}, i.e. more errors per intended information will require more effort to retain the message information. \[ \mathrm{SNR} = \frac{P_{signal}}{P_{noise}} \] In an analog system, one might attempt to simply increase transmission power $P_{signal}$ as is done for example in professional audio equipment. This would however require the modification of the transmission channel itself, which is not possible for e.g. wireless transmissions. In a digital system, we could understand \acrshort{snr} as the probability of a bit being flipped in transit. For example, if a binary message is sent electronically, with a 1 being represented by a voltage of one volt and a 0 being represented by zero volts, the receiver is likely to observe some intermediate value such as .82 volts. Using a nearest-neighbor criterion, the receiver might consider anything over .5 volts to be the binary signal 1 and anything less than .5 volts to be the binary signal 0. If the noise level is small on average, most transmissions will be interpreted correctly. However, there generally remains a chance that an intended 1 will be received as .47 volts and hence interpreted incorrectly as a 0. \cite{enwiki:signal-to-noise} In this digital system, we can improve communication reliability by using a coding scheme that is tolerant of errors. As a naive approach, we will simply transmit our message multiple times. This is called a \textit{repetition code}, where the receiver will perform a majority vote over the received bits, resulting in the following \begin{figure}[H] \begin{minipage}{.5\textwidth} \begin{tabular}{c|ccc} recieved & 0 & \textcolor{red}{1} & 2 \\ \hline read & 0 & ERR & 1 \\ \end{tabular} \begin{tabular}{c|cccccccc} recieved & 0 & \textcolor{red}{1} & \textcolor{red}{2} & 3 \\ \hline read & 0 & 0 & 1 & 1 \\ \end{tabular} \begin{tabular}{c|cccccccc} recieved & 0 & \textcolor{red}{1} & \textcolor{red}{2} & \textcolor{red}{3} & 4 \\ \hline read & 0 & 0 & ERR & 1 & 1 \\ \end{tabular} \caption{Error detection and detection for 2,3 and 4 bits used per symbol in a repetition code} \label{tab:detection-correction} \end{minipage} \begin{minipage}{.5\textwidth} \begin{tikzpicture} \begin{axis}[ domain=0:1, samples=100, axis lines=middle, xlabel={$p$}, ylabel={Channel Capacity $C$}, xmin=0, xmax=1, ymin=0, ymax=1.1, xtick={0,0.25,0.5,0.75,1}, grid=both, width=8cm, height=6cm, every axis x label/.style={at={(current axis.right of origin)}, anchor=west}, every axis y label/.style={at={(current axis.above origin)}, anchor=south}, ] \addplot[thick, blue] {1-(-x * log2(x) - (1-x) * log2(1-x))}; \end{axis} \end{tikzpicture} \caption{Capacity of a binary channel with crossover probability $p$} \label{fig:graph-errorrate} \end{minipage} \end{figure} \section{Hamming Condition} theorems: Hamming condition, Varsham-Gilbert Shannon-Hartley Convolutional Code Reed-Solomon CRC \printbibliography \end{document}