Reed-Solomon Implementation - Encoding

As we mentionned before, the process of adding redondancy bits to a channe is called channel encoding.

Let’s consider m(x)=m0 + m1(x) + m2(x2) +.. mk-1(xk-1) the message polynomial to be encoded
Where gi belongs GF, and k=n-2t.
Dividing (x^2t)*m(x) by g(x), we have (x^2t) * m(x) = a(x) * g(x) + b(x)
With b(x) = b0 + b1(x) + b2(x^2) +.. b2t-1(x^2t-1) the reminder
Then b(x) + (x^2t) * m(x) is the codeword polynomial for the message m(x).

RS Codes for Binary Data

m-bit: a binary m-group representing the elements in GF.
Let’s take (n,k)RS code with symbols from GF to encode binary data. The message of km bits is divided into k m-bit bytes. Where each group represents a symbol in GF.
Then, we encode each k-byte into n-byte codeword based on RS encoding rule. So when we do this, we obtain a binary RS code (nm,km), Which is a binary linear code, effective in correcting bursts of errors, with a maximum capacity equal t bytes.

In the figure below we have an Encoding circuit for a nonbinary cyclic code