Try my QR Code Generator.

How to Create a Generator Polynomial


By default, this page demonstrates how to create a generator polynomial for 13 error correction code words. If you would like to see the steps for creating generator polynomial for a different number of code words (up to 68), use the form below.

Show steps for error correction code words

Introduction to Creating a Generator Polynomial

Below, I will show the steps to create a generator polynomial for 13 error correction code words.

However, since we are working with the galois field GF256, we need to use special methods to make sure our numbers don't get too big or too small to stay in the galois field.

When we multiply two alpha values, normally we add the two exponents together. But if the result is bigger than 255, we have a problem.

For example, consider α251 * α10. Multiplying these two gives us α261, but that is too big.

To prevent that from happening, we put the resulting exponent through the following formula:
(exponent % 256) + floor(exponent / 256)

Using the exponent of 261 from the above example, this gives us:
(261 % 256) + floor(261 / 256) = (5) + floor(1.01953125) = (5 + 1) = 6.

So when we multiply α251 * α10, the result is α6.

Another problem is combining like terms. Because of the nature of the galois field, we can't simply add the numbers together. We have to XOR them.

This will cause some unexpected results. For example:
α201x2 + α199x2 = 56x2 + 14x2

If we add those together normally, we get 70x2. This number is not larger than 255, so it would seem acceptable. However, if we perform an XOR instead of addition, we get:
56 ⊕ 14 = 54.

This is the correct result. When adding like terms during the creation of a generator polynomial, you must always XOR the integers rather than adding them.

How to Create a Generator Polynomial

In each step of creating a generator polynomial, you multiply a polynomial by a polynomial. The very first polynomial that you start with in the first step is always 0x1 + α0x0). For each multiplication step, you multiply the current polynomial by 0x1 + αjx0) where j is 1 for the first multiplication, 2 for the second multiplication, 3 for the third, and so on.

Multiplication Step #1

We will multiply (α0x1 + α0x0) by (α0x1 + α1x0)

After multiplying each term from the first part with each term from the second part, we get:
0x1 * α0x1) + (α0x0 * α0x1) + (α0x1 * α1x0) + (α0x0 * α1x0)

To multiply, you add the exponents together like this:
(0+0)x(1+1)) + (α(0+0)x(0+1)) + (α(0+1)x(1+0)) + (α(0+1)x(0+0))

After adding the exponents, this is the result:
α0x2 + α0x1 + α1x1 + α1x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256). In this case, all the exponents are less than or equal to 255, so we can continue.

Now you have to combine terms that have the same exponent. In this case, there is more than one x1 term.

We will now combine the x1 terms. they are:
α0x1 + α1x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
1x1 + 2x1

After XORing the integers, we convert the result back to an alpha term.
(1 ⊕ 2)x1 = 3x1 = α25x1

Below is the final polynomial from this step after combining the like terms. If we needed 2 error correction code words, this would be the generator polynomial required.
α0x2 + α25x1 + α1x0


Multiplication Step #2

Using the polynomial that we got from the previous step, we will multiply (α0x2 + α25x1 + α1x0) by (α0x1 + α2x0)

After multiplying each term from the first part with each term from the second part, we get:
0x2 * α0x1) + (α25x1 * α0x1) + (α1x0 * α0x1) + (α0x2 * α2x0) + (α25x1 * α2x0) + (α1x0 * α2x0)

To multiply, you add the exponents together like this:
(0+0)x(2+1)) + (α(25+0)x(1+1)) + (α(1+0)x(0+1)) + (α(0+2)x(2+0)) + (α(25+2)x(1+0)) + (α(1+2)x(0+0))

After adding the exponents, this is the result:
α0x3 + α25x2 + α1x1 + α2x2 + α27x1 + α3x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256). In this case, all the exponents are less than or equal to 255, so we can continue.

Now you have to combine terms that have the same exponent. In this case, there is more than one x2 and x1 term.

We will now combine the x2 terms. they are:
α25x2 + α2x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
3x2 + 4x2

After XORing the integers, we convert the result back to an alpha term.
(3 ⊕ 4)x2 = 7x2 = α198x2

We will now combine the x1 terms. they are:
α1x1 + α27x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
2x1 + 12x1

After XORing the integers, we convert the result back to an alpha term.
(2 ⊕ 12)x1 = 14x1 = α199x1

Below is the final polynomial from this step after combining the like terms. If we needed 3 error correction code words, this would be the generator polynomial required.
α0x3 + α198x2 + α199x1 + α3x0


Multiplication Step #3

Using the polynomial that we got from the previous step, we will multiply (α0x3 + α198x2 + α199x1 + α3x0) by (α0x1 + α3x0)

After multiplying each term from the first part with each term from the second part, we get:
0x3 * α0x1) + (α198x2 * α0x1) + (α199x1 * α0x1) + (α3x0 * α0x1) + (α0x3 * α3x0) + (α198x2 * α3x0) + (α199x1 * α3x0) + (α3x0 * α3x0)

To multiply, you add the exponents together like this:
(0+0)x(3+1)) + (α(198+0)x(2+1)) + (α(199+0)x(1+1)) + (α(3+0)x(0+1)) + (α(0+3)x(3+0)) + (α(198+3)x(2+0)) + (α(199+3)x(1+0)) + (α(3+3)x(0+0))

After adding the exponents, this is the result:
α0x4 + α198x3 + α199x2 + α3x1 + α3x3 + α201x2 + α202x1 + α6x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256). In this case, all the exponents are less than or equal to 255, so we can continue.

Now you have to combine terms that have the same exponent. In this case, there is more than one x3, x2 and x1 term.

We will now combine the x3 terms. they are:
α198x3 + α3x3

We will convert the above alphas to integers using the log antilog table to make this step easier:
7x3 + 8x3

After XORing the integers, we convert the result back to an alpha term.
(7 ⊕ 8)x3 = 15x3 = α75x3

We will now combine the x2 terms. they are:
α199x2 + α201x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
14x2 + 56x2

After XORing the integers, we convert the result back to an alpha term.
(14 ⊕ 56)x2 = 54x2 = α249x2

We will now combine the x1 terms. they are:
α3x1 + α202x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
8x1 + 112x1

After XORing the integers, we convert the result back to an alpha term.
(8 ⊕ 112)x1 = 120x1 = α78x1

Below is the final polynomial from this step after combining the like terms. If we needed 4 error correction code words, this would be the generator polynomial required.
α0x4 + α75x3 + α249x2 + α78x1 + α6x0


Multiplication Step #4

Using the polynomial that we got from the previous step, we will multiply (α0x4 + α75x3 + α249x2 + α78x1 + α6x0) by (α0x1 + α4x0)

After multiplying each term from the first part with each term from the second part, we get:
0x4 * α0x1) + (α75x3 * α0x1) + (α249x2 * α0x1) + (α78x1 * α0x1) + (α6x0 * α0x1) + (α0x4 * α4x0) + (α75x3 * α4x0) + (α249x2 * α4x0) + (α78x1 * α4x0) + (α6x0 * α4x0)

To multiply, you add the exponents together like this:
(0+0)x(4+1)) + (α(75+0)x(3+1)) + (α(249+0)x(2+1)) + (α(78+0)x(1+1)) + (α(6+0)x(0+1)) + (α(0+4)x(4+0)) + (α(75+4)x(3+0)) + (α(249+4)x(2+0)) + (α(78+4)x(1+0)) + (α(6+4)x(0+0))

After adding the exponents, this is the result:
α0x5 + α75x4 + α249x3 + α78x2 + α6x1 + α4x4 + α79x3 + α253x2 + α82x1 + α10x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256). In this case, all the exponents are less than or equal to 255, so we can continue.

Now you have to combine terms that have the same exponent. In this case, there is more than one x4, x3, x2 and x1 term.

We will now combine the x4 terms. they are:
α75x4 + α4x4

We will convert the above alphas to integers using the log antilog table to make this step easier:
15x4 + 16x4

After XORing the integers, we convert the result back to an alpha term.
(15 ⊕ 16)x4 = 31x4 = α113x4

We will now combine the x3 terms. they are:
α249x3 + α79x3

We will convert the above alphas to integers using the log antilog table to make this step easier:
54x3 + 240x3

After XORing the integers, we convert the result back to an alpha term.
(54 ⊕ 240)x3 = 198x3 = α164x3

We will now combine the x2 terms. they are:
α78x2 + α253x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
120x2 + 71x2

After XORing the integers, we convert the result back to an alpha term.
(120 ⊕ 71)x2 = 63x2 = α166x2

We will now combine the x1 terms. they are:
α6x1 + α82x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
64x1 + 211x1

After XORing the integers, we convert the result back to an alpha term.
(64 ⊕ 211)x1 = 147x1 = α119x1

Below is the final polynomial from this step after combining the like terms. If we needed 5 error correction code words, this would be the generator polynomial required.
α0x5 + α113x4 + α164x3 + α166x2 + α119x1 + α10x0


Multiplication Step #5

Using the polynomial that we got from the previous step, we will multiply (α0x5 + α113x4 + α164x3 + α166x2 + α119x1 + α10x0) by (α0x1 + α5x0)

After multiplying each term from the first part with each term from the second part, we get:
0x5 * α0x1) + (α113x4 * α0x1) + (α164x3 * α0x1) + (α166x2 * α0x1) + (α119x1 * α0x1) + (α10x0 * α0x1) + (α0x5 * α5x0) + (α113x4 * α5x0) + (α164x3 * α5x0) + (α166x2 * α5x0) + (α119x1 * α5x0) + (α10x0 * α5x0)

To multiply, you add the exponents together like this:
(0+0)x(5+1)) + (α(113+0)x(4+1)) + (α(164+0)x(3+1)) + (α(166+0)x(2+1)) + (α(119+0)x(1+1)) + (α(10+0)x(0+1)) + (α(0+5)x(5+0)) + (α(113+5)x(4+0)) + (α(164+5)x(3+0)) + (α(166+5)x(2+0)) + (α(119+5)x(1+0)) + (α(10+5)x(0+0))

After adding the exponents, this is the result:
α0x6 + α113x5 + α164x4 + α166x3 + α119x2 + α10x1 + α5x5 + α118x4 + α169x3 + α171x2 + α124x1 + α15x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256). In this case, all the exponents are less than or equal to 255, so we can continue.

Now you have to combine terms that have the same exponent. In this case, there is more than one x5, x4, x3, x2 and x1 term.

We will now combine the x5 terms. they are:
α113x5 + α5x5

We will convert the above alphas to integers using the log antilog table to make this step easier:
31x5 + 32x5

After XORing the integers, we convert the result back to an alpha term.
(31 ⊕ 32)x5 = 63x5 = α166x5

We will now combine the x4 terms. they are:
α164x4 + α118x4

We will convert the above alphas to integers using the log antilog table to make this step easier:
198x4 + 199x4

After XORing the integers, we convert the result back to an alpha term.
(198 ⊕ 199)x4 = 1x4 = α0x4

We will now combine the x3 terms. they are:
α166x3 + α169x3

We will convert the above alphas to integers using the log antilog table to make this step easier:
63x3 + 229x3

After XORing the integers, we convert the result back to an alpha term.
(63 ⊕ 229)x3 = 218x3 = α134x3

We will now combine the x2 terms. they are:
α119x2 + α171x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
147x2 + 179x2

After XORing the integers, we convert the result back to an alpha term.
(147 ⊕ 179)x2 = 32x2 = α5x2

We will now combine the x1 terms. they are:
α10x1 + α124x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
116x1 + 151x1

After XORing the integers, we convert the result back to an alpha term.
(116 ⊕ 151)x1 = 227x1 = α176x1

Below is the final polynomial from this step after combining the like terms. If we needed 6 error correction code words, this would be the generator polynomial required.
α0x6 + α166x5 + α0x4 + α134x3 + α5x2 + α176x1 + α15x0


Multiplication Step #6

Using the polynomial that we got from the previous step, we will multiply (α0x6 + α166x5 + α0x4 + α134x3 + α5x2 + α176x1 + α15x0) by (α0x1 + α6x0)

After multiplying each term from the first part with each term from the second part, we get:
0x6 * α0x1) + (α166x5 * α0x1) + (α0x4 * α0x1) + (α134x3 * α0x1) + (α5x2 * α0x1) + (α176x1 * α0x1) + (α15x0 * α0x1) + (α0x6 * α6x0) + (α166x5 * α6x0) + (α0x4 * α6x0) + (α134x3 * α6x0) + (α5x2 * α6x0) + (α176x1 * α6x0) + (α15x0 * α6x0)

To multiply, you add the exponents together like this:
(0+0)x(6+1)) + (α(166+0)x(5+1)) + (α(0+0)x(4+1)) + (α(134+0)x(3+1)) + (α(5+0)x(2+1)) + (α(176+0)x(1+1)) + (α(15+0)x(0+1)) + (α(0+6)x(6+0)) + (α(166+6)x(5+0)) + (α(0+6)x(4+0)) + (α(134+6)x(3+0)) + (α(5+6)x(2+0)) + (α(176+6)x(1+0)) + (α(15+6)x(0+0))

After adding the exponents, this is the result:
α0x7 + α166x6 + α0x5 + α134x4 + α5x3 + α176x2 + α15x1 + α6x6 + α172x5 + α6x4 + α140x3 + α11x2 + α182x1 + α21x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256). In this case, all the exponents are less than or equal to 255, so we can continue.

Now you have to combine terms that have the same exponent. In this case, there is more than one x6, x5, x4, x3, x2 and x1 term.

We will now combine the x6 terms. they are:
α166x6 + α6x6

We will convert the above alphas to integers using the log antilog table to make this step easier:
63x6 + 64x6

After XORing the integers, we convert the result back to an alpha term.
(63 ⊕ 64)x6 = 127x6 = α87x6

We will now combine the x5 terms. they are:
α0x5 + α172x5

We will convert the above alphas to integers using the log antilog table to make this step easier:
1x5 + 123x5

After XORing the integers, we convert the result back to an alpha term.
(1 ⊕ 123)x5 = 122x5 = α229x5

We will now combine the x4 terms. they are:
α134x4 + α6x4

We will convert the above alphas to integers using the log antilog table to make this step easier:
218x4 + 64x4

After XORing the integers, we convert the result back to an alpha term.
(218 ⊕ 64)x4 = 154x4 = α146x4

We will now combine the x3 terms. they are:
α5x3 + α140x3

We will convert the above alphas to integers using the log antilog table to make this step easier:
32x3 + 132x3

After XORing the integers, we convert the result back to an alpha term.
(32 ⊕ 132)x3 = 164x3 = α149x3

We will now combine the x2 terms. they are:
α176x2 + α11x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
227x2 + 232x2

After XORing the integers, we convert the result back to an alpha term.
(227 ⊕ 232)x2 = 11x2 = α238x2

We will now combine the x1 terms. they are:
α15x1 + α182x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
38x1 + 98x1

After XORing the integers, we convert the result back to an alpha term.
(38 ⊕ 98)x1 = 68x1 = α102x1

Below is the final polynomial from this step after combining the like terms. If we needed 7 error correction code words, this would be the generator polynomial required.
α0x7 + α87x6 + α229x5 + α146x4 + α149x3 + α238x2 + α102x1 + α21x0


Multiplication Step #7

Using the polynomial that we got from the previous step, we will multiply (α0x7 + α87x6 + α229x5 + α146x4 + α149x3 + α238x2 + α102x1 + α21x0) by (α0x1 + α7x0)

After multiplying each term from the first part with each term from the second part, we get:
0x7 * α0x1) + (α87x6 * α0x1) + (α229x5 * α0x1) + (α146x4 * α0x1) + (α149x3 * α0x1) + (α238x2 * α0x1) + (α102x1 * α0x1) + (α21x0 * α0x1) + (α0x7 * α7x0) + (α87x6 * α7x0) + (α229x5 * α7x0) + (α146x4 * α7x0) + (α149x3 * α7x0) + (α238x2 * α7x0) + (α102x1 * α7x0) + (α21x0 * α7x0)

To multiply, you add the exponents together like this:
(0+0)x(7+1)) + (α(87+0)x(6+1)) + (α(229+0)x(5+1)) + (α(146+0)x(4+1)) + (α(149+0)x(3+1)) + (α(238+0)x(2+1)) + (α(102+0)x(1+1)) + (α(21+0)x(0+1)) + (α(0+7)x(7+0)) + (α(87+7)x(6+0)) + (α(229+7)x(5+0)) + (α(146+7)x(4+0)) + (α(149+7)x(3+0)) + (α(238+7)x(2+0)) + (α(102+7)x(1+0)) + (α(21+7)x(0+0))

After adding the exponents, this is the result:
α0x8 + α87x7 + α229x6 + α146x5 + α149x4 + α238x3 + α102x2 + α21x1 + α7x7 + α94x6 + α236x5 + α153x4 + α156x3 + α245x2 + α109x1 + α28x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256). In this case, all the exponents are less than or equal to 255, so we can continue.

Now you have to combine terms that have the same exponent. In this case, there is more than one x7, x6, x5, x4, x3, x2 and x1 term.

We will now combine the x7 terms. they are:
α87x7 + α7x7

We will convert the above alphas to integers using the log antilog table to make this step easier:
127x7 + 128x7

After XORing the integers, we convert the result back to an alpha term.
(127 ⊕ 128)x7 = 255x7 = α175x7

We will now combine the x6 terms. they are:
α229x6 + α94x6

We will convert the above alphas to integers using the log antilog table to make this step easier:
122x6 + 113x6

After XORing the integers, we convert the result back to an alpha term.
(122 ⊕ 113)x6 = 11x6 = α238x6

We will now combine the x5 terms. they are:
α146x5 + α236x5

We will convert the above alphas to integers using the log antilog table to make this step easier:
154x5 + 203x5

After XORing the integers, we convert the result back to an alpha term.
(154 ⊕ 203)x5 = 81x5 = α208x5

We will now combine the x4 terms. they are:
α149x4 + α153x4

We will convert the above alphas to integers using the log antilog table to make this step easier:
164x4 + 146x4

After XORing the integers, we convert the result back to an alpha term.
(164 ⊕ 146)x4 = 54x4 = α249x4

We will now combine the x3 terms. they are:
α238x3 + α156x3

We will convert the above alphas to integers using the log antilog table to make this step easier:
11x3 + 228x3

After XORing the integers, we convert the result back to an alpha term.
(11 ⊕ 228)x3 = 239x3 = α215x3

We will now combine the x2 terms. they are:
α102x2 + α245x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
68x2 + 233x2

After XORing the integers, we convert the result back to an alpha term.
(68 ⊕ 233)x2 = 173x2 = α252x2

We will now combine the x1 terms. they are:
α21x1 + α109x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
117x1 + 189x1

After XORing the integers, we convert the result back to an alpha term.
(117 ⊕ 189)x1 = 200x1 = α196x1

Below is the final polynomial from this step after combining the like terms. If we needed 8 error correction code words, this would be the generator polynomial required.
α0x8 + α175x7 + α238x6 + α208x5 + α249x4 + α215x3 + α252x2 + α196x1 + α28x0


Multiplication Step #8

Using the polynomial that we got from the previous step, we will multiply (α0x8 + α175x7 + α238x6 + α208x5 + α249x4 + α215x3 + α252x2 + α196x1 + α28x0) by (α0x1 + α8x0)

After multiplying each term from the first part with each term from the second part, we get:
0x8 * α0x1) + (α175x7 * α0x1) + (α238x6 * α0x1) + (α208x5 * α0x1) + (α249x4 * α0x1) + (α215x3 * α0x1) + (α252x2 * α0x1) + (α196x1 * α0x1) + (α28x0 * α0x1) + (α0x8 * α8x0) + (α175x7 * α8x0) + (α238x6 * α8x0) + (α208x5 * α8x0) + (α249x4 * α8x0) + (α215x3 * α8x0) + (α252x2 * α8x0) + (α196x1 * α8x0) + (α28x0 * α8x0)

To multiply, you add the exponents together like this:
(0+0)x(8+1)) + (α(175+0)x(7+1)) + (α(238+0)x(6+1)) + (α(208+0)x(5+1)) + (α(249+0)x(4+1)) + (α(215+0)x(3+1)) + (α(252+0)x(2+1)) + (α(196+0)x(1+1)) + (α(28+0)x(0+1)) + (α(0+8)x(8+0)) + (α(175+8)x(7+0)) + (α(238+8)x(6+0)) + (α(208+8)x(5+0)) + (α(249+8)x(4+0)) + (α(215+8)x(3+0)) + (α(252+8)x(2+0)) + (α(196+8)x(1+0)) + (α(28+8)x(0+0))

After adding the exponents, this is the result:
α0x9 + α175x8 + α238x7 + α208x6 + α249x5 + α215x4 + α252x3 + α196x2 + α28x1 + α8x8 + α183x7 + α246x6 + α216x5 + α257x4 + α223x3 + α260x2 + α204x1 + α36x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256)
α0x9 + α175x8 + α238x7 + α208x6 + α249x5 + α215x4 + α252x3 + α196x2 + α28x1 + α8x8 + α183x7 + α246x6 + α216x5 + α2x4 + α223x3 + α5x2 + α204x1 + α36x0

Now you have to combine terms that have the same exponent. In this case, there is more than one x8, x7, x6, x5, x4, x3, x2 and x1 term.

We will now combine the x8 terms. they are:
α175x8 + α8x8

We will convert the above alphas to integers using the log antilog table to make this step easier:
255x8 + 29x8

After XORing the integers, we convert the result back to an alpha term.
(255 ⊕ 29)x8 = 226x8 = α95x8

We will now combine the x7 terms. they are:
α238x7 + α183x7

We will convert the above alphas to integers using the log antilog table to make this step easier:
11x7 + 196x7

After XORing the integers, we convert the result back to an alpha term.
(11 ⊕ 196)x7 = 207x7 = α246x7

We will now combine the x6 terms. they are:
α208x6 + α246x6

We will convert the above alphas to integers using the log antilog table to make this step easier:
81x6 + 207x6

After XORing the integers, we convert the result back to an alpha term.
(81 ⊕ 207)x6 = 158x6 = α137x6

We will now combine the x5 terms. they are:
α249x5 + α216x5

We will convert the above alphas to integers using the log antilog table to make this step easier:
54x5 + 195x5

After XORing the integers, we convert the result back to an alpha term.
(54 ⊕ 195)x5 = 245x5 = α231x5

We will now combine the x4 terms. they are:
α215x4 + α2x4

We will convert the above alphas to integers using the log antilog table to make this step easier:
239x4 + 4x4

After XORing the integers, we convert the result back to an alpha term.
(239 ⊕ 4)x4 = 235x4 = α235x4

We will now combine the x3 terms. they are:
α252x3 + α223x3

We will convert the above alphas to integers using the log antilog table to make this step easier:
173x3 + 9x3

After XORing the integers, we convert the result back to an alpha term.
(173 ⊕ 9)x3 = 164x3 = α149x3

We will now combine the x2 terms. they are:
α196x2 + α5x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
200x2 + 32x2

After XORing the integers, we convert the result back to an alpha term.
(200 ⊕ 32)x2 = 232x2 = α11x2

We will now combine the x1 terms. they are:
α28x1 + α204x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
24x1 + 221x1

After XORing the integers, we convert the result back to an alpha term.
(24 ⊕ 221)x1 = 197x1 = α123x1

Below is the final polynomial from this step after combining the like terms. If we needed 9 error correction code words, this would be the generator polynomial required.
α0x9 + α95x8 + α246x7 + α137x6 + α231x5 + α235x4 + α149x3 + α11x2 + α123x1 + α36x0


Multiplication Step #9

Using the polynomial that we got from the previous step, we will multiply (α0x9 + α95x8 + α246x7 + α137x6 + α231x5 + α235x4 + α149x3 + α11x2 + α123x1 + α36x0) by (α0x1 + α9x0)

After multiplying each term from the first part with each term from the second part, we get:
0x9 * α0x1) + (α95x8 * α0x1) + (α246x7 * α0x1) + (α137x6 * α0x1) + (α231x5 * α0x1) + (α235x4 * α0x1) + (α149x3 * α0x1) + (α11x2 * α0x1) + (α123x1 * α0x1) + (α36x0 * α0x1) + (α0x9 * α9x0) + (α95x8 * α9x0) + (α246x7 * α9x0) + (α137x6 * α9x0) + (α231x5 * α9x0) + (α235x4 * α9x0) + (α149x3 * α9x0) + (α11x2 * α9x0) + (α123x1 * α9x0) + (α36x0 * α9x0)

To multiply, you add the exponents together like this:
(0+0)x(9+1)) + (α(95+0)x(8+1)) + (α(246+0)x(7+1)) + (α(137+0)x(6+1)) + (α(231+0)x(5+1)) + (α(235+0)x(4+1)) + (α(149+0)x(3+1)) + (α(11+0)x(2+1)) + (α(123+0)x(1+1)) + (α(36+0)x(0+1)) + (α(0+9)x(9+0)) + (α(95+9)x(8+0)) + (α(246+9)x(7+0)) + (α(137+9)x(6+0)) + (α(231+9)x(5+0)) + (α(235+9)x(4+0)) + (α(149+9)x(3+0)) + (α(11+9)x(2+0)) + (α(123+9)x(1+0)) + (α(36+9)x(0+0))

After adding the exponents, this is the result:
α0x10 + α95x9 + α246x8 + α137x7 + α231x6 + α235x5 + α149x4 + α11x3 + α123x2 + α36x1 + α9x9 + α104x8 + α255x7 + α146x6 + α240x5 + α244x4 + α158x3 + α20x2 + α132x1 + α45x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256). In this case, all the exponents are less than or equal to 255, so we can continue.

Now you have to combine terms that have the same exponent. In this case, there is more than one x9, x8, x7, x6, x5, x4, x3, x2 and x1 term.

We will now combine the x9 terms. they are:
α95x9 + α9x9

We will convert the above alphas to integers using the log antilog table to make this step easier:
226x9 + 58x9

After XORing the integers, we convert the result back to an alpha term.
(226 ⊕ 58)x9 = 216x9 = α251x9

We will now combine the x8 terms. they are:
α246x8 + α104x8

We will convert the above alphas to integers using the log antilog table to make this step easier:
207x8 + 13x8

After XORing the integers, we convert the result back to an alpha term.
(207 ⊕ 13)x8 = 194x8 = α67x8

We will now combine the x7 terms. they are:
α137x7 + α255x7

We will convert the above alphas to integers using the log antilog table to make this step easier:
158x7 + 1x7

After XORing the integers, we convert the result back to an alpha term.
(158 ⊕ 1)x7 = 159x7 = α46x7

We will now combine the x6 terms. they are:
α231x6 + α146x6

We will convert the above alphas to integers using the log antilog table to make this step easier:
245x6 + 154x6

After XORing the integers, we convert the result back to an alpha term.
(245 ⊕ 154)x6 = 111x6 = α61x6

We will now combine the x5 terms. they are:
α235x5 + α240x5

We will convert the above alphas to integers using the log antilog table to make this step easier:
235x5 + 44x5

After XORing the integers, we convert the result back to an alpha term.
(235 ⊕ 44)x5 = 199x5 = α118x5

We will now combine the x4 terms. they are:
α149x4 + α244x4

We will convert the above alphas to integers using the log antilog table to make this step easier:
164x4 + 250x4

After XORing the integers, we convert the result back to an alpha term.
(164 ⊕ 250)x4 = 94x4 = α70x4

We will now combine the x3 terms. they are:
α11x3 + α158x3

We will convert the above alphas to integers using the log antilog table to make this step easier:
232x3 + 183x3

After XORing the integers, we convert the result back to an alpha term.
(232 ⊕ 183)x3 = 95x3 = α64x3

We will now combine the x2 terms. they are:
α123x2 + α20x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
197x2 + 180x2

After XORing the integers, we convert the result back to an alpha term.
(197 ⊕ 180)x2 = 113x2 = α94x2

We will now combine the x1 terms. they are:
α36x1 + α132x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
37x1 + 184x1

After XORing the integers, we convert the result back to an alpha term.
(37 ⊕ 184)x1 = 157x1 = α32x1

Below is the final polynomial from this step after combining the like terms. If we needed 10 error correction code words, this would be the generator polynomial required.
α0x10 + α251x9 + α67x8 + α46x7 + α61x6 + α118x5 + α70x4 + α64x3 + α94x2 + α32x1 + α45x0


Multiplication Step #10

Using the polynomial that we got from the previous step, we will multiply (α0x10 + α251x9 + α67x8 + α46x7 + α61x6 + α118x5 + α70x4 + α64x3 + α94x2 + α32x1 + α45x0) by (α0x1 + α10x0)

After multiplying each term from the first part with each term from the second part, we get:
0x10 * α0x1) + (α251x9 * α0x1) + (α67x8 * α0x1) + (α46x7 * α0x1) + (α61x6 * α0x1) + (α118x5 * α0x1) + (α70x4 * α0x1) + (α64x3 * α0x1) + (α94x2 * α0x1) + (α32x1 * α0x1) + (α45x0 * α0x1) + (α0x10 * α10x0) + (α251x9 * α10x0) + (α67x8 * α10x0) + (α46x7 * α10x0) + (α61x6 * α10x0) + (α118x5 * α10x0) + (α70x4 * α10x0) + (α64x3 * α10x0) + (α94x2 * α10x0) + (α32x1 * α10x0) + (α45x0 * α10x0)

To multiply, you add the exponents together like this:
(0+0)x(10+1)) + (α(251+0)x(9+1)) + (α(67+0)x(8+1)) + (α(46+0)x(7+1)) + (α(61+0)x(6+1)) + (α(118+0)x(5+1)) + (α(70+0)x(4+1)) + (α(64+0)x(3+1)) + (α(94+0)x(2+1)) + (α(32+0)x(1+1)) + (α(45+0)x(0+1)) + (α(0+10)x(10+0)) + (α(251+10)x(9+0)) + (α(67+10)x(8+0)) + (α(46+10)x(7+0)) + (α(61+10)x(6+0)) + (α(118+10)x(5+0)) + (α(70+10)x(4+0)) + (α(64+10)x(3+0)) + (α(94+10)x(2+0)) + (α(32+10)x(1+0)) + (α(45+10)x(0+0))

After adding the exponents, this is the result:
α0x11 + α251x10 + α67x9 + α46x8 + α61x7 + α118x6 + α70x5 + α64x4 + α94x3 + α32x2 + α45x1 + α10x10 + α261x9 + α77x8 + α56x7 + α71x6 + α128x5 + α80x4 + α74x3 + α104x2 + α42x1 + α55x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256)
α0x11 + α251x10 + α67x9 + α46x8 + α61x7 + α118x6 + α70x5 + α64x4 + α94x3 + α32x2 + α45x1 + α10x10 + α6x9 + α77x8 + α56x7 + α71x6 + α128x5 + α80x4 + α74x3 + α104x2 + α42x1 + α55x0

Now you have to combine terms that have the same exponent. In this case, there is more than one x10, x9, x8, x7, x6, x5, x4, x3, x2 and x1 term.

We will now combine the x10 terms. they are:
α251x10 + α10x10

We will convert the above alphas to integers using the log antilog table to make this step easier:
216x10 + 116x10

After XORing the integers, we convert the result back to an alpha term.
(216 ⊕ 116)x10 = 172x10 = α220x10

We will now combine the x9 terms. they are:
α67x9 + α6x9

We will convert the above alphas to integers using the log antilog table to make this step easier:
194x9 + 64x9

After XORing the integers, we convert the result back to an alpha term.
(194 ⊕ 64)x9 = 130x9 = α192x9

We will now combine the x8 terms. they are:
α46x8 + α77x8

We will convert the above alphas to integers using the log antilog table to make this step easier:
159x8 + 60x8

After XORing the integers, we convert the result back to an alpha term.
(159 ⊕ 60)x8 = 163x8 = α91x8

We will now combine the x7 terms. they are:
α61x7 + α56x7

We will convert the above alphas to integers using the log antilog table to make this step easier:
111x7 + 93x7

After XORing the integers, we convert the result back to an alpha term.
(111 ⊕ 93)x7 = 50x7 = α194x7

We will now combine the x6 terms. they are:
α118x6 + α71x6

We will convert the above alphas to integers using the log antilog table to make this step easier:
199x6 + 188x6

After XORing the integers, we convert the result back to an alpha term.
(199 ⊕ 188)x6 = 123x6 = α172x6

We will now combine the x5 terms. they are:
α70x5 + α128x5

We will convert the above alphas to integers using the log antilog table to make this step easier:
94x5 + 133x5

After XORing the integers, we convert the result back to an alpha term.
(94 ⊕ 133)x5 = 219x5 = α177x5

We will now combine the x4 terms. they are:
α64x4 + α80x4

We will convert the above alphas to integers using the log antilog table to make this step easier:
95x4 + 253x4

After XORing the integers, we convert the result back to an alpha term.
(95 ⊕ 253)x4 = 162x4 = α209x4

We will now combine the x3 terms. they are:
α94x3 + α74x3

We will convert the above alphas to integers using the log antilog table to make this step easier:
113x3 + 137x3

After XORing the integers, we convert the result back to an alpha term.
(113 ⊕ 137)x3 = 248x3 = α116x3

We will now combine the x2 terms. they are:
α32x2 + α104x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
157x2 + 13x2

After XORing the integers, we convert the result back to an alpha term.
(157 ⊕ 13)x2 = 144x2 = α227x2

We will now combine the x1 terms. they are:
α45x1 + α42x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
193x1 + 181x1

After XORing the integers, we convert the result back to an alpha term.
(193 ⊕ 181)x1 = 116x1 = α10x1

Below is the final polynomial from this step after combining the like terms. If we needed 11 error correction code words, this would be the generator polynomial required.
α0x11 + α220x10 + α192x9 + α91x8 + α194x7 + α172x6 + α177x5 + α209x4 + α116x3 + α227x2 + α10x1 + α55x0


Multiplication Step #11

Using the polynomial that we got from the previous step, we will multiply (α0x11 + α220x10 + α192x9 + α91x8 + α194x7 + α172x6 + α177x5 + α209x4 + α116x3 + α227x2 + α10x1 + α55x0) by (α0x1 + α11x0)

After multiplying each term from the first part with each term from the second part, we get:
0x11 * α0x1) + (α220x10 * α0x1) + (α192x9 * α0x1) + (α91x8 * α0x1) + (α194x7 * α0x1) + (α172x6 * α0x1) + (α177x5 * α0x1) + (α209x4 * α0x1) + (α116x3 * α0x1) + (α227x2 * α0x1) + (α10x1 * α0x1) + (α55x0 * α0x1) + (α0x11 * α11x0) + (α220x10 * α11x0) + (α192x9 * α11x0) + (α91x8 * α11x0) + (α194x7 * α11x0) + (α172x6 * α11x0) + (α177x5 * α11x0) + (α209x4 * α11x0) + (α116x3 * α11x0) + (α227x2 * α11x0) + (α10x1 * α11x0) + (α55x0 * α11x0)

To multiply, you add the exponents together like this:
(0+0)x(11+1)) + (α(220+0)x(10+1)) + (α(192+0)x(9+1)) + (α(91+0)x(8+1)) + (α(194+0)x(7+1)) + (α(172+0)x(6+1)) + (α(177+0)x(5+1)) + (α(209+0)x(4+1)) + (α(116+0)x(3+1)) + (α(227+0)x(2+1)) + (α(10+0)x(1+1)) + (α(55+0)x(0+1)) + (α(0+11)x(11+0)) + (α(220+11)x(10+0)) + (α(192+11)x(9+0)) + (α(91+11)x(8+0)) + (α(194+11)x(7+0)) + (α(172+11)x(6+0)) + (α(177+11)x(5+0)) + (α(209+11)x(4+0)) + (α(116+11)x(3+0)) + (α(227+11)x(2+0)) + (α(10+11)x(1+0)) + (α(55+11)x(0+0))

After adding the exponents, this is the result:
α0x12 + α220x11 + α192x10 + α91x9 + α194x8 + α172x7 + α177x6 + α209x5 + α116x4 + α227x3 + α10x2 + α55x1 + α11x11 + α231x10 + α203x9 + α102x8 + α205x7 + α183x6 + α188x5 + α220x4 + α127x3 + α238x2 + α21x1 + α66x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256). In this case, all the exponents are less than or equal to 255, so we can continue.

Now you have to combine terms that have the same exponent. In this case, there is more than one x11, x10, x9, x8, x7, x6, x5, x4, x3, x2 and x1 term.

We will now combine the x11 terms. they are:
α220x11 + α11x11

We will convert the above alphas to integers using the log antilog table to make this step easier:
172x11 + 232x11

After XORing the integers, we convert the result back to an alpha term.
(172 ⊕ 232)x11 = 68x11 = α102x11

We will now combine the x10 terms. they are:
α192x10 + α231x10

We will convert the above alphas to integers using the log antilog table to make this step easier:
130x10 + 245x10

After XORing the integers, we convert the result back to an alpha term.
(130 ⊕ 245)x10 = 119x10 = α43x10

We will now combine the x9 terms. they are:
α91x9 + α203x9

We will convert the above alphas to integers using the log antilog table to make this step easier:
163x9 + 224x9

After XORing the integers, we convert the result back to an alpha term.
(163 ⊕ 224)x9 = 67x9 = α98x9

We will now combine the x8 terms. they are:
α194x8 + α102x8

We will convert the above alphas to integers using the log antilog table to make this step easier:
50x8 + 68x8

After XORing the integers, we convert the result back to an alpha term.
(50 ⊕ 68)x8 = 118x8 = α121x8

We will now combine the x7 terms. they are:
α172x7 + α205x7

We will convert the above alphas to integers using the log antilog table to make this step easier:
123x7 + 167x7

After XORing the integers, we convert the result back to an alpha term.
(123 ⊕ 167)x7 = 220x7 = α187x7

We will now combine the x6 terms. they are:
α177x6 + α183x6

We will convert the above alphas to integers using the log antilog table to make this step easier:
219x6 + 196x6

After XORing the integers, we convert the result back to an alpha term.
(219 ⊕ 196)x6 = 31x6 = α113x6

We will now combine the x5 terms. they are:
α209x5 + α188x5

We will convert the above alphas to integers using the log antilog table to make this step easier:
162x5 + 165x5

After XORing the integers, we convert the result back to an alpha term.
(162 ⊕ 165)x5 = 7x5 = α198x5

We will now combine the x4 terms. they are:
α116x4 + α220x4

We will convert the above alphas to integers using the log antilog table to make this step easier:
248x4 + 172x4

After XORing the integers, we convert the result back to an alpha term.
(248 ⊕ 172)x4 = 84x4 = α143x4

We will now combine the x3 terms. they are:
α227x3 + α127x3

We will convert the above alphas to integers using the log antilog table to make this step easier:
144x3 + 204x3

After XORing the integers, we convert the result back to an alpha term.
(144 ⊕ 204)x3 = 92x3 = α131x3

We will now combine the x2 terms. they are:
α10x2 + α238x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
116x2 + 11x2

After XORing the integers, we convert the result back to an alpha term.
(116 ⊕ 11)x2 = 127x2 = α87x2

We will now combine the x1 terms. they are:
α55x1 + α21x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
160x1 + 117x1

After XORing the integers, we convert the result back to an alpha term.
(160 ⊕ 117)x1 = 213x1 = α157x1

Below is the final polynomial from this step after combining the like terms. If we needed 12 error correction code words, this would be the generator polynomial required.
α0x12 + α102x11 + α43x10 + α98x9 + α121x8 + α187x7 + α113x6 + α198x5 + α143x4 + α131x3 + α87x2 + α157x1 + α66x0


Multiplication Step #12

Using the polynomial that we got from the previous step, we will multiply (α0x12 + α102x11 + α43x10 + α98x9 + α121x8 + α187x7 + α113x6 + α198x5 + α143x4 + α131x3 + α87x2 + α157x1 + α66x0) by (α0x1 + α12x0)

After multiplying each term from the first part with each term from the second part, we get:
0x12 * α0x1) + (α102x11 * α0x1) + (α43x10 * α0x1) + (α98x9 * α0x1) + (α121x8 * α0x1) + (α187x7 * α0x1) + (α113x6 * α0x1) + (α198x5 * α0x1) + (α143x4 * α0x1) + (α131x3 * α0x1) + (α87x2 * α0x1) + (α157x1 * α0x1) + (α66x0 * α0x1) + (α0x12 * α12x0) + (α102x11 * α12x0) + (α43x10 * α12x0) + (α98x9 * α12x0) + (α121x8 * α12x0) + (α187x7 * α12x0) + (α113x6 * α12x0) + (α198x5 * α12x0) + (α143x4 * α12x0) + (α131x3 * α12x0) + (α87x2 * α12x0) + (α157x1 * α12x0) + (α66x0 * α12x0)

To multiply, you add the exponents together like this:
(0+0)x(12+1)) + (α(102+0)x(11+1)) + (α(43+0)x(10+1)) + (α(98+0)x(9+1)) + (α(121+0)x(8+1)) + (α(187+0)x(7+1)) + (α(113+0)x(6+1)) + (α(198+0)x(5+1)) + (α(143+0)x(4+1)) + (α(131+0)x(3+1)) + (α(87+0)x(2+1)) + (α(157+0)x(1+1)) + (α(66+0)x(0+1)) + (α(0+12)x(12+0)) + (α(102+12)x(11+0)) + (α(43+12)x(10+0)) + (α(98+12)x(9+0)) + (α(121+12)x(8+0)) + (α(187+12)x(7+0)) + (α(113+12)x(6+0)) + (α(198+12)x(5+0)) + (α(143+12)x(4+0)) + (α(131+12)x(3+0)) + (α(87+12)x(2+0)) + (α(157+12)x(1+0)) + (α(66+12)x(0+0))

After adding the exponents, this is the result:
α0x13 + α102x12 + α43x11 + α98x10 + α121x9 + α187x8 + α113x7 + α198x6 + α143x5 + α131x4 + α87x3 + α157x2 + α66x1 + α12x12 + α114x11 + α55x10 + α110x9 + α133x8 + α199x7 + α125x6 + α210x5 + α155x4 + α143x3 + α99x2 + α169x1 + α78x0

If there are any exponents that are larger than 255, fix them by putting them through the formula
(exponent % 256) + floor(exponent / 256). In this case, all the exponents are less than or equal to 255, so we can continue.

Now you have to combine terms that have the same exponent. In this case, there is more than one x12, x11, x10, x9, x8, x7, x6, x5, x4, x3, x2 and x1 term.

We will now combine the x12 terms. they are:
α102x12 + α12x12

We will convert the above alphas to integers using the log antilog table to make this step easier:
68x12 + 205x12

After XORing the integers, we convert the result back to an alpha term.
(68 ⊕ 205)x12 = 137x12 = α74x12

We will now combine the x11 terms. they are:
α43x11 + α114x11

We will convert the above alphas to integers using the log antilog table to make this step easier:
119x11 + 62x11

After XORing the integers, we convert the result back to an alpha term.
(119 ⊕ 62)x11 = 73x11 = α152x11

We will now combine the x10 terms. they are:
α98x10 + α55x10

We will convert the above alphas to integers using the log antilog table to make this step easier:
67x10 + 160x10

After XORing the integers, we convert the result back to an alpha term.
(67 ⊕ 160)x10 = 227x10 = α176x10

We will now combine the x9 terms. they are:
α121x9 + α110x9

We will convert the above alphas to integers using the log antilog table to make this step easier:
118x9 + 103x9

After XORing the integers, we convert the result back to an alpha term.
(118 ⊕ 103)x9 = 17x9 = α100x9

We will now combine the x8 terms. they are:
α187x8 + α133x8

We will convert the above alphas to integers using the log antilog table to make this step easier:
220x8 + 109x8

After XORing the integers, we convert the result back to an alpha term.
(220 ⊕ 109)x8 = 177x8 = α86x8

We will now combine the x7 terms. they are:
α113x7 + α199x7

We will convert the above alphas to integers using the log antilog table to make this step easier:
31x7 + 14x7

After XORing the integers, we convert the result back to an alpha term.
(31 ⊕ 14)x7 = 17x7 = α100x7

We will now combine the x6 terms. they are:
α198x6 + α125x6

We will convert the above alphas to integers using the log antilog table to make this step easier:
7x6 + 51x6

After XORing the integers, we convert the result back to an alpha term.
(7 ⊕ 51)x6 = 52x6 = α106x6

We will now combine the x5 terms. they are:
α143x5 + α210x5

We will convert the above alphas to integers using the log antilog table to make this step easier:
84x5 + 89x5

After XORing the integers, we convert the result back to an alpha term.
(84 ⊕ 89)x5 = 13x5 = α104x5

We will now combine the x4 terms. they are:
α131x4 + α155x4

We will convert the above alphas to integers using the log antilog table to make this step easier:
92x4 + 114x4

After XORing the integers, we convert the result back to an alpha term.
(92 ⊕ 114)x4 = 46x4 = α130x4

We will now combine the x3 terms. they are:
α87x3 + α143x3

We will convert the above alphas to integers using the log antilog table to make this step easier:
127x3 + 84x3

After XORing the integers, we convert the result back to an alpha term.
(127 ⊕ 84)x3 = 43x3 = α218x3

We will now combine the x2 terms. they are:
α157x2 + α99x2

We will convert the above alphas to integers using the log antilog table to make this step easier:
213x2 + 134x2

After XORing the integers, we convert the result back to an alpha term.
(213 ⊕ 134)x2 = 83x2 = α206x2

We will now combine the x1 terms. they are:
α66x1 + α169x1

We will convert the above alphas to integers using the log antilog table to make this step easier:
97x1 + 229x1

After XORing the integers, we convert the result back to an alpha term.
(97 ⊕ 229)x1 = 132x1 = α140x1

Below is the final polynomial from this step after combining the like terms. If we needed 13 error correction code words, this would be the generator polynomial required.
α0x13 + α74x12 + α152x11 + α176x10 + α100x9 + α86x8 + α100x7 + α106x6 + α104x5 + α130x4 + α218x3 + α206x2 + α140x1 + α78x0


Final result:
0x13 + α74x12 + α152x11 + α176x10 + α100x9 + α86x8 + α100x7 + α106x6 + α104x5 + α130x4 + α218x3 + α206x2 + α140x1 + α78x0)





 

 

Creative Commons License
Thonky.com's QR Code Tutorial by Carolyn Eby is licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
QR Code is registered trademark of DENSO WAVE INCORPORATED.
Page last updated 2014-04-13T22:02:09-05:00