ERROR CORRECTING CODES

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

Math 512 Syllabus Spring 2017, LIU Post

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

7.1 Definitions and Generator Polynomials

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

Proof: Let the check matrix be

MATH Examination for the Module MATH-3152 (May 2009) Coding Theory. Time allowed: 2 hours. S = q

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)

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

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

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

Error Correction Review

Cyclic codes: overview

Information Theory. Lecture 7

3. Coding theory 3.1. Basic concepts

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

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

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

Orthogonal Arrays & Codes

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

Fully-parallel linear error block coding and decoding a Boolean approach

: Error Correcting Codes. November 2017 Lecture 2

MATH 291T CODING THEORY

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

Information redundancy

5.0 BCH and Reed-Solomon Codes 5.1 Introduction

EE512: Error Control Coding

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

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.

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

MATH 291T CODING THEORY

Codes over Subfields. Chapter Basics

A 2-error Correcting Code

Chapter 5. Cyclic Codes

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

Fault Tolerance & Reliability CDA Chapter 2 Cyclic Polynomial Codes

Lecture 12: November 6, 2017

Chapter 7. Error Control Coding. 7.1 Historical background. Mikael Olofsson 2005

Optimum Soft Decision Decoding of Linear Block Codes

Arrangements, matroids and codes

Cyclic Codes from the Two-Prime Sequences

: Error Correcting Codes. October 2017 Lecture 1

Cyclic Redundancy Check Codes

1 Vandermonde matrices

MATH32031: Coding Theory Part 15: Summary

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

CYCLIC SIEVING FOR CYCLIC CODES

Chapter 6. BCH Codes

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

MATH 433 Applied Algebra Lecture 22: Review for Exam 2.

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

MATH3302. Coding and Cryptography. Coding Theory

Hamming Codes 11/17/04

And for polynomials with coefficients in F 2 = Z/2 Euclidean algorithm for gcd s Concept of equality mod M(x) Extended Euclid for inverses mod M(x)

A Brief Encounter with Linear Codes

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

Lecture 3: Error Correcting Codes

ECEN 604: Channel Coding for Communications

Information Redundancy: Coding

Self-Dual Cyclic Codes

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

An Introduction to (Network) Coding Theory

Ma/CS 6b Class 25: Error Correcting Codes 2

Section 3 Error Correcting Codes (ECC): Fundamentals

Error-Correcting Codes

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

EE512: Error Control Coding

6.895 PCP and Hardness of Approximation MIT, Fall Lecture 3: Coding Theory

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

The extended Golay code

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

TC08 / 6. Hadamard codes SX


16.36 Communication Systems Engineering

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

ELEC 405/ELEC 511 Error Control Coding and Sequences. Hamming Codes and the Hamming Bound

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

ELEC3227/4247 Mid term Quiz2 Solution with explanation

PAijpam.eu CONVOLUTIONAL CODES DERIVED FROM MELAS CODES

Skew cyclic codes: Hamming distance and decoding algorithms 1

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

EE 229B ERROR CONTROL CODING Spring 2005

Definitions, Theorems and Exercises. Abstract Algebra Math 332. Ethan D. Bloch

Mathematics Department

Decoding Reed-Muller codes over product sets

9 THEORY OF CODES. 9.0 Introduction. 9.1 Noise

Reed-Solomon codes. Chapter Linear codes over finite fields

An Introduction to (Network) Coding Theory

PROBLEMS ON LINEAR ALGEBRA

Can You Hear Me Now?

2. Polynomials. 19 points. 3/3/3/3/3/4 Clearly indicate your correctly formatted answer: this is what is to be graded. No need to justify!

Error Correction and Trellis Coding

On cyclic codes of composite length and the minimal distance

Coding Theory and Applications. Linear Codes. Enes Pasalic University of Primorska Koper, 2013

ELEC 405/ELEC 511 Error Control Coding. Hamming Codes and Bounds on Codes

Algebraic Codes for Error Control

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

Error Detection and Correction: Hamming Code; Reed-Muller Code

Solutions to problems from Chapter 3

Lecture 12: Reed-Solomon Codes

Transcription:

ERROR CORRECTING CODES

To send a message of 0 s and 1 s from my computer on Earth to Mr. Spock s computer on the planet Vulcan we use codes which include redundancy to correct errors.

n q Definition. A linear code C is a vector subspace C of. Here q denotes the field with q elements. If the dimension of C as a vector space over q is k, we call C an [n,k]-code. Since all codes we consider are linear, we will drop the word "linear" and just call them "codes". Here q will be 2 mostly. Such codes are called "binary." If q=3, the code is "ternary. Definition. The Hamming weight of a codeword x is x = the number of components of x which are non-zero. The distance between is defined to be x-y.

Definition. If C is an [n,k] code such that the minimum distance of a non-zero code word from 0 is d, we say that C is an [n,k,d]-code. The following is part of Theorem 31.2, Gallian, p. 525. It assumes you decode a received vector as the nearest codeword using the Hamming distance. Theorem. If d = 2e+1, an [n,k,d]-code C corrects e or fewer errors. Proof. If x C is sent and u received, with at most e errors made, then u is closer to x than any other codeword y C. Here u is in the big vector space, not necessarily in the code C. It has errors. To prove u closer to x than y: e + d(u,y) d(u,x) +d(u,y) d(x,y) 2e+1, which implies d(u,y) e+1. 1st true since: u has distance at most e from x. 2nd is triangle inequality for Hamming distance (Gallian, p.524) Last true since 2e+1 = minimum distance between any 2 codeword in C. As d(u,x) e, we see x is closer to u than any other codeword y with y x, as we just showed that t d(u,y) e+1. So we decode d u as x, the correct answer.

More Definitions. Since an [n,k] binary code C is a k-dimensional vector space over 2, C has a k-element basis, we can form a matrix whose rows are the basis vectors. This is called a generator matrix G of the code C. A generator matrix of an [n,k] code is a kxn matrix with elements in 2. Codewords in C have the form vg, where v is a row vector with its k entries from 2. 2 Since C has more than one basis, it also has many generator matrices. The standard generator matrix has the form G = (I k A), where the first k columns are the kxk identity matrix I k. With the generating matrix in standard form, with no errors, decoding is easy, just take the first k entries of the code word.

A parity check matrix H of a [n,k] code C is a matrix with n columns and rank n-k such that x C if and only if x H = 0. (Most texts take transpose H instead.) If G = (I k A), then H A =. In k Parity check decoding is described in our text, pages 528-553. Next: Where does all our theory of finite fields come in?

Defn. A linear cyclic code is a linear code C with the property that if c=(c 0,c 1,...,c n-2,c n-1 )isacodewordthensois(c n-1,c 0,...,c n-3,c n-2 ). Let R denote the factor ring R = q [x]/<x n -1>. Represent elements of R by polynomials with coefficients in q of degree < n. Identify codeword c=(c 0,c 1,...,c n-2,c n-1 ) with c 0 +c 1 x+ +c n-1 x n-1. Theorem. A linear code C in R is cyclic if and only if it is an ideal in the ring R= q [x]/<x n -1>. Proof. First note that a subspace W of R is an ideal if xw W, because this x j W W, for all j=2,3,... Thus RW W. Now suppose that C is an ideal and c 0 +c 1 x+ +c n-1 x n-1 C. Then C contains x(c 0 + c 1 x + + c n-1 x n-1 ) = c 0 x + c 1 x 2 + + c n-1 x n = c n-1 + c 0 x + + c n-2 x n-1 (mod ( x n -1)). The last happens because x n is congruent to 1 modulo <x n -1>. So C is cyclic. Problem A. Suppose that C is cyclic, and show that C is an ideal.

Question. What are the ideals A in the ring R = F q [x]/<x n -1>? Answer. They are principal p ideals <g(x)>, where g(x) divides x n -1. We call g(x) the generator of A. If g(x) = c 0 + c 1 x + + c r x r has degree r, then the corresponding code is an [n,n-r]-code and a generator matrix for the code (as defined above) is the (n-r) n matrix: c c c c 0 1 2 0 1 r 1 0 r 2 r 1 r 0 0 0 0 c c c c 0 0 0 0 c c c c 0 0 0 0 c0 c1 c2 cr r r Problem B. Show that the code above has dimension n-r. Hint. Thecosetsofthevectorsg(x)x j, j=0,...,n-r-1, are linearly independent in the ring R. These vectors span the ideal A = <g(x)> since elements of A have the form f(x)g(x), for some polynomial f(x) of degree less than or equal to n-r-1.

Example 1. The Hamming [7, 4, 3]-code. x 7-1 = (x-1)(x 3 +x+1)(x 3 +x 2 +1) in 2 [x]. Take g(x) =x 3 +x+1 to generate our ideal I in R corresponding to the code. The codewords in C in are listed below: 7 2 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 1 0 1 1 1 0 1 1 0 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 0 0 1 0 1 0 0 0 1 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 0 1 1 1 0 0 1 0 1 0 0 0 1 1 1 0 1 1 1 0 0 1010001 1 0 0 0 1 0101110 0 1 1 1 0 Problem C. Explain why the listed code words are correct. A generator matrix of the preceding code is 1 1 0 1 0 0 0 0 1 1 0 1 0 0. 0 0 1 1 0 1 0 0 0 0 1 1 0 1 This is not the same as that used by Gallian, in Examples 1 and 9 pages 522 and 531.

Problem D. Explain why our Hamming [7,4,3] code is the same as that of Gallian, Examples 1 and 9, pages 522 and 531. Suppose g(x)h(x) = x n -1, in F 2 [x], with g(x) of degree r, the generator polynomial of a code C and h(x) of degree k=n-r. Then we get a parity check matrix for the code from the matrix of the polynomial l h(x) = h 0 +h 1 x+ +h k x k as follows h k 0 0 hk 1 hk 0 h0 h1 hk. 0 h 0 h k 1 0 0 h 0 Problem E. i) Show that the preceding matrix is indeed a parity - check matrix for our code with generator polynomial g(x) as described above. ii) Find the parity check matrix for the Hamming [7,4,3] code above.

There is a method for constructing codes that correct lots of errors called BCH codes. See Dornhoff and Hohn, Applied Modern Algebra, page 442 for the mathematical details. Gallian includes some history of the subject on pages 537 ff. Another reference is Vera Pless, Introduction to the Theory of Error-Correcting Codes. Recall that we obtained the Hamming [7,4,3] code by looking at the generator polynomial g(x) = x 3 +x+1. This is the minimal polynomial of an element g of 2 4 8 whose other roots are g and g. So we could say that any polynomial f(x) is in our code C iff f(g j )=0, j=1,2,4. For any polynomial whose roots include the roots of g(x) must be divisible by g(x). Definition. A primitive nth root of 1 in a field K is a solution g to g n = 1 such that g n 1, for 1 m<n. Theorem. (Bose-Chaudhuri and Hoquenghem - around 1960) Suppose g.c.d.(n,q)=1. Let g be a primitive nth root of 1in q m. Suppose the generator polynomial g(x) of a cyclic code of length n over q has g,g 2,..., g d-1 among its roots. Then the minimum distance of a code element from 0 is at least d. For a proof see Dornhoff and Hohn, pages 442-3.

A Reed-Solomon code is a BCH code with n=q-1. These codes are used by the makers of CD players, NASA,... These can be used to correct amazing numbers of errors. If you suppose q=2 8 so that n=255, a 5-error-correcting code has g(x) = (x-g)(x-g g 2 ) (x-g 10 ) of degree 10. Elements of 8 are 8-dimensional vectors over 2. This code can be used as a code of length 8*255=2040 over 2, which can correct any 33 consecutive errors. See Dornhoff and Hohn, p. 444. Feedback shift registers are of use in encoding and decoding cyclic codes.