\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.
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.

\section{Hamming Condition}
theorems: Hamming condition, Varsham-Gilbert
Shannon-Hartley
Convolutional Code
Reed-Solomon
CRC
\printbibliography
\end{document}
