Professional Documents
Culture Documents
Reed Solomon Codes
Reed Solomon Codes
x2t
Encoding of RS Codes
Let m(x) = m0 + m1x + ... + mk-1xk-1 be the message polynomial to be encoded
where mi GF (m2) and k = n 2t.
Dividing x2tm(x) by g(x), we have:
x2tm(x) = a(x)g(x) + b(x)
remainder.
Then b(x) + x2tm(x) is the codeword polynomial for the message m(x).
Decoding of RS Codes
RS codes are actually a special class of non binary BCH (Bose Chaudhuri and
Hocquenghem) codes. Decoding of a RS code is similar to the decoding of a
BCH code except an additional step is needed.
Let c(x) = c0 + c1x + +cn-1xn-1, ci GF (m2) and r(x) = r0 + r1x + + rn-1xn-1,
ri GF (m2)
Then the error polynomial is:
e(x) = r(x) - c(x)
e(x) = e0 + e1x + e2x + + en-1xn-1
(m2).
Where ei = ri ci is a symbol in GF
Suppose e(x) has M errors at the locations xj1, xj2, , xjm, then
e(x) = ej1xj1 + ej2xj2 + + ejmxjm
The error location numbers are:
Zj1 = j1 , Zj2 = j2 , , Zjm = jm
The error values are:
ej1 , ej2 , ... , ejm
Thus, in decoding a RS code, we not only have to determine the errorlocations but also have to evaluate the error values. If there are S erasure
symbols and V errors in the received polynomial r(x), then the (n, k) RS
decoder is used to correct these erasure symbols and errors if:
2V + S d 1 = n k
The received polynomial is represented by r(x) = c(x) + e(x) + e*(x) = c(x) +
u(x) where e(x) and e*(x) are the error and erasure polynomials, respectively.