Linear Codes

Notation:

In this lecture we will be working with MATH , vectors over the Integers mod 2 . We will be using the defining property of Linear Transformations MATH , which overMATH is just:

MATH

Linear Transformations will be described in Matrix form.

An MATH ($\QTR{Large}{m}$ row by $\QTR{Large}{n}$ column) matrix will be written as MATHor MATH . We will refer to a MATHmatrix as an $\QTR{Large}{n}$ dimensional row vector and an MATHmatrix as an $\QTR{Large}{m}$ dimensional column vector.


We will sometimes simplify row vector notation and just write MATH and column vectors notation by writing MATH leaving out the trailing or leading 1.

$\vspace{1pt}$

Matrix Operations:

  1. Given anMATH matrix MATH , its transpose MATH is the MATH matrix MATH

  2. Given anMATH matrix MATH , and an Given anMATH matrix MATH , its product MATH $\times \ $ MATH is the MATH matrix MATH where MATH

  3. MATH

_____________________________________________________________________________________________

The Annoying Question:

Should the convention be that our vectors by row vectors and the corresponding Linear Transformation be matrix multiplication on the right or should they be column vectors and matrix multiplication be on the left?

Answer: it does not matter as long as we are consistant.

Warning: As you search the literature, including the Web, make sure you note which convention is being used.

Our Convention:

Unless noted, vectors will be row vectors with multiplication on the right.

______________________________________________________________________________________________

Linear Codes over MATH

Definition:

Suppose we are given alphabet of symbols $\dsum \ $and an encoding MATH then is called a Linear Code if MATH is a subspace of MATH.





_________________________________________________________________________________________________

Error Detection and Correction for Linear Codes:

Given a Linear Code MATH

Methodology:

_________________________________________________________________________________________

Parity Checking using Matricies (ASCII) :

To make the notation a bit simpler will work with "mini-ASCII", some 4 bit encoding MATH where every vector is a code word.

We use the matricies:

MATH and MATH

for Even Parity checking., we use $\QTR{Large}{G}$ to encode 4 bit words as 5 bit words for transmission and $\QTR{Large}{H}$ to check for errors at the receiving end.




Given MATH MATH MATH MATH

Note that MATH is an Even Parity bit.


We transmit MATH At the receiving end compute MATH

Assuming there is at most one bit error:

Question: Even Parity Check is a Linear Code, is Odd Parity Check?

______________________________________________________________________________________________

The [7,4,3]$_{\QTR{Large}{2}}$ Hamming Code :

The matricies:

MATH and MATH

Again, given MATH MATHwe encode it by multiplying on the right by MATH

MATH MATH

An Aside: Having the Identity submatrix as the last four column vectors of $\QTR{Large}{G\ }$seems to be somewhat of a standard so I am following that convention.

__________________________________________________________________________________________________

$\vspace{1pt}$

Properties of the [7,4,3]$_{\QTR{Large}{2}}$ Hamming Code:$\hspace{2in}$

  1. Since MATHif MATH is correctly received


    MATH

  2. Writing MATH as $\ \QTR{Large}{w\ }$suppose there is a single bit transmission error:

    The vector received is of the form MATH where MATH MATH, $\QTR{Large}{1}$ in the MATH position $\QTR{Large}{0}$ in every other position.

    (Flipping a bit is, in effect, just adding an appropriate unit vector)

    Since MATH, which is just the MATH row of $\QTR{Large}{H\ }$ , the MATH bit is an error.