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

Similar documents
5.0 BCH and Reed-Solomon Codes 5.1 Introduction

1 Vandermonde matrices

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

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

Reed-Solomon codes. Chapter Linear codes over finite fields

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

A 2-error Correcting Code

Chapter 6. BCH Codes

EE512: Error Control Coding

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

Irreducible Polynomials. Finite Fields of Order p m (1) Primitive Polynomials. Finite Fields of Order p m (2)

ELEC-E7240 Coding Methods L (5 cr)

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)

IN this paper, we will introduce a new class of codes,

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

On the Construction and Decoding of Cyclic LDPC Codes

Chapter 6 Lagrange Codes

ERROR CORRECTING CODES

RON M. ROTH * GADIEL SEROUSSI **

Cyclic codes: overview

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

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

Open problems on cyclic codes

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

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

Information Theory. Lecture 7

Proof: Let the check matrix be

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

Error Correction Review

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

4F5: Advanced Communications and Coding

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

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

MATH 291T CODING THEORY

7.1 Definitions and Generator Polynomials

Lecture 12: November 6, 2017

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

Constructions of Nonbinary Quasi-Cyclic LDPC Codes: A Finite Field Approach

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

The Dimension and Minimum Distance of Two Classes of Primitive BCH Codes

Section 3 Error Correcting Codes (ECC): Fundamentals

CONSTRUCTION OF QUASI-CYCLIC CODES

Cyclic Codes from the Two-Prime Sequences

arxiv: v1 [cs.it] 12 Nov 2015

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

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

EE512: Error Control Coding

ECEN 604: Channel Coding for Communications

Arrangements, matroids and codes

Constructions of Optimal Cyclic (r, δ) Locally Repairable Codes

Duadic Codes over Finite Commutative Rings

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

Coding Theory. Ruud Pellikaan MasterMath 2MMC30. Lecture 11.1 May

Berlekamp-Massey decoding of RS code

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

Lecture 12. Block Diagram

Part III. Cyclic codes

: Error Correcting Codes. October 2017 Lecture 1

The Golay codes. Mario de Boer and Ruud Pellikaan

ECE8771 Information Theory & Coding for Digital Communications Villanova University ECE Department Prof. Kevin M. Buckley Lecture Set 2 Block Codes

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

PAPER A Low-Complexity Step-by-Step Decoding Algorithm for Binary BCH Codes

Error Detection & Correction

REED-SOLOMON CODE SYMBOL AVOIDANCE

PAijpam.eu CONVOLUTIONAL CODES DERIVED FROM MELAS CODES

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

Lecture 3: Error Correcting Codes

Code-Based Cryptography Error-Correcting Codes and Cryptography

3. Coding theory 3.1. Basic concepts

MATH 291T CODING THEORY

Codes over Subfields. Chapter Basics

Error Detection, Correction and Erasure Codes for Implementation in a Cluster File-system

Error Correction Methods

ECEN 5682 Theory and Practice of Error Control Codes

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

: Error Correcting Codes. November 2017 Lecture 2

SPHERE PACKINGS CONSTRUCTED FROM BCH AND JUSTESEN CODES

Design of Strongly Secure Communication and Computation Channels by Nonlinear Error Detecting Codes

An introduction to linear and cyclic codes

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

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)

REED-SOLOMON ENCODING AND DECODING

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

Construction X for quantum error-correcting codes

Extending and lengthening BCH-codes

Some error-correcting codes and their applications

Chapter 9: BCH, Reed-Solomon, and Related Codes

Codes used in Cryptography

EE 229B ERROR CONTROL CODING Spring 2005

Error Correcting Codes Questions Pool

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

Algebraic Soft-Decision Decoding of Reed-Solomon Codes Using Bit-level Soft Information

Secure RAID Schemes from EVENODD and STAR Codes

Direct Construction of Recursive MDS Diffusion Layers using Shortened BCH Codes. Daniel Augot and Matthieu Finiasz

Cyclic Codes. Chapter Basics

CYCLIC SIEVING FOR CYCLIC CODES

MATH32031: Coding Theory Part 15: Summary

Self-Dual Cyclic Codes

The Structure of 1-Generator Quasi-Twisted Codes and New Linear Codes

Correcting Codes in Cryptography

Transcription:

S-723410 BCH and Reed-Solomon Codes 1 S-723410 BCH and Reed-Solomon Codes 3 Background The algebraic structure of linear codes and, in particular, cyclic linear codes, enables efficient encoding and decoding algorithms and fast implementations BCH (from the names of Bose, Ray-Chaudhuri, and Hocquenghem) and Reed-Solomon codes are even more powerful algebraic codes Reed-Solomon codes can be described as certain nonbinary BCH codes (they are, however, discussed separately, as Reed-Solomon codes have some interesting properties that are not found in other BCH codes) The BCH Bound Theorem 8-1 Let C be a q-ary (n, k) cyclic code with generator polynomial g(x) Let m be the order of q modulo n (GF(q m ) is thus the smallest extension field of GF(q) that contains a primitive nth root of unity), and let α be a primitive nth root of unity Select g(x) to be a minimal-degree polynomial in GF(q)[x] such that g(α b ) = g(α b+1 ) = = g(α b+δ 2 ) = 0 for some integers b 0 and δ 1 (so g(x) has δ 1 consecutive powers of α as zeros) Now the code C defined by g(x) has minimum distance d min δ The parameter δ in this theorem is the design distance of the BCH code defined by g(x) S-723410 BCH and Reed-Solomon Codes 2 S-723410 BCH and Reed-Solomon Codes 4 Minimum Distance of Cyclic Codes When constructing an arbitrary cyclic code, there is no guarantee as to the resulting minimum distance An exhaustive computer search is often needed to find the minimum-weight codewords of a linear code and thereby the minimum distance BCH codes, on the other hand, take advantage of a useful result that ensures a lower bound on the minimum distance given a particular constraint on the generator polynomial This result is known as the BCH bound Parity Check Matrix for BCH Code The following matrix can be used as a parity check matrix for a BCH code from Theorem 8-1: 1 α b α 2b α (n 1)b 1 α b+1 α 2(b+1) α (n 1)(b+1) 1 α b+δ 3 α 2(b+δ 3) α (n 1)(b+δ 3) 1 α b+δ 2 α 2(b+δ 2) α (n 1)(b+δ 2) (Note: The first column can be written as α 0 b, α 0 (b+1), )

S-723410 BCH and Reed-Solomon Codes 5 S-723410 BCH and Reed-Solomon Codes 7 Design Procedure for BCH Codes To construct a t-error-correcting q-ary BCH codes of length n: 1 Find a primitive nth root of unity α GF(q m ), where m is minimal 2 Select δ 1 = 2t consecutive powers of α, starting with α b for some nonnegative integer b 3 Let g(x) be the least common multiple of the minimal polynomials for the selected powers of α with respect to GF(q) (Each of the minimal polynomials should appear only once in the product) Example: Binary BCH Codes of Length 31 (1) Let α be a root of the primitive polynomial x 5 + x 2 + 1 GF(2)[x] Then α is a primitive element in GF(32), so these BCH codes are primitive The cyclotomic cosets and minimal polynomials are C 0 = {0} M 0 (x) = x + 1, C 1 = {1, 2, 4, 8, 16} M 1 (x) = x 5 + x 2 + 1, C 3 = {3, 6, 12, 24, 17} M 3 (x) = x 5 + x 4 + x 3 + x 2 + 1, C 5 = {5, 10, 20, 9, 18} M 5 (x) = x 5 + x 4 + x 2 + x + 1, C 7 = {7, 14, 28, 25, 19} M 7 (x) = x 5 + x 3 + x 2 + x + 1, C 11 = {11, 22, 13, 26, 21} M 11 (x) = x 5 + x 4 + x 3 + x + 1, C 15 = {15, 30, 29, 27, 23} M 15 (x) = x 5 + x 3 + 1 S-723410 BCH and Reed-Solomon Codes 6 S-723410 BCH and Reed-Solomon Codes 8 Types of BCH Codes narrow-sense BCH code with b = 1 primitive BCH code with n = q m 1 for some positive integer m (the nth root of unity α is a primitive element in GF(q m )) A list of the generator polynomials for binary, narrow-sense, primitive BCH codes of lengths 7 through 255 can be found in [Wic, Appendix E] Example: Binary BCH Codes of Length 31 (2) A narrow-sense one-error-correcting code: Now b = 1 and δ = 3, so g(x) must have α and α 2 as zeros The minimal polynomial of both α and α 2 is M 1 (x), so the generator polynomial is g(x) = LCM(M 1 (x), M 2 (x)) = M 1 (x) = M 2 (x) = x 5 + x 2 + 1 Since deg(g(x)) = 5, the dimension of the code is 31 5 = 26, so g(x) defines a (31, 26) binary single-error-correcting BCH code

S-723410 BCH and Reed-Solomon Codes 9 S-723410 BCH and Reed-Solomon Codes 11 Example: Binary BCH Codes of Length 31 (3) BCH Codes: Some Remarks A parity check matrix for the constructed code has the following general form: H = 1 α α29 α 30 1 α 2 α 27 α 29 Since any binary polynomial having α as a zero must also have the other conjugates as zeros (including α 2 ), the matrix has redundant rows, so the second row may be deleted Note: This code is the binary Hamming code of length 31 The true minimum distance may be larger than the design distance We want to maximize the dimension (and therefore the rate) with a given minimum distance Therefore, it is sometimes worth considering codes that are not narrow-sense (b > 1) The weight distributions for most BCH codes are not known The weight distributions for all double- and triple-error-correcting binary primitive BCH codes have been found S-723410 BCH and Reed-Solomon Codes 10 S-723410 BCH and Reed-Solomon Codes 12 Example: Binary BCH Codes of Length 31 (4) A narrow-sense two-error-correcting code: Now b = 1 and δ = 5, so g(x) must have α, α 2, α 3, and α 4 as zeros The generator polynomial is g(x) = LCM(M 1 (x), M 2 (x), M 3 (x), M 4 (x)) = M 1 (x)m 3 (x) = (x 5 + x 2 + 1)(x 5 + x 4 + x 3 + x 2 + x + 1) = x 10 + x 9 + x 8 + x 6 + x 5 + x 3 + 1 Since deg(g(x)) = 10, the dimension of the code is 31 10 = 21, so g(x) defines a (31, 21) binary double-error-correcting BCH code Some trends: Reed-Solomon Codes 1 For a fixed alphabet GF(q), the cardinality of the cyclotomic cosets modulo n is generally smaller for primitive codes (n = q m 1) 2 Large alphabets generally lead to smaller cyclotomic cosets BCH codes of length n = q 1 over GF(q) are called Reed-Solomon codes

S-723410 BCH and Reed-Solomon Codes 13 S-723410 BCH and Reed-Solomon Codes 15 Constructing Reed-Solomon Codes We want to construct a t-error-correcting code of length q 1 over GF(q) 1 By Theorem 2-12, there exists a required primitive (q 1)th root of unity α in GF(q) 2 We want to construct the cyclotomic cosets modulo q 1 with respect to GF(q) Since q 1 (mod q 1), we have aq s a (mod q 1), so all cyclotomic cosets have one element {a} and the associated minimal polynomials are of the form x α a The generator polynomial of a t-error correcting code is then Example: Reed-Solomon Code over GF(8) (2) Since the generator polynomial has degree 4, we have a (7, 3) code over GF(8) and the following parity check matrix: 1 α α 2 α 3 α 4 α 5 α 6 1 α 2 α 4 α 6 α α 3 α 5 H = 1 α 3 α 6 α 2 α 5 α α 4 1 α 4 α α 5 α 2 α 6 α 3 g(x) = (x α b )(x α b+1 ) (x α b+2t 1 ) S-723410 BCH and Reed-Solomon Codes 14 S-723410 BCH and Reed-Solomon Codes 16 Example: Reed-Solomon Code over GF(8) (1) Let α be a root of the primitive binary polynomial x 3 + x + 1 and therefore a primitive 7th root of unity (The elements of GF(8) are then 0, 1, α, α 2, α 3 = α + 1, α 4 = α 2 + α, α 5 = α 2 + α + 1, and α 6 = α 2 + 1) We construct a 2-error-correcting code Then 2t = 4, and a narrow-sense generator polynomial is g(x) = (x α)(x α 2 )(x α 3 )(x α 4 ) = x 4 + α 3 x 3 + x 2 + αx + α 3 Minimum Distance of Reed-Solomon Codes As the following theorem shows, we know the minimum distance of Reed-Solomon codes! Theorem 8-2 An (n, k) Reed-Solomon code has minimum distance n k + 1 Proof: Since the generator polynomial g(x) is the product of δ 1 minimal polynomials of the form x α a, its degree is δ 1 As we also know that the degree of g(x) is n k, we get that the minimum distance is at least δ = n k + 1 The result now follows, since by the Singleton bound (Theorem 4-10), the minimum distance is at most n k + 1

S-723410 BCH and Reed-Solomon Codes 17 Maximum Distance Separable Codes An (n, k) code that satisfies the Singleton bound with equality is called maximum distance separable (MDS) MDS codes have a number of interesting properties If C is MDS, so is its dual C Any combination of k coordinates in an MDS code may be used as message coordinates in a systematic representation The weight distribution of MDS codes is known, see [Wic, Theorem 8-5] Punctured and shortened MDS codes are MDS S-723410 BCH and Reed-Solomon Codes 18 Decoding BCH and Reed-Solomon Codes The first explicit decoding algorithm for binary BCH codes was described by Peterson in 1960 Peterson s algorithm is useful only for correcting small numbers of errors Berlekamp introduced the first truly efficient decoding algorithm for both binary and nonbinary BCH codes in 1967 This was further developed by Massey and is usually called the Berlekamp-Massey decoding algorithm These and other decoding algorithms for BCH codes are considered in [Wic, Ch 9]