48
Information and Information and Coding Theory Coding Theory Cyclic codes Cyclic codes Juris Viksna, 201

Information and Coding Theory Cyclic codes Juris Viksna, 2015

Embed Size (px)

Citation preview

Page 1: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Information and Information and Coding TheoryCoding Theory

Cyclic codes Cyclic codes

Juris Viksna, 2015

Page 2: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Why cyclic codes?

We started with restricting our attention to linear codes:

Advantages

minimal distance h(C) is easy to compute if C is a linear code

it is easy to specify a particular code

simple enconing and (kind of :) reasonable decoding procedures

Disadvantages

linearity is heavy restriction, however it is not that clear whether

we really could gain that much by abandoning it

However, most of known "good" codes are in addition cyclic. Cyclic

codes also have a simpler decoding procedures.

Page 3: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Relation with shift registers

clock signal

+

000

x x x x x x

c c c c c c c

6 5 4 3 2

0 1 2 3 4 5 6

1

g0g1

+

g2

+

g3

time

R = N-K shift registers

x x x

d d d d

3 2

0 1 2 3

1

0 0 0

x3x2x1

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

Page 4: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Cyclic codes -definition

[Adapted from B.Cherowitzo]

Page 5: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Cyclic codes - examples

[Adapted from B.Cherowitzo]

Page 6: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Rings

Actually we will be interested in rings that are even “more similar”to fields, i.e.:

- are commutative,- have multiplicative unit “1”.

A commutative ring with unity

Why do we need rings?

It seems that a way to do encoding with a cyclic code could be encoding of polynomial m(x) as

c(x) = m(x)g(x) mod (xn 1)

The set of all polynomials m(x) is a ring, butnot a field.

Page 7: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Computation within Rn

Computation modulo xn – 1

Since xn 1 (mod xn -1) we can compute f(x) mod xn -1 as follow:

In f(x) replace xn by 1, xn +1 by x, xn +2 by x2, xn +3 by x3, …

Identification of words with polynomials

a0 a1… an -1 a0 + a1 x + a2 x2 + … + an -1 xn -1

Multiplication by x in Rn corresponds to a single cyclic shift

x (a0 + a1 x + … an -1 xn -1) = an -1 + a0 x + a1 x2 + … + an -2 xn -1

Page 8: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Ring of polynomials - example

[Adapted from B.Cherowitzo]

Page 9: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Ring of polynomialsThe set of polynomials in Fq[x] of degree less than deg (f(x)), with addition and multiplication modulo f(x) forms a ring denoted Fq[x]/f(x).

Example Calculate (x + 1)2 in F2[x] / (x2 + x + 1). It holds(x + 1)2 = x2 + 2x + 1 x2 + 1 x (mod x2 + x + 1).

How many elements has Fq[x] / f(x)?

Result | Fq[x] / f(x) | = q deg (f(x)).

Example Addition and multiplication in F2[x] / (x2 + x + 1)

+ 0 1 x 1 + x

0 0 1 x 1 + x

1 1 0 1 + x x

x x 1 + x 0 1

1 + x 1 + x x 1 0

0 1 x 1 + x

0 0 0 0 0

1 0 1 X 1 + x

x 0 x 1 + x 1

1 + x 0 1 + x 1 x

Page 10: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Ideals

So, this a subspace of a ring that seems to satisfy the requirements of cyclic codes:

- 1 and 2 (and part of 3) guarantees linearity- 3 in addition guarantees cyclicity

Page 11: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Ideals and cyclic codesRn - a ring of polynomials modulo xn 1 (assume that field GF(q) is fixed)

TheoremA set of elements in Rn corresponds to cyclic code C if and only if C is an ideal in Rn.

ProofGiven an ideal C, linearity guarantees that C is subspace, and property 3 guarantees that all cyclic shifts of codewords also belongs to code.Similarly, if C is a code, its elements have to satisfy the definition of ideal.

Page 12: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Principal ideals

[Adapted from B.Cherowitzo]

Page 13: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Principal ideals

[Adapted from B.Cherowitzo]

Thus, the in the ring of all polynomials any ideal is principal - i.e. it can be defined by a singlegenerator polynomial.

Page 14: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Principal ideals

[Adapted from B.Cherowitzo]

Generally the proof doesn’t change, if we considerring of polynomials modulo some polynomial p(x).

We will be generally interested in Rn (rings modulo xn 1).

Every cyclic code thus can be defined by providing a single generator polynomial g(x).

Page 15: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Generators of ideals - example

[Adapted from B.Cherowitzo]

Page 16: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Cyclic codes - some more definitions

Page 17: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Cyclic codes - some examplesThe code with the generator matrix

has codewords

c1 = 1011100 c2 = 0101110 c3 =0010111

c1 + c2 = 1110010 c1 + c3 = 1001011 c2 + c3 = 0111001

c1 + c2 + c3 = 1100101

and it is cyclic because the right shifts have the following impacts

c1 c2, c2 c3, c3 c1 + c3

c1 + c2 c2 + c3, c1 + c3 c1 + c2 + c3, c2 + c3 c1

c1 + c2 + c3 c1 + c2

1110100

0111010

0011101

G

Page 18: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Cyclic codes - some examples

Example(i) Code C = {000, 101, 011, 110} is cyclic.

(ii) Hamming code Ham(3, 2): with the generator matrix

is equivalent to a cyclic code.

(iii) The binary linear code {0000, 1001, 0110, 1111} is not a cyclic, but it is equivalent to a cyclic code.

(iv) Is Hamming code Ham(2, 3) with the generator matrix

(a) cyclic?(b) equivalent to a cyclic code?

1111000

0110100

1010010

1100001

G

2110

1101

Page 19: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Cyclic codes - how frequent are they?

Comparing with linear codes, the cyclic codes are quite scarce. For, example there are 11 811 linear (7,3) linear binary codes, but only two of them are cyclic.

Trivial cyclic codes. For any field F and any integer n >= 3 there are always the following cyclic codes of length n over F:

No-information code - code consisting of just one all-zero codeword.

Repetition code - code consisting of codewords (a, a, …,a) for a F.

Single-parity-check code - code consisting of all codewords with parity 0.

No-parity code - code consisting of all codewords of length n

For some cases, for example for n = 19 and F = GF(2), the above four trivial cyclic codes are the only cyclic codes.

Page 20: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Cyclic codes and generator polynomials

Page 21: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Cyclic codes and generator polynomials

We show that all cyclic codes C have the form C = f(x) for some f(x) Rn.

Theorem

Let C be a non-zero cyclic code in Rn. Then there exists unique monic polynomial g(x) of the smallest degree such that C = g(x) g(x) is a factor of xn -1.

Proof (i) Suppose g(x) and h(x) are two monic polynomials in C of the smallest degree. Then the polynomial g(x) - h(x) C and it has a smaller degree and a multiplication by a scalar makes out of it a monic polynomial. If g(x) h(x) we get a contradiction.

(ii) Suppose a(x) C.Then

a(x) = q(x)g(x) + r(x) (deg r(x) < deg g(x))and

r(x) = a(x) - q(x)g(x) C.By minimality

r(x) = 0and therefore a(x) g(x).

Page 22: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Cyclic codes and generator polynomials

[Adapted from B.Cherowitzo]

Thus there is 1-to-1 correspondence between cyclic codes and all distinct polynomials that divide xn 1.

Page 23: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Cyclic codes and generator polynomials

We show that all cyclic codes C have the form C = f(x) for some f(x) Rn.

Theorem

Let C be a non-zero cyclic code in Rn. Then there exists unique monic polynomial g(x) of the smallest degree such that C = g(x) g(x) is a factor of xn -1.

Proof

(iii) Clearly,

xn –1 = q(x)g(x) + r(x) with deg r(x) < deg g(x)

and therefore r(x) -q(x)g(x) (mod xn -1) and

r(x) C r(x) = 0 g(x) is a factor of xn -1.

Page 24: Information and Coding Theory Cyclic codes Juris Viksna, 2015

How to find cyclic codes?Theorem 2 gives a recipe to get all cyclic codes of given length n.

Indeed, all we need to do is to find all factors of

xn -1.

Problem: Find all binary cyclic codes of length 3.

Solution: Since

x3 – 1 = (x + 1)(x2 + x + 1)

both factors are irreducible in GF(2)

we have the following generator polynomials and codes.

Generator polynomials Code in R3 Code in V(3,2)

1 R3 V(3,2)

x + 1 {0, 1 + x, x + x2, 1 + x2} {000, 110, 011, 101}

x2 + x + 1 {0, 1 + x + x2} {000, 111}

x3 – 1 ( = 0) {0} {000}

Page 25: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Example - binary cyclic codes in R7

[Adapted from B.Cherowitzo]

Page 26: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Example - ternary codes of length 3The task is to determine all ternary codes of length 4 and generators for them.

Factorization of x4 - 1 over GF(3) has the form x4 - 1 = (x - 1)(x3 + x2 + x + 1) = (x - 1)(x + 1)(x2 + 1)

Therefore there are 23 = 8 divisors of x4 - 1 and each generates a cyclic code.

Generator polynomial Generator matrix

1 I4

x

x + 1

x2 + 1

(x - 1)(x + 1) = x2 - 1

(x - 1)(x2 + 1) = x3 - x2 + x - 1 [ -1 1 -1 1 ]

(x + 1)(x2 + 1) [ 1 1 1 1 ]

x4 - 1 = 0 [ 0 0 0 0 ]

1010

0101

1010

0101

1100

0110

0011

1100

0110

0011

Page 27: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Some factors of xn-1

All we need to do is factor xn 1. This, however, isn’t necessarily obvious how to do :)

Page 28: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Generator polynomials and matrices

The fact that multiplying some vector with G we obtain a codeword from C is a bit obvious. In addition, we need:

- to show that all rows of G are linearly independent- to show all codewords from C can be obtained

Page 29: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Generator polynomials and matrices

[Adapted from B.Cherowitzo]

Page 30: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Check polynomials

Page 31: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Check polynomialsTheorem

Let C be a cyclic code in Rn with a generator polynomial g(x) and a check polynomial h(x). Then an c(x) Rn is a codeword of C if c(x)h(x) 0 - this and next congruences are modulo xn - 1.

Proof

Note, that g(x)h(x) = xn - 1 0

(i) c(x) C c(x) = a(x)g(x) for some a(x) Rn

c(x)h(x) = a(x) g(x)h(x) 0.

0

(ii) c(x)h(x) 0

c(x) = q(x)g(x) + r(x), deg r(x) < n – k = deg g(x)

c(x)h(x) 0 r(x)h(x) 0 (mod xn - 1)

Since deg (r(x)h(x)) < n – k + k = n, we have r(x)h(x) = 0 in F[x] and therefore

r(x) = 0 c(x) = q(x)g(x) C.

Page 32: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Check polynomials and dual codes

[Adapted from B.Cherowitzo]

Page 33: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Check polynomials and dual codesSince dim (h(x)) = n - k = dim (C) we might easily be fooled to think that the check polynomial h(x) of the code C generates the dual code C.

Reality is “slightly different'':

Theorem

Suppose C is a cyclic [n,k]-code with the check polynomial

h(x) = h0 + h1x + … + hkxk,

then

(i) a parity-check matrix for C is

(ii) C is the cyclic code generated by the polynomial

i.e. the reciprocal polynomial of h(x).

0

01

01

...0...00

....

0......0

0...0...

hh

hhh

hhh

H

k

k

kk

kkk xhxhhxh 01 ...

Page 34: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Check polynomials and dual codesProof A polynomial c(x) = c0 + c1x + … + cn -1xn –1 represents a code from C if c(x)h(x) = 0. For c(x)h(x) to be 0 the coefficients at xk,…, xn -1 must be zero, i.e.

Therefore, any codeword c0 c1… cn -1 C is orthogonal to the word hk hk -1…h000…0 and to its cyclic shifts.

Rows of the matrix H are therefore in C. Moreover, since hk = 1, these row-vectors are linearly independent. Their number is n - k = dim (C). Hence H is a generator matrix for C, i.e. a parity-check matrix for C.

In order to show that C is a cyclic code generated by the polynomial

it is sufficient to show that is a factor of xn -1.

Observe that and since h(x -1)g(x -1) = (x -1)n -1

we have that xkh(x -1)xn -kg(x -1) = xn(x –n -1) = 1 – xn

and therefore is indeed a factor of xn -1.

0...

.. ..

0...

0...

0111

01121

0110

hchchc

hchchc

hchchc

nkknkkn

kkk

kkk

kkk xhxhhxh 01 ...

1 xhxxh k

xh

xh

Page 35: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Syndromes and generator matrix

[Adapted from B.Cherowitzo]

Page 36: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Syndromes and generator matrix - example

[Adapted from B.Cherowitzo]

Page 37: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Syndromes and generator matrix

[Adapted from B.Cherowitzo]

Page 38: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Syndromes and generator matrix

[Adapted from B.Cherowitzo]

Page 39: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Idempotent polynomials

Page 40: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Idempotent generators

[Adapted from B.Cherowitzo]

Page 41: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Idempotent generators - example

[Adapted from B.Cherowitzo]

Page 42: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Idempotent generators - existence

[Adapted from B.Cherowitzo]

(a,b) denotes just gcd(a,b).If is a root then xn1=(x )(xn1 + xn2 +...+ n1)If there is another root equal to , thenn n1 = n1 = 0, and = 0...

Page 43: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Idempotent generators – Generator matrix

[Adapted from B.Cherowitzo]

Page 44: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Idempotent generators – Generator matrix

[Adapted from V.Pless]

Page 45: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Idempotent generators - how to find?

This turns out to be quite easy, at least in GF(2) assuming that n is odd.

S - set of powers of x that occur with non-zero coefficients in e(x).

Notice that e2(x) = e(x) if and only if iS 2iS.

Thus S is a union of cyclotomic cosets and we can just look at cyclotomic cosets and write down the coefficients of e(x).

Page 46: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Idempotent generators - how to find?n=7, C0={0}, C1={1,2,4},C3={3,6,5}.

Page 47: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Idempotents - summary So, where are we now?

Cyclic codes can be characterized by their idenpotents as well as by their generator polynomials.

Idempotents are easier to find. In particular, for GF(2m) cyclotomic cosets allow to write down idempotents immediately.

Then it is already not that hard to find generator polynomials - g(x)=gcd(xn–1,e(x)).

By knowing generator polynomials, we actually are already quite close to solution to factoring problem. Actually, a similar approach is used in Berlekamp's factoring algorithm.

Page 48: Information and Coding Theory Cyclic codes Juris Viksna, 2015

Berlekamp's factoring algorithm

[Adapted from www.wikipedia.org]

FYI

We actually have developed a factoring algorithm for xn–1 in GF(2).There is a general algorithm for factoring p(x) in GF(q).