ECC edits
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
\section{Hamming Codes}
|
||||
|
||||
Say we have a 16-bit message, for example \texttt{1011 0101 1101 1001}. \par
|
||||
Say we have an $n$-bit message, for example \texttt{1011 0101 1101 1001}. \par
|
||||
We will number its bits in binary, from left to right:
|
||||
|
||||
|
||||
@ -62,13 +62,14 @@ We will number its bits in binary, from left to right:
|
||||
|
||||
|
||||
\problem{}
|
||||
In this 16-bit message, how many message bits have an index with a one as the last digit? \par
|
||||
If we number the bits of a 16-bit message as described above, \par
|
||||
how many message bits have an index with a one as the last digit? \par
|
||||
(i.e, an index that looks like \texttt{***1})
|
||||
|
||||
\vspace{2cm}
|
||||
|
||||
\problem{}
|
||||
Say we number the bits in a 32-bit message as above. \par
|
||||
Now consider a 32-bit message. \par
|
||||
How many message bits have an index with a one as the $n^\text{th}$ digit? \par
|
||||
|
||||
\vspace{2cm}
|
||||
@ -76,7 +77,10 @@ How many message bits have an index with a one as the $n^\text{th}$ digit? \par
|
||||
|
||||
|
||||
|
||||
We now want a way to detect errors in our 16-bit message. To do this, we'll replace a few data bits with parity bits. This will reduce the amount of information we can send, but will also improve our error-detection capabilities.
|
||||
Now, let's come up with a way to detect errors in our 16-bit message.
|
||||
To do this, we'll replace a few data bits with parity bits.
|
||||
This will reduce the amount of information we can send,
|
||||
but will allow the receiver to detect errors in the received message.
|
||||
|
||||
\vspace{1mm}
|
||||
|
||||
@ -174,7 +178,8 @@ Can this coding scheme correct a single-bit error?
|
||||
\vfill
|
||||
\pagebreak
|
||||
|
||||
We'll now add four more parity bits, in positions \texttt{0001}, \texttt{0010}, \texttt{0100}, and \texttt{1000}:
|
||||
We'll now add four more parity bits, in positions \texttt{0001}, \texttt{0010}, \texttt{0100}, and \texttt{1000}: \par
|
||||
This error-detection scheme is called the \textit{Hamming code}.
|
||||
|
||||
\begin{center}
|
||||
\begin{tikzpicture}[scale = 1.25]
|
||||
@ -246,7 +251,7 @@ Bits \texttt{0100} and \texttt{1000} work in the same way. \par
|
||||
When counting bits in binary numbers, go from right to left.}
|
||||
|
||||
\problem{}
|
||||
Which message bits does each parity bit cover? \par
|
||||
Which message bits does each parity bit \say{cover}? \par
|
||||
In other words, which message bits affect the value of each parity bit? \par
|
||||
|
||||
\vspace{1mm}
|
||||
@ -358,7 +363,7 @@ Analyze this coding scheme.
|
||||
\vfill
|
||||
|
||||
\problem{}
|
||||
Each of the following messages has either 0, 1, or two errors. \par
|
||||
Each of the following messages has either one, two, or no errors. \par
|
||||
Find the errors and correct them if possible. \par
|
||||
\hint{Bit \texttt{0000} should tell you how many errors you have.}
|
||||
|
||||
@ -590,7 +595,7 @@ A \textit{message stream} is an infinite string of binary digits.
|
||||
\problem{}
|
||||
Show that Hamming codes do not reliably detect bit deletions: \par
|
||||
\hint{
|
||||
Create a 17-bit message whose first 16 bits are a valid Hamming block, \par
|
||||
Create a 17-bit message whose first 16 bits are a valid Hamming-coded message, \par
|
||||
and which is still valid when a bit (chosen by you; not the $17^\text{th}$) is deleted.
|
||||
}
|
||||
|
||||
@ -598,10 +603,11 @@ Show that Hamming codes do not reliably detect bit deletions: \par
|
||||
|
||||
\problem{}
|
||||
Convince yourself that Hamming codes cannot correct insertions. \par
|
||||
Then, create a 16-bit message that...
|
||||
Then, create a 16-bit message that:
|
||||
\begin{itemize}
|
||||
\item is a valid Hamming block, and
|
||||
\item incorrectly "corrects" a single bit error when it encounters an insertion error.
|
||||
\item is itself a valid Hamming code, and
|
||||
\item incorrectly "corrects" a single bit error when it encounters an insertion error. \par
|
||||
You may choose where the insertion occurs.
|
||||
\end{itemize}
|
||||
|
||||
\vfill
|
||||
|
Reference in New Issue
Block a user