EE512: Error Control Coding

Similar documents
EE512: Error Control Coding

x n k m(x) ) Codewords can be characterized by (and errors detected by): c(x) mod g(x) = 0 c(x)h(x) = 0 mod (x n 1)

1 Vandermonde matrices

ECEN 604: Channel Coding for Communications

Coding Theory and Applications. Solved Exercises and Problems of Cyclic Codes. Enes Pasalic University of Primorska Koper, 2013

The BCH Bound. Background. Parity Check Matrix for BCH Code. Minimum Distance of Cyclic Codes

Cyclic codes: overview

Information Theory. Lecture 7

EE 229B ERROR CONTROL CODING Spring 2005

5.0 BCH and Reed-Solomon Codes 5.1 Introduction

Linear Cyclic Codes. Polynomial Word 1 + x + x x 4 + x 5 + x x + x

Linear Cyclic Codes. Polynomial Word 1 + x + x x 4 + x 5 + x x + x f(x) = q(x)h(x) + r(x),

B. Cyclic Codes. Primitive polynomials are the generator polynomials of cyclic codes.

7.1 Definitions and Generator Polynomials

Chapter 6 Reed-Solomon Codes. 6.1 Finite Field Algebra 6.2 Reed-Solomon Codes 6.3 Syndrome Based Decoding 6.4 Curve-Fitting Based Decoding

Cyclic Codes. Saravanan Vijayakumaran August 26, Department of Electrical Engineering Indian Institute of Technology Bombay

Error Correction Review

Solutions of Exam Coding Theory (2MMC30), 23 June (1.a) Consider the 4 4 matrices as words in F 16

ELG 5372 Error Control Coding. Lecture 12: Ideals in Rings and Algebraic Description of Cyclic Codes

New algebraic decoding method for the (41, 21,9) quadratic residue code

The Golay codes. Mario de Boer and Ruud Pellikaan

Objective: To become acquainted with the basic concepts of cyclic codes and some aspects of encoder implementations for them.

A 2-error Correcting Code

Outline. MSRI-UP 2009 Coding Theory Seminar, Week 2. The definition. Link to polynomials

Generator Matrix. Theorem 6: If the generator polynomial g(x) of C has degree n-k then C is an [n,k]-cyclic code. If g(x) = a 0. a 1 a n k 1.

Cyclic codes. Vahid Meghdadi Reference: Error Correction Coding by Todd K. Moon. February 2008

: Error Correcting Codes. November 2017 Lecture 2

Binary Primitive BCH Codes. Decoding of the BCH Codes. Implementation of Galois Field Arithmetic. Implementation of Error Correction

G Solution (10 points) Using elementary row operations, we transform the original generator matrix as follows.

Homework 8 Solutions to Selected Problems

Chapter 6. BCH Codes

New Algebraic Decoding of (17,9,5) Quadratic Residue Code by using Inverse Free Berlekamp-Massey Algorithm (IFBM)

Codes used in Cryptography

MATH 433 Applied Algebra Lecture 21: Linear codes (continued). Classification of groups.

Chapter 5. Cyclic Codes

Lecture Introduction. 2 Linear codes. CS CTT Current Topics in Theoretical CS Oct 4, 2012

Fault Tolerance & Reliability CDA Chapter 2 Cyclic Polynomial Codes

Coding Theory: Linear-Error Correcting Codes Anna Dovzhik Math 420: Advanced Linear Algebra Spring 2014

MATH 291T CODING THEORY

} has dimension = k rank A > 0 over F. For any vector b!

Error Detection & Correction

Duadic Codes over Finite Commutative Rings

MATH3302 Coding Theory Problem Set The following ISBN was received with a smudge. What is the missing digit? x9139 9

Section IV.23. Factorizations of Polynomials over a Field

MATH 291T CODING THEORY


Linear Codes and Syndrome Decoding

MATH 3030, Abstract Algebra Winter 2012 Toby Kenney Sample Midterm Examination Model Solutions

Error Correcting Codes: Combinatorics, Algorithms and Applications Spring Homework Due Monday March 23, 2009 in class

3. Coding theory 3.1. Basic concepts

March Algebra 2 Question 1. March Algebra 2 Question 1

Error-correcting codes and Cryptography

ERROR CORRECTING CODES

Section 3 Error Correcting Codes (ECC): Fundamentals

Know the meaning of the basic concepts: ring, field, characteristic of a ring, the ring of polynomials R[x].

EE 229B ERROR CONTROL CODING Spring 2005

EE512: Error Control Coding

Vector spaces. EE 387, Notes 8, Handout #12

Optical Storage Technology. Error Correction

Finite Fields. Saravanan Vijayakumaran Department of Electrical Engineering Indian Institute of Technology Bombay

Math 512 Syllabus Spring 2017, LIU Post

Implementation of Galois Field Arithmetic. Nonbinary BCH Codes and Reed-Solomon Codes

Abstract Algebra: Chapters 16 and 17

6A The language of polynomials. A Polynomial function follows the rule. Degree of a polynomial is the highest power of x with a non-zero coefficient.

Open problems on cyclic codes

Design and Implementation of Reed-Solomon Decoder using Decomposed Inversion less Berlekamp-Massey Algorithm by

Codes over Subfields. Chapter Basics

Explicit Methods in Algebraic Number Theory

Self-Dual Cyclic Codes

An Enhanced (31,11,5) Binary BCH Encoder and Decoder for Data Transmission

ON PERTURBATION OF BINARY LINEAR CODES. PANKAJ K. DAS and LALIT K. VASHISHT

Narrow-Sense BCH Codes over GF(q) with Length n= qm 1

b n x n + b n 1 x n b 1 x + b 0

Fault Tolerant Computing CS 530 Information redundancy: Coding theory. Yashwant K. Malaiya Colorado State University

ELEC 519A Selected Topics in Digital Communications: Information Theory. Hamming Codes and Bounds on Codes

Solutions or answers to Final exam in Error Control Coding, October 24, G eqv = ( 1+D, 1+D + D 2)

Part III. Cyclic codes

Algebra Review 2. 1 Fields. A field is an extension of the concept of a group.

Lecture 2 Linear Codes

g(x) = 1 1 x = 1 + x + x2 + x 3 + is not a polynomial, since it doesn t have finite degree. g(x) is an example of a power series.

Cyclic Codes. Chapter Basics

MATH32031: Coding Theory Part 15: Summary

Making Error Correcting Codes Work for Flash Memory

MS 2001: Test 1 B Solutions

Lecture 12: November 6, 2017

Implementation of Galois Field Arithmetic. Nonbinary BCH Codes and Reed-Solomon Codes

On Extremal Codes With Automorphisms

Reed-Solomon Error-correcting Codes

Optimum Soft Decision Decoding of Linear Block Codes

Section VI.33. Finite Fields

MATH/MTHE 406 Homework Assignment 2 due date: October 17, 2016

GF(2 m ) arithmetic: summary

New Families of Triple Error Correcting Codes with BCH Parameters

6.1.1 What is channel coding and why do we use it?

Chapter 6 Lagrange Codes

Construction X for quantum error-correcting codes

PUTNAM TRAINING POLYNOMIALS. Exercises 1. Find a polynomial with integral coefficients whose zeros include

The number of message symbols encoded into a

Channel Coding I. Exercises SS 2017

RON M. ROTH * GADIEL SEROUSSI **

Transcription:

EE51: Error Control Coding Solution for Assignment on BCH and RS Codes March, 007 1. To determine the dimension and generator polynomial of all narrow sense binary BCH codes of length n = 31, we have to do coset decompostion of the set {0, 1,,..., 30} mod 31 under multiplication by. It can be verified there would be six cosets each with 5 elements and one coset {0}. In other words x 31 + 1 can be factorised as follows: x 31 + 1 = (x + 1)M α (x)m α 3(x)M α 5(x)M α 7(x)M α 11(x)M α 15(x), where α is a primitive element of GF (3). The degree of each M(x) is equal to 5. The possible degrees for the generator polynomial for narrow sense BCH code are as follows: (n k) = 5, 10, 15, 0, 5, 30. Therefore, the possible dimensions for the code are as follows: k = 6, 1, 16, 11, 6, 1. The generator polynomial of the (31, 6) BCH code will be g 1 (x) = M α (x), while the generator polynomial of the (31, 1) BCH code will be g (x) = M α (x)m α 3(x) and so on.. Let α be the primitive element of GF (104), and let M α i(x) denote the minimal polynomial of α i. Then required generator polynomials are as follows: (a) t = 1. (b) t =. (c) t = 3. (d) t = 4. g 1 (x) = LCM{M α (x), M α (x)} = M α (x). g (x) = LCM{M α (x), M α (x), M α 3(x), M α 4(x)} = M α (x)m α 3(x). g 3 (x) = LCM{M α (x), M α (x),..., M α 6(x)} = M α (x)m α 3(x)M α 5(x). g 4 (x) = LCM{M α (x), M α (x),..., M α 8(x)} = M α (x)m α 3(x)M α 5(x)M α 7(x). 3. To find the dimensions of length-65 narrow sense binary BCH codes of given designed distance δ, it is sufficient to do the coset decomposition of the set {0, 1,, 3,...64} mod 65 under multiplication by. The cosets are as follows: C 0 = {0}, C 1 = {1,, 4, 8, 16, 3, 64, 63, 61, 57, 49, 33}, C 3 = {3, 6, 1, 4, 48, 31, 6, 59, 53, 41, 17, 34}, C 5 = {5, 10, 0, 40, 15, 30, 60, 55, 45, 5, 50, 35}, C 7 = {7, 14, 8, 56, 47, 9, 58, 51, 37, 9, 18, 36}, C 11 = {11,, 44, 3, 46, 7, 54, 43, 1, 4, 19, 38}, C 13 = {13, 6, 5, 39}. Since 65 1 1, GF ( 1 ) will contain an element of order 65. Since ( 1 1) = ( 6 1)( 6 + 1) = 63 65, β = α 63 (α is the primitive element of GF ( 1 )) is an element of order 65. 1

(a) δ = 3, t = 1. Therefore, k = 53. (b) δ = 5, t =. Therefore, k = 41. (c) δ = 7, t = 3. Therefore, k = 9. (d) δ = 9, t = 4. (n k) = deg(lcm{m β (x), M β (x)}) = deg(m β (x)) = C 1 = 1. (n k) = deg(lcm{m β (x), M β (x), M β 3(x), M β 4(x)}) = deg(m β (x)m β 3(x)) = C 1 C 3 = 4. (n k) = deg(lcm{m β (x), M β (x),..., M β 6(x)}) = deg(m β (x)m β 3(x)M β 5(x)) = C 1 C 3 C 5 = 36. (n k) = deg(lcm{m β (x), M β (x),..., M β 8(x)}) = deg(m β (x)m β 3(x)M β 5(x)M β 7(x)) = C 1 C 3 C 5 C 7 = 48. Therefore, k = 17. Notice that β 8, β 9 and β 10 are also zeros of this code. Therefore, by the BCH bound, we see that d 11. 4. Decoder for the -error-correcting (31, 1) BCH code. (a) r(x) = x 7 + x 3. Since the received vector r(x) is at a distance from the all-zero codeword, the decoded codeword will be the all-zero vector. Thus, ĉ = 0. (b) r(x) = 1 + x 17 + x 8. The syndromes, s 1 and s 3, are s 1 = r(α) = 1 + α 17 + α 8 = α, and s 3 = r(α 3 ) = 1 + α 0 + α = α 1, where α is a primitive element of GF (3). If X 1 and X are the error locations, then s 1 = α = X 1 + X, s 3 = α 1 = X 3 1 + X 3. From the above, we get X 1 + X = α and X 1 X = α 8. Hence, X 1 and X are roots of the quadratic equation q(x) = x + α x + α 8. No element in GF (3) is a root of q(x). Hence, the bounded-distance secoder fails. (More than errors must have occured) 5. C is a t-error correcting narrow-sense BCH code of length n = m 1. If α is a primitive element of GF ( m ), then {α, α,...α t } are zeros of the code C. Since l = n/(t + 1) and t + 1 = n/l, alpha t+1 is of order l (a primitive l-th root of unity). Therefore, the roots of x l + 1 are 1, α t+1, α (t+1), α 3(t+1),, α (l 1)(t+1), or x l + 1 = (x + 1)(x + α t+1 )(x + α (t+1) ) (x + α (l 1)(t+1) ). Now, since α is a primitive n-th root of unity, Therefore, x n + 1 = (x + 1)(x + α)(x + α ) (x + α n 1 ). a(x) = xn + 1 x l + 1 = (xn l + x n l +... + x l + 1) is a polynomial of degree n 1 with α, α,...α t as zeros. Therefore, a(x) is a codeword of C. Weight of the codeword, a(x) = 1 + x l + x l +... + x tl is t + 1. Therefore, the minimum distance of the code C is equal to t + 1.

6. C is a length-n BCH code with {α t,...α 1, 0, α,...α t } as zeros. (a) The number of consecutive zeros is t + 1. By the BCH bound, minimum distance of C is bounded as d min (t + ). (b) If t is odd, t + 1 will be even, and α (t+1) will be included in the conjugate set of α (t+1)/, where α (t+1)/ {α t,...α 1, 0, α,...α t }. Therefore, α (t+1) will also be a zero of C. Similarly, α (t+1) will also be a zero of C. (c) If t is odd, total number of consecutive zeros is (t + 3). Thus, d min (t + 4). 7. The PGZ decoder could be used here. We will present a different solution. The primitive, narrow sense, 3-error correcting (15, 5) BCH code is used over BSC. The received vector [000001101000100] is represented as r(x) = x 5 + x 6 + x 8 + x 1. The generator polynomial of the (15, 5) BCH code is g(x) = 1 + x + x + x 4 + x 5 + x 8 + x 10. Dividing r(x) by g(x), r(x) = (x + 1)g(x) + (x 3 + x + 1). Notice that (x +1)g(x) is a codeword that is a distance 3 away from r(x). Since the codeword has minimum distance 7, the closest codeword is ĉ(x) = r(x)+(x 3 +x+1), or [110101101000100]. How will you generalize this method? Why did this work? To know more, read about error-trapping decoders for cyclic codes. 8. Consider the -error correcting RS code over GF (8). Let α be a primitive element of GF (8). (a) n = 7; (n k) = t = 4 k = 3; Minimum distance, d = t + 1 = 5; Generator polynomial, g(x) = (x + α)(x + α )(x + α 3 )(x + α 4 ), = x 4 + α 3 x 3 + x + αx + α 3. To encode the vector [1 α α ], m(x) = 1 + αx + α x and x (n k) m(x) = x 4 m(x) = x 4 + αx 5 + α x 6. Dividing x 4 m(x) by g(x), x 4 m(x) = g(x)(α x + α 6 x + 1) + (α 6 x 3 + α 5 x + α 4 x + α 3 ). Thus, parity to be appended with the message is given by p(x) = α 6 x 3 + α 5 x + α 4 x + α 3. Finally, the codeword is [α 3 α 4 α 5 α 6 1 α α ]. (b) The binary-expanded code is a (1, 9, 5) code. (c) r(x) = x+αx +α x 3 +α 3 x 4 +x 5. Using the PGZ decoder, it can be verified that the number of errors that occured is, the error locations are 1 and 3, and error magnitudes are α and α 6, respectively. Thus, the error polynomial is e(x) = αx + α 6 x 3, and ĉ(x) = r(x) + e(x) = α 3 x + αx + x 3 + α 3 x 4 + x 5. 9. Consider the -error correcting, narrow-sense, RS code over GF (16). Let α be the primitive element of GF (16). (a) Generator polynomial, g(x) = (x + α)(x + α )(x + α 3 )(x + α 4 ); Check polynomial, h(x) = (x n + 1)/g(x) = (x + α 5 )(x + α 6 )...(x + α 14 ). (b) Parity check metrix H is given by, H = 1 α α... α 14 1 α α 4... α 8 1 α 3 α 6... α 4 1 α 4 α 8... α 56 3

(c) The vector [α 6 α 1 α 9 α 1 000α 8 000α 10 αα 13 α] is decoded using the PGZ decoder. It can be verified that the number of errors that occured is 1, error location is 7, and the error magnitude is α 8. Thus the decoded codeword is ĉ = [α 6 α 1 α 9 α 1 0000000α 10 αα 13 α]. 10. In general, an RS code of length n = ( m 1) and error-correcting capability t will have t consecutive zeros, {α l, α (l+1)..., α (l+t 1) }. The generator polynomial is g(x) = (x + α l )(x + α (l+1) )...(x + α (l+t 1) ), and the check polynomial h(x) will have (n t) consecutive roots, namely {α (l+t), α (l+t+1)..., α (l+n 1) }. Therefore, h(x) = (x + α (l+t) )(x + α (l+t+1) )..(x + α (l+n 1) ). Hence, the generator polynomial of the dual code is Thus the roots of g(x) are g(x) = x (n t) h(x 1 ) = (1 + α (l+t) x)(1 + α (l+t+1) x)..(1 + α (l+n 1) x). {α (l+t), α (l+t+1)..., α (l+n 1) }, which is a set of (n t) consecutive roots. Thus, the dual of an RS(n, k, t + 1) code is also an RS code. The dual is an RS(n, t, n t + 1) code. 11. (a) We show that the binary-expanded version of (n = ( m 1), k, d) RS code over GF ( m ) is linear. The binary-expanded version of a RS code consists of the binary expansions of all the codewords of the RS code (expanded using some basis). Since the RS code itself is linear, the binary expanded version will also be linear (Addition in GF ( m ) itself is defined using the vector notation of the elements of GF ( m ) over GF () using a particular basis) (b) Example given in class 1. We show that the ( m 1, k, d) RS code contains the binary BCH code of designed distance d as a subcode. Let α be a primitive element of GF ( m ). The zeros of the ( m 1, k, d) RS code are The generator polynomial of the RS code is Z rs = {α, α,...α d 1 }. g rs (x) = (x + α)(x + α )...(x + α d 1 ). The zeros of the binary BCH code of length n = m 1 and designed distance d are Z bch = C α C α C α d 1}, where C α i denotes all the conjugates of α i. Hence, the generator polynomial of the BCH code is g bch (x) = LCM{M α (x), M α (x),..., M α d 1(x)}, where M α i is the minimal polynomial of α i. Since Z rs Z bch, g rs (x) divides g bch (x) or g bch (x) = a(x)g rs (x). Any codeword of the BCH code can be written as 13. (a) c bch (x) = m(x)g bch (x) = m(x)a(x)g rs (x), which belongs to the RS code. Thus, the binary BCH code is a subcode of the RS code. H = ( ) 1 0 1 α α... α 14 0 1 1 α α 4... α 8 Let c = [c 0 c 1 c c 16 ] C, the code over GF(16) with parity-check matrix H, be a nonzero codeword. We will try to find the minimum weight of a nonzero codeword by considering several cases. 4

i. case 1: c 0 = c 1 = 0: Then wt(c) =wt([c c 16 ]) and [ ] 1 α α... α 14 1 α α 4... α 8 [c c 16 ] T = 0. Using the BCH bound in the above equation, we see that wt([c c 16 ] 3. wt(c) 3. ii. case : c 0 = 0, c 1 0: Then wt(c) = 1+wt([c c 16 ]) and Hence, (b) [1 α α 14 ][c c 16 ] T = 0. From the above equation, we see that wt([c c 16 ]. Hence, wt(c) 3. iii. case 3: c 0 0, c 1 = 0: Then wt(c) = 1+wt([c c 16 ]) and [1 α α 8 ][c c 16 ] T = 0. From the above equation, we see that wt([c c 16 ]. Hence, wt(c) 3. iv. case 4: c 0 0, c 1 0: Then wt(c) = +wt([c c 16 ]) and [1 α α 14 ][c c 16 ] T 0. From the above equation, we see that wt([c c 16 ] 1. Hence, wt(c) 3. Thus, minimum distance d 3. Since c = [11100000000000000] is a valid codeword, d = 3. H = 1 0 0 1 α α... α 14 0 1 0 1 α α 4... α 8 0 0 1 1 α 3 α 6... α 4 case (1): Let c = [0 0 0 c 1 ]. From, the given parity check matrix, it is clear that c 1 has to be a codeword of the (15, 1, 4) RS code if c is to belong to the given code. Thus minimum weight possible for such codewords is 4. case (): Let c = [0 0 k c ], where k is some non-zero element of GF(16). From the structure of the given parity check matrix, c (x) has α and α as zeros. Thus, c alone has minimum weight at least 3. Thus the whole vector c has minimum weight 3 + 1 = 4. case (3): Let c = [k 0 0 c 3 ]. A similar argument as in case () implies that c 3 (x) has α and α 3 as roots. The minimum weight of the entire vector is 3 + 1 = 4. case (4): Let c = [0 k 0 c 4 ]. Here c 4 (x) has α and α 3 as roots. The minimum weight of c 4 (x) can be seen to be 3 using a generalized definition of RS codes over GF( m ). In general, if a cyclic code over GF( m ) has (d 1) equispaced roots, i.e. of the form {α, α (1+r),...α (1+r(d 1) } (r relatively prime to n), rather than (d 1) consecutive roots, the BCH bound still holds. Thus, the whole vector c has minimum weight 3 + 1 = 4. Another argument for case (4): Since [ ] 1 α α... α 14 1 α 3 α 6... α 4 c 4 = 0, we see that wt(c 4 ). We will argue by contradiction that wt(c 4 ). Supposing wt(c 4 ) =, we have from the above equation that [ ] α i α j x = 0 α 3i α 3j has a nonzero solution for some i j. But determinant of the matrix in the LHS above is seen to be α i+3j + α j+3i = α i+j (α i + α j ), = α i+j (α i + α j ) 0. 5

This results in a contradiction and wt(c 4 ) 3. Thus minimum weight of the entire vector is at least 4. From all the above cases, minimum distance of the given code is at least 4. Since [11110 0] is a codeword, d = 4. 14. C is a (n = m 1, k, d) RS code with zeros {α, α,...α d 1 }, where α is a primitive element of GF ( m ). Length of Ĉ is clearly m and dimension is k (the same as C, since it contains the same total number of codewords). To prove the minimum distance of the new code is (d+1), it is enough to prove that all minimum weight codewords have a non-zero extended component u n+1. Consider a codeword of C u(x) = m(x)g(x). Suppose u(x) has weight d. Then, u n+1 = u 1 + u +.. + u n = u(1) = m(1)g(1), and u n+1 = 0 m(1)g(1) = 0. Since g(1) 0, m(1) = 0. But if m(1) = 0, then m(x) = m 1 (x)(x+ 1), and u(x) = m(x)g(x) = m 1 (x)(x + 1)g(x) u(x) has d consecutive zeros {1, α,, α d 1 }, which implies that u(x) has a minimum weight of (d + 1) resulting in a contradiction. Thus, m(1) 0, Thus u n+1 0 when u(x) has weight d. Thus, the minimum distance of the new extended code is (d + 1). 15. Length of the new code is clearly (n + ). Since the matrix H has column rank (equals row rank) n k (maximum possible), the column rank and row rank of the new parity-check matrix remain n k. Hence, the dimension of the new code is (n + ) (n k) = k +. To prove minimum distance is d, we consider several cases. case (1): Let c = [k 0 c 1 ], where k is a non-zero element of GF ( m ). c 1 has zeros {α, α,...α d }. Thus weight of c 1 (d + 1) = (d 1). Thus the weight of the vector c is at least d. case (): Let c = [0 k c ], where k is a non-zero element of GF ( m ). c has zeros {α, α 3,...α d 1 }. Since the set of zeros form a set of (d ) consecutive roots, weight of c (d + 1) = (d 1), Thus the weight of the vector c is at least d. case (3): Let c = [k 1 k c ], where k 1, k are non-zero elements of GF( m ). c has zeros {α, α 3,...α d }. Since the set of zeros form a set of (d 3) consecutive roots, weight of c (d 3 + 1) = (d ), Thus the weight of the vector c is at least d. case (4): Let c = [0 0 c 3 ]. Then c 3 is a codeword of C and has minimum weight d. Thus the vector c also has weight at least d. From the cases given above, it can be inferred that the minimum weight of the new code is equal to d. 16. Try this on your own using the hints. 6