View
214
Download
0
Category
Preview:
Citation preview
1
Some Computation Problems in
Coding Theory
Eric Chen
Computer Science GroupHKr
2
2
Outline
• Information Transmission System
• Some definitions
• Goals of coding theory
• Computer search for QT codes and QT 2-weight codes
• Some computation problems
3
3
Information Transmission System• Source encoding (remove redundancy)• Channel encoder ( add redundancy )• Channel decoder ( error detection/correction)• Source decoding
Information Sink
Receiver(Decoder)
Transmitter(Encoder)
CommunicationChannel
Information Source
Noisek-digit k-digitn-digit n-digit
4
4
Source coding and channel coding• Coding theory
The study of methods for efficient and reliable data transmission
• Source codingRemove redundancy (data compression)
• Channel codingAdd redundancy for error
detection/correction
5
5
• add additional information, or redundancy
to data
• added by sender, checked by receiver
• k data digits encoded to a codeword of n digits
• Code rate r = k / n
k nEncoded as
codeword
Channel Coding – Principle
6
6
Binary linear block code
• A block of k digits u = u1u2 … uk. ui= 0 or 1 for a binary code
• Encoded into a codeword x = x1x2…xn.• The mapping u x
Generator matrix G k × n matrix• x = u G
Parity check matrix H (n-k) × n matrix • H xT = 0
7
7
Definitions
• bit (binary digit) : 0 or 1
• Digit : an element of GF(q)
• Word : a sequence of digits or bits
• Binary code : a set of words over GF(2)Example
• C2 = {000, 011, 101, 110}
8
8
Definitions
• (Hamming) weight of a word xwt (x) the number of non-zero digit in a word
• (Hamming) distance between two words
the number of positions where they differ• Example
Words v1 = 101, v2 = 110 (also called vectors)wt(v1)=2; wt(v2) =2d (v1, v2) = 2
9
9
Definitions
• (Minimum) distance d of a code:The minimum distance between its
codewordsd = min weight of the non-zero codewords
• Minimum distance d determines the error detection or correction capabilityDetection d – 1 errorsCorrect (d – 1)/2 errors
10
10
Example– repetition code
• Binary [m, 1, m] codek = 1, d = m
• Example [3, 1, 3] codeTwo codewords: 000, 111Each 0 000 Each 1 111Can detect 2 errors (for error detection)Can correct 1 error (for error correction)
11
11
Example– repetition code
• Example [3, 1, 3] codeTwo codewords: 000, 1110 000 1 111Generator matrix
• G = [1 1 1]
Parity check matrix
101
011H
12
12
4 Foundamental Parameters of a Linear Code
• Code dimension, k
• Block length, n
• Minimum distance, d
• Alphabet size, q
• A linear q-ary code is often written as an [n, k,
d]q code
q=2, called binary code, [n, k, d] code
• Code rate: r = k/n
13
13
4 Foundamental Parameters of a Code
• An (n, M, d)q code:
Number of the codewords, M
Block length, n
Minimum distance, d
Alphabet size, q q is a prime power
• q=2, called binary code, (n, M, d) code
• Code rate: r = log M / n
14
14
The Goals of Coding Theory
• A good q-ary (n, M, d) code has small n, large M and large d.
• The main coding theory problem is to optimize one of the parameters n, M, d for given values of the other two.
• NotationAq(n, d) is the largest M such that there
is an (n,M,d)q code.
15
15
The Goals of Coding Theory
For linear q-ary codes:
• Given k, d, q. Find an [n, k, d]q code
that minimizes n
• Given n, d, q. Find an [n, k, d]q code
that maximizes k
• Given n, k, q. Find an [n, k, d]q code
that maximizes d
16
16
Online Code Table
at http://www.codetables.de/
17
17
Example
• Given n and k, maximize the distance ? n = 60, k = 19
the lower bound on distance is 18 the upper bound on distance is 20 if [60, 19] code exists with d = 19 or 20 ?
n = 81, k = 20Bound on distance is 26 – 30
Difficult to improve the boundQuasi-twisted codes proven to contain good
or optimal codes.
18
18
Binary constant weight codes
• All codewords have a weight w
• A(n,d,w) is the maximum size of a
binary code with word length n,
minimum distance d, and constant
weight w.
• Closely related to combinatorial designs
• How to determine the A(n, d, w) ??
19
19
Online Code Tables
• Bounds for binary constant weight
codes
http://www.win.tue.nl/~aeb/codes/Andw.html
• Erik Agrell's tables of binary block
codes
http://webfiles.portal.chalmers.se/s2/research/kit/bou
nds/
20
20
Cyclic Code and Polynomial
• Every cyclic shift of a codeword is also a codeword • Generator polynomial g(x) and generator matrix
operation modulo xn – 1.• Many famous cyclic codes
– BCH codes, Reed-Solomon codes
)(
)(
)(
1 xgx
xxg
xg
G
k
21
21
Circulant Matrix• An nn cyclic or circulant matrix is defined as
• it is uniquely specified by a polynomial formed by the elements of its first row, a(x) = a0 + a1 x + a2 x2 + … + an-1 xn-1
• Operation modulo xn – 1
021
312
201
110
aaa
aaa
aaa
aaa
A nnn
nn
n
22
22
Consta-cyclic Code
• Every consta-cyclic shift of a codeword is also a codeword (a0, a1,…, an-1) (an-1 ,a0, a1,…, an-2)
• Generator polynomial g(x) and generator matrix
operation modulo xn – .
)(
)(
)(
1 xgx
xxg
xg
G
k
23
23
Twistulant Matrix• An nn consta-cyclic or twistulant matrix is
defined as
• it is uniquely specified by a polynomial formed by the elements of its first row, a(x) = a0 + a1 x + a2 x2 + … + an-1 xn-1.
• Operation modulo xn - .
021
312
201
110
aaa
aaa
aaa
aaa
A nnn
nn
n
24
24
Quasi-Cyclic Code• A generalization of cyclic codes
every cyclic shift of a codeword by p positions results in another codeword
Called quasi-cyclic (QC) code
• A generalization of consta-cyclic codesevery consta-cyclic shift of a codeword by p
positions results in another codewordCalled quasi-twisted (QT) code
• QC code is a special case of QT code with = 1.
25
25
Quasi-Twisted Code• Generator matrix of QT [ pm, k] code
where Gij is a twistulant matrix of order m
• t-generator QT code1-generator QT codes have been well studied
tptt
p
p
GGG
GGG
GGG
G
21
22221
11211
26
26
1-generator QT codes
•1-generator QT [mp, k] code G = [G0 G1 G2 … Gp-1 ]
• Let g0(x), g1(x), …, gp-1(x) be the defining polynomials
• k = m – degree( gcd(g0(x), g1(x), …, gp-1(x),
xm – 1 )) • It is called de-generated if k < m.
27
27
Defining polynomials
• 1-generator QT [mp, k] code
G = [G0 G1 G2 … Gp-1 ] • defining polynomials: g0(x), g1(x), …, gp-1(x)
• (g0(x), g1(x), …, gp-1(x) ) and (axjg0(x), g1(x), …, gp-1(x)) defines the equivalent QT code.a is any non-zero element in GF(q)j = 1, 2, …, m -1.
28
28
Computer search for QT codes
•1-generator QT [mp, k] code
G = [G0 G1 G2 … Gp-1 ] • Find all candidate polynomials
Equivalent classes defined by axjg(x)
• Select p polynomials from non-equivalent polynomials
29
29
Computer search example for QT codes
• Binary QC [60, 19, 18] code m = 20, k = 19, previously best known
d = 17• The number of non-equivalent
polynomials is 26271• To construct a QT [60, 19] code, it is
required to select 3 polynomials among 26271 Polynomials. The total number of combinations is 3 021 544 309 455.
30
30
Computer search example for QT codes
• Binary QC [60, 19, 18] code – m = 20, k = 19. Previously best known d = 17
• My paper in IEEE IT 1994– g0(x) = 1 + x– Divide the candidate polynomials into groups
based on their weights– g1(x) and g2(x) are chosen from sets of polynomials
with weights 4 and 12, respectively.– Total # of combinations: 245 X 8509 = 2 084 705
• of 3 021 544 309 455 – So a binary QC [60, 19, 18] code was constructed.
31
31
t-generator QT codes
• t-generator QT [mp, k] code
Where G are twistulants of order m.
• Most research has been focused on 1-generator QC or QT codes.
• Computer search becomes more time-consuming
tptt
p
p
GGG
GGG
GGG
G
21
22221
11211
32
32
Two-Weight Codes
• A [n, k] code is a two-weight code if any non-zero codeword has a weight of w1 or w2.
• Notation: [n, k; w1, w2]q code
• Projective codeA code is said to be projective if any two of its
coordinates are linearly independent, or, if the minimum distance of its dual code is at least three.
33
33
Why studying 2-weight codes
• Linear constant weight codes (simplex codes) are optimal many 2-weight codes are also optimal
• Related to strongly regular graphs
34
34
Simplex Codes
• Simplex [(qt–1)/(q–1), t]q code
– equi-distance code, d = qt-1
– All non-zero codewords have the same weight, d = qt-1
• A λ-consta-cyclic simplex code can be defined by a generator polynomial g(x) = (xn–l)/h(x), – where n=(qt–1) /(q–1), and λ is a non-zero
element of GF(q) and has order of q–1
35
35
QT form of a simplex code
• If the block length n = (qt – 1)/(q-1) is not a prime, n = ms.
• The simplex code can be put into a QT code with s blocks.
• If only taking p blocks (among s), a QT code can be constructed.– QT codes, QT 2-weight codes can be
constructed in this way.
36
36
QT Simplex Codes
• If n=(qt–1) /(q–1) = mr, Simplex [(qt–1)/(q–1), t]q code can be put into QT from.
• Example:simplex [21, 3]4 coden = 21 = mp = 3 × 7, m = 3, p = r, q = 4. Let 0, 1, a, and b = 1 + a be elements of GF(4), λ=b. Then a λ-consta-cyclic matrix defined by
c(x) = 1+ bx + bx3 + bx4 + bx5 + ax6 +x7 + x8 + ax9 + x10 + ax11 + x13 +ax15 +bx16 +x17 + x18.
37
37
Consta-Cyclic Simplex [21, 3]4 Code
twistulant generator matrix
38
38
Quasi-Twisted Simplex [21, 3]4 Code
QT form of generator matrix
.
1001001101
1100001011
01110001011
1100100110
11110000101
1011100010
0111001001
0111100001
0101110001
0111001001
10111100001
11010111000
1011100100
1011110000
111010111000
0010111001
0010111100
001110101110
000101110
10001011110
010011101011
A
39
39
Quasi-Twisted Simplex [21, 3]4 Code
QT form of generator matrix Representation by polynomials a1(x) = 1 +x, a2(x) = b + ax + x2 , a3(x)
= ax + bx2 , a4(x) = b + x + x2, a5(x) = b + ax + x2, a6(x) = b, a7(x) = a+ x. r = 7
40
40
Weight Matrix
• Weight matrix for A(x) It is cyclic
• Example
41
41
Computer Construction of QT 2-Weight Codes
• Given a simplex [mr, t]q code of composite length n =(qt–1) /(q–1) = mr
• Find the generator polynomial,
• Obtain A(x) and weight matrix
• To construct a QT 2-weight [mp, t; w1, w2] code, it is to find p columns such that the row sums of the selected columns give w1 or w2.
42
42
Computer Construction of QT 2-Weight Codes
• Example – From simplex [21, 3]4 code with m=3
– A QT 2-weight [9, 3; 6, 8]4 code can be constructed by columns 1, 2, and 4.
43
43
Results• A large amount of QT 2-weight codes have been
obtained.• Most codes have the same parameters as known codes.• They may not be equivalent
– Exmaple [154, 6; 99, 108]3 code• Gulliver constructed with m = 11, p =14
• Using the method above, m = 7, p =22
• They are not equivalent
• Some new codes are obtained
44
44
Computer search for QT Codes
• Given a cyclic weight matrix of order s
• How to select p columns such that– Maximize the minimum row sums of p cols
0321
3012
2101
1210
...
...
...
...
...
dddd
dddd
dddd
dddd
D sss
ss
s
45
45
Computer search for QT codes
• Given a cyclic weight matrix of order s
– The row sums for columns 0, 1, 3 are 8, 6, 6, 6, 8, 6, and 8, respectively
– Taking columns 0, 1, and 3 a QT [9, 3, 6]3 code
2213323
3221332
2322133
3232213
3323221
1332322
2133232
D
46
46
Online Database on Codes
• A web database of binary quasi-cyclic codes
http://moodle.tec.hkr.se/~chen/research/codes/searchqc2.htm
see also: codetables http://www.codetables.de
• A Web database of two-weight codeshttp://moodle.tec.hkr.se/~chen/research/2-weight-
codes/search.php
47
47
Computation Problems
• Improve lower bound on A(n, w, d)
• Improve lower bound on distance for given n, k, q
• Computer search for 2-weight codes
48
48
Computation Problems
• Computer search for QT codes1-generator QT codes2-generator QT codest-generator QT codes from QT simplex codes
49
49
Computation Problems
• Computer search for QT 2-weight codesQT 2-weight codes from QT simplex codes
50
50
Computation Problems• Computer search for QT 2-weight codes
Study on a binary cyclic matrix A Select p columns such that the corresponding row sums are of two values011000010100000000010001100001010000000001100110000101000000000010011000010100000000001001100001010000000000100110000101000000000010011000010100000000001001100001010000000000100110000101000000000010011000010100000000001001100001010000000000100110000101100000000010011000010010000000001001100001101000000000100110000010100000000010011000001010000000001001100000101000000000100110000010100000000010011100001010000000001001110000101000000000100
Recommended