an introduction to cyclic codes - ricam | welcome · pdf filean introduction to cyclic codes...

105
An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes An introduction to cyclic codes Emanuele Betti 1 , Emmanuela Orsini 2 1 [email protected] Department of Mathematics, University of Florence, Italy 1 [email protected] Department of Mathematics, University of Milan, Italy May 1, 2006

Upload: dinhque

Post on 30-Jan-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An introduction to cyclic codes

Emanuele Betti1, Emmanuela Orsini2

[email protected]

Department of Mathematics, University of Florence, Italy

[email protected]

Department of Mathematics, University of Milan, Italy

May 1, 2006

Page 2: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

1 An overview on error correcting codes

2 Linear codesDefinitionsAn exampleHamming distanceParity-check and decoding

3 Cyclic codesDefinitionsAlgebraic structureRoots of unity and defining setAn exampleParity-check matrixBCH codes

4 Encoding and decoding with cyclic codesPolynomial encodingDecodingReferences

Page 3: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

A communication schema

BA

SOURCE DESTINATIONINFORMATION

Page 4: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

A communication schema

MESSAGE

BA

SOURCE DESTINATIONTRASMITTERINFORMATION

Page 5: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

A communication schema

MESSAGE

BA

SOURCE DESTINATIONRECEIVERTRASMITTER

SIGNAL RECEIVEDSIGNAL

INFORMATION

MESSAGE

Page 6: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

A communication schema

MESSAGE

BA

SOURCE DESTINATIONRECEIVER

NOISESOURCE

TRASMITTER

SIGNAL RECEIVEDSIGNAL

INFORMATION

MESSAGE

Page 7: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

A communication schema

MESSAGE

BA

SOURCE DESTINATIONRECEIVER

NOISESOURCE

TRASMITTER

SIGNAL RECEIVEDSIGNAL

INFORMATION

MESSAGE

PROCEDURECODING

PROCEDUREDECODING

CODE

Page 8: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Definitions

A Definition for Linear Codes

Let q ∈ N such that q = pk , p prime. We denote with Fq

the field with q elements.

(Fq)n forms an n−dimensional vector space over Fq.

Definition

A linear code C is a k-dimensional vector sub-space of (Fq)n ,

(0 ≤ k ≤ n). The elements of a code are called words. n is calledthe length and k is called the dimension .

C⊥ = {v ∈ (Fq)n | 〈v , c〉 = 0 ∀ c ∈ C}

Is called the dual code of C .

Page 9: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Definitions

A Definition for Linear Codes

Let q ∈ N such that q = pk , p prime. We denote with Fq

the field with q elements.

(Fq)n forms an n−dimensional vector space over Fq.

Definition

A linear code C is a k-dimensional vector sub-space of (Fq)n ,

(0 ≤ k ≤ n). The elements of a code are called words. n is calledthe length and k is called the dimension .

C⊥ = {v ∈ (Fq)n | 〈v , c〉 = 0 ∀ c ∈ C}

Is called the dual code of C .

Page 10: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Definitions

A Definition for Linear Codes

Let q ∈ N such that q = pk , p prime. We denote with Fq

the field with q elements.

(Fq)n forms an n−dimensional vector space over Fq.

Definition

A linear code C is a k-dimensional vector sub-space of (Fq)n ,

(0 ≤ k ≤ n). The elements of a code are called words. n is calledthe length and k is called the dimension .

C⊥ = {v ∈ (Fq)n | 〈v , c〉 = 0 ∀ c ∈ C}

Is called the dual code of C .

Page 11: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Definitions

A Definition for Linear Codes

Let q ∈ N such that q = pk , p prime. We denote with Fq

the field with q elements.

(Fq)n forms an n−dimensional vector space over Fq.

Definition

A linear code C is a k-dimensional vector sub-space of (Fq)n ,

(0 ≤ k ≤ n). The elements of a code are called words. n is calledthe length and k is called the dimension .

C⊥ = {v ∈ (Fq)n | 〈v , c〉 = 0 ∀ c ∈ C}

Is called the dual code of C .

Page 12: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Definitions

The generator-matrix of a linear code

Let C be a linear code over Fq. Since C is a k−dimensional vectorspace, there exist k vectors c1, . . . , ck in (Fq)

n that generate C .Let G be the k × n matrix in (Fq)

n:

G =

c1

c2...ck

.

then G is a generator matrix for C .

v ∈ (Fq)k ⇒ vG ∈ C .

Page 13: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

We first associate a vector in (F2)2 at each

color:→ (0, 0) = v1 → (0, 1) = v2

→ (1, 0) = v3 → (1, 1) = v4

Let C be the linear code of length n = 6 anddimension k = 2 generated by:

G =

(0 0 0 1 1 11 1 1 0 0 0

)

C = {(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1), (0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)}

Trasmit viG ∈ C ⊂ (F2)6 instead of vi ∈ (F2)

2.

Page 14: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

We first associate a vector in (F2)2 at each

color:→ (0, 0) = v1 → (0, 1) = v2

→ (1, 0) = v3 → (1, 1) = v4

Let C be the linear code of length n = 6 anddimension k = 2 generated by:

G =

(0 0 0 1 1 11 1 1 0 0 0

)

C = {(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1), (0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)}

Trasmit viG ∈ C ⊂ (F2)6 instead of vi ∈ (F2)

2.

Page 15: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

We first associate a vector in (F2)2 at each

color:→ (0, 0) = v1 → (0, 1) = v2

→ (1, 0) = v3 → (1, 1) = v4

Let C be the linear code of length n = 6 anddimension k = 2 generated by:

G =

(0 0 0 1 1 11 1 1 0 0 0

)

C = {(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1), (0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)}

Trasmit viG ∈ C ⊂ (F2)6 instead of vi ∈ (F2)

2.

Page 16: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

We first associate a vector in (F2)2 at each

color:→ (0, 0) = v1 → (0, 1) = v2

→ (1, 0) = v3 → (1, 1) = v4

Let C be the linear code of length n = 6 anddimension k = 2 generated by:

G =

(0 0 0 1 1 11 1 1 0 0 0

)

C = {(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1), (0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)}

Trasmit viG ∈ C ⊂ (F2)6 instead of vi ∈ (F2)

2.

Page 17: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

We first associate a vector in (F2)2 at each

color:→ (0, 0) = v1 → (0, 1) = v2

→ (1, 0) = v3 → (1, 1) = v4

Let C be the linear code of length n = 6 anddimension k = 2 generated by:

G =

(0 0 0 1 1 11 1 1 0 0 0

)

C = {(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1), (0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)}

Trasmit viG ∈ C ⊂ (F2)6 instead of vi ∈ (F2)

2.

Page 18: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

A noised communication

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 1, 1) ∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 1) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 0) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 0, 0, 0) ∈ C

Error Correction Capability Error Detection Capability

Page 19: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

A noised communication

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 1, 1) ∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 1) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 0) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 0, 0, 0) ∈ C

Error Correction Capability Error Detection Capability

Page 20: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

A noised communication

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 1, 1) ∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 1) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 0) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 0, 0, 0) ∈ C

Error Correction Capability Error Detection Capability

Page 21: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

A noised communication

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 1, 1) ∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 1) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 0) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 0, 0, 0) ∈ C

Error Correction Capability Error Detection Capability

Page 22: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

A noised communication

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 1, 1) ∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 1) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 0) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 0, 0, 0) ∈ C

Error Correction Capability Error Detection Capability

Page 23: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

A noised communication

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 1, 1) ∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 1) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 1, 0, 0) /∈ C

→ (0, 1)G−→ (0, 0, 0, 1, 1, 1) −→ (0, 0, 0, 0, 0, 0) ∈ C

Error Correction Capability Error Detection Capability

Page 24: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

The Hamming distance

Definition (Hamming Distance)

dH : (Fq)n × (Fq)

n −→ N

dH(u, v) = |{i s.t. ui 6= vi , 1 ≤ i ≤ n}|, u = (ui ), v = (vi ).

The weight of u is w(u) = dH(u, 0)

Definition (Hamming Distance of a Code)

dH(C ) = min{dH(ci , cj) s.t. ci , cj ∈ C , ci 6= cj}.

Theorem

If C is linear: dH(C ) = min{w(c) s.t. c ∈ C , c 6= 0} .

Page 25: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

The Hamming distance

Definition (Hamming Distance)

dH : (Fq)n × (Fq)

n −→ N

dH(u, v) = |{i s.t. ui 6= vi , 1 ≤ i ≤ n}|, u = (ui ), v = (vi ).

The weight of u is w(u) = dH(u, 0)

Definition (Hamming Distance of a Code)

dH(C ) = min{dH(ci , cj) s.t. ci , cj ∈ C , ci 6= cj}.

Theorem

If C is linear: dH(C ) = min{w(c) s.t. c ∈ C , c 6= 0} .

Page 26: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

The Hamming distance

Definition (Hamming Distance)

dH : (Fq)n × (Fq)

n −→ N

dH(u, v) = |{i s.t. ui 6= vi , 1 ≤ i ≤ n}|, u = (ui ), v = (vi ).

The weight of u is w(u) = dH(u, 0)

Definition (Hamming Distance of a Code)

dH(C ) = min{dH(ci , cj) s.t. ci , cj ∈ C , ci 6= cj}.

Theorem

If C is linear: dH(C ) = min{w(c) s.t. c ∈ C , c 6= 0} .

Page 27: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

The Hamming distance

Definition (Hamming Distance)

dH : (Fq)n × (Fq)

n −→ N

dH(u, v) = |{i s.t. ui 6= vi , 1 ≤ i ≤ n}|, u = (ui ), v = (vi ).

The weight of u is w(u) = dH(u, 0)

Definition (Hamming Distance of a Code)

dH(C ) = min{dH(ci , cj) s.t. ci , cj ∈ C , ci 6= cj}.

Theorem

If C is linear: dH(C ) = min{w(c) s.t. c ∈ C , c 6= 0} .

Page 28: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

The Hamming distance

Definition (Hamming Distance)

dH : (Fq)n × (Fq)

n −→ N

dH(u, v) = |{i s.t. ui 6= vi , 1 ≤ i ≤ n}|, u = (ui ), v = (vi ).

The weight of u is w(u) = dH(u, 0)

Definition (Hamming Distance of a Code)

dH(C ) = min{dH(ci , cj) s.t. ci , cj ∈ C , ci 6= cj}.

Theorem

If C is linear: dH(C ) = min{w(c) s.t. c ∈ C , c 6= 0} .

Page 29: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

Theorem

Let C be a Fq[n, k, d ] code.

C can correct t = bd−12 c errors.

C can detect e = d − 1 errors.

Singleton bound: d ≤ n − k + 1.

Example

C =

{(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1),(0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)

}has distance 3, then t = 1 and e = 2.

c’

c

Page 30: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

Theorem

Let C be a Fq[n, k, d ] code.

C can correct t = bd−12 c errors.

C can detect e = d − 1 errors.

Singleton bound: d ≤ n − k + 1.

Example

C =

{(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1),(0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)

}has distance 3, then t = 1 and e = 2.

c’

c

Page 31: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

Theorem

Let C be a Fq[n, k, d ] code.

C can correct t = bd−12 c errors.

C can detect e = d − 1 errors.

Singleton bound: d ≤ n − k + 1.

Example

C =

{(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1),(0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)

}has distance 3, then t = 1 and e = 2.

c’

c

Page 32: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

Theorem

Let C be a Fq[n, k, d ] code.

C can correct t = bd−12 c errors.

C can detect e = d − 1 errors.

Singleton bound: d ≤ n − k + 1.

Example

C =

{(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1),(0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)

}has distance 3, then t = 1 and e = 2.

c’

c

Page 33: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

Theorem

Let C be a Fq[n, k, d ] code.

C can correct t = bd−12 c errors.

C can detect e = d − 1 errors.

Singleton bound: d ≤ n − k + 1.

Example

C =

{(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1),(0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)

}has distance 3, then t = 1 and e = 2.

c’

c

Page 34: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Hamming distance

Theorem

Let C be a Fq[n, k, d ] code.

C can correct t = bd−12 c errors.

C can detect e = d − 1 errors.

Singleton bound: d ≤ n − k + 1.

Example

C =

{(0, 0, 0, 0, 0, 0), (1, 1, 1, 1, 1, 1),(0, 0, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0)

}has distance 3, then t = 1 and e = 2.

c’

c

Page 35: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

Parity–check matrix and syndromes

It is easy to see that C may be expressed as the null space of amatrix H, which is called a parity–check matrix for C .

∀x ∈ (Fq)n, Hx = 0⇔ x ∈ C

Observe that H is an (n − k)× n matrix, its coefficients maylie in an extension field of Fq and it is full rank over Fq.Obviously, H is not unique

HT is a generator matrix for C⊥

Definition

The elements in (Fq)n−k , s = Hx are called syndromes. We say

that s is the syndrome corresponding to x .

Page 36: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

Parity–check matrix and syndromes

It is easy to see that C may be expressed as the null space of amatrix H, which is called a parity–check matrix for C .

∀x ∈ (Fq)n, Hx = 0⇔ x ∈ C

Observe that H is an (n − k)× n matrix, its coefficients maylie in an extension field of Fq and it is full rank over Fq.Obviously, H is not unique

HT is a generator matrix for C⊥

Definition

The elements in (Fq)n−k , s = Hx are called syndromes. We say

that s is the syndrome corresponding to x .

Page 37: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

Parity–check matrix and syndromes

It is easy to see that C may be expressed as the null space of amatrix H, which is called a parity–check matrix for C .

∀x ∈ (Fq)n, Hx = 0⇔ x ∈ C

Observe that H is an (n − k)× n matrix, its coefficients maylie in an extension field of Fq and it is full rank over Fq.Obviously, H is not unique

HT is a generator matrix for C⊥

Definition

The elements in (Fq)n−k , s = Hx are called syndromes. We say

that s is the syndrome corresponding to x .

Page 38: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

Parity–check matrix and syndromes

It is easy to see that C may be expressed as the null space of amatrix H, which is called a parity–check matrix for C .

∀x ∈ (Fq)n, Hx = 0⇔ x ∈ C

Observe that H is an (n − k)× n matrix, its coefficients maylie in an extension field of Fq and it is full rank over Fq.Obviously, H is not unique

HT is a generator matrix for C⊥

Definition

The elements in (Fq)n−k , s = Hx are called syndromes. We say

that s is the syndrome corresponding to x .

Page 39: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

A decoding procedure

Let C be as in the previous example.A parity check matrix for C is:

H =

0 0 0 1 0 10 0 0 0 1 11 0 1 0 0 01 1 0 0 0 0

c

(000111) −→c ′

(000101)H−→

s

(0100) ↔e

(000010) ⇒ c = c ′ − e

Remark

Let c be a word of a linear code and let x = c + e be the receivedvector after the trasmission. Then:

s = Hc ′ = H(c + e) = Hc + He = He

Theorem (Correctable syndrome)

If no more then t errors are occurred, there exists only one error ecorresponding to a syndrome s (i.e. s = He).

Page 40: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

A decoding procedure

Let C be as in the previous example.A parity check matrix for C is:

H =

0 0 0 1 0 10 0 0 0 1 11 0 1 0 0 01 1 0 0 0 0

c

(000111) −→c ′

(000101)H−→

s

(0100) ↔e

(000010) ⇒ c = c ′ − e

Remark

Let c be a word of a linear code and let x = c + e be the receivedvector after the trasmission. Then:

s = Hc ′ = H(c + e) = Hc + He = He

Theorem (Correctable syndrome)

If no more then t errors are occurred, there exists only one error ecorresponding to a syndrome s (i.e. s = He).

Page 41: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

A decoding procedure

Let C be as in the previous example.A parity check matrix for C is:

H =

0 0 0 1 0 10 0 0 0 1 11 0 1 0 0 01 1 0 0 0 0

c

(000111) −→c ′

(000101)H−→

s

(0100) ↔e

(000010) ⇒ c = c ′ − e

Remark

Let c be a word of a linear code and let x = c + e be the receivedvector after the trasmission. Then:

s = Hc ′ = H(c + e) = Hc + He = He

Theorem (Correctable syndrome)

If no more then t errors are occurred, there exists only one error ecorresponding to a syndrome s (i.e. s = He).

Page 42: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

A decoding procedure

Let C be as in the previous example.A parity check matrix for C is:

H =

0 0 0 1 0 10 0 0 0 1 11 0 1 0 0 01 1 0 0 0 0

c

(000111) −→c ′

(000101)H−→

s

(0100) ↔e

(000010) ⇒ c = c ′ − e

Remark

Let c be a word of a linear code and let x = c + e be the receivedvector after the trasmission. Then:

s = Hc ′ = H(c + e) = Hc + He = He

Theorem (Correctable syndrome)

If no more then t errors are occurred, there exists only one error ecorresponding to a syndrome s (i.e. s = He).

Page 43: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

A decoding procedure

Let C be as in the previous example.A parity check matrix for C is:

H =

0 0 0 1 0 10 0 0 0 1 11 0 1 0 0 01 1 0 0 0 0

c

(000111) −→c ′

(000101)H−→

s

(0100) ↔e

(000010) ⇒ c = c ′ − e

Remark

Let c be a word of a linear code and let x = c + e be the receivedvector after the trasmission. Then:

s = Hc ′ = H(c + e) = Hc + He = He

Theorem (Correctable syndrome)

If no more then t errors are occurred, there exists only one error ecorresponding to a syndrome s (i.e. s = He).

Page 44: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

A decoding procedure

Let C be as in the previous example.A parity check matrix for C is:

H =

0 0 0 1 0 10 0 0 0 1 11 0 1 0 0 01 1 0 0 0 0

c

(000111) −→c ′

(000101)H−→

s

(0100) ↔e

(000010) ⇒ c = c ′ − e

Remark

Let c be a word of a linear code and let x = c + e be the receivedvector after the trasmission. Then:

s = Hc ′ = H(c + e) = Hc + He = He

Theorem (Correctable syndrome)

If no more then t errors are occurred, there exists only one error ecorresponding to a syndrome s (i.e. s = He).

Page 45: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

A decoding procedure

Let C be as in the previous example.A parity check matrix for C is:

H =

0 0 0 1 0 10 0 0 0 1 11 0 1 0 0 01 1 0 0 0 0

c

(000111) −→c ′

(000101)H−→

s

(0100) ↔e

(000010) ⇒ c = c ′ − e

Remark

Let c be a word of a linear code and let x = c + e be the receivedvector after the trasmission. Then:

s = Hc ′ = H(c + e) = Hc + He = He

Theorem (Correctable syndrome)

If no more then t errors are occurred, there exists only one error ecorresponding to a syndrome s (i.e. s = He).

Page 46: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

A decoding procedure

Let C be as in the previous example.A parity check matrix for C is:

H =

0 0 0 1 0 10 0 0 0 1 11 0 1 0 0 01 1 0 0 0 0

c

(000111) −→c ′

(000101)H−→

s

(0100) ↔e

(000010) ⇒ c = c ′ − e

Remark

Let c be a word of a linear code and let x = c + e be the receivedvector after the trasmission. Then:

s = Hc ′ = H(c + e) = Hc + He = He

Theorem (Correctable syndrome)

If no more then t errors are occurred, there exists only one error ecorresponding to a syndrome s (i.e. s = He).

Page 47: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check and decoding

A decoding procedure

Let C be as in the previous example.A parity check matrix for C is:

H =

0 0 0 1 0 10 0 0 0 1 11 0 1 0 0 01 1 0 0 0 0

c

(000111) −→c ′

(000101)H−→

s

(0100) ↔e

(000010) ⇒ c = c ′ − e

Remark

Let c be a word of a linear code and let x = c + e be the receivedvector after the trasmission. Then:

s = Hc ′ = H(c + e) = Hc + He = He

Theorem (Correctable syndrome)

If no more then t errors are occurred, there exists only one error ecorresponding to a syndrome s (i.e. s = He).

Page 48: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Definitions

A first definition for cyclic codes

Definition

A Fq[n, k, d ] code (linear) C is called cyclic if any cyclic shift of acodeword is a codeword, i.e.

(c0, . . . , cn−1) ∈ C ⇒ (cn−1, c0, . . . , cn−2) ∈ C

Example

1 C = {(0000), (1111)} is cyclic

2 C = {(000), (110), (101), (011)} is cyclic

3 C = {(000), (100), (011), (111)} is not cyclic

Page 49: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Definitions

A first definition for cyclic codes

Definition

A Fq[n, k, d ] code (linear) C is called cyclic if any cyclic shift of acodeword is a codeword, i.e.

(c0, . . . , cn−1) ∈ C ⇒ (cn−1, c0, . . . , cn−2) ∈ C

Example

1 C = {(0000), (1111)} is cyclic

2 C = {(000), (110), (101), (011)} is cyclic

3 C = {(000), (100), (011), (111)} is not cyclic

Page 50: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Definitions

A first definition for cyclic codes

Definition

A Fq[n, k, d ] code (linear) C is called cyclic if any cyclic shift of acodeword is a codeword, i.e.

(c0, . . . , cn−1) ∈ C ⇒ (cn−1, c0, . . . , cn−2) ∈ C

Example

1 C = {(0000), (1111)} is cyclic

2 C = {(000), (110), (101), (011)} is cyclic

3 C = {(000), (100), (011), (111)} is not cyclic

Page 51: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Definitions

A first definition for cyclic codes

Definition

A Fq[n, k, d ] code (linear) C is called cyclic if any cyclic shift of acodeword is a codeword, i.e.

(c0, . . . , cn−1) ∈ C ⇒ (cn−1, c0, . . . , cn−2) ∈ C

Example

1 C = {(0000), (1111)} is cyclic

2 C = {(000), (110), (101), (011)} is cyclic

3 C = {(000), (100), (011), (111)} is not cyclic

Page 52: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Definitions

A first definition for cyclic codes

Definition

A Fq[n, k, d ] code (linear) C is called cyclic if any cyclic shift of acodeword is a codeword, i.e.

(c0, . . . , cn−1) ∈ C ⇒ (cn−1, c0, . . . , cn−2) ∈ C

Example

1 C = {(0000), (1111)} is cyclic

2 C = {(000), (110), (101), (011)} is cyclic

3 C = {(000), (100), (011), (111)} is not cyclic

Page 53: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Cyclic codes: an algebraic correspondence

Let R be the ring

R =Fq[x ]

xn − 1

There is a bijective correspondence between the vectors of (Fq)n

and residue class of polynomials in R.

v = (v0, . . . , vn−1)↔ v0 + v1x + · · ·+ vn−1xn−1

Page 54: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Cyclic codes: an algebraic correspondence

Let C be a Fq[n, k, d ] code

C is a cyclic code iff C is an ideal of R

Multiplying by x modulo xn − 1 corresponds to cyclic shift:

(c0, c1, . . . , cn−1)→ (cn−1, c0, . . . , cn−2)

xc(c0 + c1x + · · ·+ cn−1xn−1 = cn−1 + c0x + · · ·+ cn−2x

n−2

Page 55: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Cyclic codes: an algebraic correspondence

Let C be a Fq[n, k, d ] code

C is a cyclic code iff C is an ideal of R

Multiplying by x modulo xn − 1 corresponds to cyclic shift:

(c0, c1, . . . , cn−1)→ (cn−1, c0, . . . , cn−2)

xc(c0 + c1x + · · ·+ cn−1xn−1 = cn−1 + c0x + · · ·+ cn−2x

n−2

Page 56: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Properties of the ring R

R is a principal ideals ring.An ideal C of R is generated by a monic polynomial (residue class)

g that divides xn − 1.

C = 〈g〉

If C has length n and dimension k, the degree of g is n − kA generator matrix for C is given by:

G =

gxg...

xkg

=

g0 g1 . . . gn−k 0 . . . 00 g0 . . . gn−k−1 an−k 0 . . ....

. . ....

. . ....

0 . . . 0 g0 g1 . . . gn−k

g =

n−k∑i=0

gixi , gn−k = 1.

Page 57: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Properties of the ring R

R is a principal ideals ring.An ideal C of R is generated by a monic polynomial (residue class)

g that divides xn − 1.

C = 〈g〉

If C has length n and dimension k, the degree of g is n − kA generator matrix for C is given by:

G =

gxg...

xkg

=

g0 g1 . . . gn−k 0 . . . 00 g0 . . . gn−k−1 an−k 0 . . ....

. . ....

. . ....

0 . . . 0 g0 g1 . . . gn−k

g =

n−k∑i=0

gixi , gn−k = 1.

Page 58: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Properties of the ring R

R is a principal ideals ring.An ideal C of R is generated by a monic polynomial (residue class)

g that divides xn − 1.

C = 〈g〉

If C has length n and dimension k, the degree of g is n − kA generator matrix for C is given by:

G =

gxg...

xkg

=

g0 g1 . . . gn−k 0 . . . 00 g0 . . . gn−k−1 an−k 0 . . ....

. . ....

. . ....

0 . . . 0 g0 g1 . . . gn−k

g =

n−k∑i=0

gixi , gn−k = 1.

Page 59: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Properties of the ring R

R is a principal ideals ring.An ideal C of R is generated by a monic polynomial (residue class)

g that divides xn − 1.

C = 〈g〉

If C has length n and dimension k, the degree of g is n − kA generator matrix for C is given by:

G =

gxg...

xkg

=

g0 g1 . . . gn−k 0 . . . 00 g0 . . . gn−k−1 an−k 0 . . ....

. . ....

. . ....

0 . . . 0 g0 g1 . . . gn−k

g =

n−k∑i=0

gixi , gn−k = 1.

Page 60: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Properties of the ring R

R is a principal ideals ring.An ideal C of R is generated by a monic polynomial (residue class)

g that divides xn − 1.

C = 〈g〉

If C has length n and dimension k, the degree of g is n − kA generator matrix for C is given by:

G =

gxg...

xkg

=

g0 g1 . . . gn−k 0 . . . 00 g0 . . . gn−k−1 an−k 0 . . ....

. . ....

. . ....

0 . . . 0 g0 g1 . . . gn−k

g =

n−k∑i=0

gixi , gn−k = 1.

Page 61: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Parity check polynomial

Let C generated by g , deg(g) = n − k.g divides xn − 1⇒ xn − 1 = hgh ∈ Fq[x ] unique, deg(h) = k.

h = h0 + h1 + · · ·+ hkxk

is called the parity checkpolynomial of C .

Theorem

Let H ∈ (Fq)(n−k)×n,

H =

0 0 . . . 0 hk . . . h1 h0

0 0 . . . hk . . . h1 h0 0...

...hk . . . h1 h0 0 . . . 0 0

.

H is a parity check matrix for C .

Page 62: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Parity check polynomial

Let C generated by g , deg(g) = n − k.g divides xn − 1⇒ xn − 1 = hgh ∈ Fq[x ] unique, deg(h) = k.

h = h0 + h1 + · · ·+ hkxk

is called the parity checkpolynomial of C .

Theorem

Let H ∈ (Fq)(n−k)×n,

H =

0 0 . . . 0 hk . . . h1 h0

0 0 . . . hk . . . h1 h0 0...

...hk . . . h1 h0 0 . . . 0 0

.

H is a parity check matrix for C .

Page 63: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Parity check polynomial

Let C generated by g , deg(g) = n − k.g divides xn − 1⇒ xn − 1 = hgh ∈ Fq[x ] unique, deg(h) = k.

h = h0 + h1 + · · ·+ hkxk

is called the parity checkpolynomial of C .

Theorem

Let H ∈ (Fq)(n−k)×n,

H =

0 0 . . . 0 hk . . . h1 h0

0 0 . . . hk . . . h1 h0 0...

...hk . . . h1 h0 0 . . . 0 0

.

H is a parity check matrix for C .

Page 64: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Algebraic structure

Parity check polynomial

Let C generated by g , deg(g) = n − k.g divides xn − 1⇒ xn − 1 = hgh ∈ Fq[x ] unique, deg(h) = k.

h = h0 + h1 + · · ·+ hkxk

is called the parity checkpolynomial of C .

Theorem

Let H ∈ (Fq)(n−k)×n,

H =

0 0 . . . 0 hk . . . h1 h0

0 0 . . . hk . . . h1 h0 0...

...hk . . . h1 h0 0 . . . 0 0

.

H is a parity check matrix for C .

Page 65: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Roots of unity and defining set

Primitive root of unity

Cyclic codes of length n over Fq are gen. by divisors of xn − 1. Let

xn − 1 =r∏

j=1

fj , fj irreducible over Fq

Cyclic codes of length n over Fq ←→ subsets of {fj}rj=1

If GCD(n, q) = 1 , there exists α ∈ Fq s.t.:

xn − 1 =n−1∏i=0

x − αi .

α is a n−th primitive root of unity over Fq.

Page 66: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Roots of unity and defining set

Primitive root of unity

Cyclic codes of length n over Fq are gen. by divisors of xn − 1. Let

xn − 1 =r∏

j=1

fj , fj irreducible over Fq

Cyclic codes of length n over Fq ←→ subsets of {fj}rj=1

If GCD(n, q) = 1 , there exists α ∈ Fq s.t.:

xn − 1 =n−1∏i=0

x − αi .

α is a n−th primitive root of unity over Fq.

Page 67: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Roots of unity and defining set

Primitive root of unity

Cyclic codes of length n over Fq are gen. by divisors of xn − 1. Let

xn − 1 =r∏

j=1

fj , fj irreducible over Fq

Cyclic codes of length n over Fq ←→ subsets of {fj}rj=1

If GCD(n, q) = 1 , there exists α ∈ Fq s.t.:

xn − 1 =n−1∏i=0

x − αi .

α is a n−th primitive root of unity over Fq.

Page 68: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Roots of unity and defining set

Primitive root of unity

Cyclic codes of length n over Fq are gen. by divisors of xn − 1. Let

xn − 1 =r∏

j=1

fj , fj irreducible over Fq

Cyclic codes of length n over Fq ←→ subsets of {fj}rj=1

If GCD(n, q) = 1 , there exists α ∈ Fq s.t.:

xn − 1 =n−1∏i=0

x − αi .

α is a n−th primitive root of unity over Fq.

Page 69: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Roots of unity and defining set

Families of good cyclic codes

Proposition (Castagnoli/Massey/Schoeller, 1991)

If there exists a family of “good” codes {Cm}m over Fq of lengthsm with GCD(m, q) 6= 1, there exists a family {C ′

n}n withGCD(n, q) = 1 with the same properties.

Cyclic codes of length coprime with q enjoy a useful decriptiongiven by the existence n−th primitive roots of unity

Page 70: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Roots of unity and defining set

Families of good cyclic codes

Proposition (Castagnoli/Massey/Schoeller, 1991)

If there exists a family of “good” codes {Cm}m over Fq of lengthsm with GCD(m, q) 6= 1, there exists a family {C ′

n}n withGCD(n, q) = 1 with the same properties.

Cyclic codes of length coprime with q enjoy a useful decriptiongiven by the existence n−th primitive roots of unity

Page 71: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Roots of unity and defining set

Defining set

The generator polynomial gC of a cyclic code divides xn − 1. Theroots of gC are powers of any n−th primitive root of unity.

Definition

Let α be a n−th primitive root of unity over Fq and let C be aFq[n, k, d ] cyclic code with generator polynomial gC . The set:

SC ,α = SC = {0 ≤ i ≤ n − 1 | gC (αi ) = 0}

Is called the complete defining set of C .

#(SC ) = deg(gC ) = n − k

Defining set depends by the choice of α:

For any α n−th primitive root of unity SC has a different form.

Page 72: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Roots of unity and defining set

Defining set

The generator polynomial gC of a cyclic code divides xn − 1. Theroots of gC are powers of any n−th primitive root of unity.

Definition

Let α be a n−th primitive root of unity over Fq and let C be aFq[n, k, d ] cyclic code with generator polynomial gC . The set:

SC ,α = SC = {0 ≤ i ≤ n − 1 | gC (αi ) = 0}

Is called the complete defining set of C .

#(SC ) = deg(gC ) = n − k

Defining set depends by the choice of α:

For any α n−th primitive root of unity SC has a different form.

Page 73: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Roots of unity and defining set

Defining set

The generator polynomial gC of a cyclic code divides xn − 1. Theroots of gC are powers of any n−th primitive root of unity.

Definition

Let α be a n−th primitive root of unity over Fq and let C be aFq[n, k, d ] cyclic code with generator polynomial gC . The set:

SC ,α = SC = {0 ≤ i ≤ n − 1 | gC (αi ) = 0}

Is called the complete defining set of C .

#(SC ) = deg(gC ) = n − k

Defining set depends by the choice of α:

For any α n−th primitive root of unity SC has a different form.

Page 74: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Roots of unity and defining set

Defining set

The generator polynomial gC of a cyclic code divides xn − 1. Theroots of gC are powers of any n−th primitive root of unity.

Definition

Let α be a n−th primitive root of unity over Fq and let C be aFq[n, k, d ] cyclic code with generator polynomial gC . The set:

SC ,α = SC = {0 ≤ i ≤ n − 1 | gC (αi ) = 0}

Is called the complete defining set of C .

#(SC ) = deg(gC ) = n − k

Defining set depends by the choice of α:

For any α n−th primitive root of unity SC has a different form.

Page 75: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

x7 − 1 over F2:

f0 f1 f3q q q

x7 − 1 = (x + 1) (x3 + x2 + 1) (x3 + x + 1)

Consider C the cyclic code generated by g = f0 · f1

SC = {0, 1, 2, 4}

Respect to a n−th primitive root of unity α s.t. f1(α) = 0.

n = 7 k = 3 d =?

Page 76: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

x7 − 1 over F2:

f0 f1 f3q q q

x7 − 1 = (x + 1) (x3 + x2 + 1) (x3 + x + 1)

Consider C the cyclic code generated by g = f0 · f1

SC = {0, 1, 2, 4}

Respect to a n−th primitive root of unity α s.t. f1(α) = 0.

n = 7 k = 3 d =?

Page 77: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

x7 − 1 over F2:

f0 f1 f3q q q

x7 − 1 = (x + 1) (x3 + x2 + 1) (x3 + x + 1)

Consider C the cyclic code generated by g = f0 · f1

SC = {0, 1, 2, 4}

Respect to a n−th primitive root of unity α s.t. f1(α) = 0.

n = 7 k = 3 d =?

Page 78: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

x7 − 1 over F2:

f0 f1 f3q q q

x7 − 1 = (x + 1) (x3 + x2 + 1) (x3 + x + 1)

Consider C the cyclic code generated by g = f0 · f1

SC = {0, 1, 2, 4}

Respect to a n−th primitive root of unity α s.t. f1(α) = 0.

n = 7 k = 3 d =?

Page 79: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

x7 − 1 over F2:

f0 f1 f3q q q

x7 − 1 = (x + 1) (x3 + x2 + 1) (x3 + x + 1)

Consider C the cyclic code generated by g = f0 · f1

SC = {0, 1, 2, 4}

Respect to a n−th primitive root of unity α s.t. f1(α) = 0.

n = 7 k = 3 d =?

Page 80: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

x7 − 1 over F2:

f0 f1 f3q q q

x7 − 1 = (x + 1) (x3 + x2 + 1) (x3 + x + 1)

Consider C the cyclic code generated by g = f0 · f1

SC = {0, 1, 2, 4}

Respect to a n−th primitive root of unity α s.t. f1(α) = 0.

n = 7 k = 3 d =?

Page 81: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

An example

An example

x7 − 1 over F2:

f0 f1 f3q q q

x7 − 1 = (x + 1) (x3 + x2 + 1) (x3 + x + 1)

Consider C the cyclic code generated by g = f0 · f1

SC = {0, 1, 2, 4}

Respect to a n−th primitive root of unity α s.t. f1(α) = 0.

n = 7 k = 3 d =?

Page 82: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check matrix

Parity-check matrix

Let C be an Fq[n, k, d ] cyclic code with (n, q) = 1. LetSC = {i1, . . . , in−k} be its defining set and α be a primitive n–rootof unity in the splitting field of xn − 1 on Fq. Then

H =

1 αi1 α2i1 · · · α(n−1)i1

1 αi2 α2i2 · · · α(n−1)i2

......

.... . .

...

1 αin−k α2in−k · · · α(n−1)in−k

is a parity-check matrix for C .

Let c ∈ C then cHT = 0 is equivalent to sayn−1∑τ=0

cτατ is = 0, ∀is ∈ Sc ,

that is c(αis ) = 0, for any is ∈ SC .

Page 83: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Parity-check matrix

Parity-check matrix

Let C be an Fq[n, k, d ] cyclic code with (n, q) = 1. LetSC = {i1, . . . , in−k} be its defining set and α be a primitive n–rootof unity in the splitting field of xn − 1 on Fq. Then

H =

1 αi1 α2i1 · · · α(n−1)i1

1 αi2 α2i2 · · · α(n−1)i2

......

.... . .

...

1 αin−k α2in−k · · · α(n−1)in−k

is a parity-check matrix for C .

Let c ∈ C then cHT = 0 is equivalent to sayn−1∑τ=0

cτατ is = 0, ∀is ∈ Sc ,

that is c(αis ) = 0, for any is ∈ SC .

Page 84: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

BCH codes

BCH bound–BCH codes

Theorem (BCH bound)

Let C be an Fq[n, k, d ] cyclic code with defining setSC = {i1, . . . , in−k} and let (n, q) = 1. Suppose there are δ − 1consecutive numbers in SC , say{m0,m0 + 1, . . . m0 + δ − 2} ⊂ SC . Then

d ≥ δ

Definition

Let S = (m0,m0 + 1, . . . ,m0 + δ − 2) be such that

0 ≤ m0 ≤ · · · ≤ m0 + δ − 2 ≤ n − 1

If C is the Fq[n, k, d ] cyclic code with defining set S , we say thatC is a BCH code of designed distance δ

Page 85: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

BCH codes

BCH bound–BCH codes

Theorem (BCH bound)

Let C be an Fq[n, k, d ] cyclic code with defining setSC = {i1, . . . , in−k} and let (n, q) = 1. Suppose there are δ − 1consecutive numbers in SC , say{m0,m0 + 1, . . . m0 + δ − 2} ⊂ SC . Then

d ≥ δ

Definition

Let S = (m0,m0 + 1, . . . ,m0 + δ − 2) be such that

0 ≤ m0 ≤ · · · ≤ m0 + δ − 2 ≤ n − 1

If C is the Fq[n, k, d ] cyclic code with defining set S , we say thatC is a BCH code of designed distance δ

Page 86: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

BCH codes

An example

The F2[7, 3, d ] code of previous example with SC = {0, 1, 2, 4} is aBCH code of designed distance δ = 4.

d ≥ 4 (BCH ).

d=4

A minimum weight word of the code is given by the generatorpolynomial

gC = x4 + x2 + x + 1

Page 87: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

BCH codes

An example

The F2[7, 3, d ] code of previous example with SC = {0, 1, 2, 4} is aBCH code of designed distance δ = 4.

d ≥ 4 (BCH ).

d=4

A minimum weight word of the code is given by the generatorpolynomial

gC = x4 + x2 + x + 1

Page 88: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

BCH codes

An example

The F2[7, 3, d ] code of previous example with SC = {0, 1, 2, 4} is aBCH code of designed distance δ = 4.

d ≥ 4 (BCH ).

d=4

A minimum weight word of the code is given by the generatorpolynomial

gC = x4 + x2 + x + 1

Page 89: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

BCH codes

An example

The F2[7, 3, d ] code of previous example with SC = {0, 1, 2, 4} is aBCH code of designed distance δ = 4.

d ≥ 4 (BCH ).

d=4

A minimum weight word of the code is given by the generatorpolynomial

gC = x4 + x2 + x + 1

Page 90: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

BCH codes

An example

The F2[7, 3, d ] code of previous example with SC = {0, 1, 2, 4} is aBCH code of designed distance δ = 4.

d ≥ 4 (BCH ).

d=4

A minimum weight word of the code is given by the generatorpolynomial

gC = x4 + x2 + x + 1

Page 91: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Polynomial encoding

Polynomial encoding (1)

Let C be an [n, k, d ] cyclic code over Fq, then C is capable ofencoding q–ary messages of length k and requires n − kredundancy symbols.

Non–systematic method

given a message w = (w0, . . . , wk−1), we consider its

polynomial representation w(x) ∈ Fq[x]xn−1

multiply w(x) by the generator polynomial g(x)

c(x) = w(x)g(x) ∈ C is the encoded word

Page 92: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Polynomial encoding

Polynomial encoding (1)

Let C be an [n, k, d ] cyclic code over Fq, then C is capable ofencoding q–ary messages of length k and requires n − kredundancy symbols.

Non–systematic method

given a message w = (w0, . . . , wk−1), we consider its

polynomial representation w(x) ∈ Fq[x]xn−1

multiply w(x) by the generator polynomial g(x)

c(x) = w(x)g(x) ∈ C is the encoded word

Page 93: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Polynomial encoding

Polynomial encoding (1)

Let C be an [n, k, d ] cyclic code over Fq, then C is capable ofencoding q–ary messages of length k and requires n − kredundancy symbols.

Non–systematic method

given a message w = (w0, . . . , wk−1), we consider its

polynomial representation w(x) ∈ Fq[x]xn−1

multiply w(x) by the generator polynomial g(x)

c(x) = w(x)g(x) ∈ C is the encoded word

Page 94: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Polynomial encoding

Polynomial encoding (2)

Example (Systematic method)

Let C be an F2[7, 4] code, g(x) = x3 + x2 + 1 and w= (1, 0, 1, 0).

find the associated polynomial: w(x) = x2 + 1

multiply it by xn−k : (x2 + 1) ∗ x3 = x5 + x3

divide this results by g(x) and take the remainder r(x):

x5 + x3 = (x2 + x) ∗ (x3 + x2 + 1) + (x2 ∗ x)

r(x) as an (n − k)–vector: r = (0, 1, 1)

encode using r , preceded by the message (1, 0, 1, 0):

(1, 0, 1, 0)→ (1, 0, 1, 0, 0, 1, 1)

Page 95: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Polynomial encoding

Polynomial encoding (2)

Example (Systematic method)

Let C be an F2[7, 4] code, g(x) = x3 + x2 + 1 and w= (1, 0, 1, 0).

find the associated polynomial: w(x) = x2 + 1

multiply it by xn−k : (x2 + 1) ∗ x3 = x5 + x3

divide this results by g(x) and take the remainder r(x):

x5 + x3 = (x2 + x) ∗ (x3 + x2 + 1) + (x2 ∗ x)

r(x) as an (n − k)–vector: r = (0, 1, 1)

encode using r , preceded by the message (1, 0, 1, 0):

(1, 0, 1, 0)→ (1, 0, 1, 0, 0, 1, 1)

Page 96: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Polynomial encoding

Polynomial encoding (2)

Example (Systematic method)

Let C be an F2[7, 4] code, g(x) = x3 + x2 + 1 and w= (1, 0, 1, 0).

find the associated polynomial: w(x) = x2 + 1

multiply it by xn−k : (x2 + 1) ∗ x3 = x5 + x3

divide this results by g(x) and take the remainder r(x):

x5 + x3 = (x2 + x) ∗ (x3 + x2 + 1) + (x2 ∗ x)

r(x) as an (n − k)–vector: r = (0, 1, 1)

encode using r , preceded by the message (1, 0, 1, 0):

(1, 0, 1, 0)→ (1, 0, 1, 0, 0, 1, 1)

Page 97: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Polynomial encoding

Polynomial encoding (2)

Example (Systematic method)

Let C be an F2[7, 4] code, g(x) = x3 + x2 + 1 and w= (1, 0, 1, 0).

find the associated polynomial: w(x) = x2 + 1

multiply it by xn−k : (x2 + 1) ∗ x3 = x5 + x3

divide this results by g(x) and take the remainder r(x):

x5 + x3 = (x2 + x) ∗ (x3 + x2 + 1) + (x2 ∗ x)

r(x) as an (n − k)–vector: r = (0, 1, 1)

encode using r , preceded by the message (1, 0, 1, 0):

(1, 0, 1, 0)→ (1, 0, 1, 0, 0, 1, 1)

Page 98: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Polynomial encoding

Polynomial encoding (2)

Example (Systematic method)

Let C be an F2[7, 4] code, g(x) = x3 + x2 + 1 and w= (1, 0, 1, 0).

find the associated polynomial: w(x) = x2 + 1

multiply it by xn−k : (x2 + 1) ∗ x3 = x5 + x3

divide this results by g(x) and take the remainder r(x):

x5 + x3 = (x2 + x) ∗ (x3 + x2 + 1) + (x2 ∗ x)

r(x) as an (n − k)–vector: r = (0, 1, 1)

encode using r , preceded by the message (1, 0, 1, 0):

(1, 0, 1, 0)→ (1, 0, 1, 0, 0, 1, 1)

Page 99: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Polynomial encoding

Polynomial encoding (2)

Example (Systematic method)

Let C be an F2[7, 4] code, g(x) = x3 + x2 + 1 and w= (1, 0, 1, 0).

find the associated polynomial: w(x) = x2 + 1

multiply it by xn−k : (x2 + 1) ∗ x3 = x5 + x3

divide this results by g(x) and take the remainder r(x):

x5 + x3 = (x2 + x) ∗ (x3 + x2 + 1) + (x2 ∗ x)

r(x) as an (n − k)–vector: r = (0, 1, 1)

encode using r , preceded by the message (1, 0, 1, 0):

(1, 0, 1, 0)→ (1, 0, 1, 0, 0, 1, 1)

Page 100: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Decoding

Polynomial decoding

Example (Systematic method)

Suppose that the decoder receive exactly the sent word (but itdoes not know it!)

v= (1, 0, 1, 0, 0, 1, 1)→ v(x) = x6 + x5 + x2 + 1

the decoder divides v(x) by g(x):

x6 + x5 + x2 + 1 = (x3 + x2 + 1) ∗ (x3 + 1) + 0

(probably) no errors have occurred

the message is formed by the first 4 components of thereceived word, i.e. w= (1, 0, 1, 0)

Page 101: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Decoding

Polynomial decoding

Example (Systematic method)

Suppose that the decoder receive exactly the sent word (but itdoes not know it!)

v= (1, 0, 1, 0, 0, 1, 1)→ v(x) = x6 + x5 + x2 + 1

the decoder divides v(x) by g(x):

x6 + x5 + x2 + 1 = (x3 + x2 + 1) ∗ (x3 + 1) + 0

(probably) no errors have occurred

the message is formed by the first 4 components of thereceived word, i.e. w= (1, 0, 1, 0)

Page 102: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Decoding

Polynomial decoding

Example (Systematic method)

Suppose that the decoder receive exactly the sent word (but itdoes not know it!)

v= (1, 0, 1, 0, 0, 1, 1)→ v(x) = x6 + x5 + x2 + 1

the decoder divides v(x) by g(x):

x6 + x5 + x2 + 1 = (x3 + x2 + 1) ∗ (x3 + 1) + 0

(probably) no errors have occurred

the message is formed by the first 4 components of thereceived word, i.e. w= (1, 0, 1, 0)

Page 103: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Decoding

Polynomial decoding

Example (Systematic method)

Suppose that the decoder receive exactly the sent word (but itdoes not know it!)

v= (1, 0, 1, 0, 0, 1, 1)→ v(x) = x6 + x5 + x2 + 1

the decoder divides v(x) by g(x):

x6 + x5 + x2 + 1 = (x3 + x2 + 1) ∗ (x3 + 1) + 0

(probably) no errors have occurred

the message is formed by the first 4 components of thereceived word, i.e. w= (1, 0, 1, 0)

Page 104: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

Decoding

Polynomial decoding

Example (Systematic method)

Suppose that the decoder receive exactly the sent word (but itdoes not know it!)

v= (1, 0, 1, 0, 0, 1, 1)→ v(x) = x6 + x5 + x2 + 1

the decoder divides v(x) by g(x):

x6 + x5 + x2 + 1 = (x3 + x2 + 1) ∗ (x3 + 1) + 0

(probably) no errors have occurred

the message is formed by the first 4 components of thereceived word, i.e. w= (1, 0, 1, 0)

Page 105: An introduction to cyclic codes - Ricam | Welcome · PDF fileAn introduction to cyclic codes Emanuele Betti1, ... A linear code C is a k-dimensional vector sub-space of (F q)n,

An overview on error correcting codes Linear codes Cyclic codes Encoding and decoding with cyclic codes

References

References

C. E. Shannon, “A mathematical theory of communication”, BellSystems Technical Journal,, vol. 27, p. 379–423, p. 623–656, 1948.

F.J. MacWilliams, N.J.A. Sloane, The Theory of Error-CorrectingCodes, North Holland, 1977.

E. Prange, “Cyclic Error-Correcting Codes in Two Symbols”, AirForce Cambridge Research Center, Cambridge, MA, Tech. Rep.AFCRC-TN-57-103, 1957.

G. Castagnoli, J. L. Massey, P. A. Schoeller, and N. von Seeman,“On repeated-root cyclic codes”, IEEE Trans.Inf. Theory, vol. 37,no.2, pp. 337342, Mar. 1991.

R. C. Bose and D. K. Ray-Chaudhuri, “On a class of error correctingbinary group codes,” Inform. Control, vol. 3, pp. 68-79, 1960.