Cyclic Codes II
Jiyou [email protected]
Department of Mathematics, Shanghai Jiao Tong University
Tuesday 5th November, 2013
Li Jiyou Linear Codes II
Cyclic codes
C = (g(x)) ⊆ Fq[x ]/(xn − 1) and g(x)h(x) = xn − 1, withg(x) = g0 + g1x + · · ·+ gn−kxn−k ,h(x) = h0 + h1x + · · ·+ hkxk .
C has a basis g(x), xg(x), . . . , xk−1g(x).
Li Jiyou Linear Codes II
Cyclic codes
C = (g(x)) ⊆ Fq[x ]/(xn − 1) and g(x)h(x) = xn − 1, withg(x) = g0 + g1x + · · ·+ gn−kxn−k ,h(x) = h0 + h1x + · · ·+ hkxk .C has a basis g(x), xg(x), . . . , xk−1g(x).
Li Jiyou Linear Codes II
The generator matrix
G =
g0 g1 . . . gn−k 0 0 00 g0 g1 . . . gn−k 0 0
. . . . . . . . . . . .0 0 0 g0 g1 . . . gn−k
k×n
.
The parity check matrix
H =
hk hk−1 . . . h0 0 0 00 hk hk−1 . . . h0 0 0
. . . . . . . . . . . .0 0 0 hk hk−1 . . . h0
(n−k)×n
.
Li Jiyou Linear Codes II
The generator matrix
G =
g0 g1 . . . gn−k 0 0 00 g0 g1 . . . gn−k 0 0
. . . . . . . . . . . .0 0 0 g0 g1 . . . gn−k
k×n
.
The parity check matrix
H =
hk hk−1 . . . h0 0 0 00 hk hk−1 . . . h0 0 0
. . . . . . . . . . . .0 0 0 hk hk−1 . . . h0
(n−k)×n
.
Li Jiyou Linear Codes II
Example
Let Fq = F3 and n = 8, x8 − 1 = (x + 1)(x − 1)(x2 + 1)(x4 + 1).Take g(x) = x5 + 2x4 + x + 2, we then get a [8, 3, 4]3 code.
G =
2 1 0 0 2 1 0 00 2 1 0 0 2 1 00 0 2 1 0 0 2 1
,
H =
1 1 1 1 0 0 0 00 1 1 1 1 0 0 00 0 1 1 1 1 0 00 0 0 1 1 1 1 00 0 0 0 1 1 1 1
.
Li Jiyou Linear Codes II
ExampleLet Fq = F2, n = 2m − 1 and g(x) be a primitive polynomial ofdegree m over F2[x ]. We then have a [2m − 1, 2m − 1−m, 3]2code. In fact it is the Hamming code Hm (whyº).
Li Jiyou Linear Codes II
ProblemConstruct good cyclic codes using tools from algebra.
Li Jiyou Linear Codes II
Trace representation of cyclic codes
TheoremSuppose the parity check polynomial h(x) is an irreduciblepolynomial of degree k and α is one of its root in someextension field of Fq (Thus Fq(α) = Fqk ). Then for anyc = (c0, c1, . . . , cn−1) ∈ C, there is a unique element βc ∈ Fqk
such thatci = Trace(βcα
−i).
Li Jiyou Linear Codes II
Trace representation of cyclic codes
TheoremSuppose that the generator polynomial h(x) is a product ofirreducible polynomials of pi(x), 1 ≤ i ≤ s with deg pi(x) = diand αi are roots of pi(x) respectively in some extension field ofFq, i.e., Fq(αi) = Fqdi .Then for any c = (c0, c1, . . . , cn−1) ∈ C, there is a uniqueelement βc ∈ Fqk such that
ci =s∑
j=1
Trace(βcα−ij ).
Li Jiyou Linear Codes II
ExampleOver Fq let h(x) be a primitive polynomial of degree k in Fq[x ].We then have a [n = qk − 1, k ]q cyclic code C.
Let α be a root of h(x). Applying the above theorem, for anyc = (c0, c1, . . . , cn−1) ∈ C, there is a unique element βc ∈ Fqk
such thatci = Trace(βcα
−i).
This proves that C is a [qk − 1, k , qk − qk−1]q cyclic code.
Li Jiyou Linear Codes II
ExampleOver Fq let h(x) be a primitive polynomial of degree k in Fq[x ].We then have a [n = qk − 1, k ]q cyclic code C.Let α be a root of h(x). Applying the above theorem, for anyc = (c0, c1, . . . , cn−1) ∈ C, there is a unique element βc ∈ Fqk
such thatci = Trace(βcα
−i).
This proves that C is a [qk − 1, k , qk − qk−1]q cyclic code.
Li Jiyou Linear Codes II
ExampleOver Fq let h(x) be a primitive polynomial of degree k in Fq[x ].We then have a [n = qk − 1, k ]q cyclic code C.Let α be a root of h(x). Applying the above theorem, for anyc = (c0, c1, . . . , cn−1) ∈ C, there is a unique element βc ∈ Fqk
such thatci = Trace(βcα
−i).
This proves that C is a [qk − 1, k , qk − qk−1]q cyclic code.
Li Jiyou Linear Codes II
Example
Over F2 take h(x) = x5 + x3 + x2 + x + 1 to be a primitivepolynomial of degree 5 in Fq[x ]. We then get a [31, 5, 16]2cyclic code.
Li Jiyou Linear Codes II
Roots of cyclic codes
DefinitionSuppose the generator polynomial g(x) is a product ofirreducible polynomials of pi(x), 1 ≤ i ≤ s with deg pi(x) = diand αi are roots of pi(x) respectively in some extension field ofFq, i.e., Fq(αi) = Fqdi .Then
C = {c(x) ∈ Fq[x ]/(xn − 1), c(αi) = 0,∀1 ≤ i ≤ s}.
Li Jiyou Linear Codes II
A new parity check matrix
The parity check matrix H is given by
H =
1 α1 α2
1 . . . αn−11
1 α2 α22 . . . αn−1
2. . . . . . . . . . . . . . .1 αs α2
s . . . αn−1s
(n−k)×n
.
Li Jiyou Linear Codes II
Example
Let Fq = F2 and n = 7, Take g(x) = (x + 1)(x3 + x + 1). Onechecks that x3 + x + 1 is irreducible and is of order 7. Let α bea root of x3 + x + 1 and thus F2(α) = F8.Consider
C = {c(x) ∈ F2[x ]/(x7 − 1), c(1) = c(α) = 0}.
H =
(1 1 1 . . . 11 α α2 . . . α6
).
Over F2, we get a [7, 4, 4]2 code:
H =
1 1 1 1 1 1 11 0 0 1 0 1 10 1 0 1 1 1 00 0 1 0 1 1 1
.
Li Jiyou Linear Codes II
Bose-Chaudhuri-Hocquenghem Codes
DefinitionLet (n, q) = 1 and Fqn = Fq(β). l and 2 ≤ δ ≤ n − 1 areintegers. Then q-ary cyclic code of roots β l , β l+1, . . . , β i+δ−2 isdefined as
C = {c(x) ∈ Fq[x ], c(β l) = c(β l+1) = · · · = c(β l+δ−2) = 0}
is called a BCH code of designed distance δ.
Li Jiyou Linear Codes II
Bose-Chaudhuri-Hocquenghem Codes
TheoremThe minimum distance of a BCH code of designed distance δ isat least δ.
Li Jiyou Linear Codes II
ExampleLet Fq = F2 and n = 2m − 1, Take g1(x) to be a primitivepolynomial and α is its root in some extension. One can showthe minimal polynomial g3(x) of α3 has degree m. Takeg(x) = g1(x)g3(x).Consider
C = {c(x) ∈ F2[x ]/(xn − 1), c(α) = c(α3) = 0}.
H =
(1 α α2 . . . αn−1
1 α3 α6 . . . α3(n−1)
).
We thus have a [n, n − 2m,≥ 5]2 code.
Li Jiyou Linear Codes II
An example of Decoding BCH codes
Suppose u(x) = u0 + u1x + · · ·+ un−1xn−1 is the receivedpolynomial and u = (u0, u1, . . . , un−1) is the vector ofcoefficients;
Let u(x) = c(x) + ε(x) where c(x) is the sending messageand ε(x) is the error polynomial and ε is the error vector;
Compute HuT =( u(α)
u(α3)
)= H(cT + εT ) = HεT =
( ε(α)ε(α3)
);
If ε(x) = 0, no errors happened and output c(x) = u(x);If ε(x) = x i , 1 error happened and output c(x) = u(x) + x i ;If ε(x) = x i + x j , 2 errors happened and outputc(x) = u(x) + x i + x j .How to compute i and j?
Li Jiyou Linear Codes II
An example of Decoding BCH codes
Suppose u(x) = u0 + u1x + · · ·+ un−1xn−1 is the receivedpolynomial and u = (u0, u1, . . . , un−1) is the vector ofcoefficients;Let u(x) = c(x) + ε(x) where c(x) is the sending messageand ε(x) is the error polynomial and ε is the error vector;
Compute HuT =( u(α)
u(α3)
)= H(cT + εT ) = HεT =
( ε(α)ε(α3)
);
If ε(x) = 0, no errors happened and output c(x) = u(x);If ε(x) = x i , 1 error happened and output c(x) = u(x) + x i ;If ε(x) = x i + x j , 2 errors happened and outputc(x) = u(x) + x i + x j .How to compute i and j?
Li Jiyou Linear Codes II
An example of Decoding BCH codes
Suppose u(x) = u0 + u1x + · · ·+ un−1xn−1 is the receivedpolynomial and u = (u0, u1, . . . , un−1) is the vector ofcoefficients;Let u(x) = c(x) + ε(x) where c(x) is the sending messageand ε(x) is the error polynomial and ε is the error vector;
Compute HuT =( u(α)
u(α3)
)= H(cT + εT ) = HεT =
( ε(α)ε(α3)
);
If ε(x) = 0, no errors happened and output c(x) = u(x);If ε(x) = x i , 1 error happened and output c(x) = u(x) + x i ;If ε(x) = x i + x j , 2 errors happened and outputc(x) = u(x) + x i + x j .How to compute i and j?
Li Jiyou Linear Codes II
An example of Decoding BCH codes
Suppose u(x) = u0 + u1x + · · ·+ un−1xn−1 is the receivedpolynomial and u = (u0, u1, . . . , un−1) is the vector ofcoefficients;Let u(x) = c(x) + ε(x) where c(x) is the sending messageand ε(x) is the error polynomial and ε is the error vector;
Compute HuT =( u(α)
u(α3)
)= H(cT + εT ) = HεT =
( ε(α)ε(α3)
);
If ε(x) = 0, no errors happened and output c(x) = u(x);
If ε(x) = x i , 1 error happened and output c(x) = u(x) + x i ;If ε(x) = x i + x j , 2 errors happened and outputc(x) = u(x) + x i + x j .How to compute i and j?
Li Jiyou Linear Codes II
An example of Decoding BCH codes
Suppose u(x) = u0 + u1x + · · ·+ un−1xn−1 is the receivedpolynomial and u = (u0, u1, . . . , un−1) is the vector ofcoefficients;Let u(x) = c(x) + ε(x) where c(x) is the sending messageand ε(x) is the error polynomial and ε is the error vector;
Compute HuT =( u(α)
u(α3)
)= H(cT + εT ) = HεT =
( ε(α)ε(α3)
);
If ε(x) = 0, no errors happened and output c(x) = u(x);If ε(x) = x i , 1 error happened and output c(x) = u(x) + x i ;
If ε(x) = x i + x j , 2 errors happened and outputc(x) = u(x) + x i + x j .How to compute i and j?
Li Jiyou Linear Codes II
An example of Decoding BCH codes
Suppose u(x) = u0 + u1x + · · ·+ un−1xn−1 is the receivedpolynomial and u = (u0, u1, . . . , un−1) is the vector ofcoefficients;Let u(x) = c(x) + ε(x) where c(x) is the sending messageand ε(x) is the error polynomial and ε is the error vector;
Compute HuT =( u(α)
u(α3)
)= H(cT + εT ) = HεT =
( ε(α)ε(α3)
);
If ε(x) = 0, no errors happened and output c(x) = u(x);If ε(x) = x i , 1 error happened and output c(x) = u(x) + x i ;If ε(x) = x i + x j , 2 errors happened and outputc(x) = u(x) + x i + x j .
How to compute i and j?
Li Jiyou Linear Codes II
An example of Decoding BCH codes
Suppose u(x) = u0 + u1x + · · ·+ un−1xn−1 is the receivedpolynomial and u = (u0, u1, . . . , un−1) is the vector ofcoefficients;Let u(x) = c(x) + ε(x) where c(x) is the sending messageand ε(x) is the error polynomial and ε is the error vector;
Compute HuT =( u(α)
u(α3)
)= H(cT + εT ) = HεT =
( ε(α)ε(α3)
);
If ε(x) = 0, no errors happened and output c(x) = u(x);If ε(x) = x i , 1 error happened and output c(x) = u(x) + x i ;If ε(x) = x i + x j , 2 errors happened and outputc(x) = u(x) + x i + x j .How to compute i and j?
Li Jiyou Linear Codes II
ExampleTake m = 4, and α is a root of primitive polynomialg1(x) = x4 + x + 1. One computes the minimal polynomial ofα3 is g2(x) = x4 + x3 + x2 + x + 1.Thus
C = {c(x) ∈ F2[x ], c(α) = c(α3) = 0}
is a [15, 7,≥ 5]2 cyclic code with generator polynomialg(x) = g1(x)g2(x).Over F2, we get a [15, 7,≥ 5]2 code. Supposec(x) = x + x2 + x5 + x6 + x7 + x10 and ε(x) = x5 + x7.Received u(x) = x + x2 + x6 + x10. Compute HuT =
( ε(α)ε(α3)
).
Solve this equation we get i = 5 and j = 7.
Li Jiyou Linear Codes II
ExampleTaking l = 1, generalized Reed-solomon codes are cycliccodes with
H =
1 α α2 . . . αn−1
1 α2 α4 . . . α2(n−1)
. . . . . . . . . . . . . . .1 αk α2k . . . α(n−k)(n−1)
(n−k)×n
.
Li Jiyou Linear Codes II
ExampleBinary Golay codes are cyclic codes.
Li Jiyou Linear Codes II
Homework
Textbook Page 75: 1, 2, 3.
Li Jiyou Linear Codes II