Error Correction Review

Similar documents
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)

Fault Tolerance & Reliability CDA Chapter 2 Cyclic Polynomial Codes

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

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

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

Information redundancy

Chapter 6. BCH Codes

ELEC3227/4247 Mid term Quiz2 Solution with explanation

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

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

Lecture 12. Block Diagram

Cyclic codes: overview

Error Detection & Correction

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

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

Optical Storage Technology. Error Correction

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.

1 Reed Solomon Decoder Final Project. Group 3 Abhinav Agarwal S Branavan Grant Elliott. 14 th May 2007

EE512: Error Control Coding

A 2-error Correcting Code

ECEN 604: Channel Coding for Communications

ERROR CORRECTING CODES

VHDL Implementation of Reed Solomon Improved Encoding Algorithm

Error Correction and Trellis Coding

A Brief Encounter with Linear Codes

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

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

GF(2 m ) arithmetic: summary

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

Chapter 5. Cyclic Codes

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

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

The Golay codes. Mario de Boer and Ruud Pellikaan

A field F is a set of numbers that includes the two numbers 0 and 1 and satisfies the properties:

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

Dr. Cathy Liu Dr. Michael Steinberger. A Brief Tour of FEC for Serial Link Systems

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

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

5.0 BCH and Reed-Solomon Codes 5.1 Introduction

ECE 4450:427/527 - Computer Networks Spring 2017

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

Communications II Lecture 9: Error Correction Coding. Professor Kin K. Leung EEE and Computing Departments Imperial College London Copyright reserved

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

Error-correcting codes and Cryptography

: Error Correcting Codes. October 2017 Lecture 1

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

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

Algebra for error control codes

Berlekamp-Massey decoding of RS code

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

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)

3. Coding theory 3.1. Basic concepts

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

EECS Components and Design Techniques for Digital Systems. Lec 26 CRCs, LFSRs (and a little power)

Fields in Cryptography. Çetin Kaya Koç Winter / 30

VLSI Architecture of Euclideanized BM Algorithm for Reed-Solomon Code

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

Codes used in Cryptography

The Pennsylvania State University. The Graduate School. Department of Computer Science and Engineering

A quadratic expression is a mathematical expression that can be written in the form 2

1 Vandermonde matrices

2013/Fall-Winter Term Monday 12:50 Room# or 5F Meeting Room Instructor: Fire Tom Wada, Professor

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

Code-Based Cryptography Error-Correcting Codes and Cryptography

Chapter 3 Linear Block Codes

Error Correction Methods

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

EE 229B ERROR CONTROL CODING Spring 2005

Galois fields/1. (M3) There is an element 1 (not equal to 0) such that a 1 = a for all a.

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

8+4 0 mod (12), mod (12), mod (12), mod (12), mod (12).

The number of message symbols encoded into a

Chapter 4 Mathematics of Cryptography

Some math for embedded algorithms

1 Solving Algebraic Equations

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

Lecture 12: November 6, 2017

Physical Layer and Coding

: Error Correcting Codes. November 2017 Lecture 2

Mathematical Foundations of Cryptography

Notes 10: Public-key cryptography

Simplification of Procedure for Decoding Reed- Solomon Codes Using Various Algorithms: An Introductory Survey

Error Correction Code (1)

Decoding of the Five-Error-Correcting Binary Quadratic Residue Codes

Minimized Logic Gates Number Of Components In The Chien Search Block For Reed-Solomon (RS)

Decoding Algorithm and Architecture for BCH Codes under the Lee Metric

Alternant and BCH codes over certain rings

Chapter 6 Lagrange Codes

Decoding Procedure for BCH, Alternant and Goppa Codes defined over Semigroup Ring

Math 512 Syllabus Spring 2017, LIU Post

7.1 Definitions and Generator Polynomials

Combinational Logic. By : Ali Mustafa

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

A New Division Algorithm Based on Lookahead of Partial-Remainder (LAPR) for High-Speed/Low-Power Coding Applications

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

Chapter 7 Rational Expressions, Equations, and Functions

Intro to Rings, Fields, Polynomials: Hardware Modeling by Modulo Arithmetic

17 Galois Fields Introduction Primitive Elements Roots of Polynomials... 8

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

3x + 1 (mod 5) x + 2 (mod 5)

Transcription:

Error Correction Review A single overall parity-check equation detects single errors. Hamming codes used m equations to correct one error in 2 m 1 bits. We can use nonbinary equations if we create symbols from sequences of bits. E.g., four bits can represent 0,1,...,15. Nonbinary check equations can use more advanced arithmetic, such as mod 16.

Nonbinary Single Error Correcting Code The single check equation c 1 +c 2 + +c n = 0 allows detection of a single symbol error in a received n-tuple. Furthermore, the syndrome s defined by s = r 1 +r 2 + +r n indicates the magnitude of the error. If the error is in location i and the incorrect symbol is r i = c i +e i, then s = r 1 +r 2 + +r n = c 1 + +(c i +e i )+ +c n = e i. The syndrome tells exactly what should be subtracted from the incorrect symbol in order to obtain a codeword. What is not known is where the error is which symbol is wrong.

More Equations Needed A second equation is needed to identify the error location. The effect on syndrome of an error magnitude should be different for each location. A reasonable choice for this second equation: 1 c 1 + 2 c 2 + + n c n = 0. Now every valid codeword satisfies two equations: 1 c 1 + 1 c 2 + + 1 c n = 0 1 c 1 + 2 c 2 + + n c n = 0 We can derive encoding equations to express c 1,c 2 in terms of c 3,...,c n. Example: let symbols be 4-bit values with addition modulo 16. For n = 15, [ ] 1 1 1 1 H = 1 2 3 15 is check matrix for a code that can almost correct single symbols errors.

Decoding Procedure Suppose there is a single error of magnitude e i 0 in location i. The syndrome s = [s 0 s 1 ] can be expressed in terms of unknowns i and e i : n n s 0 = r j = e i + c j = e i s 1 = j=1 j=1 n jr j = ie i + j=1 n jc j = ie i j=1 We can determine e i and i from the syndrome equations: e i = s 0 i = ie i = s 1 e i s 0 Sadly, division is not always defined for modulo 16 arithmetic. E.g., suppose s 0 = 4, s 1 = 8. Then s 1 = is 0 mod 16 has four solutions: 2, 6, 10, 14. We cannot be certain where the single error is located.

Galois Field Arithmetic To make error location work, we define a new arithmetic for bit vectors. Addition is exclusive-or (binary addition without carry) Multiplication is determined multiplying by 2: bit shift with feedback. Example: multiplication in GF(16). 2 = 0010. 2 0010 = 0100 = 4 2 0100 = 1000 = 8 2 1000 = 0011 = 3 Fact: every nonzero 4-bit sequence is a power of 2.

2EC BCH code Let α = 2 and define two equations using α and α 3. The parity-check matrix is the following: [ ] 1 α α 2 α n 1 H = 1 α 3 α 6 α 3(n 1) Codewords defined by H are the polynomials c(x) with zeroes α and α 3. So every codeword is a multiple of the minimal polynomials of α and α 3. Therefore the number of check bits satisfies n k 2m.

Syndromes for 2EC BCH code Consider any error pattern of weight 2: e(x) = x i 1 +x i 2, 0 i 1 < i 2 < n Syndrome of r(x) has two partial syndrome components, S 3 : = r(α) = e(α) = α i 1 +α i 2 S 3 = r(α 3 ) = e(α 3 ) = α 3i 1 +α 3i 2 = (α i 1 ) 3 +(α i 2 ) 3, S 3 are known quantities in this system of equations; they are computed at run time. Partial syndromes can be computed by multiply-accumulate circuits. α α 3 m m r 0,...,r n 1 r 0,...,r n 1 S 3 Unknowns i 1 and i 2 appear in the exponent equations are transcendental.

2EC BCH decoding: change of variable Let us simplify the problem by a change of variables: X 1 = α i 1, X 2 = α i 2 This yields a system of algebraic equations of degree 3: = α i 1 +α i 2 = X 1 + X 2 S 3 = α 3i 1 +α 3i 2 = X1 3 + X3 2 X 1 and X 2 are called the error locators. Error locations are obtained from X 1,X 2 by taking logarithms to base α: i 1 = log α X 1 i 2 = log α X 2 The logarithms can be calculated using lookup tables or sequential search.

2EC BCH decoding: degree reduction We can replace the equation of degree 3: S 3 = X3 1 +X3 2 X 1 +X 2 = X 2 1 +X 1 X 2 +X 2 2 = (X 1 +X 2 ) 2 +X 1 X 2 = S 2 1 +X 1X 2 Next rewrite the two equations for X 1,X 2 to obtain a system of degree 2: X 1 +X 2 = X 1 X 2 = S 3 +S 2 1 = S 3 +S 3 1 In other words, from the partial syndromes,s 3 (known quantities) we can compute the sum and product of the unknowns X 1,X 2. We have obtained the coefficients of a quadratic polynomial whose zeroes are X 1,X 2.

2EC BCH decoding: polynomial equation Given the sum and product of X 1,X 2, we can construct the quadratic polynomial Λ R (x) whose zeroes are X 1 and X 2 : Λ R (x) = (x X 1 )(x X 2 ) = x 2 (X 1 +X 2 )x+x 1 X 2 = x 2 + x+ S 3 +S 3 1 = x 2 +Λ 1 x+λ 2 If there are two errors, then X 1 X 2. Therefore and the coefficient Λ 1 = = X 1 +X 2 0 Λ 2 = S 3 +S 3 1 is well defined and nonzero because X 1 0 and X 2 0.

2EC BCH decoding: other cases When there are two errors, the error locators are the zeroes of Λ R (x). Bit error locations can be found by evaluating Λ R (α i ) for i = 0,1,...,n 1. Quadratic formula cannot be used in GF2 m. However, there are efficient methods for factoring quadratic polynomials over GF2 m. What if fewer than two errors? If one error, the error pattern e(x) = x i 1 has syndrome components: = e(α) = α i 1 = X 1 S 3 = e(α 3 ) = α 3i 1 = X 3 1 In this case, S 3 = S 3 1 and Λ 2 = 0. X 1 is zero of Λ R (x) = x. When there is no error, = S 3 = 0. Λ R (x) = 1 has no zeroes.

2EC BCH code: decoding procedure summarized 1. Compute partial syndromes: = r(α), S 3 = r(α 3 ). 2. If = 0 and S 3 = 0 then assume no error most plausible assumption. 3. If 0 and S 3 = S1 3 then assume 1 error. Error locator is X 1 =. Error location is i 1 satisfying X 1 = α i 1. 4. If 0 and S 3 S1 3 then assume 2 errors. Error locators are the zeroes in of Λ R (x), where Λ R (x) = x 2 + x + S 3 +S 3 1. If X 1 = α i 1, X 2 = α i 2 are zeroes of Λ R (x), errors are in locations i 1,i 2. 5. If Λ R (x) does not have 2 zeroes, or if = 0 and S 3 0, then 3 errors have occurred detectable but uncorrectable.

Reed-Solomon Codes Reed-Solomon codes use 2t equations to correct t errors. 0 = c 0 +c 1 α+c 2 α 2 + +c n 1 α n 1 0 = c 0 +c 1 α 2 +c 2 α 4 + +c n 1 α 2(n 1). 0 = c 0 +c 1 α 2t +c 2 α 4t + +c n 1 α 2t(n 1) The codeword symbols c i and α are m bits quantities, and n = 2 m 1. Multiplication and addition in these equations use Galois field arithmetic: every nonzero element has a reciprocal, so decoding equations work. Reed-Solomon codes are used in CDs, DVDs, and almost all disk drives.