Today weβll try again with generalized Reed-Solomon (GRS) and Reed-Solomon (RS) codes in more detail. Weβll emphasize this different encoding perspective from the one we discussed originally, make sure we have time for hands-on computation, and start to discuss the practicality of using GRS/RS codes as binary codes.
Letβs choose \(n\) to be the useful option in the last exercise. To define an RS code with this length, we also need to choose a dimension \(k\text{,}\) multiplier \(b\text{,}\) and element \(\alpha\) of order \(n\) in \(F\text{.}\) Make a set of choices that will allow the resulting RS code to correct any two errors that occur. I suggest making your life simple and picking \(b\in \{0,1\}\) (although you can pick anything in \(\{0,1,\ldots,6\}\text{.}\))
You can compute a generator matrix for the multiplication by \(g(x)\) encoding procedure by recording the effect of this procedure on a basis of the polynomials of degree \(k-1\) or less. A particularly nice basis for doing this is \(\{1,x,x^2,\ldots,x^{k-1}\}\text{.}\) What matrix do you get when you do that? Multiplication by a matrix of this form is particularly straightforward to implement efficiently in hardware; see Roth Β§ 5.3 for a description.