Nextpart_2804.docx

download Nextpart_2804.docx

of 4

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