fbpx
Wikipedia

Polynomial code

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 edit

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 edit

Consider the polynomial code over   with  ,  , and generator polynomial  . This code consists of the following code words:

 
 

Or written explicitly:

 
 

Since the polynomial code is defined over the Binary Galois Field  , polynomial elements are represented as a modulo-2 sum and the final polynomials are:

 
 

Equivalently, expressed as strings of binary digits, the codewords are:

 
 

This, as every polynomial code, is indeed a linear code, i.e., linear combinations of code words are again code words. In a case like this where the field is GF(2), linear combinations are found by taking the XOR of the codewords expressed in binary form (e.g. 00111 XOR 10010 = 10101).

Encoding edit

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 are the same number of possible code words. Plain (unencoded) data words should therefore be of length  

Some authors, such as (Lidl & Pilz, 1999), only discuss 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 often used to create a systematic code: 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:

  1.  , which is divisible by  . In particular,   is a valid code word.
  2. 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 called checksum digits or check bits.

Example edit

For the above code with  ,  , and generator polynomial  , we obtain the following assignment from data words to codewords:

  • 000 ↦ 00000
  • 001 ↦ 00111
  • 010 ↦ 01001
  • 011 ↦ 01110
  • 100 ↦ 10010
  • 101 ↦ 10101
  • 110 ↦ 11011
  • 111 ↦ 11100

Decoding edit

An erroneous message can be detected in a straightforward way through polynomial division by the generator polynomial resulting in a non-zero remainder.

Assuming that the code word is free of errors, a systematic code can be decoded simply by stripping away the   checksum digits.

If there are errors, then error correction should be performed before decoding. Efficient decoding algorithms exist for specific polynomial codes, such as BCH codes.

Properties of polynomial codes edit

As for all digital codes, the error detection and correction abilities of polynomial codes are determined by the minimum Hamming distance of the code. Since polynomial codes are linear codes, the minimum Hamming distance is equal to the minimum weight of any non-zero codeword. In the example above, the minimum Hamming distance is 2, since 01001 is a codeword, and there is no nonzero codeword with only one bit set.

More specific properties of a polynomial code often depend on particular algebraic properties of its generator polynomial. Here are some examples of such properties:

  • A polynomial code is cyclic if and only if the generator polynomial divides  .
  • If the generator polynomial is primitive, then the resulting code has Hamming distance at least 3, provided that  .
  • In BCH codes, the generator polynomial is chosen to have specific roots in an extension field, in a way that achieves high Hamming distance.

The algebraic nature of polynomial codes, with cleverly chosen generator polynomials, can also often be exploited to find efficient error correction algorithms. This is the case for BCH codes.

Specific families of polynomial codes edit

  • Cyclic codes – every cyclic code is also a polynomial code; a popular example is the CRC code.
  • BCH codes – a family of cyclic codes with high Hamming distance and efficient algebraic error correction algorithms.
  • Reed–Solomon codes – an important subset of BCH codes with particularly efficient structure.

References edit

  • W.J. Gilbert and W.K. Nicholson: Modern Algebra with Applications, 2nd edition, Wiley, 2004.
  • R. Lidl and G. Pilz. Applied Abstract Algebra, 2nd edition. Wiley, 1999.

polynomial, code, coding, theory, polynomial, code, type, linear, code, whose, valid, code, words, consists, those, polynomials, usually, some, fixed, length, that, divisible, given, fixed, polynomial, shorter, length, called, generator, polynomial, contents, . 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 Contents 1 Definition 2 Example 3 Encoding 3 1 Example 4 Decoding 5 Properties of polynomial codes 6 Specific families of polynomial codes 7 ReferencesDefinition editFix a finite field G F q displaystyle GF q nbsp whose elements we call symbols For the purposes of constructing polynomial codes we identify a string of n displaystyle n nbsp symbols a n 1 a 0 displaystyle a n 1 ldots a 0 nbsp with the polynomial a n 1 x n 1 a 1 x a 0 displaystyle a n 1 x n 1 cdots a 1 x a 0 nbsp Fix integers m n displaystyle m leq n nbsp and let g x displaystyle g x nbsp be some fixed polynomial of degree m displaystyle m nbsp called the generator polynomial The polynomial code generated by g x displaystyle g x nbsp is the code whose code words are precisely the polynomials of degree less than n displaystyle n nbsp that are divisible without remainder by g x displaystyle g x nbsp Example editConsider the polynomial code over G F 2 0 1 displaystyle GF 2 0 1 nbsp with n 5 displaystyle n 5 nbsp m 2 displaystyle m 2 nbsp and generator polynomial g x x 2 x 1 displaystyle g x x 2 x 1 nbsp This code consists of the following code words 0 g x 1 g x x g x x 1 g x displaystyle 0 cdot g x quad 1 cdot g x quad x cdot g x quad x 1 cdot g x nbsp x 2 g x x 2 1 g x x 2 x g x x 2 x 1 g x displaystyle x 2 cdot g x quad x 2 1 cdot g x quad x 2 x cdot g x quad x 2 x 1 cdot g x nbsp Or written explicitly 0 x 2 x 1 x 3 x 2 x x 3 2 x 2 2 x 1 displaystyle 0 quad x 2 x 1 quad x 3 x 2 x quad x 3 2x 2 2x 1 nbsp x 4 x 3 x 2 x 4 x 3 2 x 2 x 1 x 4 2 x 3 2 x 2 x x 4 2 x 3 3 x 2 2 x 1 displaystyle x 4 x 3 x 2 quad x 4 x 3 2x 2 x 1 quad x 4 2x 3 2x 2 x quad x 4 2x 3 3x 2 2x 1 nbsp Since the polynomial code is defined over the Binary Galois Field G F 2 0 1 displaystyle GF 2 0 1 nbsp polynomial elements are represented as a modulo 2 sum and the final polynomials are 0 x 2 x 1 x 3 x 2 x x 3 1 displaystyle 0 quad x 2 x 1 quad x 3 x 2 x quad x 3 1 nbsp x 4 x 3 x 2 x 4 x 3 x 1 x 4 x x 4 x 2 1 displaystyle x 4 x 3 x 2 quad x 4 x 3 x 1 quad x 4 x quad x 4 x 2 1 nbsp Equivalently expressed as strings of binary digits the codewords are 00000 00111 01110 01001 displaystyle 00000 quad 00111 quad 01110 quad 01001 nbsp 11100 11011 10010 10101 displaystyle 11100 quad 11011 quad 10010 quad 10101 nbsp This as every polynomial code is indeed a linear code i e linear combinations of code words are again code words In a case like this where the field is GF 2 linear combinations are found by taking the XOR of the codewords expressed in binary form e g 00111 XOR 10010 10101 Encoding editIn a polynomial code over G F q displaystyle GF q nbsp with code length n displaystyle n nbsp and generator polynomial g x displaystyle g x nbsp of degree m displaystyle m nbsp there will be exactly q n m displaystyle q n m nbsp code words Indeed by definition p x displaystyle p x nbsp is a code word if and only if it is of the form p x g x q x displaystyle p x g x cdot q x nbsp where q x displaystyle q x nbsp the quotient is of degree less than n m displaystyle n m nbsp Since there are q n m displaystyle q n m nbsp such quotients available there are the same number of possible code words Plain unencoded data words should therefore be of length n m displaystyle n m nbsp Some authors such as Lidl amp Pilz 1999 only discuss the mapping q x g x q x displaystyle q x mapsto g x cdot q x nbsp 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 often used to create a systematic code given a data word d x displaystyle d x nbsp of length n m displaystyle n m nbsp first multiply d x displaystyle d x nbsp by x m displaystyle x m nbsp which has the effect of shifting d x displaystyle d x nbsp by m displaystyle m nbsp places to the left In general x m d x displaystyle x m d x nbsp will not be divisible by g x displaystyle g x nbsp 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 m displaystyle m nbsp symbols of x m d x displaystyle x m d x nbsp To calculate it compute the remainder of dividing x m d x displaystyle x m d x nbsp by g x displaystyle g x nbsp x m d x g x q x r x displaystyle x m d x g x cdot q x r x nbsp where r x displaystyle r x nbsp is of degree less than m displaystyle m nbsp The code word corresponding to the data word d x displaystyle d x nbsp is then defined to be p x x m d x r x displaystyle p x x m d x r x nbsp Note the following properties p x g x q x displaystyle p x g x cdot q x nbsp which is divisible by g x displaystyle g x nbsp In particular p x displaystyle p x nbsp is a valid code word Since r x displaystyle r x nbsp is of degree less than m displaystyle m nbsp the leftmost n m displaystyle n m nbsp symbols of p x displaystyle p x nbsp agree with the corresponding symbols of x m d x displaystyle x m d x nbsp In other words the first n m displaystyle n m nbsp symbols of the code word are the same as the original data word The remaining m displaystyle m nbsp symbols are called checksum digits or check bits Example edit For the above code with n 5 displaystyle n 5 nbsp m 2 displaystyle m 2 nbsp and generator polynomial g x x 2 x 1 displaystyle g x x 2 x 1 nbsp we obtain the following assignment from data words to codewords 000 00000 001 00111 010 01001 011 01110 100 10010 101 10101 110 11011 111 11100Decoding editAn erroneous message can be detected in a straightforward way through polynomial division by the generator polynomial resulting in a non zero remainder Assuming that the code word is free of errors a systematic code can be decoded simply by stripping away the m displaystyle m nbsp checksum digits If there are errors then error correction should be performed before decoding Efficient decoding algorithms exist for specific polynomial codes such as BCH codes Properties of polynomial codes editAs for all digital codes the error detection and correction abilities of polynomial codes are determined by the minimum Hamming distance of the code Since polynomial codes are linear codes the minimum Hamming distance is equal to the minimum weight of any non zero codeword In the example above the minimum Hamming distance is 2 since 01001 is a codeword and there is no nonzero codeword with only one bit set More specific properties of a polynomial code often depend on particular algebraic properties of its generator polynomial Here are some examples of such properties A polynomial code is cyclic if and only if the generator polynomial divides x n 1 displaystyle x n 1 nbsp If the generator polynomial is primitive then the resulting code has Hamming distance at least 3 provided that n 2 m 1 displaystyle n leq 2 m 1 nbsp In BCH codes the generator polynomial is chosen to have specific roots in an extension field in a way that achieves high Hamming distance The algebraic nature of polynomial codes with cleverly chosen generator polynomials can also often be exploited to find efficient error correction algorithms This is the case for BCH codes Specific families of polynomial codes editCyclic codes every cyclic code is also a polynomial code a popular example is the CRC code BCH codes a family of cyclic codes with high Hamming distance and efficient algebraic error correction algorithms Reed Solomon codes an important subset of BCH codes with particularly efficient structure References editW J Gilbert and W K Nicholson Modern Algebra with Applications 2nd edition Wiley 2004 R Lidl and G Pilz Applied Abstract Algebra 2nd edition Wiley 1999 Retrieved from https en wikipedia org w index php title Polynomial code amp oldid 1181598537, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.