Definition
A block code is a linear code if the codewords form a subspace of for some finite field
Definition
The Hamming weight of — denoted as — is the number of its non-zero components — provided is in a finite field (there has to exist the vector )
Could also be understood as the Hamming distance of and :
Theorem
The minimum distance of a linear code is the smallest weight of a codeword :
Generator Matrix
Definition
Let be a basis of a linear code over a finite field. Then the matrix that has as its -th row is the generator matrix of
Encoding
A matrix specifies an encoding map that sends an information vector.
Example
We can send the message with the generator matrix:
A generator matrix defines an encoding map ⇒ codeword
Definition
A generator matrix is in systematic form if
These are matrices in reduced echelon form
When these matrices are in systematic form, we write the codewords as
Decoding
Decoding is deciding the information word from the channel output-
If the channel output is a codeword, then we assume that it equals the channel input
In this case, decoding is inverting the encoding map, which is easy when the generator matrix is in the systematic form.
The problem is knowing if is a codeword → linear block code ⇒ defined by system of homogeneous linear equations → is a codeword ⇐> satisfies those equations
We have a parity-check matrix for a linear code, which is an matrix that has the coefficients of a system of a homogeneous linear equations that defines the code.
Theorem
If , with a matrix — which is a generator matrix of systematic form — of a linear block code, then
which is a parity-check matrix of the same code
Example
If we have the generator matrix
We therefore have the parity-check matrix defined as
Definition
With the parity-check matrix of a linear block code and
We have the syndrome of the vector
With, by definition
Theorem
With a parity-check matrix of a linear code, we have the minimum distance of the code the smallest positive integer , such that there are columns of which are independent
When we have a commutative group and a subgroup: if there exists such that
Example
For , and , we have and
We call the coset of , with respect to
All of them have the same cardinality as
Standard Array
The standard array is an array that has the elements of , starting with the code word , and each row forms a coset of — each element of shows up exactly once in the standard array.
We can use this to decode.
We have each column . We have
To find a codeword associated to , we could find in the standard array and read out the entry on top of the same column — but standard array are generally too large to store.
The first column describes the geometry of all decoding regions.
Claim
In the standard array, each element of a row has the same syndrome as the coset leader.
Claim
The syndrome uniquely identifies the coset leader
Hence, a coset decoder can be implemented as follows:
- We precompute and store the coset leaders and their corresponding syndrome
- To decode , we compute its syndrome
- encodes the row of
- We use the lookup table to determine the corresponding coset leader
- It and uniquely determine the column of , as
- Hence we have
- The decoder declares that the transmitted codeword is
To find the information word that corresponds to , we solve the linear system
If is in systematic form, then consists of the first components of
Choosing Coset Leaders
There are many ways to choose the coset leaders
In fact, we have that every element of every row could be chosen as the coset leader.
Theorem
In every row of the standard array:
Select the coset leader to be one of the minimum weight vectors in that row
Then the coset decoder is a minimum-distance decoder
Warning
This procedure requires to store coset leaders and the corresponding syndrome.
A lookup table of this size will not work in most cases
Error Probability
We have seen before that we can pretty much choose any coset we want.
Here, we will see how to pick an optimal coset, reducing the chance of decoding errors.