15-853:Algorithms in the Real World

Slides:



Advertisements
Similar presentations
15-251: Great Theoretical Ideas in Computer Science Error Correction Lecture 17 October 23, 2014.
Advertisements

BCH Codes Hsin-Lung Wu NTPU.
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.
15-853:Algorithms in the Real World
Information and Coding Theory
2015/4/28System Arch 2008 (Fire Tom Wada) 1 Error Correction Code (1) Fire Tom Wada Professor, Information Engineering, Univ. of the Ryukyus.
Note: is very restrictive Would like more flexibility in determining the length If we shorten the length of the message.
CHANNEL CODING REED SOLOMON CODES.
FFT1 The Fast Fourier Transform. FFT2 Outline and Reading Polynomial Multiplication Problem Primitive Roots of Unity (§10.4.1) The Discrete Fourier Transform.
DIGITAL COMMUNICATION Coding
An optimal packetization scheme for fine granularity scalable bitstream Hua Cai 1, Guobin Shen 2, Zixiang Xiong 3, Shipeng Li 2, and Bing Zeng 1 1 The.
15-853Page :Algorithms in the Real World Error Correcting Codes I – Overview – Hamming Codes – Linear Codes.
DIGITAL COMMUNICATION Error - Correction A.J. Han Vinck.
Channel Coding Part 1: Block Coding
Great Theoretical Ideas in Computer Science.
FFT1 The Fast Fourier Transform. FFT2 Outline and Reading Polynomial Multiplication Problem Primitive Roots of Unity (§10.4.1) The Discrete Fourier Transform.
The Fast Fourier Transform
15-853Page :Algorithms in the Real World Error Correcting Codes II – Cyclic Codes – Reed-Solomon Codes.
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.
COEN 180 Erasure Correcting, Error Detecting, and Error Correcting Codes.
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.
Fields: Defns “Closed”: a,b in F  a+b, a.b in F Properties: – Commutative: a+b=b+a, a.b=b.a – Associative: a+(b+c)=(a+b)+c, a.(b.c) = (a.b).c – Distributive:
Reed Solomon Code Doug Young Suh Last updated : Aug 1, 2009.
Great Theoretical Ideas in Computer Science.
Information and Coding Theory Cyclic codes Juris Viksna, 2015.
1 Fast Polynomial and Integer Multiplication Jeremy R. Johnson.
2016/2/14 1 Error Correction Code (1) Fire Tom Wada Professor, Information Engineering, Univ. of the Ryukyus.
15-499Page :Algorithms and Applications Cryptography II – Number theory (groups and fields)
Reed-Solomon Codes Rong-Jaye Chen.
ECE 442 COMMUNICATION SYSTEM DESIGN LECTURE 10. LINEAR BLOCK CODES Husheng Li Dept. of EECS The University of Tennessee.
Class Report 林格名 : Reed Solomon Encoder. Reed-Solomom Error Correction When a codeword is decoded, there are three possible outcomes –If 2s + r < 2t (s.
RS – Reed Solomon Error correcting code. Error-correcting codes are clever ways of representing data so that one can recover the original information.
V. Non-Binary Codes: Introduction to Reed Solomon Codes
Modulo-2 Digital coding uses modulo-2 arithmetic where addition becomes the following operations: 0+0= =0 0+1= =1 It performs the.
2.8 Error Detection and Correction
Information and Coding Theory
Key Distribution in DTNs
Great Theoretical Ideas in Computer Science
Data Link Layer Objective: to achieve reliable and efficient communication between 2 adjacent machines Data link layer design issues services provided.
: An Introduction to Computer Networks
Advanced Computer Networks
Polynomial + Fast Fourier Transform
15-853:Algorithms in the Real World
Error Detection and Correction
Algorithms in the Real World
Polynomials, Secret Sharing, And Error-Correcting Codes
Introduction to Reed-Solomon Coding ( Part II )
Polynomials and the FFT(UNIT-3)
II. Linear Block Codes.
Applied Symbolic Computation
RS – Reed Solomon List Decoding.
September 4, 1997 Applied Symbolic Computation (CS 300) Fast Polynomial and Integer Multiplication Jeremy R. Johnson.
The Fast Fourier Transform
Polynomials, Secret Sharing, And Error-Correcting Codes
September 4, 1997 Applied Symbolic Computation (CS 567) Fast Polynomial and Integer Multiplication Jeremy R. Johnson.
Applied Symbolic Computation
Data Link Layer Objective: to achieve reliable and efficient communication between 2 adjacent machines Data link layer design issues services provided.
Cyclic Code.
Error Detection Neil Tang 9/26/2008
Data Link Layer Objective: to achieve reliable and efficient communication between 2 adjacent machines Data link layer design issues services provided.
Error Correction Code (1)
Erasure Correcting Codes for Highly Available Storage
The Fast Fourier Transform
Error Correction Code (1)
296.3:Algorithms in the Real World
2.8 Error Detection and Correction
Presentation transcript:

15-853:Algorithms in the Real World Error Correcting Codes II Cyclic Codes Reed-Solomon Codes 15-853

Viewing Messages as Polynomials A (n, k, n-k+1) code: Consider the polynomial of degree k-1 p(x) = ak-1 xk-1 + L + a1 x + a0 Message: (ak-1, …, a1, a0) Codeword: (p(1), p(2), …, p(n)) To keep the p(i) fixed size, we use ai  GF(pr) To make the i distinct, n < pr Unisolvence Theorem: Any subset of size k of (p(1), p(2), …, p(n)) is enough to (uniquely) reconstruct p(x) using polynomial interpolation, e.g., LaGrange’s Formula. 15-853

Polynomial-Based Code A (n, k, 2s +1) code: k 2s n Can detect 2s errors Can correct s errors Generally can correct a erasures and b errors if a + 2b  2s 15-853

Correcting Errors Correcting s errors: Find k + s symbols that agree on a polynomial p(x). These must exist since originally k + 2s symbols agreed and only s are in error There are no k + s symbols that agree on the wrong polynomial p’(x) Any subset of k symbols will define p’(x) Since at most s out of the k+s symbols are in error, p’(x) = p(x) 15-853

A Systematic Code Systematic polynomial-based code p(x) = ak-1 xk-1 + L + a1 x + a0 Message: (ak-1, …, a1, a0) Codeword: (ak-1, …, a1, a0, p(1), p(2), …, p(2s)) This has the advantage that if we know there are no errors, it is trivial to decode. The version of RS used in practice uses something slightly different than p(1), p(2), … This will allow us to use the “Parity Check” ideas from linear codes (i.e., HcT = 0?) to quickly test for errors. 15-853

Reed-Solomon Codes in the Real World (204,188,17)256 : ITU J.83(A)2 (128,122,7)256 : ITU J.83(B) (255,223,33)256 : Common in Practice Note that they are all byte based (i.e., symbols are from GF(28)). Decoding rate on 1.8GHz Pentium 4: (255,251) = 89Mbps (255,223) = 18Mbps Dozens of companies sell hardware cores that operate 10x faster (or more) (204,188) = 320Mbps (Altera decoder) 15-853

Applications of Reed-Solomon Codes Storage: CDs, DVDs, “hard drives”, Wireless: Cell phones, wireless links Sateline and Space: TV, Mars rover, … Digital Television: DVD, MPEG2 layover High Speed Modems: ADSL, DSL, .. Good at handling burst errors. Other codes are better for random errors. e.g., Gallager codes, Turbo codes 15-853

RS and “burst” errors Let’s compare to Hamming Codes (which are “optimal”). code bits check bits RS (255, 253, 3)256 2040 16 Hamming (211-1, 211-11-1, 3)2 2047 11 They can both correct 1 error, but not 2 random errors. The Hamming code does this with fewer check bits However, RS can fix 8 contiguous bit errors in one byte Much better than lower bound for 8 arbitrary errors 15-853

Galois Field GF(23) with irreducible polynomial: x3 + x + 1 a = x is a generator a x 010 2 a2 x2 100 3 a3 x + 1 011 4 a4 x2 + x 110 5 a5 x2 + x + 1 111 6 a6 x2 + 1 101 7 a7 1 001 Will use this as an example. 15-853

Discrete Fourier Transform (DFT) Another View of polynomial-based codes a is a primitive nth root of unity (an = 1) – a generator Evaluate polynomial mk-1xk-1 +  + m1x + m0 at n distinct roots of unity, 1, , 2, 3, , n-1 Inverse DFT: 15-853

DFT Example = x is 7th root of unity in GF(23)/x3 + x + 1 (i.e., multiplicative group, which excludes additive inverse) Recall a = “2”, a2 = “3”, … , a7 = 1 = “1” Should be clear that c = T  (m0,m1,…,mk-1,0,…)T is the same as evaluating p(x) = m0 + m1x + … + mk-1xk-1 at n points. 15-853

15-853

function fft(a,w,add,mult) = if #a == 1 then return a Else w’ = [w0,w2,…,wn-1] e = fft([a0,a2,…,an-2],w’) o = fft([a1,a3,...,an-1],w’) return [e0+o0w0, e1+o1w1,…,en/2-1+on/2-1wn/2-1, e0+o0wn/2, e1+o1wn/2+1,…, en/2-1+on/2-1wn-1] 15-853

Decoding Why is it hard? Brute Force: try k+2s choose k + s possibilities and solve for each. 15-853

Efficient Decoding I don’t plan to go into the Reed-Solomon decoding algorithm, other than to mention the steps. Syndrome Calculator Error Polynomial Berlekamp Massy Error Locations Chien Search Error Magnitudes Forney Algorithm Error Corrector c m This is the hard part. CD players use this algorithm. (Can also use Euclid’s algorithm.) 15-853