06.06.2022 Views

B. P. Lathi, Zhi Ding - Modern Digital and Analog Communication Systems-Oxford University Press (2009)

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

14.4 Cyclic Codes 815

Regardless of the data values {di}, d(x) g(x) still has degree n - 1 or less while being a

multiple of g(x). Hence, a codeword is formed by using Eq. (14.16). There are a total of 2 k

such distinct polynomials (codewords) of the data polynomial d (x), corresponding to 2 k data

vectors. Thus, we have a linear (n, k) code generated by Eq. (14.14). To prove that this code is

cyclic, let

c(x) = CJX n -l + c 2 x 11 - 2 + · · · + C n

be a code polynomial in this code [Eq. (14.16)1. Then,

xc(x) = CJX n + c 2 x n - l + · · · + C n X

= c1 (x n + 1 ) + (c2x"- 1 + c3x n - 2 + · · · + C n X + c1 )

= c1 (x n + 1) + c < l l

(x)

Because xc(x) is xd (x)g(x), and g(x) is a factor of x n + 1,c O> (x) must also be a multiple

of g(x) and can also be expressed as d(x)g(x) for some data vector d. Therefore, c ( l l (x)

is also a code polynomial. Continuing this way, we see that c C 2>

(x), c < 3> (x), ... are all code

polynomials generated by Eq. (14. 16). Thus, the linear (n, k) code generated by d(x)g(x) is

indeed cyclic.

Exam pie 1 4. 3 Find a generator polynomial g(x) for a (7, 4) cyclic code, and find code vectors for the following

data vectors: 1010, 1111, 0001, and 1000.

;,,

In this case n = 7 and n - k = 3, and

x 7 + l = (x + l)(x 3 + x + l ) (x 3 + x 2 + 1)

For a (7, 4) code, the generator polynomial must be of the order n - k = 3. In this case,

there are two possible choices for g(x) : x 3 + x + 1 or x 3 + x 2 + I . Let us pick the latter,

that is,

g(x) = x 3 + x 2 + 1

as a possible generator polynomial. For d = [l 0 1 0],

and the code polynomial is

Hence,

d(x) = x 3 +x

c(x) = d(x)g(x)

= (x 3 +x)(x 3 +x 2 + 1)

= x 6 + x 5 + x 4 + X

C = 1110010

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!