Decoding Reed-Solomon Codes using the Guruswami- Sudan Algorithm PGC 2006, EECE, NCL Student: Li Chen Supervisor: Prof. R. Carrasco, Dr. E. Chester
Introduction List Decoding Guruswami-Sudan Algorithm Interpolation (Kotter’s Algorithm) Factorisation (Ruth-Ruckenstein Algorithm) Simulation Performance Complexity Analysis Algebraic-Geometric Extension Conclusion
Funny Talk about List Decoder Decoder—Search the lost boy named “ John” Unique decoder—Police without cooperation List decoder—Police with cooperation PoliceDecoder from now
List Decoding Introduced by P. Elias and J. Wozencraft independently in 1950s Idea: Unique decoder can correct r1, but not r2 List decoder can correct r1 and r2
Reed-Solomon Codes Encoding: k n (k<n) (C 0, C 1, …, C n-1 )=(f(x 0 ), f(x 1 ), …, f(x n-1 )) transmitted message f(x)=f 0 x 0 +f 1 x 1 +∙∙∙+f k-1 x k-1 k dimensional monomial basis of curve y =0 Application: Storage device Mobile communications
Guruswami-Sudan Algorithm
GS Overview Decode RS(5, 2): Encoding elemnts x=(x 0, x 1, x 2, x 3, x 4 ) Received word y=(y 0, y 1, y 2, y 3, y 4 ) Build Q(x, y) that goes through 5 points: Q(x, y)=y 2 -x 2 y-(-x) y-p(x)?=f(x) y-x The Decoded codeword is produced by re-evaluate p(x) over x 0, x 1, x 2, x 3, x 4 !!! Q(x, y) has a zero of multiplicity m =1 over the 5 points. GS = Interpolation + Factorisation
How about increase the degree of Q(x, y) ? Q 2 =(y 2 -x 2 ) 2 y-(-x) y-xy-x y-p(x)?=f(x) y-(-x) y-xy-x Q 2 (x, y) has a zero of multiplicity m =2 over the 5 points. The higher degree of Q(x, y) more candidate to be chosen as f(x) diverser point can be included in Q(x, y) better error correction capability!!!
GS Decoding Property Error correction upper bound:(1) Multiplicity m Error correction t m Output list l m Examples: RS(63, 15) with r =0.24, e =24 RS(63, 31) with r =0.49, e =16
Interpolation---Build Q(x, y) Multiplicity definition:(2) --- q ab =0 for a+b<m, Q has a zero of multiplicity m at (0, 0). Define over a certain point ( x i, y i ): --- q uv =0 for u+v<m, Q has a zero of multiplicity m at ( x i,y i ) q uv is the Q ’s ( u, v ) Hasse derivative evaluation on ( x i, y i ) (3)
Cont… Therefore, we have to construct a Q(x, y) that satisfies: Q(x, y)=min{Q(x, y) F q [x, y]|D uv Q(x i, y i )=0 for i=0, ∙∙∙, n-1 and u+v<m} Q has a zero of multiplicity m over the n points
Kotter’s Algorithm Initialisation: G 0 ={g 0, g 1, …, g j, …,} Hasse Derivative Evaluation Find the minimal polynomial in J : Bilinear Hasse Derivative modification: For ( j J ), if j=j *, if j≠j *, If i=n, end! Else, update i, and ( u, v )
Factorisation---Find p(x) p(x) satisfy: y-p(x)|Q(x, y) and deg(p(x))<k p(x)=p 0 +p 1 x+∙∙∙+p k-1 x k-1 ---we can deduce coefficients p 0, p 1, …, p k-1 sequentially!!!
Ruth-Ruckenstein Algorithm p(x)p(x) p(x)p(x) Q 0 (x, y) Q 1 (x, y) Q 2 (x, y) Q’s sequential transformation:(4) p i are the roots of Q i (0, y)=0.
Simulation Results 1----RS(63, 15) AWGNRayleigh fading Coding gain: dB 1-2.8dB
Simulation Result 2----RS(63, 31) AWGNRayleigh fading Coding gain: dB dB
Complexity Analysis RS(63, 15) RS(63, 31) Reason: Iterative Interpolation
Little Supplements----GS’s AG extension RS: f(x)Q(x, y)p(x) AG: f(x, y)Q(x, y, z)p(x, y)
Conclusion of GS algorithm Correct errors beyond the (d-1)/2 boundary; Outperform the unique decoding algorithm; Greater potential for low rate codes; Used for decode AG codes; Higher decoding complexity----Need to be addressed in future!!!
I Welcome your Questions