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

Post on 30-Jan-2018

220 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

1bettie@posso.dm.unipi.it

Department of Mathematics, University of Florence, Italy

1orsini@posso.dm.unipi.it

Department of Mathematics, University of Milan, Italy

May 1, 2006

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

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

A communication schema

BA

SOURCE DESTINATIONINFORMATION

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

A communication schema

MESSAGE

BA

SOURCE DESTINATIONTRASMITTERINFORMATION

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

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

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

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 .

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 .

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 .

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 .

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 .

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.

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.

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.

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.

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.

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

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

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

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

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

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

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} .

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} .

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} .

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} .

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} .

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

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

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

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

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

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

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 .

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 .

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 .

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 .

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).

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).

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).

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).

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).

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).

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).

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).

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).

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

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

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

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

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

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

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

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

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.

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.

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.

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.

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.

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 .

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 .

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 .

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 .

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.

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.

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.

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.

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

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

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.

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.

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.

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.

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 =?

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 =?

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 =?

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 =?

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 =?

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 =?

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 =?

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 .

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 .

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 δ

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 δ

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

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

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

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

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

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

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

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

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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)

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.

top related