EE512: Error Control Coding

Similar documents
EE512: Error Control Coding

Cyclic codes: overview

ECEN 604: Channel Coding for Communications

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)

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.

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

EE 229B ERROR CONTROL CODING Spring 2005

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

Information Theory. Lecture 7

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

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

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

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

7.1 Definitions and Generator Polynomials

Homework 8 Solutions to Selected Problems

Finite Fields. Mike Reiter

3. Coding theory 3.1. Basic concepts

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

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

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

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

Mathematics for Business and Economics - I. Chapter 5. Functions (Lecture 9)

: Error Correcting Codes. November 2017 Lecture 2

Math 512 Syllabus Spring 2017, LIU Post

Mathematical Foundations of Cryptography

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

ERROR CORRECTING CODES

LECTURE NOTES IN CRYPTOGRAPHY

5.0 BCH and Reed-Solomon Codes 5.1 Introduction

Chapter 4 Finite Fields

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

Homework 9 Solutions to Selected Problems

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

1 Vandermonde matrices

Fault Tolerance & Reliability CDA Chapter 2 Cyclic Polynomial Codes

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

The Golay codes. Mario de Boer and Ruud Pellikaan

Chapter 5. Cyclic Codes

MATH32031: Coding Theory Part 15: Summary

Finite Fields. SOLUTIONS Network Coding - Prof. Frank H.P. Fitzek

MATH 291T CODING THEORY

Rings. EE 387, Notes 7, Handout #10

Class Notes; Week 7, 2/26/2016

Repeated-Root Self-Dual Negacyclic Codes over Finite Fields

MTH310 EXAM 2 REVIEW

MATH 291T CODING THEORY

Polynomials. Chapter 4

A family Of Cyclic Codes Over Finite Chain Rings

Sequences, DFT and Resistance against Fast Algebraic Attacks

Chapter 4. Remember: F will always stand for a field.

EE512: Error Control Coding

+ 1 3 x2 2x x3 + 3x 2 + 0x x x2 2x + 3 4

Section IV.23. Factorizations of Polynomials over a Field

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

WEIGHT DISTRIBUTIONS OF SOME CLASSES OF BINARY CYCLIC CODES

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

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

Quasi-cyclic codes. Jay A. Wood. Algebra for Secure and Reliable Communications Modeling Morelia, Michoacán, Mexico October 12, 2012

Discrete Mathematics and Probability Theory Spring 2016 Rao and Walrand Discussion 6B Solution

Mathematics Department

Construction X for quantum error-correcting codes


Section 3 Error Correcting Codes (ECC): Fundamentals

Duadic Codes over Finite Commutative Rings

be any ring homomorphism and let s S be any element of S. Then there is a unique ring homomorphism

Math 312/ AMS 351 (Fall 17) Sample Questions for Final

Solution to Set 7, Math 2568

Groups, Rings, and Finite Fields. Andreas Klappenecker. September 12, 2002

1. Let r, s, t, v be the homogeneous relations defined on the set M = {2, 3, 4, 5, 6} by

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

: Coding Theory. Notes by Assoc. Prof. Dr. Patanee Udomkavanich October 30, upattane

ϕ : Z F : ϕ(t) = t 1 =

Skew Cyclic Codes Of Arbitrary Length

Polynomial Rings. i=0

Idempotent Generators of Generalized Residue Codes

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

Linear Feedback Shift Registers

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

Cyclic codes. I give an example of a shift register with four storage elements and two binary adders.

MS 2001: Test 1 B Solutions

Advanced Higher Mathematics for INFOTECH Final exam 28. March 2012

Lecture 14: Hamming and Hadamard Codes

Fundamental Theorem of Algebra

Part III. Cyclic codes

Module MA3411: Abstract Algebra Galois Theory Michaelmas Term 2013

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

Error Detection & Correction

Rings. Chapter Definitions and Examples

Resultants. summary and questions. December 7, 2011

Hamming codes and simplex codes ( )

A Mass Formula for Cyclic Self-Orthogonal Codes

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

Some Open Problems on Quasi-Twisted and Related Code Constructions and Good Quaternary Codes

Section VI.33. Finite Fields

MODEL ANSWERS TO HWK #10

March Algebra 2 Question 1. March Algebra 2 Question 1

A Brief Encounter with Linear Codes

Polynomial Rings. (Last Updated: December 8, 2017)

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

Linear Block Codes. Saravanan Vijayakumaran Department of Electrical Engineering Indian Institute of Technology Bombay

Transcription:

EE512: Error Control Coding Solution for Assignment on Cyclic Codes March 22, 2007 1. A cyclic code, C, is an ideal genarated by its minimal degree polynomial, g(x). C = < g(x) >, = {m(x)g(x) : m(x) is a message polynomial of degree k}. We write the given code in polynomial notation with the basis {1, x, x 2, x 3 }, 2. c = [0011010]. In polynomial form, C(x) = {0, x + x 3, 1 + x 2, 1 + x + x 2 + x 3 }, = {0, x(1 + x 2 ), 1 + x 2, (1 + x)(1 + x 2 )}, = < 1 + x 2 >. c(x) = x 2 + x 3 + x 5 = m(x)g(x) for some m(x). Since g(x) (x n + 1), we notice that both c(x) and (x n + 1) have g(x) as a common factor. To get the smallest possible cyclic code, we need a g(x) of largest possible degree. So we let Euclid s algorithm: g(x) = gcd(x n + 1, c(x)), = gcd(x 7 + 1, x 2 + x 3 + x 5 ). (a) Let us assume we want to find the GCD of the polynomials a(x) and b(x) where deg(a(x)) deg(b(x)). (b) Let r 1 (x) = a(x), r 0 (x) = b(x). (c) If r i 1 (x) 0, divide r i 2 (x) by r i 1 (x) to get remainder r i (x) i.e. r i 2 (x) = q i (x)r i 1 (x) + r i (x) with deg(r i (x)) < deg(r i 1 (x)). (d) Repeat until r i (x) = 0. If r i (x) = 0, then r i 1 (x) = gcd(a(x), b(x)). GCD of x 7 + 1 and x 2 + x 3 + x 5 is found using Euclid s algorithm as follows: x 7 + 1 = (x 2 + 1)(x 5 + x 3 + x 2 ) + (x 4 + x 3 + x 2 + 1), x 5 + x 3 + x 2 = (x + 1)(x 4 + x 3 + x 2 + 1) + (x 3 + x + 1), x 4 + x 3 + x 2 + 1 = (x + 1)(x 3 + x + 1) + 0. Therefore, g(x) = gcd(x 7 1, x 2 + x 3 + x 5 ) = x 3 + x + 1. The smallest cyclic code contain c is C =< x 3 + x + 1 >. 3. One generator matrix of a (n, k) cyclic code with generator polynomial g(x) = g o +g 1 x+ +g r x r (r = n k) is as follows: g 0 g 1... g r 0 0... 0 0 g 0... g r 1 g r 0... 0 G =........ 0 0... g 0 g 1 g 2... g r 1

Claim: There exists a generator matrix such that columns {j + 1, j + 2,, j + k} mod n are linearly independent. Proof: In a cyclic code, any cyclic shift of a codeword is another valid codeword. Hence right shifting each row of G j times, we get an upper triangular matrix in columns {j +1, j +2,, j+k} mod n. This submatrix has full rank. Hence, we can take any consecutive k bits as message bits. 4. (a) n = 7, g(x) = 1 + x + x 3. All codewords of the binary cyclic code is listed using the generator matrix G = 1 1 0 1 0 0 0 0 1 1 0 1 0 0 0 0 0 1 1 0 1 Message bits m Codeword bits c 0000 0000000 0001 0001101 0010 0011010 0011 0010111 0100 0110100 0101 0111001 0110 0101110 0111 0111001 1000 1100101 1001 1100101 1010 1110010 1011 1111111 1100 1011100 1101 1010001 1110 1000110 1111 1001011 Table 1: Codeword table. (b) If f(x)g(x) = 0 in R 7 then f(x)g(x) = a(x)(x 7 + 1). We know that x 7 + 1 = g(x)h(x) with deg(h(x)) = 4. Also, f(x)g(x) x 7 + 1 = a(x). x 7 + 1 f(x)g(x) g(x)h(x) f(x)g(x) h(x) f(x) = f(x) = a(x)h(x), where a(x) is a polynomial of degree at most 2. 5. After simplification generator polynomial, g(x) = x 8 + x 7 + x 6 + x 4 + 1. A generator matrix is 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 G = 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0. 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 1 0 1 1 1 2

The parity check polynomial is calculated as follows: The generator polynomial for the dual is h(x) = x 15 + 1 x 8 + x 7 + x 6 + x 4 + 1, = x 7 + x 6 + x 4 + 1. g (x) = x k h(x 1 ), = 1 + x + x 3 + x 7. Therefore, a parity check matrix is 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 H = 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0. 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 6. The generator polynomial of an (n, k) cyclic code is a degree-(n k) factor of x n + 1. Therefore, for a given block length n, we have many choices for message length k. n Size of cyclotomic cosets Possible k 15 1,4,4,2,4 1 k 15 31 1,5,5,5,5,5,5 1,5,6,10,11,15,16,20,21,25,26,30,31 51 1,2,8,8,8,8,8,8 1,2,3,8,9,10,11,16,17,18,19, 24,25,26,27,32,33,34,35,40,41,42,43,48,49,50,51 Table 2: Possible dimensions for cyclic codes. 7. (a) A generator matrix for the code is G = [ α 1 0 0 α 1 ]. The codewords are listed in Table 3. (b) Over GF (4), x 3 + 1 factors into linear terms. Therefore, x 3 + 1 = (x + 1)(x + α)(x + α 2 ). Grouping the factors other than g(x), we get the check polynomial as follows: h(x) = x 2 + αx + α 2. The generator polynomial of C is g (x) = x k h(x 1 ) scaled to be in monic form, = α 2 x 2 h(x 1), g (x) = α + α 2 x + x 2. 3

Message bits Codeword Symbols over GF (4) Code bits over GF(2) Weight 00 000 000000 0 01 0α1 000110 2 0α 0α 2 α 001101 3 0α 2 01α 2 001011 3 10 α10 011000 2 11 αα 2 1 011110 4 1α ααα 010101 3 1α 2 α0α 2 010001 2 α0 α 2 α0 110100 3 α1 α 2 01 110010 3 αα α 2 1α 111001 4 αα 2 α 2 α 2 α 2 111111 6 α 2 0 110 101000 2 α 2 1 111 101010 3 α 2 α 10α 100001 2 α 2 α 2 1αα 2 100111 4 Table 3: Cyclic code over GF(4). (c) We make use of the result in 8a. The other generator polynomials for which x + α is a factor are g 1 (x) = (x + 1)(x + α) = x 2 + α 2 x + α, g 2 (x) = (x + α)(x + α 2 ) = x 2 + x + 1. Therefore, the cyclic codes which are contained in C are C 1 = < x 2 + α 2 x + α >, C 2 = < x 2 + x + 1 >. 8. (a) Suppose C 1 C 2. Then, the generator polynomial g 1 (x) C 1 C 2. Hence, g 1 (x) C 2, which can happen only if g 2 (x) g 1 (x). For the converse, suppose g 2 (x) g 1 (x). Let c 1 (x) C 1. Then, Therefore, C 1 C 2. c 1 (x) = m(x)g 1 (x), = m(x)a(x)g 2 (x), = d(x)g 2 (x) C 2. (b) If g 2 (x) g 1 (x), the zeros of C 2 will be a subset of the zeros of C 1. (c) Suppose Z is the set of zeros of C. The set of zeros of C is Z C mod n, where n is the blocklength and Z C = {0, 1, 2,, n 1} \ Z. If C C, then Z C mod n Z. 9. (a) Suppose the code is cyclic. Since k = 3, we see that the first row of G will be the generator polynomial, or g(x) = 1+x+x 2. By Euclid s algorithm, x 5 +1 = (x 3 +x 2 +1)(x 2 +x+1)+x. Therefore, g(x) does not divide x 5 + 1. Hence the code is not cyclic. 4

(b) Since the given matrix is a square matrix, we will first check whether the given matrix is full rank using Gauss Elimination. 1 1 1 0 0 0 1 1 1 0 G = 0 0 1 1 1 0 0 0 1 0 0 0 0 0 1 Generator matrix is a full rank matrix. Hence it is an identity code and cyclic. (c) Since k = 4, the generator polynomial should be g(x) = 1 + x + x 2. We can check that (x 2 + x + 1) x 6 + 1 = (x 3 + 1) 2 = ((x + 1)(x 2 + x + 1)) 2. Therefore, g(x) is a valid generator polynomial, and the code is cyclic. 10. If g(x) is a valid generator polynomial then g(x) x n + 1. By Euclid s algorithm x 21 + 1 = (x 11 + x 8 + x 7 + x 2 + 1)(x 10 + x 7 + x 6 + x 4 + x 2 + 1). Hence, g(x) is a valid generator polynomial for a (21, 11) cyclic code. Check polynomial for this code is h(x) = x 11 + x 8 + x 7 + x 2 + 1. 11. (a) Let c(x) = c 0 + c 1 x + + c n 1 x n 1. Since x + 1 is a factor of g(x), c(1) = 0, or c 0 + c 1 +... + c n 1 = 0. Since we are doing all operations over GF (2), the above is possible only when the code contains even weight codewords. (b) If x+1 is not a factor of g(x), x+1 is a factor of the check polynomial h(x) and the generator polynomial for the dual x k h(x 1 ). Therefore, all codewords of the dual code C have even weight. Hence, C contains the all-1s codeword. 12. To check that g (x) = x n k g(x 1 ) is a valid generator polynomial, we need to show that g (x) divides x n + 1. Now g(x)h(x) = x n + 1, g(x 1 )h(x 1) = x n + 1, x n g(x 1 )h(x 1) = x n (x n + 1), x n k g(x 1 )x k h(x 1) = 1 + x n, g (x)h (x) = 1 + x n. Hence, g (x) is a generator polynomial of a cyclic code C. Every codeword of C is a mirrorreflected version of a codeword of C. Hence, the minimum distance of C is d. 13. The ideal generated by the polynmial f(x) = 1 + x + x 2 + x 4 is C = {a(x)(1 + x + x 2 + x 4 a(x) GF (2)[x] (x 5 + 1)}. Factoring f(x) as f(x) = (x + 1)(x 3 + x 2 + 1), we see that x + 1 is the only common factor of f(x) with x 5 + 1. Hence, the generator polynomial of C is x + 1. 14. The answers are given in Table 4. 15. (a) C is an even-weight code. Hence, the all-1s codeword belongs to C (since the all-1s vector is orthogonal to all codewords in C, the dual of C). 5

Code Generator Polynomial Parity Check Polynomial C =< g(x) > g(x) h(x) C =< g(x) > x k h(x 1 ) x n k g(x 1 ) D =< h(x) > h(x) g(x) D =< h(x) > x n k g(x 1 ) x k h(x 1 ) Table 4: Code and its generator and check polynomial (b) For a given cyclic codeword, all cyclic shifts of the codeword belong to the code. By rightshifiting the codeword [001111111111000] three times, we get [000001111111111] C. Since the code is linear, addition of two codewords will also be a codeword. Hence, we get a new codeword c = [111110000000000] = [000001111111111] + [111111111111111] C. In polynomial notation, this new codeword is c(x) = 1 + x + x 2 + x 3 + x 4, which is the unique polynomial of degree 4 in the (15,11) cyclic code. Hence, the generator polynomial is g(x) = 1 + x + x 2 + x 3 + x 4. (c) For a message polynomial m(x) = x + 1, the code polynomial c(x) = (x + 1)g(x) = x 5 + 1. Hence d 2. We can rule out d = 1, since that will result in a dimension 15 identity code (why?). Hence, d = 2. 6