Introduction to coding theory...
Transcript of Introduction to coding theory...
BoundsCyclic codes
Examples of codes
Introduction to coding theory II
Pierre Arnoux
Manila, July 2013
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Upper bounds
I The Singleton bound for linear codes
I For a linear [n, k , d ] code :
I k + d ≤ n + 1
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Upper bounds
I The Hamming Bound
I for an (n,M, d)-code with t =[d−12
]I qn ≥ M
∑tj=0(q − 1)j
(nj
).
I In the linear case of a [n, k , 2t + 1]-code :
I qn ≥ qk∑t
j=0(q − 1)j(nj
).
I in the binary case :
I 2n ≥ 2k∑t
j=0
(nj
).
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Upper bounds
I It can be rewritten:
I k ≤[n − logq
(∑tj=0(q − 1)j
(nj
))].
I and in the binary case :
I k ≤[n − log2
(∑tj=0
(nj
))].
I How do these bounds compare?
I It depends on q
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Upper bounds
Cas q = 2, n = 100
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Upper bounds
Cas q = 2, n = 1000
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Upper bounds
Cas q = 3, n = 100
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Upper bounds
Cas q = 3, n = 1000
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Upper bounds
Cas q = 4, n = 1000
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Upper bounds
Cas q = 81, n = 1000
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Upper bounds
Cas q = 1024, n = 1000
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Bounds
I These are upper bounds.
I It is most interesting to have lower bounds,
I To see what can be expected.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Gilbert-Varshamov bound
I There is a lower bound :
I Theorem (Gilbert-Varshamov bound)
If qn−k+1 >∑d−1
j=0 (q − 1)j(nj
)then there exists a [n, k, d ] code
over Fq
I Proof by induction on k .
I If k = 1, the inequality becomes qn >∑d−1
j=0 (q − 1)j(nj
).
I It is true for d ≤ n.
I The code generated by (1, 1, . . . , 1) is a [n, 1, n] code whichsatisfies the condition.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Gilbert-Varshamov bound
I Theorem (Gilbert-Varshamov bound)
If qn−k+1 >∑d−1
j=0 (q − 1)j(nj
)then there exists a [n, k, d ] code
over Fq
I Suppose by induction that the inequality holds and there is a[n, k − 1, d ] code C .
I By the inequality, the spheres of radius d − 1 centered in C donot cover the space; there is some word W which is atdistance at least d of the words of C .
I Let C ′ be the vector space generated by C and W .
I Let αW + c and βW + c ′ two distinct words of C ′; thedistance d(αW + c , βW + c ′) is the weight of(α− β)W + c − c ′.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Gilbert-Varshamov bound
I Theorem (Gilbert-Varshamov bound)
If qn−k+1 >∑d−1
j=0 (q − 1)j(nj
)then there exists a [n, k, d ] code
over Fq
I Let αW + c and βW + c ′ two distinct words of C ′; thedistance d(αW + c , βW + c ′) is the weight of(α− β)W + c − c ′.
I If α− β = 0, it is the weight of a nonzero element of C ,hence at least d .
I if α− β = γ 6= 0, it is the weight of W + γ−1(c − c ′), that isthe distance d(W ,−γ−1(c − c ′).
I But C is a linear code; hence −γ−1(c − c ′) ∈ C , and thisdistance is at least d by definition of W .
I Hence C ′ is a [n, k , d ] code : the theorem is proved.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Gilbert-Varshamov bound
I This bound can be rewritten:
I For given q, n, d , a lower bound for the possible dimension k is
I k ≥ n + 1−[logq
(∑d−1j=0 (q − 1)j
(nj
))]I How does this compare to the previous upper bounds?
I Here are the curves.
I red for Singleton, blue for Hamming, orange forGilbert-Varshamov .
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Bounds
Cas q = 2, n = 100
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Bounds
Cas q = 2, n = 1000
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Bounds
Cas q = 3, n = 1000
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Bounds
Cas q = 4, n = 1000
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Bounds
Cas q = 81, n = 1000
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Bounds
Cas q = 1024, n = 1000
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Upper BoundsLower bound
Bounds
I We have given upper and lower bounds.
I Two problems remain :
I Increase the quality of the bounds;
I Many other bounds are known.
I Realize effectively the codes;
I The proof of Gilbert Varshamov is not really constructive.
I We will add other structures to our codes.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
The binary Hamming codes (revisited)
I The first Hamming code for r = 2 has parity check matrix
P =
1 00 11 1
.
I And generating matrix(1 1 1
).
I It is a [3, 1, 3]-code : the triple code.
I It is a perfect and MDS code, with rate 13 .
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
The binary Hamming codes
I The second binary Hamming code for r = 3 can be obtainedby parity check matrix
P =
1 0 00 1 00 0 11 0 11 1 11 1 00 1 1
.
I And generating matrix G =
1 0 0 0 1 0 10 1 0 0 1 1 10 0 1 0 1 1 00 0 0 1 0 1 1
.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
The binary Hamming codes
I G =
1 0 0 0 1 0 10 1 0 0 1 1 10 0 1 0 1 1 00 0 0 1 0 1 1
.
I It has minimum distance 3 by direct inspection.
I This is a [7, 4, 3] perfect code.
I The transmission rate is 47 , and it corrects one error
I This is much better than the triple code.
I It has another interesting property :
I It is cyclic
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
The binary Hamming codes
I G =
1 0 0 0 1 0 10 1 0 0 1 1 10 0 1 0 1 1 00 0 0 1 0 1 1
.
I If (V1, . . . ,V7) ∈ C , then (V7,V1, . . . ,V6) ∈ C .
I Let V 1,V 2,V 3,V 4 be the rows of G , and S the cyclic shift.
I One can check that SV 1 = V 1 + V 2, S2V 1 = V 2 + V 3...
I We will give a more conceptual proof by adding morestructure.
I We will make the set of messages into a ring.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
Cyclic codes
I We say that a code is cyclic if, for any(V0,V1, . . . ,Vn−1) ∈ C , we have (Vn−1,V0,V1, . . .Vn−2) ∈ C .
I We would like to find a structure which can use this property.
I Idea : To the word (V0,V1, . . . ,Vn−1), we associate thepolynomial
∑n−1j=0 VjX
j .
I Multiplication by X shifts the coefficient one step to the right,but we want to send the last coefficient in the first position.
I Second idea: quotient by X n − 1, so that X n = 1 in the ring.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
Cyclic codes and quotient ring
I Consider the ring Fq[X ].
I The multiples of X n − 1 form an ideal < X n − 1 > of Fq[X ].
I We can define the quotient ring Fq[X ]/ < X n − 1 >.
I Each class modulo X n − 1 contains a unique polynomial ofdegree < n,
I Hence the ring Fq[X ]/ < X n − 1 > is in bijection with the setof polynomials of degree < n .
I We can identify Fnq with Fq[X ]/ < X n − 1 >.
I In this ring, we have X .∑n−1
j=0 cjXj = cn−1 +
∑n−2j=0 cjX
j+1.
I Multiplication by X amounts to a cyclic permutation ofcoefficients.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
Cyclic codes as ideals
I Let C be a code, considered as a subset ofFq[X ]/ < X n − 1 >.
I C is cyclic if and only if X .C = C .
I This implies that, for j ∈ N, X j .C = C .
I By linearity, for any a ∈ Fq and j ∈ N, aX j .C = C .
I Again by linearity, for any polynomialP(X ) ∈ Fq(X )/ < X n − 1 >, we have P(X ).C = C .
I Hence, any cyclic code corresponds to an idealI ⊂ Fq[X ]/ < X n − 1 >.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
generating polynomial
I Let π : Fq[X ]→ Fq[X ]/ < X n − 1 > be the canonicalprojection.
I π gives a bijection between the ideals of Fq[X ] containingX n − 1 and the ideals of Fq[X ]/ < X n − 1 >.
I Hence, C corresponds to a unique ideal I ∈ Fq[X ].
I But Fq[X ] is a principal ring: there exists a unique monicpolynomial g(X ) such that I =< g(X ) >.
I g is a divisor of X n − 1, since X n − 1 ∈ I .
I Suppose that the degree of g is r . Then any element f ∈ Ccan be written uniquely f (X ) = q(X )g(X ), withdeg q < n − r .
I C is a code of dimension k = n − r .
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
generating matrix of a cyclic code
I The polynomial X ig(X ), for 0 ≤ i < n − r , give obviously abasis of the code.
I This give us a generating matrix.
I If g(X ) =∑r
j=0 gjXj , a generating matrix is given by
G =
g0 g1 g2 . . . gr 0 . . . 00 g0 g1 . . . gr−1 gr . . . 00 0 g0 . . . gr−2 gr−1 . . . 0. . . . . . . . . . . . . . . . . . . . . . . .0 0 0 . . . 0 0 . . . gr
.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
Parity check matrix of a cyclic code
I There is a unique polynomial h(X ) such thatg(X )h(X ) = X n − 1 .
I Let f (X ) = q(X )g(X ) as above.
I We have f (X )h(X ) = q(X )g(X )h(X ) = q(X ).(X n − 1)
I Since deg q < n − r , this polynomial has all coefficients ofdegree j with n − r ≤ j < n equal to 0.
I This give us a parity check matrix; if h(X ) =∑n−r
j=0 hjXj , then
I P =
hn−r 0 . . . 0hn−r−1 hn−r . . . 0. . . . . . . . . . . .h0 h1 . . . hk. . . . . . . . . . . .0 0 . . . h0
.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
The binary Hamming codes (again)
I Let q = 2, g(X ) = X 3 + X 2 + 1.
I One checks that g(X ).(X 4 + X 3 + X 2 + 1) = X 7 + 1
I The multiples of g form an ideal of dimension 4.
I a generating matrix is G =
1 0 1 1 0 0 00 1 0 1 1 0 00 0 1 0 1 1 00 0 0 1 0 1 1
.
I After row reduction, we recover :
G =
1 0 0 0 1 0 10 1 0 0 1 1 10 0 1 0 1 1 00 0 0 1 0 1 1
.
I This is Hamming code.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
Hamming (bis)Cyclic codesHamming code and F8
The binary Hamming codes (again)
I Remark that the set of syndromes is isomorphic toF2[X ]/ < X 3 + X 2 + 1 >= F8.
I Compute: X ,X 2,X 3 = X 2 + 1,X 4 = X 2 + X + 1,X 5 =X + 1,X 6 = X 2 + X ,X 7 = 1.
I Hence X is a primitive element of the multiplicative group ofF8, and any class modulo g contains a unique element ofweight 1 : the coset leader.
I This can be generalized.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
General Hamming codesBCH codesReed-Solomon
Hamming codes on Fq
I Consider a maximal set of pairwise independent vectors on Frq.
I We can find qr−1q−1 such vectors.
I It is the size of the projective space of dimension r − 1 overFq.
I Build a matrix P with these vectors as row vectors.
I This is the parity check matrix of the Hamming code of lengthqr−1q−1 and dimension qr−1
q−1 − r .
I Any two rows of P are independent, but we can find 3dependent rows.
I Hence the minimum distance is 3: this is a [qr−1q−1 ,
qr−1q−1 − r , 3]
code.
I This is a perfect (but not MDS) code.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
General Hamming codesBCH codesReed-Solomon
Some Hamming codes are cyclic codes
I Fix q a power of prime, and r > 1 prime with q − 1.
I Define n = qr−1q−1 .
I Identity n =∑r−1
j=0 qj = (q − 1)
(∑r−2j=0 (r − 1− j)qj
)+ r
shows that n is prime with q − 1.
I Let α be a primitive nth root of unity in Fqr .
I To get such a root, take a generator β of the multiplicativegroup and define α = βq−1
I For 1 ≤ j ≤ n − 1, j(q − 1) is not a multiple of n, so thatαj(q−1) 6= 1.
I Hence for 1 ≤ j ≤ n − 1, αj /∈ Fq.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
General Hamming codesBCH codesReed-Solomon
Some Hamming codes are cyclic codes
I Since Fqr is a vector space over Fq, we can consider all αj asvectors in Fr
q.
I Suppose that, for 0 ≤ j < k ≤ n − 1, αj and αk aredependent.
I Then we can find c ∈ Fq such that αk = cαj .
I Then αk−j = c ∈ Fq, which contradicts the previous result.
I Hence the powers of α give n independent vectors.
I Consider the corresponding matrix.
I With rows given by 1, α, α2, . . . , αn−1.
I it is a Hamming matrix.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
General Hamming codesBCH codesReed-Solomon
Some Hamming codes are cyclic codes
I Let V = (V0,V1, . . . ,Vn−1) be a word of the correspondingcode.
I Then V .P = 0 can be interpreted as∑r−1
j=0 Vjαj = 0.
I The code words are the polynomials in Fq[X ] which have α asa root.
I They are multiples of the minimal polynomial of α.
I The corresponding code is cyclic.
I We have proved:
I If r > 1 is prime with q − 1, and n = qr−1q−1 , the [n, n − r , 3]
Hamming code is a cyclic code.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
General Hamming codesBCH codesReed-Solomon
Remark on cyclic codes
I C cyclic code of length n on Fq.
I Let g be the generating polynomial of C of degree r .
I g is uniquely defined ; it is the unique monic polynomial ofsmallest degree in C .
I g has roots in an extension Fqk = Fkq .
I f is in the code if and only if the roots of g are roots of f .
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
General Hamming codesBCH codesReed-Solomon
BCH Codes
I Fix q a power of prime, and m ≥ 1.
I Define n = qm − 1 and fix d < n.
I Let α be a primitive root of Fqm , seen as a vector space Fmq of
dimension n over Fq.
I The code is the set of polynomials f of degree < n such thatf (α) = f (α2) = . . . = f (αd−1) = 0 .
I It is a cyclic code, generated by the l.c.m. g of the minimalpolynomials of the αj , 1 ≤ j < n.
I deg(g) ≤ (d − 1)m .
I The code has length n, dimension at least n − (d − 1)m.
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
General Hamming codesBCH codesReed-Solomon
BCH codes
I Suppose that the code contains an element f of weight < d .I f =
∑d−1j=1 ajX
kj .
I We have f (αi ) = 0, 1 ≤ i < d .I This family of equalities can be written:
αk1 αk2 . . . αkd−1
(αk1)2 (αk2)2 . . . (αkd−1)2
. . .(αk1)d−1 (αk2)d−1 . . . (αkd−1)d−1
a1a2...
ad−1
=
00...0
.
I The matrix is a Vandermonde matrix; since all the αj aredistinct, it is invertible.
I We have proved that BCH codes have minimal distance atleast d .
Pierre Arnoux Introduction to coding theory II
BoundsCyclic codes
Examples of codes
General Hamming codesBCH codesReed-Solomon
Reed-Solomon
I A special case of BCH codes.
I Fix q a power of prime, and n = q − 1.
I Fix d < n.
I Let α be a generator of F∗q.
I Let C be the code of polynomials f of degree < n such thatf (α) = f (α2) = . . . = f (αd−1) = 0.
I Generating polynomial g(X ) =∏d−1
j=1 (X − αj).
I This code has length n = q − 1, dimensionn − (d − 1) = q − d , and minimal distance at least d .
I By Singleton bound, the minimal distance is d ; it is a[q − 1, q − d , d ]-code, and MDS code.
Pierre Arnoux Introduction to coding theory II