RS – Reed Solomon Error correcting code. Error-correcting codes are clever ways of representing data so that one can recover the original information.

Slides:



Advertisements
Similar presentations
Mahdi Barhoush Mohammad Hanaysheh
Advertisements

Multiplicity Codes Swastik Kopparty (Rutgers) (based on [K-Saraf-Yekhanin ’11], [K ‘12], [K ‘14])
15-251: Great Theoretical Ideas in Computer Science Error Correction Lecture 17 October 23, 2014.
Noise, Information Theory, and Entropy (cont.) CS414 – Spring 2007 By Karrie Karahalios, Roger Cheng, Brian Bailey.
Cyclic Code.
Error Control Code.
296.3Page :Algorithms in the Real World Error Correcting Codes II – Cyclic Codes – Reed-Solomon Codes.
L. J. Wang 1 Introduction to Reed-Solomon Coding ( Part I )
Efficient Soft-Decision Decoding of Reed- Solomon Codes Clemson University Center for Wireless Communications SURE 2006 Presented By: Sierra Williams Claflin.
1. 2 Overview Review of some basic math Review of some basic math Error correcting codes Error correcting codes Low degree polynomials Low degree polynomials.
May 24, 2005STOC 2005, Baltimore1 Limits to List Decoding Reed-Solomon Codes Venkatesan Guruswami Atri Rudra (University of Washington)
Decoding Reed-Solomon Codes using the Guruswami- Sudan Algorithm PGC 2006, EECE, NCL Student: Li Chen Supervisor: Prof. R. Carrasco, Dr. E. Chester.
15-853:Algorithms in the Real World
Information and Coding Theory
Probabilistic verification Mario Szegedy, Rutgers www/cs.rutgers.edu/~szegedy/07540 Lecture 4.
CHANNEL CODING REED SOLOMON CODES.
II. Linear Block Codes. © Tallal Elshabrawy 2 Last Lecture H Matrix and Calculation of d min Error Detection Capability Error Correction Capability Error.
Cellular Communications
1 Dr. Scott Schaefer Curves and Interpolation. 2/61 Smooth Curves How do we create smooth curves?
Quantum Error Correction Michele Mosca. Quantum Error Correction: Bit Flip Errors l Suppose the environment will effect error (i.e. operation ) on our.
Correcting Errors Beyond the Guruswami-Sudan Radius Farzad Parvaresh & Alexander Vardy Presented by Efrat Bank.
DIGITAL COMMUNICATION Coding
6/20/2015List Decoding Of RS Codes 1 Barak Pinhas ECC Seminar Tel-Aviv University.
EEE377 Lecture Notes1 EEE436 DIGITAL COMMUNICATION Coding En. Mohd Nazri Mahmud MPhil (Cambridge, UK) BEng (Essex, UK) Room 2.14.
Chapter 11 Algebraic Coding Theory. Single Error Detection M = (1, 1, …, 1) is the m  1 parity check matrix for single error detection. If c = (0, 1,
Forward Error Correction Steven Marx CSC45712/04/2001.
15-853Page :Algorithms in the Real World Error Correcting Codes I – Overview – Hamming Codes – Linear Codes.
Ger man Aerospace Center Gothenburg, April, 2007 Coding Schemes for Crisscross Error Patterns Simon Plass, Gerd Richter, and A.J. Han Vinck.
Hamming Codes 11/17/04. History In the late 1940’s Richard Hamming recognized that the further evolution of computers required greater reliability, in.
DIGITAL COMMUNICATION Error - Correction A.J. Han Vinck.
Cyclic codes 1 CHAPTER 3: Cyclic and convolution codes Cyclic codes are of interest and importance because They posses rich algebraic structure that can.
Channel Coding and Error Control
Great Theoretical Ideas in Computer Science.
Information and Coding Theory Linear Block Codes. Basic definitions and some examples. Juris Viksna, 2015.
Exercise in the previous class p: the probability that symbols are delivered correctly C: 1 00 → → → → What is the threshold.
Cyclic Codes for Error Detection W. W. Peterson and D. T. Brown by Maheshwar R Geereddy.
Error Coding Transmission process may introduce errors into a message.  Single bit errors versus burst errors Detection:  Requires a convention that.
1 SNS COLLEGE OF ENGINEERING Department of Electronics and Communication Engineering Subject: Digital communication Sem: V Cyclic Codes.
A brief adventure in C++ by Michael Cotton. Bounded distance decodingList decoding.
Cyclic Code. Linear Block Code Hamming Code is a Linear Block Code. Linear Block Code means that the codeword is generated by multiplying the message.
Codes Codes are used for the following purposes: - to detect errors - to correct errors after detection Error Control Coding © Erhan A. Ince Types: -Linear.
1 Network Coding and its Applications in Communication Networks Alex Sprintson Computer Engineering Group Department of Electrical and Computer Engineering.
MIMO continued and Error Correction Code. 2 by 2 MIMO Now consider we have two transmitting antennas and two receiving antennas. A simple scheme called.
Reed Solomon Code Doug Young Suh Last updated : Aug 1, 2009.
Great Theoretical Ideas in Computer Science.
Basic Characteristics of Block Codes
Communication System A communication system can be represented as in Figure. A message W, drawn from the index set {1, 2,..., M}, results in the signal.
§6 Linear Codes § 6.1 Classification of error control system § 6.2 Channel coding conception § 6.3 The generator and parity-check matrices § 6.5 Hamming.
DIGITAL COMMUNICATIONS Linear Block Codes
Probabilistic verification Mario Szegedy, Rutgers www/cs.rutgers.edu/~szegedy/07540 Lecture 5.
ADVANTAGE of GENERATOR MATRIX:
Linear Block Code 指導教授:黃文傑 博士 學生:吳濟廷
The parity bits of linear block codes are linear combination of the message. Therefore, we can represent the encoder by a linear system described by matrices.
Perfect and Related Codes
Some Computation Problems in Coding Theory
Elementary Coding Theory Including Hamming and Reed-Solomom Codes with Maple and MATLAB Richard Klima Appalachian State University Boone, North Carolina.
1 Asymptotically good binary code with efficient encoding & Justesen code Tomer Levinboim Error Correcting Codes Seminar (2008)
Digital Communications I: Modulation and Coding Course Term Catharina Logothetis Lecture 9.
INFORMATION THEORY Pui-chor Wong.
Error Control Coding. Purpose To detect and correct error(s) that is introduced during transmission of digital signal.
Reed-Solomon Codes Rong-Jaye Chen.
CHAPTER 8 CHANNEL CODING: PART 3 Sajina Pradhan
Block Coded Modulation Tareq Elhabbash, Yousef Yazji, Mahmoud Amassi.
Channel Coding: Part I Presentation II Irvanda Kurniadi V. ( ) Digital Communication 1.
Class Report 林格名 : Reed Solomon Encoder. Reed-Solomom Error Correction When a codeword is decoded, there are three possible outcomes –If 2s + r < 2t (s.
Great Theoretical Ideas in Computer Science
Subject Name: Information Theory Coding Subject Code: 10EC55
Introduction to Reed-Solomon Coding ( Part II )
RS – Reed Solomon List Decoding.
Zeev Dvir (Princeton) Shachar Lovett (IAS)
Presentation transcript:

RS – Reed Solomon Error correcting code

Error-correcting codes are clever ways of representing data so that one can recover the original information even if parts of it are corrupted. We will do it using redundancy so that the original information can be recovered even when parts of the (redundant) data have been corrupted.

There is a sender who wants to send k message symbols over a noisy channel. The sender first encodes the k message symbols into n symbols (called a codeword) and then sends it over the channel. The receiver gets a word consisting of n symbols. The receiver then tries to decode and recover the original k message symbols. Thus, encoding is the process of adding redundancy and decoding is the process of removing errors and recovering the original message.

The most interesting question is the tradeoff between the amount of redundancy used and the number of errors that can be corrected by a code. Intuitively, maximizing error correction and minimizing redundancy are contradictory goals: A code with higher redundancy should be able to recover from more errors.

Questions: 1.Message length (dimension)? 2.Codeword length? 3.Distance of the code? (Note: every two codewords have at most one identical position) 4. What is the size of Ʃ ?

Generator matrix A generator matrix is a matrix whose rows form a basis for a linear code. The codewords are all of the linear combinations of the rows of this matrix.

Questions: 1.Rate? 2.Relative distance?

The Greatest Code of Them All: Reed-Solomon Codes Reed Solomon code is based upon interpolation using polynomials over finite fields. Interpolation is a method of constructing a polynomial that goes through a given set of points.

Reed-Solomon Codes We will start with an example of Reed-Solomon codes: Our Σ = F 3 = {0, 1,2} where + p and · p are addition and multiplication mod p. As we stated before, F 3 is a field. Let us transmit the following message: (2,1). 1. Set the polynomial coefficients to be the message elements 2,1 : f(x) = 2+1 ∙ x 2. Evaluate the polynomial values at predefined points (all field elements) x=0, x=1, x=2: (x=0,y=2), (x=1,y=0), (x=2,y=1). 3. Transmit the evaluation result, meaning codeword : (2,0,1)

Question: What is the relationship between the encoding algorithm and the following table?

Generator matrix: The generator matrix of reed-Solomon is Vandermonde matrix. The Vandermonde matrix evaluates a polynomial at a set of points. General Vandermonde matrix

Generator matrix: The generator matrix of reed-Solomon is Vandermonde matrix. The Vandermonde matrix evaluates a polynomial at a set of points.

Generator matrix: The generator matrix of reed-Solomon is Vandermonde matrix. The Vandermonde matrix evaluates a polynomial at a set of points.

Reed-Solomon Codes Reed-Solomon codes meet the Singleton bound, i.e. satisfy d = n−k+1. Reminder: The Singleton bound states that for any [n,k,d] q code, d ≤ n−k+1. [ n is the code-word length, k is the message length and d is the code distance. ] This means that Reed-Solomon codes meet the upper bound efficiency between the redundancy and the error recovering capability, i.e. we send the maximal amount of real data when k and n are given.

RS is a [n,k,n −k +1] q code. That is, it matches the Singleton bound. Claim: If p(x) and q(x) are polynomials of degree at most k-1 and identical for k values then p(x)=q(x). Proof: We will assume that p(x)≠q(x). Then f(x)=p(x)-q(x)≠0 is a polynomial of degree at most k-1. However, we know that they are identical for k values, so f(x) has at least k roots, but f(x)’s degree is at most k-1. Every polynomial (except for zero polynomial) of degree n has at most n root. Therefore f(x) = 0 which means p(x)=q(x), and we got contradiction.

RS is a [n,k,n −k +1] q code. That is, it matches the Singleton bound. Claim: If p(x) and q(x) are polynomials of degree at most k-1 and identical for k values then p(x)=q(x). Conclusion: Each message is being translated into a polynomial of degree at most k-1. That is because the message length is k, and each message character represents a coefficient of the polynomial. Every two different messages represent different polynomials. This polynomial is evaluated at n different evaluation points (different field elements). Each one of the evaluations represents a value of the polynomial at a specific point, and the entire sequence of evaluations represents a codeword. If every two polynomials are identical for at most k-1 values, and we evaluate them at n different points then they are different on at least n-(k-1)=n-k+1=d of the evaluations. Therefore, every two encoded messages are different in at least n-k+1 elements.

Decoding of Reed-Solomon Codes At first, we had a k length message which we translated to a polynomial of k-1 degree at most. Each character was a polynomial coefficient. Then we evaluated it at n different points. These values represent the encoded message that we send. The receiver side receives this values with random noise. Now, the receiver needs to construct the original polynomial which represents the original message using these evaluations. Note that every k points define a unique polynomial with degree of at most k-1. Why? Let’s assume that two different polynomial with degree of at most k-1 are identical on these k points. Then, as proved earlier, they must be the same polynomial.

We now start to describe Welch-Berlekamp algorithm which solves the problem of finding p(x) in Polynomial time. Intuitively, in order to construct the original polynomial, we “need” the ability to distinguish between the correct values and the noisy values so that the polynomial we construct will be based on the correct values only.