You are on page 1of 13

# Chapter 3

Linear Block Codes

3.1 (n, k) Linear Block Codes over GF(q) 
Let the message m = ( m0 , m1 ,L , m k - 1 ) be an arbitrary k-tuple

from GF(q).

k
The linear (n, k) code over GF(q) is the set of q codeword of

row-vector form c = ( c0 , c 1 ,L , c n- 1 ) , where c j ∈ GF(q) 

By linear transformation

k −1
c = m ⋅ G = ∑ mi ⋅ g i =m0 g0 + m1 g0 + L + mk - 1 g k - 1
i =0

Here G is a k × n matrix of rank k of elements from GF(q),

g i is the i-th row vector of G.

G is called a generator matrix of the code. 

The rows of G are linearly independent since G is assumed to

have rank k. 

The code C is called a k-dimensional subspace of the set of all

n-tuples.

k) block code is said to be linear if the vector sum of two codeword is a codeword.  Linear Systematic Block Code: In systematic from the codeword C is comprised of an information segment and a set of n-k symbols that are linear combinations of certain information symbols. determined by the P matrix.Example: (7. 4) Hamming code over GF(2) The encoding equation for this code is given by c0 = m0 c1 = m1 c2 = m2 c3 = m3 c4 = m0 + m 1 + m 2 c5 = m1 + m 2 + m 3 c6 = m0 + m 1 + m 3 that is. That is . 1 0 0 0 1 0 1 0 1 0 0 1 1 1 G=  0 0 1 0 1 1 0   0 0 0 1 0 1 1  An (n.

( n.k .i . c k + 1 . c i = mi . 0  P -matrix is a k × ( n . ( n . is called the set of parity-check equations. . mk . mk -1 .1 ) . 0   p p1.2 ) L p1.k .2 ) L p0. ( n.1 ) . ( n . c k . ( n. for 0 ≤ i < k k −1 c i = ∑ m j p j.  An (n.1 ) ↔ ( m0 .k . for k ≤ i < n j =0 message codeword ( m0 . c n-1 ) The second set of equations.k .L .1 ) p( k . m1 .k . ( n . k) linear systematic code is completely specified by a k × n generator matrix of the following form  g0   g  G =  1  = [I k P ]  M     g k -1  where I k is the k × k identity matrix  p0.k . m1 .k ) matrix.1 )  M M O M     p( k .L .k . given above.2 ) L p( k .1 ) .1) p0.L . 0  P=  1. n.

the inner product of c and each row of H is zero.e. Let c = ( c0 . Since G = [I k P ] [ we can see that H = P I n.1 ) be an n-tuple then c is a codeword if and only if c ⋅ H T = (0.k T ] where P T is the transpose of P and G ⋅ H T = 0 .L . The matrix H is called a parity-check matrix. Note: For any given generator matrix G. many solution for H are possible.0. Parity-check matrix An (n.L . c 1 . c n. .k ) × k matrix H. k) linear code can also be specified by an ( n .0 ) 14243 n− k i.

A dual code is denoted as C ⊥ .Example: A (6. 3) code is generated by  1 0 0 1 1 1 G = 0 1 0 1 0 1   0 0 1 0 1 1 The parity-check matrix is given by 1 1 0 1 0 0  H = 1 0 1 0 1 0    1 1 1 0 0 1 A code generated by H is called the dual code of the code generated by G. .

un. v ) = { i | ui ≠ v i . v n. c 2 ) = wt ( c 1 .1 } i.L . v ) = ∑(u i =0 i . .vi ) 2 (b) Hamming distance d H ( u .1 ) (a) Euclidean distance n-1 d E (u .e.1 ) v = ( v0 . u1 . the Hamming distance between any two codewords is simply described by d H ( c 1 .L .L .  Hamming weight and Hamming distance of codewords (a) For a linear code C. wt ( c 3 ) is the Hamming weights of c 3 . i = 0. n .3. v 1 .2 Hamming Distance of Linear Block Code and Error Protection Properties  Distance between two n-symbol vectors u = ( u0 . the number of places where u and v differ. or the number of nonzero positions of c 3 .1.c 2 ) = wt ( c 3 ) where c 3 is the difference between c 1 and c 2 .

b and c d H (a . b ) ≥ d H (a . b ) c a b (c) d H ( a . b ) = wt ( a + b ) . c ) + d H (c .(b) Triangle inequality For codeword a .

is defined as follows: wmin ≡ min { w( v ) : v ∈ C. u ) : v . u ∈ C. denoted as wmin . v ≠ 0 } Exercise: Show that d min = wmin Proof: d min ≡ min {d ( v .3 Minimum distance of a Block code Let C be a linear block code. is defined as follows: d min ≡ min {d ( v . x ≠ 0 } = wmin . v ≠ u } The minimum weight of C.3. v ≠ u } = min { w( x ) : x ∈ C. u ∈ C. v ≠ u } = min { d ( v + u ) : v . The minimum distance of C. denoted as d min . u ) : v . u ∈ C.

5 page 87)    .3.4 maximum Error-Correction Capability of a Block Code  Suppose that c0 is selected for transmission and that the closest codeword is d min in Hamming distance. as shown below (Fig. 3.

 .

  c1            c0         c0 .

rn. e 1 . c 1 .L .1 ) : received word. . r1 .L . e n.              c2    c1 e c r =c +e e = ( e0 . c = ( c0 .1 ) : codeword transmitted. r = ( r0 .1 ) : error pattern.L . c n.

. That is.  2  one is guaranteed that r = c0 + e remains closer in Hamming distance to c0 than to any other codeword and thus is decoded correctly. The detector’s function can fail only if e takes the transmitted codeword c0 into another codeword c 1 . that is c0 + e = c 1 . to label the codeword (received word) is unreliable. and if errors are detected. This cannot occur if there are d min − 1 or fewer errors in the n positions of the code.  Error-detection Capability Suppose that the decoder’s task is only to detect the presence of errors. t =  min  is called the maximum  2  error-correction capability of the code.  d − 1 As a consequence.  d min − 1  If the channel-error pattern e has t =   or fewer errors. d min − 1 is the guaranteed error detection capability of the code.

n Define W ( z ) = ∑ wi z as the weight enumerator polynomial. Hybrid modes of error control One can correct t errors and still detect up to t d errors provided that t + t d < d min . 3. i i =0 Clearly. k) linear block code and wmin denotes the number of codewords in C with Hamming weight i .5 Weight Distribution Let C be an (n. w0 = 1 w0 + w1 + L + wn = 2 k Exercise: Find the weight enumerator polynomial of the (7. 4) Hamming code generated by 1 0 0 0 1 0 1 0 1 0 0 1 1 1 G=  0 0 1 0 1 1 0   0 0 0 1 0 1 1 Answer: W ( z ) = 1 + 7z 3 + 7z 4 + z 7 .

k-1) code. by adding one parity symbol. a (n. In general. an (n. Extended code A code is extended by adding some additional redundant symbols (or bits). For example. .6 Some Commonly-used Modifications of Linear Codes  Shortened code A code is shortened by deleting some message symbols (bits) from the encoding process. For example.3. k) code becomes a (n+1. k) code. the error-control capability of the extended code can be increased. k) code becomes an (n-1. by deleting one message symbol (or bit).

For example. In general. but the code rate is increased. . by deleting one parity symbol. a (n. k) code. the error-control capability is reduced. Punctured Code A code is punctured by deleting some of its parity symbols (or bits). k) code becomes (n-1.