0% found this document useful (0 votes)
54 views63 pages

Finite Fields and Coding Theory

This document provides a syllabus for a postgraduate course on finite fields and coding theory. The syllabus covers three chapters: (1) algebraic foundations including groups, rings, fields and vector spaces over finite fields; (2) the structure of finite fields including characterization, roots of polynomials, and representation of elements; and (3) an introduction to coding theory including error-correcting codes, linear codes, cyclic codes, and decoding methods. References for further reading are also provided.

Uploaded by

Pedro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
54 views63 pages

Finite Fields and Coding Theory

This document provides a syllabus for a postgraduate course on finite fields and coding theory. The syllabus covers three chapters: (1) algebraic foundations including groups, rings, fields and vector spaces over finite fields; (2) the structure of finite fields including characterization, roots of polynomials, and representation of elements; and (3) an introduction to coding theory including error-correcting codes, linear codes, cyclic codes, and decoding methods. References for further reading are also provided.

Uploaded by

Pedro
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 63

Finite Fields and Coding Theory

Postgraduate Curse

2016-2017
Mustansiriyah University/ College of Science/ Dept. of Math.
Dr.Emad Bakr Al-Zagana
Al-Mustansiriyah University College of Science / Dept. of Math.
2016-2017

Course Title: Finite Fields and Coding Theory


Level: Post Graduate

Syllabus of The Course


Chapter Chapter’s Name Details of The Chapter
1 Algebraic Foundations Groups
Rings and Fields
Polynomials
Field Extensions
Introduction to vector space over a finite field
2 Structure of Finite Fields Characterization of Finite Fields
Roots of Irreducible Polynomials
Traces, Norms, and Bases
Representation of Elements of Finite Fields
Primitive Polynomials
Irreducible Polynomials
3 Coding Theory Introduction to coding theory
Hamming distance
Nearest neighbour decoding
Error-correcting code
Linear Codes
Cyclic Codes
Parity-check matrix

References:

[1] R. Lidl and H. Niederreiter, Finite Fields: 2nd edition. Cambridge University
Press, 1997.

[2] John M. Howie, Fields and Galois Theory. Springer-Verlag, London, 2006.

[3] R. Hill, A First Course in Coding Theory, Clarendon Press, Oxford, 1986.
Chapter One
Chapter Two
Chapter Three
Chapter 1

Introduction to Error-Correcting
Codes

Motivation This theory shows how to solve a practical problem using the well-established
mathematical tools of Linear Algebra and Finite Fields.

Difference from Cryptography Coding Theory and Cryptography are two important
parts of the modern theory of Information Science.
Cryptography, which is some 2000 years old, is the mathematical theory of sending
secret messages.
Coding Theory, which only dates from 1948, is the mathematical theory of sending
messages that arrive with the same content as when they were sent.
Example 1.1. To send just the two messages YES and NO, the following encoding suffices:

YES = 1, NO = 0.

If there is an error, say 1 is sent and 0 arrives, this will go undetected. So, add some
redundancy:
YES = 11, NO = 00.
Now, if 11 is sent and 01 arrives, then an error has been detected, but not corrected, since
the original messages 11 and 00 are equally plausible.
So, add further redundancy:

YES = 111, NO = 000.

Now, if 010 arrives, and it is supposed that there was at most one error, we know that 000
was sent: the original message was NO.
Note that the information is still in the first symbol; the other two are purely for
error-correction!

The philosophy Error correction codes are used to correct errors when messages are
transmitted through a noisy communication channel.
The channel may be a telephone line, a high frequency radio link or a satellite com-
munication link.
The noise may be human error, lightning, equipment faults, etc.

1
The object of a code is to encode the data by adding a certain amount of redundancy so
that the original message can be recovered if not too many errors occur in the transmission.
noise received decoded
message codeword vector message
message ?
- encoder - - decoder - user
source channel

In Example 1.1,
noise
NO 000 010 NO
message = YES = 111 ? 010 →
- - - - user
YES or NO NO = 000 channel 000

Definition 1.2. A binary code is a set of sequences of 0’s and 1’s; each sequence is a
codeword.

In Example 1.1, the code is {000, 111} . This is a binary repetition code of length 3.

Definition 1.3. (1) A q-ary code C is a set of sequences where each symbol is from a set
Fq = {λ1 , . . . , λq }. Usually, Fq is a finite field.

(2) A 2-ary code is a binary code; a 3-ary code is a ternary code.

Example 1.4. The set of all words in the English language is a code over the 26-letter
alphabet {A, B, . . . , Z}. The codewords are not all the same length.

Definition 1.5. A q-ary code C of length n is a subset of (Fq )n .

Example 1.6. The set of all 11-digit telephone numbers in the UK is a 10-ary code of
length 11. It is not designed for error-correcting, with area codes being important. However,
it would be possible to allow for a single misdial to be corrected.

Example 1.7. On a map laid out as a grid, HQ and JB have identical maps. For JB to return
to HQ, a message is transmitted in terms of the instructions N, E, W, S. The message is

E N N N N W W W W W N N N N E.

2
·· · ·· · · ·t HQ
··
··
··
··
··
··
··
··
··
· · · · · · · · · · · · · · · · · · · · · · · · · ··
··
··
··
··
··
··
··
··
··
JB · · ·· · · ··
t

The shortest binary code is


{ 00, 01, 10, 11 }
C1 = .
N E W S
This code does not allow for errors; so add an extra digit, namely a parity check :
{ 000, 011, 101, 110 }
C2 = .
N E W S
This will detect an error. So JB could ask for another transmission if he received, say, 010.
However, this code would not correct the error, since N, E, S are all messages with only one
digit different from 010. So use
{ 00000, 01101, 10110, 11011 }
C3 = .
N E W S
If the received message is 01100, then it has two digits different from N, one digit different
from E, three digits different from W , and four digits different from S; so it is decoded as
E = 01101.
Definition 1.8. For x, y ∈ (Fq )n , the (Hamming) distance d(x, y) is the number of coordi-
nates in which they differ: that is, if
x = x1 x2 · · · xn ,
y = y1 y2 · · · yn ,
then
d(x, y) = |{i | xi 6= yi}| .
Example 1.9. In C3 ,
d(N, E) = d(N, W ) = 3, d(N, S) = 4,
d(E, W ) = 4, d(E, S) = d(W, S) = 3.

3
Theorem 1.10. The Hamming distance is a metric.

Proof (i) d(x, y) = 0 ⇐⇒ x = y.


By definition, d(x, y) = 0 ⇐⇒ xi = yi all i ⇐⇒ x = y.

(ii) d(x, y) = d(y, x) by definition.

(iii) d(x, y) ≤ d(x, z) + d(z, y).


Here, d(x, y) is the minimum number of changes of coordinates of x to make it y. But a
change from x to z requires d(x, z) changes of coordinates and changing z to y requires
d(z, y) coordinate changes. Hence d(x, y) ≤ d(x, z) + d(z, y). 

Definition 1.11. The minimum distance of a q-ary code C of length n is

d(C) = min{d(x, y) | x, y ∈ C; x 6= y}.

In Example 1.7, d(C1 ) = 1, d(C2 ) = 2, d(C3 ) = 3.


Definition 1.12. Nearest neighbour decoding
Send x, receive y. Then, choose x′ ∈ C such that d(x′ , y) is minimum.
This strategy depends on two assumptions:
(1) each symbol has the same probability t (< 21 ) of being wrongly received;

(2) if a symbol is wrongly received, then each of the q − 1 errors is equally likely.
Example 1.13. In a binary code of length n,

P (exactly i errors in specified positions) = ti (1 − t)n−i .

Since this is greatest for i = 0, so nearest neighbour decoding is also maximum likelihood
decoding.
Example 1.14. C = {000, 111}, the binary repetition code of length 3.
Suppose 111 is transmitted. Then the received words decoded as 111 are

111, 011, 101, 110.

So
P (decoding as 111) = (1 − t)3 + 3t(1 − t)2 .
Suppose that t = 0.1, that is, one symbol in 10 is wrong. So

P (correct decoding) = 0.93 + 3 × 0.1 × 0.92


= 0.729 + 0.243 = 0.972;
P (incorrect coding) = 0.028.

It will be shown, for linear codes, that P (incorrect coding), that is, the word error
probability, is independent of the codeword sent.
Definition 1.15. A code is e-error correcting if it can correct e errors.

4
Definition 1.16. A q-ary (n, M, d) code or (n, M, d)q code is a code C of length n, cardinality
M = |C| and minimum distance d over the alphabet Fq .
In Example 1.7,

C1 is a binary (2, 4, 1) code or (2, 4, 1)2 code;


C2 is a binary (3, 4, 2) code or (3, 4, 2)2 code;
C3 is a binary (5, 4, 3) code or (5, 4, 3)2 code.

Definition 1.17. For x0 ∈ (Fq )n and r ∈ Z, r ≥ 0, the ball of centre x0 and radius r is

S(x0 , r) = {x ∈ (Fq )n | d(x0 , x) ≤ r} .

Example 1.18. (1) In (F2 )3 with F2 = {0, 1},

S(000, 1) = {000, 100, 010, 001} .

(2) In (F3 )3 , with F3 = {0, 1, 2},

S(000, 1) = {000, 100, 200, 010, 020, 001, 002} .

Theorem 1.19. Let C be a code in (Fq )n .


(i) If d(C) ≥ s + 1, then C can detect up to s errors.
(ii) If d(C) ≥ 2e + 1, then C can correct up to e errors.

Proof (i) Let d(C) = s + 1. If x ∈ C is sent and s mistakes occur in transmission, then the
received vector cannot be a codeword. So the mistakes are detected.
(ii)
..................................... ........
....................................
........ ..... .....
.....
......
e @ e
..... ....
.... .... ..... ....
..... ... ....
. ...
.. ... .. ...
. . ...
.... ... ....
@r
.. ...
... .. ... ..
... r r .. ... .
...
x y x ′
.. .. ..
... ..
. ... ...
... .
.. ... ...
...
.... ... ...
.... ...
.... .... .... ....
.....
.....
... ..... ....
.......
.......................................... ....... .....
......
..................................

Let d(C) = 2e + 1.
If x ∈ C is sent and y received with at most e errors, then d(x, y) ≤ e. If x′ ∈ C with
x′ 6= x, then d(x, x′ ) ≥ 2e + 1.
Suppose that d(x′ , y) ≤ e, then d(x, x′ ) ≤ d(x, y) + d(x′, y) ≤ 2e. Hence d(x′ , y) ≥ e + 1.
So y → x. Hence C can correct e errors. 

Corollary 1.20. If C has minimum distance d, then it can detect d − 1 errors and correct
e = ⌊(d − 1)/2⌋ errors, where ⌊m⌋ denotes the integer part of m:
d 1 2 3 4 5 6 7 8
e 0 0 1 1 2 2 3 3
Definition 1.21. The q-ary repetition code of length n on Fq = {λ1 , ..., λq } is
{λ1 . . . λ1 , λ2 . . . λ2 , . . . , λq . . . λq }.

This is an (n, q, n) code.

5
Example 1.22. (1) To send back photographs from the 1972 Mariner to Mars, a binary
(32, 64, 16) code was used. Here, 32 = 6 + 26, with 6 information symbols and 26
redundancy symbols. So each part of each photograph was coded in one of 26 = 64
shades of grey; 7 errors for each part could be corrected.

(2) For the 1979 Voyager spaceship to Jupiter, a binary (24, 642, 8) code was used. This
time, 24 = 12 + 12, with 12 information symbols and 12 redundancy symbols. So each
part of each photograph was coded in one of 212 = 642 = 4096 shades to send back
colour photographs, with 3 errors able to be corrected.

Example 1.23 (Morse Code as used by the British Army).

0 = .
1 = −

A 01 W 011
B 1000 X 1001
C 1010 Y 1011
D 100 Z 1100
E 0 0 1
F 0010 1 01
G 110 2 001
H 0000 3 00011
I 00 4 00001
J 0111 5 0
K 101 6 1000
L 0100 7 11000
M 11 8 100
N 10 9 10
O 111
P 0110
Q 1101
R 010
S 000
T 1
U 001
V 0001

6
Chapter 5

Linear Codes

The space is V (n, q) = ((Fq )n , +, ×). For x ∈ V (n, q), write

x = (x1 , x2 , . . . , xn ) = x1 x2 · · · xn .

Definition 5.1. (i) A linear code is a subspace of V (n, q).

(ii) If dim C = k, then C is an

[n, k]-code or [n, k]q -code,

or, if d(C) = d, it is an
[n, k, d]-code or [n, k, d]q -code.
Note 5.2. A q-ary [n, k, d]-code is a q-ary (n, q k , d)-code.
Definition 5.3. The weight w(x) of x in V (n, q) is

w(x) = d(x, 0);

that is, w(x) is the number of non-zero elements in x.


Lemma 5.4. d(x, y) = w(x − y) for x, y ∈ V (n, q).

Proof x − y has non-zero entries in those coordinates where x and y differ. 

Theorem 5.5. For a linear code C,

d(C) = min w(x).


x6=0

Proof Show the two inequalities. First,

d(C) = min d(x, y) = min w(x − y) ≤ min w(x).


x6=y x6=y x6=0

Conversely, there exist y, z ∈ C such that

d(C) = d(y, z) = w(y − z) ≥ min w(x),


x6=0

since y − z ∈ C. 

22
Example 5.6. The perfect (7, 16, 3)-code.
This is a binary [7, 4, 3]-code

C = {u, z, l1 , . . . , l7 , m1 , . . . , m7 }

based on PG(2, 2) and has d(C) = 3 since w(u) = 7, w(li ) = 3, w(mi ) = 4.

To specify a linear code of dimension k, only k basis vectors are required!

Definition 5.7. A generator matrix G of an [n, k]-code C is a k × n matrix whose rows form
a basis for C.

Example 5.8. From Example 4.1,

C1 = {00, 01, 10, 11}

is a binary [2, 2]-code with generator matrix


   
0 1 1 0
G= or or ··· .
1 0 0 1

Similarly,
C2 = {000, 011, 101, 110}
is a binary [3, 2]-code with generator matrix
 
0 1 1
G= ,
1 0 1

and
C3 = {00000, 01101, 10110, 11011}
is a binary [5, 2]-code with generator matrix
 
0 1 1 0 1
G=
1 1 0 1 1

Theorem 5.9. By definition, rank G = dim C.

Definition 5.10. Two linear codes C and C ′ in V (n, q) are equivalent if C ′ can be obtained
from C by one of the following operations:

(A) some permutation of the coordinates in every codeword;

(B) multiplying the coordinate in a fixed position by a non-zero scalar.

This can be also described as follows. If σ ∈ Sn and λ1 , . . . , λn ∈ Fq \ {0},

(A) x1 x2 x3 ...xn−1 xn −→ x1σ x2σ · · · x(n−1)σ xnσ ;

(B) x1 x2 x3 · · · xn−1 xn −→ λ1 x1 λ2 x2 · · · λn xn .

The point about (A) and (B) is that they preserve the distance of any two codewords, and
the minimum distance of the code, as well as the dimension.

23
Theorem 5.11. If f : C → C ′ is a transformation obtained by using (A) and (B), with
f (C) = C ′ , then

(i) d(x, y) = d(f (x), f (y));

(ii) d(C) = d(C ′);

(iii) dim C = dim C ′ .

Recall the row operations (R1), (R2), (R3). Now, what column operations do (A) and
(B) give? Let (C1), (C2), (C3) be the corresponding column operations.

(A) → (C2) ci ↔ cj ;

(B) → (C1) ci → λci .

Theorem 5.12. Two k × n matrices G, G′ generate equivalent linear [n, k]-codes over Fq if
G′ can be obtained from G by a sequence of operations (R1), (R2), (R3), (C1), (C2).

Proof The (Ri) change the basis of a code; the (Cj) change G to G′ for an equivalent code.


Note 5.13. Column operations generally change the code!

Theorem 5.14. Let G be a generator matrix of an [n, k]-code. Then, by the elementary
operations, G can be transformed to standard form,

[Ik A],

where Ik is the k × k identity and A is k × (n − k).

Proof By row or column operations obtain a non-zero pivot g11 . Then use row operations
to obtain gi1 = 0, i > 1.
1 ∗ . . . ∗
0
0

G = . H
.
.
0
Use row or column operations on G′ to obtain h11 6= 0. Continue. Then use row operations
to get I, unless column operations are required. 

Example 5.15. (i) C is a binary [5, 3]-code


     
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0
G= 1 1 0 1 0 → 0 1 0 1 0 → 0 1 0 1 0 
1 1 1 0 1 0 1 1 0 1 0 0 1 1 1

24
(ii) C is a binary [6, 4]-code
     
1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1
 0 1 0 0 1 1   0 1 0 0 1 1   0 1 0 0 1 1 
G =   1 0 1 1 0 1 →
  → 
0 1 0 1 1 0   0 0 0 1 0 1 
0 1 1 1 0 1 0 1 1 1 0 1 0 0 1 1 1 0
   
1 1 1 0 1 1 1 0 0 0 1 1
 0 1 0 0 1 1   0 1 0 0 1 1 
→   0 0 1 1 1 0 
→ 
 0 0 1 0 1 1 
0 0 0 1 0 1 0 0 0 1 0 1

(iii) C is a ternary [6, 4]-code


     
1 2 1 1 2 1 1 2 1 1 2 1 1 2 1 1 2 1
 0 1 0 1 1 1   0 1 0 1 1 1 
  0 1 0 1 1 1 
G =   1 0 2
→ → 
1 1 1   0 1 1 0 2 0   0 0 1 2 1 2 
0 1 0 2 1 0 0 1 0 2 1 0 0 0 0 1 0 2
     
1 2 1 1 2 1 1 2 1 0 2 2 1 0 0 0 2 0
 0 1 0 0 1 2   0 1 0 0 1 2 
  0 1 0 0 1 2 
→   0 0 1
→ → 
0 1 1   0 0 1 0 1 1   0 0 1 0 1 1 
0 0 0 1 0 2 0 0 0 1 0 2 0 0 0 1 0 2

Corollary 5.16. If G1 = [Ik A1 ] and G2 = [Ik A2 ] are generator matrices of the same code
C, then A1 = A2 .

Proof The first row of G2 must be a linear combination of the rows of G1 , and hence is
the first row of G1 . Similarly for the other rows of G2 . 

25
Chapter 7

The Dual Code and the Parity-Check


Matrix

Definition 7.1. Let x, y ∈ V (n, q). Then

x · y = x1 y1 + x2 y2 + · · · + xn yn

is the scalar product of x and y.


If x · y = 0, then x and y are orthogonal.

Note 7.2. The scalar product satisfies the following:

(i) (x + y) · z = x · y + y · z;

(ii) (λx · y) = λ(x · y);

(iii) x · y = y · x.

Definition 7.3. Given an [n, k]-code C, the dual code C ⊥ is given by

C ⊥ = {x ∈ V (n, q) | x · y = 0, for all y ∈ C}.

Example 7.4. (i)


C = {0000, 1001, 0110, 1111},
C ⊥ = {0000, 1001, 0110, 1111}.

(ii)
C = {0000, 1000, 0100, 1100},
C ⊥ = {0000, 0010, 0001, 0011}.

Lemma 7.5. If C is an [n, k]-code with generator matrix G, then

(i) C ⊥ is a linear code;

(ii) C ⊥ = {x ∈ V (n, q) | xGT = 0}; that is, x is orthogonal to every row of G.

30
Proof (i) If y, y ′ ∈ C ⊥ , then

x · y = x · y ′ = 0 for all x ∈ C
⇒ x · (y + y ′) = 0 for all x ∈ C,
x · (λy) = 0 for all x ∈ C.

(ii)
xGT = 0 ⇐⇒ x[r1T , . . . , rkT ] = 0 ⇐⇒ x · riT = 0 for all i ⇐⇒ x · ri = 0 for all i,

where r1 , . . . , rk are the rows of G. 

Definition 7.6. A parity-check matrix H for an [n, k]-code C is an (n − k) × n matrix which


is a generator matrix for C ⊥ .
Theorem 7.7. (i) If C is an [n, k]-code over Fq , then C ⊥ is an [n, n − k]-code over Fq .

(ii) If G = [Ik A], then a generator matrix for C ⊥ is H = [−AT In−k ].

Proof (i) By Lemma 7.5, C ⊥ is a linear code of length n over Fq . If G is a generator matrix
for C, with rows r1 , . . . , rk and columns c1 , . . . , cn , then
 
r1
G = [c1 , . . . , cn ] =  ...  .
 
rk

Consider ϕ : V (n, q) −→ V (k, q) given by

x 7−→ xGT = x[r1T , . . . , rkT ]


= (x · r1 , . . . , x · rk )
= x1 cT1 + · · · + xn cTn

Then
n = dim(ker ϕ) + dim(im ϕ). (7.1)
As rank G = k, considering im ϕ in terms of the columns of G, so dim(im ϕ) = k. Hence,
from (7.1) dim(ker ϕ) = n − k.
Aliter, let G = [Ik A] be a generator matrix for C, then x ∈ C ⊥ ⇔ GxT = 0:
 x1
 

1 0 ··· 0 a11 · · · a1,n−k  .. 
 0 1 ··· 0 a21 · · · a2,n−k   . 
 .. ..   xk  ;
  
 . .  . 
 .. 
0 ··· 1 ak1 · · · ak,n−k
xn

x1 + a11 xk+1 + · · · + a1,n−k xn = 0,


x2 + a21 xk+1 + · · · + a2,n−k xn = 0,
.. ..
. .
xk + ak1 xk+1 + · · · + ak,n−k xn = 0.

31
So any choice can be made for xk+1 , . . . , xn ; then x1 , . . . , xk are determined. Hence C ⊥ = q n−k .
Hence dim C ⊥ = n − k.
(ii) G = [Ik A], H = [−AT In−k ], rank H = n − k. Then
 
T −A
GH = [ Ik A ] = Ik (−A) + AIn−k = −A + A = 0.
In−k

So HGT = 0; that is, the rows s1 , . . . , sn−k of H are in C ⊥ . But rank H = n − k; so H is a


generator matrix for C ⊥ . 

Example 7.8. C2 = {000, 011, 101, 110} is a [3, 2]2 -code


 
1 0 1
G= , H = [ 1 1 1 ].
0 1 1

Theorem 7.9. The following are equivalent conditions on H:


(i) H is a parity-check matrix for C;

(ii) HxT = 0 for all x ∈ C;

(iii) xH T = 0 for all x ∈ C.


Note 7.10. (i) rank G = k, rank H = n − k;

(ii) C is equally well-specified by G or H;


(iii) If G = [Ik A] then a suitable parity-check matrix is H = [−AT In−k ].
Theorem 7.11. If C is an [n, k]q -code then (C ⊥ )⊥ = C.

Proof If x ∈ C, then x · y = 0 for all y ∈ C ⊥ . So x ∈ (C ⊥ )⊥ . But

dim (C ⊥ )⊥ = n − (n − k) = k.

Hence C ⊂ (C ⊥ )⊥ . As dim C = dim (C ⊥ )⊥ , so C = (C ⊥ )⊥ . 

Definition 7.12. If H = [B, In−k ] it is in standard form.


Example 7.13. C3 = {00000, 01101, 10110, 11011} is a [5, 2]-code. Then, with
 
  1 1 1 0 0
1 0 1 1 0
G= , H =  1 0 0 1 0 .
0 1 1 0 1
0 1 0 0 1

If x = (x1 , x2 , x1 + x2 , x1 , x2 ) ∈ C3 ,

x1 + x2 + x3 = 0,
x1 + x4 = 0,
x2 + x5 = 0,
x = (x1 , x2 , x1 + x2 , x1 , x2 ).

Note that C3⊥ is a [5, 3]-code.

32
Explanation for the term parity-check matrix If u = u1 · · · uk v1 · · · vn−k , where the
message symbols are u1 · · · uk ,
HuT = 0,
u1
 
 .. 
 . 
 u 
 
c1 c2 · · · ck e1 e2 · · · en−k  k  ,

 v1 
 . 
 .. 
vn−k
u1
 
 ..
 .


 uk

 
B | In−k  = 0,

 v1


 .
 ..


vn−k
u1
 
  . 
b11 · · · b1k 1 0 ··· 0   .. 
 b21 · · · b2k 0 1 ··· 0   uk 
 
.. .. ..  = 0,

  v1 
 
 . . .
· · · 1  ... 
 
bn−k,1 · · · bn−k,k 0 0
vn−k
k
X
bij uj + vi = 0, for i = 1, . . . , n − k.
j=1

As bij = −aji , so the symbols vi are determined.

Syndrome Decoding
Definition 7.14. Let H be a parity-check matrix for the [n, k]-code C. Then for any y ∈
V (n, q),
sH (y) = yH T = (Hy T )T
is the syndrome of y, a vector of length n − k.
Lemma 7.15. (i) yH T = 0 ⇐⇒ y ∈ C;
(ii) x + C = y + C ⇐⇒ x and y have the same syndrome;
(iii) There exists a one to one correspondence between cosets and syndrome.

Proof (i) This is by definition.


(ii) x + C = y + C ⇐⇒ x − y ∈ C ⇐⇒ (x − y)H T = 0 ⇐⇒ xH T = yH T .
(iii) This follows from (ii).

33
Algorithm 7.16. I. Set up 1-1 correspondence between coset leaders and syndromes.
II. If y is a received vector, calculate the syndrome s = yH T .

III. Find coset leader e associated to s.

IV. Correct y to y − e.
Now much less needs to be stored, namely just coset leaders and syndromes.
Example 7.17. C3 = {00000, 10110, 01101, 11011} Single error-correcting [5, 2]-code.
 
  1 1 1 0 0
1 0 1 1 0
G= H= 1 0 0 1 0 
0 1 1 0 1
0 1 0 0 1

coset leader 00000 10000 01000 00100 00010 00001 11000 10001
syndrome 000 110 101 100 010 001 011 111
If the received message appears in the last two cosets we need to ask for retransmission,
since the weight of the coset leader is 2.
(i) y = 11110, yH T = 101, e = 01000,

x = y − e = y + e = 10110.

(ii) y = 01100, yH T = s = 001, e = 00001,

x = y + e = 01101.

(iii) y = 11100, yH T = 111, e = 10001,

ask for retransmission.

Theorem 7.18. Let C be an [n, k]-code with parity-check matrix H. Then

d(C) = d = min d(x, y)


x6=y

if and only if some d columns of H are linearly dependent but every d−1 columns are linearly
independent.

Proof Let the columns of H be c1 , . . . , cn , that is, H = [c1 , . . . , cn ]. Then x ∈ C, with


x = x1 · · · xn , if and only if HxT = 0; that is,

x1 c1 + · · · + xn cn = 0.

Now, x has weight d − 1 ⇐⇒ ∃j1 , . . . , jd−1 ∈ N such that xj1 , . . . , xjd−1 6= 0 and all other
xj = 0 ⇐⇒ xj1 cj1 + · · · + xjd−1 cjd−1 = 0. Hence there exists no word of weight d − 1 if and
only if every d − 1 columns are linearly independent.
Similarly x is a word of weight d if and only if there exists i1 , . . . , id ∈ N such that
xi1 , . . . , xid 6= 0 and all other xi = 0; this occurs if and only if xi1 ci1 + · · · + xid cid = 0. Hence
there exists a word of weight d if and only some d columns are linearly dependent. 

34
Corollary 7.19. (Singleton bound) For an [n, k, d]-code,

d ≤ n − k + 1.

Proof As every d − 1 columns of H are linearly independent, rank (H) = n − k ≥ d − 1.




Example 7.20. (i) Ternary [4, 2]-code with parity-check matrix


 
1 2 0 1
H= , d = 3.
0 2 1 2

(ii) Binary [5, 2]-code with parity-check matrix


 
1 1 1 1 0
H =  0 1 1 0 1 , d = 3.
0 0 1 1 1

(iii) Binary [8, 4]-code with parity-check matrix


 
1 0 0 0 1 0 1 1
 0 1 0 0 0 1 1 1 
H=  0 0 1
, d = 4.
0 1 1 0 1 
0 0 0 1 1 1 1 0

Definition 7.21. An [n, k, d]-code over Fq with d = n−k +1 is maximum distance separable,
abbreviated MDS.

35

You might also like