In the subsection ``Sentences as Numbers" there is an applet that
will convert between the words in our field and their base 2
representation.
When codewords are received, they are checked against the set of
possible encoded words to see if there are any errors. The short
coming of parity checking is that we can only detect an odd number
of errors, and we cannot say how many errors there are (whether
there are 1, 3, 5, etc. number of errors).
Simple Example
``parity
bit"
is the domain and
is the codomain (not the
range).
{ set of possible unencoded words }
= {
}
=
C = range of encoding
= all possible encoded words
={
}
= {
}
Notice:
``subset".
sits inside of
*Not everything in
is an encoded word. The codewords
are a special subset of
. This means that all of the
codewords are in that finite field, but there are also elements of
the finite field that are not codewords. For example, if you
received a codeword with an error, this corrupted word would be in
, but it would not be in the subset
.
Ex
M
Now we want to add a ``parity bit"
to a binary sequence (the
vector with
for example). This added element will be 0
if
is even and 1 if
is odd. This operation can
be written in terms of matricies over
as follows:
Matrix for the ``parity bit"
=
In general, to add a parity bit
Below is an applet that demonstrates how words are encoded using a
parity code. At the top of the applet are two boxes, one marked
``block size" and the other ``input words". The word entered in
the second box will be broken up into smaller words with the same
amount of letters as entered in the block size box. If the length
of the word mod the block size is not zero, it will be padded with
spaces. The encoded form of each block will be displayed below the
``encode" button. Each encoded block will have 6*block size+1
numbers in it. The last number is the parity bit. The user can
then change the numbers in the block size to create errors. To
decode/check the parity, press the second button on the applet.
The decoded word will appear at the bottom. If there was an error
in one of the blocks an ``*" will appear in the decode box. The
parity code will only detect an odd number of errors, so if two
numbers in a block are changed the decoded word will not be the
same as the original.