Nextpart_2804.docx
Transcript of Nextpart_2804.docx
-
8/10/2019 Nextpart_2804.docx
1/4
1.1.1 Reed Solomon Code:
ReedSolomon Codes (RS Codes) are the group of BCH Codes which deal with non-
binary information instead of binary information. RS Codes have been used in numerous
applications in the field of digital storage and communication systems. Some of the most
famous RS codes are the RS (255, 223, 33) code which is used by NASA in space
communications, or the RS (128, 122, 7) over GF(27) for cable modems. ReedSolomon
codes are non-binary cyclic codes, which mean their symbols are made up of m-bit
sequences, where m is greater than 2. RS Codes have the following characteristics:
n = 2m
1
k = 2m
1 2t
where t is the number of correcting bits in the code, and 2t is the number of parity bits.
There are also some extensions of RS codes, but the extended RS code cannot have n
2m+ 1. The minimum Hamming distance of ReedSolomon codes is: dmin= nk + 1.Like the capability of correcting errors of BCH Codes, RS Code can correct any combination
of t or fewer errors, where:
where means the largest integer not exceed x. For example = 3.ReedSolomon code family is a powerful class of non-binary block codes, and they
are used in many applications. However, because of its complexity, in this project I just
want to introduce to students about this code, but do not go in detail.
2.
CONVOLUTIONAL CODES
Besides block codes, convolutional codes are also a major class of channel coding. This
class is totally different from block codes in many aspects. The most important one I want
to mention is about the memory of the encoder. While the encoder of block codes
contains no memory, convolutional codes need memory in the encoder. The reason is:
- Block codes only need the information bits at the present to be encoded into the code
word
- Convolutional codes use not only the present information bits, but also some number of
previous inputs:ct= f(ut-m, ut-m -1,, ut-1, ut)
While the code word of a block code C (n, k) means the length of k information bits
encoded to n-bit code word, the information and code words of convolutional codes are of
infinite length. Therefore, those words are not divided into blocks, but into sequence. The
code rate R =is realized as k inputs and n outputs. Each encoder of a convolutional code
-
8/10/2019 Nextpart_2804.docx
2/4
must contain m memory cells. There are several ways to describe a convolutional code,
graphically or in circuit. Table 2.1 shows a briefly comparison between block code and
convolutional code:
Convolutional code Block code- Need memory - No memory
- Encodes data stream into a single
code word
- Encode k-bit information into n-bit
code word
- Do not need to segment data into
blocks of fixed size
- Segment information data into fixed
size blocks of k bits
- Code is random (do not have a set of
fixed code words)
- Fixed set of code words
- Based on construction technique
(machine)
- Based on algebraic/ combinatorial
techniques (Mathematical structure)
Table 2.1: Comparison between block code and convolutional code
2.1Overview of Convolutional Codes
A convolutional code will be denoted in the form (n, k, R),where kis the number of
inputs used in the encoder, nis the number of outputs and Ris the constraint length, a
specific property of a convolutional code. The constraint length R shows that the encoder
of a convolutional code will have R-1 memory cells (or memory elements). For example
with R = 3, we will have a convolutional code with 2 memory cells.
There are several ways to describe a convolutional code, graphically or in formula.
2.1.1
Describe convolutional codes:
The first way to describe a convolutional code is to use Flip flop circuit. Actually, we
will only describe the encoder, which will be the characteristic of a code. D Flip-flop will be
used as memory elements. For example, convolutional (2, 1, 3) code will be described in
Figure 2.1.1:
D Dun
vn(2)
vn(1)
-
8/10/2019 Nextpart_2804.docx
3/4
Figure 2.1.1: Convolutional (2, 1, 3) code
As we can see in Figure 2.1.1, the convolutional (2, 1, 3) code has 3 parameters: n = 2,
k = 1 and R = 3.Therefore, we will have one input un (usually all convolutional codes haveone input), two outputs vn
(1), vn
(2). The number of D flip-flops will be 2, so the constraint
length R of this convolutional code is 3.
Convolutional (2, 1, 3) code can be described by the following formulas:
vn(1)
= un un-2
vn(2)
= un un-1 un-2
We can also use State Diagram and Trellis Diagram to describe a convolutional code:
Firstly, we will discuss about the State of the encoder. It will be denoted [S1 S2] where
S1, S2 correspond to the two D flip-flop of the machine. So, in total, we will have 22= 4
states. In general, we assume that the machine starts from [0 0] (the initial state). The
state diagram of Convolutional (2, 1, 3) code is shown in Figure 2.1.2:
Figure 2.1.2: State diagram of Convolutional (2, 1, 3) code
0/011/0000
10
01
11
-
8/10/2019 Nextpart_2804.docx
4/4
The last way to describe convolutional codes that I want to introduce in this project
is using Trellis diagram. Trellis diagram is a tree diagram which will describe the next states
which can happen. We must assume that the machine starts from state [0 0], and the final
state is also [0 0]. The Trellis diagram will be described in the following figure:
Figure 2.1.3: Trellis diagram of Convolutional (2,1,3) code
According to Figure 2.1.3, at time t = 0, the state is [0 0] will have 2 possibilities to go
to the next state: [0 0] if input is 0, or [1 0] if input is 1. The process keeps going on like this
until its final state is [0 0], as we assume this is the moment when this machine stopsencoding.
00 00
10
00
01
10
11
00
11
01
10
00
11
01
10
00
01
10
11
00
01
00
Time 0 Time 1 Time 2 Time iSk-1Si Si+1 Sk Sk+1