an introduction to cyclic codes - ricam | welcome · pdf filean introduction to cyclic codes...
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
Department of Mathematics, University of Florence, Italy
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.