Fault Tolerance & Reliability CDA Chapter 2 Cyclic Polynomial Codes

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

ECEN 604: Channel Coding for Communications

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: overview

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

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

Error Correction Review

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

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)

Information Redundancy: Coding

Information redundancy

Chapter 5. Cyclic Codes

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

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

A Brief Encounter with Linear Codes

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

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

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

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

7.1 Definitions and Generator Polynomials

3. Coding theory 3.1. Basic concepts

Ch 7 Summary - POLYNOMIAL FUNCTIONS

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

Mathematical Foundations of Cryptography

How does the computer generate observations from various distributions specified after input analysis?

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

Chapter 4 Finite Fields

Finite Fields. Mike Reiter

Homework 8 Solutions to Selected Problems

Dividing Polynomials: Remainder and Factor Theorems

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


Section IV.23. Factorizations of Polynomials over a Field

EE 229B ERROR CONTROL CODING Spring 2005

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

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

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

6x 3 12x 2 7x 2 +16x 7x 2 +14x 2x 4

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

Chapter 6. BCH Codes

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

Optical Storage Technology. Error Correction

Polynomials. Henry Liu, 25 November 2004

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

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

Review all the activities leading to Midterm 3. Review all the problems in the previous online homework sets (8+9+10).

Algebra. Modular arithmetic can be handled mathematically by introducing a congruence relation on the integers described in the above example.

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

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

EE512: Error Control Coding

Power and Polynomial Functions. College Algebra

Error Detection & Correction

ELEC3227/4247 Mid term Quiz2 Solution with explanation

EE512: Error Control Coding

ERROR CORRECTING CODES

Information Theory. Lecture 7

Physical Layer and Coding

Chapter 6: Rational Expr., Eq., and Functions Lecture notes Math 1010

MATH 431 PART 2: POLYNOMIAL RINGS AND FACTORIZATION

How might we evaluate this? Suppose that, by some good luck, we knew that. x 2 5. x 2 dx 5

Cyclic Redundancy Check Codes

March Algebra 2 Question 1. March Algebra 2 Question 1

Linear Feedback Shift Registers (LFSRs) 4-bit LFSR

COMPUTER ARITHMETIC. 13/05/2010 cryptography - math background pp. 1 / 162

Downloaded from

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

PSEUDORANDOM BINARY SEQUENCES GENERATOR

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

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

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

Rings. EE 387, Notes 7, Handout #10

Functions and Equations

Lecture 6: Finite Fields (PART 3) PART 3: Polynomial Arithmetic. Theoretical Underpinnings of Modern Cryptography

Lecture 3 : Introduction to Binary Convolutional Codes

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

1 1 0, g Exercise 1. Generator polynomials of a convolutional code, given in binary form, are g

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

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

Polynomial Review Problems

7.5 CRC. 20 March r2 SAS-2 CRC fixes

The Golay codes. Mario de Boer and Ruud Pellikaan

Optimum Soft Decision Decoding of Linear Block Codes

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

A family Of Cyclic Codes Over Finite Chain Rings

Chapter 7 Polynomial Functions. Factoring Review. We will talk about 3 Types: ALWAYS FACTOR OUT FIRST! Ex 2: Factor x x + 64

Outline. EECS Components and Design Techniques for Digital Systems. Lec 18 Error Coding. In the real world. Our beautiful digital world.

MTH310 EXAM 2 REVIEW

Integration of Rational Functions by Partial Fractions

CSE 20: Discrete Mathematics

CHAPTER 10: POLYNOMIALS (DRAFT)

Test 2. Monday, November 12, 2018

Synchronous Sequential Circuit Design. Digital Computer Design

PreCalculus: Semester 1 Final Exam Review

Methods of Integration

Cryptography Lecture 3. Pseudorandom generators LFSRs

Elliptic Curves I. The first three sections introduce and explain the properties of elliptic curves.

Integration of Rational Functions by Partial Fractions

EECS150 - Digital Design Lecture 21 - Design Blocks

L9: Galois Fields. Reading material

: Error Correcting Codes. October 2017 Lecture 1

Transcription:

Fault Tolerance & Reliability CDA 5140 Chapter 2 Cyclic Polynomial Codes - cylic code: special type of parity check code such that every cyclic shift of codeword is a codeword - for example, if (c n-1, c n-2,... c 0 ) is a codeword so is (c n-2, c n-3,... c 0, c n-1 ) - cyclic property best captured using polynomial algebra over a finite field, in particular binary finite field - for code word c(x) = (c n-1, c n-2,... c 0 ) represent it as polynomial c n-1 X n-1 + c n-2 X n-2 +... + c 1 X 1 + c 0 - two most important concepts are use of polynomial division and the operation of modulo a polynomial - for f(x) and g(x) two polynomials with the latter of at least degree 1, then the Euclid division algorithm states that there are two polynomials q(x), the quotient, and r(x), the remainder such that f(x) = q(x)g(x) + r(x) and degree of r(x) is less than degree of g(x) and further state that r(x) is congruent to f(x) modulo g(x), i.e. r(x) = f(x) [mod g(x)] - for cyclic codes most important modulus is X n 1 which implies that 1 = X n [mod X n 1] - thus Xc(x) [mod X n 1] is a code word since Xc(X) = c n-1 X n + c n-2 X n-1 +... + c 1 X 2 + c 0 X and reducing mod X n 1, then X n = 1 giving Xc(X) = c n-2 X n-1 + c n-3 X n-2 +... + c 1 X 2 + c 0 X + c n-1

- consequently for c(x) a codeword, so is X i c(x) - thus α i X i c(x) = f(x) c(x) where f(x) has binary coefficients - just as can generate any (n,m) parity-check code using the generator matrix G, can also generate the code words for (n,m) cyclic code by the generator polynomial g(x) with the following properties: - g(x) is unique lowest-degree nonzero code polynomial with coefficient 1 in highest-degree term - degree of g(x) is n m - each of the 2 m code words of binary cyclic code is multiple of g(x) of form α i X i g(x), 0 < i < m-1 - set of code polynomials g(x), Xg(X),... X m-1 g(x) is a linearly independent set and all 2 m code words can be generated from these m code words - g(x) must be a factor of X n 1 Example: - consider the (7,4) cyclic code with generating polynomial g(x) = X 3 + X + 1 has 3 check digits and the four linearly independent code words are: polynomials 7-tuples X 3 + X + 1 0001011 X 4 + X 2 + X 0010110 X 5 + X 3 + X 2 0101100 X 6 + X 4 + X 3 1011000 and all 16 codewords are linear combinations of these

- for a data polynomial, of degree m-1, d(x) = d m-1 X m-1 + d m-2 X m-2 +... + d 1 X 1 + d 0 the data digits are d m-1, d m-2,... d 0 - the code words can be generated by c(x) = d(x) g(x) which can be done by means of the following shift register circuit where the register cells are initialized to all zeroes: d(x) g n-m g 2 g 1 g 0 + c(x) Nonsystematic Encoding using Shift Register - digit d m-1 is fed in first, then d m-2 and so on until d 0 followed by (n-m) zeroes

- the circled g i represent multiplication by g i (either 0 or 1) and the + is modulo 2 addition (XOR), and the g i are coefficients of g(x) - code digits come out in the order of c n-1 until finally c 0 - as an example, consider for n = 7, m = 4 g(x) = X 3 + X + 1 and d(x) = X 2 + 1 - use the above circuit to generate c(x) and verify using polynomial multiplication that the resulting c(x) is g(x) times d(x) - note that above circuit generates a non-systematic code word - can generate a systematic code by applying the following and creating the corresponding circuit - multiplying d(x) by X n-m we have X n-m d(x) = d m-1 X n-1 + d m-2 X n-2 +... + d 0 X n-m = q(x)g(x) + r(x) for g(x) the degree n-m generator polynomial, and r(x) the unique remainder polynomial of degree less than n-m then, adding r(x) to each side gives d m-1 X n-1 + d m-2 X n-2 +... + d 0 X n-m + r(x) = q(x)g(x) thus the LHS must be a multiple of g(x) and hence a code polynomial and if we write r(x) as r(x) = p n-m-1 X n-m-1 + p n-m-2 X n-m-2 +... + p 1 X + p 0 the coefficients of the code polynomial are: d m-1, d m-2,... d 0, p n-m-1, p n-m--2,... p 0 which is systematic

- then need to design a feedback shift register to divide X n-m d(x) by g(x) to determine r(x) - the following circuit does so, where the register is initialized to all zeroes, and with d m-1 fed in first, and then d m-2,... d 0 sequentially in that order until d m-1 reaches the furthest right position - then perform m right shifts which then leaves the digits of r(x) in the register with p n-m-1 in the furthest right position - note in the following figure, since the coefficient of X n-m must be 1 there is no corresponding multiplication needed as for the other positions; and, the first cell simply holds the bit before the clock pulse, while the remaining cells hold the results g 0 g 1 g 2 g n-m-2 g n-m-1 d(x) + + + + + Feedback Shift Register for Systematic Encoding for the original d(x) = X 2 + 1 and g(x) = X 3 + X + 1, draw the FSR and perform the division, give the resulting r(x) and c(x), and show, using polynomial division that c(x) is a multiple of g(x) - of interest is that this same feedback shift register can be used for encoding and error detection - if the received polynomial is y(x) and the error polynomial is e(x), then

y(x) = c(x) + e(x) - if y(x) is a code word and it is divided by g(x), the remainder is 0 - if y(x) is not a code word, then dividing by g(x) will give a remainder which is referred to as a syndrome (polynomial) s(x) and indicates an error - is y(x) = X 5 + X 2 + X + 1 a codeword for the above circuit? - is y(x) = X 6 + X 4 + X 2 a codeword for the above circuit?