Polynomial code
![]() | This article is actively undergoing a major edit for a little while. To help avoid edit conflicts, please do not edit this page while this message is displayed. This page was last edited at 20:45, 12 March 2008 (UTC) (17 years ago) – this estimate is cached, . Please remove this template if this page hasn't been edited for a significant time. If you are the editor who added this template, please be sure to remove it or replace it with {{Under construction}} between editing sessions. |
In coding theory, a polynomial code is a type of linear code whose set of valid code words consists of those polynomials (usually of some fixed length) that are divisible by a given fixed polynomial (of shorter length, called the generator polynomial).
Definition
Fix a finite field , whose elements we call symbols. For the purposes of constructing polynomial codes, we identify a string of symbols with the polynomial
- .
Fix integers and let be some fixed polynomial of degree , called the generator polynomial. The polynomial code generated by is the code whose code words are precisely the polynomials of degree less than that are divisible (without remainder) by .
Example
Consider the polynomial code over with , , and generating polynomial . This code consists of the following code words:
- .
Equivalently, expressed as strings of binary digits, the codewords are:
- .
Note that this, as every polynomial code, is indeed a linear code, i.e., linear combinations of code words are again code words.
Encoding
In a polynomial code over with code length and generator polynomial of degree , there will be exactly code words. Indeed, by definition, is a code word if and only if it is of the form , where (the quotient) is of degree less than . Since there are such quotients available, there is the same number of possible code words. Plain (unencoded) data words should therefore be of length
It is tempting to use the mapping as the assignment from data words to code words. However, this has the disadvantage that the data word does not appear as part of the code word.
Instead, the following method is used: given a data word of length , first multiply by , which has the effect of shifting by places to the left. In general, will not be divisible by , i.e., it will not be a valid code word. However, there is a unique code word that can be obtained by adjusting the rightmost symbols of . To calculate it, compute the remainder of dividing by :
- ,
where is of degree less than . The code word corresponding to the data word is then defined to be
- .
Note the following properties:
- , which is divisible by . In particular, is a valid code word.
- Since is of degree less than , the leftmost symbols of agree with the corresponding symbols of . In other words, the first symbols of the code word are the same as the original data word. The remaining symbols are sometimes called the check digits.
Example
For the above code with , , and generating polynomial , we obtain the following assignment from data words to codewords:
To be continued...
Reference
W.J. Gilbert and W.K. Nicholson: Modern Algebra with Applications, 2nd edition, Wiley, 2004.