SOME BASIC BLOCK CODES_2804.docx
Transcript of SOME BASIC BLOCK CODES_2804.docx
-
8/10/2019 SOME BASIC BLOCK CODES_2804.docx
1/3
1.1SOME BASIC BLOCK CODES:
In this section, I will introduce some specific codes which have block codes properties,
and some with similar properties with block codes. Because this is not a mathematical
project, I will not focus on the mathematic formulas, I just want to give students basic
information and an overall view about some types of code.
1.1.1 Hamming code:
Hamming codes are a popular family of binary block codes, which are used in many
applications nowadays. Hamming codes were introduced by Richard Hamming in 1950, and
they are still popular at the moment because of their simplicity and effectiveness.
In general, Hamming codes are still block codes, so we can denote them in the form
Hamming (n, k) codes, where n-bit code word will be used to encode k-bit information
block. Hamming (n, k) codes always have the following properties:
- n = 2m
1
- k = 2m
m1
- The minimum Hamming distance is dmin= 3
where m is the number of parity bits, and m .For example, we can take m = 3. Hence,
- n = 231 = 7and k = 2
331 = 4
Therefore, we get the Hamming (7, 4) code which I described in section 1.2.1.
Hamming codes can be used to detect up to 2 errors (but not correct), and it has an ability
to correct 1 error. Hamming codes have many applications, such as real communication
system (teletext systems, radio and digital TV), information systems (logical circuits,
semiconductor memories) or in audio and video system (data compression in CD, DVD).
Hamming codes are the basic family of block codes, which are simple, but used widely.
Hamming codes have all the important properties as well as it can be encoded and
decoded using generator matrix G and parity check matrix H which students should study
in the university. Therefore, in my thesis, I will choose this kind of code to introduce to
students.
1.1.2 Cyclic Codes:
Cyclic code is not exactly block code; it is just a sub part of block error of correcting
code. A linear block code will be a cyclic code if each code word in that code is a cyclic shift
-
8/10/2019 SOME BASIC BLOCK CODES_2804.docx
2/3
-
8/10/2019 SOME BASIC BLOCK CODES_2804.docx
3/3
codes are used widely nowadays, because of their big advantage in decoding process, via
an algorithm called syndrome decoding. While the binary Hamming codes can only detect
up to 2 errors and correct only 1 error, binary BCH codes can correct multiple bit errors.
Another advantage of BCH Codes is about the simplicity in designing the decoder.
All the knowledge studied in this project is the basic background for a further thesis
research in digital communication design, so in this section we only discuss about binary
BCH Codes, while the non-binary BCH codes named ReedSolomon will be introduced
shortly in the next section.
Firstly, we will take a look at the design of BCH Codes. A binary cyclic code which has
code length of n = 2m
1 ( ),parity check bits n kmtand the minimum Hammingdistance dmin2t + 1will be a BCH Code. The symbol twill represent to the correctable bitsin a BCH code. Therefore, we can design a BCH Code with the desired number of correcting
bits, as long as t2m-1
. To encode a k-bit polynomial code to an n-bit code word, we canuse the generator polynomial. The parameters and generator polynomials of some popular
BCH Codes will be shown in Table 1.3.3:
m n k t Generator Polynomial
4 15 7 2 1 + X4+ X
6+ X
7+ X
8
4 15 5 3 1 + X + X2+ X
4+ X
5+ X
8+ X
10
5 31 21 2 1 + X3+ X
5+ X
6+ X
8+ X
9+ X
10
5 31 16 3 1 + X + X2+ X
3+ X
5+ X
7+ X
8+ X
9+ X
10+ X
11+ X
15
6 63 51 2 1 + X3+ X
4+ X
5+ X
8+ X
10+ X
12
6 63 45 3 1 + X + X2+ X
3+ X
6+ X
7+ X
9+ X
15+ X
16+ X
17+ X
18
Table 1.3.3: Some example parameters and Generator polynomial of some BCH Codes
To find a code word relating a BCH code (n, k), we just need to take the remainder
after dividing our information polynomial by a generator polynomial. Therefore, like the
generator matrix in linear block codes, the generator polynomial will give the code its
characteristics: all code words which relate to a BCH code are multiples of its generator
polynomial. However, how can we construct a generator polynomial? First of all, we need
to study about some abstract algebra, especially about finite field, or we can call, Galois
Field (GF).
Galois field (or finite field) is a field with a finite number of elements, while a field is a set of
elements with some basic operations (addition, multiplication) which can be operated
without leaving the set, and the addition and multiplication are associative, communicative,
and distributive. A Galois field of order qis denoted by GF(q).