0% found this document useful (0 votes)
3 views

Polynomials binary form

This document explains how cyclic codes can be represented and analyzed using polynomials, where binary patterns are translated into polynomial form with coefficients of 0 and 1. It covers operations such as addition, subtraction, multiplication, and division of polynomials, as well as shifting and the creation of codewords from datawords. The polynomial representation simplifies the process of division and allows for easier analysis of cyclic codes through defined terms like dataword, syndrome, codeword, error, and generator.

Uploaded by

redchestnutnova
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Polynomials binary form

This document explains how cyclic codes can be represented and analyzed using polynomials, where binary patterns are translated into polynomial form with coefficients of 0 and 1. It covers operations such as addition, subtraction, multiplication, and division of polynomials, as well as shifting and the creation of codewords from datawords. The polynomial representation simplifies the process of division and allows for easier analysis of cyclic codes through defined terms like dataword, syndrome, codeword, error, and generator.

Uploaded by

redchestnutnova
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Polynomials

A better way to understand cyclic codes


and how they can be analyzed is to
represent
them as polynomials. Again, this section
is optional.
A pattern of Os and 1s can be
represented as a polynomial with
coefficients of 0 and
1. The power of each term shows the
position of the bit; the coefficient shows
the value
of the bit. Figure 10.21 shows a binary
pattern and its polynomial representation.
In Figure
10.21a we show how to translate a binary
pattern to a polynomial; in Figure 1O.21b
we show how the polynomial can be
shortened by removing all terms with zero
coefficients
and replacing xl by x and xO by 1.
Figure 10.21 A polynomial to represent
a binary word
I1I0I0I0I0I1I1I
I iii + oX' + ox4 + o~ + o? + Ixl + Ixo I
a. Binary pattern and polynomial b. Short
form
Figure 10.21 shows one immediate
benefit; a 7-bit pattern can be replaced
by three
terms. The benefit is even more
conspicuous when we have a polynomial
such as x23 +
X3 + 1. Here the bit pattern is 24 bits in
length (three Is and twenty-one Os) while
the
polynomial is just three terms.
Degree ofa Polynomial
The degree of a polynomial is the highest
power in the polynomial. For example, the
degree of the polynomial x6 + x + 1 is 6.
Note that the degree of a polynomial is 1
less
that the number of bits in the pattern.
The bit pattern in this case has 7 bits.
Adding and Subtracting Polynomials
Adding and subtracting polynomials in
mathematics are done by adding or
subtracting
the coefficients of terms with the same
power. In our case, the coefficients are
only 0
and 1, and adding is in modulo-2. This
has two consequences. First, addition and
subtraction
are the same. Second, adding or
subtracting is done by combining terms
and
deleting pairs of identical terms. For
example, adding x5 + x4 + x2 and x6 +
x4 + x2 gives
just x6 + x5. The terms x4 and x2 are
deleted. However, note that if we add, for
example,
three polynomials and we get x2 three
times, we delete a pair of them and keep
the third.
292 CHAPTER 10 ERROR DETECTIONAND
CORRECTION
Multiplying or Dividing Terms
In this arithmetic, multiplying a term by
another term is very simple; we just add
the
powers. For example, x3 x x4 is x7 , For
dividing, we just subtract the power of the
second
term from the power of the first. For
example, x51x2 is x3.
Multiplying Two Polynomials
Multiplying a polynomial by another is
done term by term. Each term of the first
polynomial
must be multiplied by all terms of the
second. The result, of course, is then
simplified,
and pairs of equal terms are deleted. The
following is an example:
(~+X3 +~ +x)(~ +x+ 1)
=~+~+~+~+0+~+0+~+~+~+~+x
=x7 +x6 +x3 +x
Dividing One Polynomial by Another
Division of polynomials is conceptually
the same as the binary division we
discussed
for an encoder. We divide the first term of
the dividend by the first term of the
divisor to
get the first term of the quotient. We
multiply the term in the quotient by the
divisor and
subtract the result from the dividend. We
repeat the process until the dividend
degree is
less than the divisor degree. We will show
an example of division later in this
chapter.
Shifting
A binary pattern is often shifted a number
of bits to the right or left. Shifting to the
left
means adding extra Os as rightmost bits;
shifting to the right means deleting some
rightmost
bits. Shifting to the left is accomplished
by multiplying each term of the
polynomial
by xn, where m is the number of shifted
bits; shifting to the right is accomplished
by
dividing each term of the polynomial by
xn. The following shows shifting to the left
and
to the right. Note that we do not have
negative powers in the polynomial
representation.
Shifting left 3 bits:
Shifting right 3 bits:
10011 becomes 10011000
10011 becomes 10
x4 + x + 1 becomes x7 + x4 +~
x4 + x + 1 becomes x
When we augmented the dataword in the
encoder of Figure 10.15, we actually
shifted the bits to the left. Also note that
when we concatenate two bit patterns,
we shift
the first polynomial to the left and then
add the second polynomial.
Cyclic Code Encoder Using Polynomials
Now that we have discussed operations
on polynomials, we show the creation of a
codeword
from a dataword. Figure 10.22 is the
polynomial version of Figure 10.15. We
can
see that the process is shorter. The
dataword 1001 is represented as x3 + 1.
The divisor
1011 is represented as x3 + x + 1. To find
the augmented dataword, we have left-
shifted
the dataword 3 bits (multiplying by x\ The
result is x6 + x3
. Division is straightforward.
We divide the first term of the dividend,
x6, by the first term of the divisor, x3. The
first
term of the quotient is then x6/x3, or x3.
Then we multiply x3 by the divisor and
subtract
(according to our previous definition of
subtraction) the result from the dividend.
The
SECTION 10.4 CYCLiC CODES 293
result is x4, with a degree greater than
the divisor's degree; we continue to
divide until
the degree of the remainder is less than
the degree of the divisor.
Figure 10.22 CRC division using
polynomials
Dataword I x3 + 1
t
Divisor x3 + x Dividend:
x3 + x + I ) x6 + x3 augmented
x6 + .0+ x3 dataword
.0
.0 + x2 + x
I x2 + x IRemainder
Codeword I x6 + x3 I xl + x I
Dataword Remainder
It can be seen that the polynomial
representation can easily simplify the
operation
of division in this case, because the two
steps involving all-Os divisors are not
needed
here. (Of course, one could argue that the
all-Os divisor step can also be eliminated
in
binary division.) In a polynomial
representation, the divisor is normally
referred to as
the generator polynomial t(x).
The divisor in a cyclic code is normally
called the generator polynomial
or simply the generator.
Cyclic Code Analysis
We can analyze a cyclic code to find its
capabilities by using polynomials. We
define
the following, wheref(x) is a polynomial
with binary coefficients.
Dataword: d(x)
Syndrome: sex)
Codeword: c(x)
Error: e(x)
Generator: g(x)

You might also like