channel coding - convolutional codes

Upload: rizna-nofitasari

Post on 14-Apr-2018

249 views

Category:

Documents


1 download

TRANSCRIPT

  • 7/30/2019 Channel Coding - Convolutional Codes

    1/25

    Convolutional Codes

  • 7/30/2019 Channel Coding - Convolutional Codes

    2/25

    Last time, we talked about:

    Channel coding

    Linear block codes

    The error detection and correction capability Encoding and decoding

    Hamming codes

    Cyclic codes

  • 7/30/2019 Channel Coding - Convolutional Codes

    3/25

    Today, we are going to talk about:

    Another class of linear codes, known asConvolutional codes.

    We study the structure of the encoder.

    We study different ways for representing

    the encoder.

  • 7/30/2019 Channel Coding - Convolutional Codes

    4/25

    Convolutional codes

    Convolutional codes offer an approach to error controlcoding substantially different from that of block codes.

    A convolutional encoder:

    encodes the entire data stream, into a single codeword.

    does not need to segment the data stream into blocks of fixed

    size (Convolutional codes are often forced to block structure by periodictruncation).

    is a machine with memory.

    This fundamental difference in approach imparts a

    different nature to the design and evaluation of the code. Block codes are based on algebraic/combinatorial

    techniques.

    Convolutional codes are based on construction techniques.

  • 7/30/2019 Channel Coding - Convolutional Codes

    5/25

    Convolutional codes-contd

    A Convolutional code is specified bythree parameters orwhere is the coding rate, determining the

    number of data bits per coded bit. In practice, usually k=1 is chosen and we

    assume that from now on.

    Kis the constraint length of the encoder a

    where the encoder hasK-1

    memoryelements. There is different definitions in literatures for

    constraint length.

    ),,( Kkn ),/( Knk

    nkRc

    /

  • 7/30/2019 Channel Coding - Convolutional Codes

    6/25

    Block diagram of the DCS

    Information

    source

    Rate 1/n

    Conv. encoderModulator

    Information

    sink

    Rate 1/n

    Conv. decoderDemodulator

    sequenceInput

    21 ,...),...,,( immmm

    bits)coded(rdBranch wo

    1

    sequenceCodeword

    321

    ,...),...,,,(

    n

    nijiii

    i

    ,...,u,...,uuU

    UUUU

    G(m)U

    ,...),...,,( 21 immmm

    dBranch worperoutputs

    1

    dBranch worfor

    outputsrDemodulato

    sequencereceived

    321

    ,...),...,,,(

    n

    nijii

    i

    i

    i

    ,...,z,...,zzZ

    ZZZZ

    Z

    Channel

  • 7/30/2019 Channel Coding - Convolutional Codes

    7/25

    A Convolutional encoder

  • 7/30/2019 Channel Coding - Convolutional Codes

    8/25

    Convolutional Encoder Representation

    To describe a convolutional code, one need tocharacterize the encoding function G(m), sothat given input sequence m, one can readilycompute the output sequence U.

    Several methods are used for representing aconvolutional encoder, the most popular:

    Connection pictorial

    Connection vector or polynomial

    State diagram

    Tree diagram

    Trellis diagram

  • 7/30/2019 Channel Coding - Convolutional Codes

    9/25

    A Rate Convolutional encoder

    Convolutional encoder (rate , K=3) 3 shift-registers where the first one takes the

    incoming data bit and the rest, form the memoryof the encoder.

    Input data bits Output coded bitsm

    1u

    2u

    First coded bit

    Second coded bit

    21

    ,uu

    (Branch word)

    Figure 7.3

  • 7/30/2019 Channel Coding - Convolutional Codes

    10/25

    A Rate Convolutional encoder

    1 0 01t

    1u

    2u

    11

    21uu

    0 1 02t

    1u

    2u

    01

    21uu

    1 0 13t

    1u

    2u

    00

    21

    uu

    0 1 04t

    1u

    2u

    01

    21

    uu

    )101(m

    Time Output OutputTime

    Message sequence:

    (Branch word) (Branch word)

  • 7/30/2019 Channel Coding - Convolutional Codes

    11/25

    A Rate Convolutional encoder

    Encoder)101(m )1110001011(U

    0 0 15t

    1u

    2u

    11

    21uu

    0 0 06t

    1u

    2u

    00

    21uu

    Time Output Time Output(Branch word) (Branch word)

  • 7/30/2019 Channel Coding - Convolutional Codes

    12/25

    Effective code rate

    Initialize the memory before encoding the first bit (all-

    zero) Clear out the memory after encoding the last bit (all-

    zero)

    Hence, a tail of zero-bits is appended to data bits.

    Effective code rate :

    L is the number of data bits and k=1 is assumed:

    data Encoder codewordtail

    ceff RKLn

    LR

    )1(

  • 7/30/2019 Channel Coding - Convolutional Codes

    13/25

    Encoder Representation

    Vector representation: We define n binary vector withKelements (one

    vector for each modulo-2 adder). The i:th elementin each vector, is 1 if the i:th stage in the shiftregister is connected to the corresponding modulo-

    2 adder, and 0 otherwise. Example:

    m

    1u

    2u

    21uu

    )101(

    )111(

    2

    1

    g

    g

  • 7/30/2019 Channel Coding - Convolutional Codes

    14/25

    Encoder representationcontd

    Impulse response representaiton: The response of encoder to a single one bit that

    goes through it.

    Example:

    11001

    01010

    11100

    111011:sequenceOutput

    001:sequenceInput

    21

    uu

    Branch wordRegister

    contents

    1110001011

    1110111

    0000000

    1110111

    OutputInput m

    Modulo-2 sum:

  • 7/30/2019 Channel Coding - Convolutional Codes

    15/25

    Encoder representationcontd

    Polynomial representation: We define n generator polynomials, one for each

    modulo-2 adder. Each polynomial is of degreeK-1 orless and describes the connection of the shift

    registers to the corresponding modulo-2 adder. Example:

    The output sequence is found as follows:

    22)2(

    2

    )2(

    1

    )2(

    02

    22)1(

    2

    )1(

    1

    )1(

    01

    1..)(

    1..)(

    XXgXggX

    XXXgXggX

    g

    g

    )()(withinterlaced)()()( 21 XXXXX gmgmU

  • 7/30/2019 Channel Coding - Convolutional Codes

    16/25

    Encoder representationcontd

    In more details:

    1110001011

    )1,1()0,1()0,0()0,1()1,1()(

    .0.0.01)()(.01)()(

    1)1)(1()()(

    1)1)(1()()(

    432

    432

    2

    432

    1

    422

    2

    4322

    1

    U

    U

    gmgm

    gm

    gm

    XXXXX

    XXXXXX

    XXXXXX

    XXXXX

    XXXXXXXX

  • 7/30/2019 Channel Coding - Convolutional Codes

    17/25

    State diagram

    A finite-state machine only encounters afinite number of states.

    State of a machine: the smallest amountof information that, together with a

    current input to the machine, can predictthe output of the machine.

    In a Convolutional encoder, the state isrepresented by the content of thememory.

    Hence, there are states.12 K

  • 7/30/2019 Channel Coding - Convolutional Codes

    18/25

    State diagramcontd

    A state diagram is a way to represent the

    encoder.

    A state diagram contains all the states and allpossible transitions between them.

    Only two transitions initiating from a state. Only two transitions ending up in a state.

    The encoder state is said to be Markov, in the

    sense that the probability P(Xi+1|Xi,Xi-1,,X0) ofbeing in the state Xi+1, give all previous states,depends only on the most recent state Xi; thatis, the probability is equal to P(Xi+1|Xi).

  • 7/30/2019 Channel Coding - Convolutional Codes

    19/25

    State diagramcontd

    10 01

    00

    11

    Currentstate

    input Nextstate

    output

    00

    0 00

    1 11

    01

    0 11

    1 00

    100 101 01

    11

    0 01

    1 10

    0S

    1S

    2S

    3S

    0S

    2

    S

    0S

    2S

    1

    S

    3S

    3S

    1S

    0S

    1S2S

    3S

    1/11

    1/00

    1/01

    1/10

    0/11

    0/00

    0/01

    0/10

    Input

    Output

    (Branch word)

  • 7/30/2019 Channel Coding - Convolutional Codes

    20/25

    State diagramcontd

  • 7/30/2019 Channel Coding - Convolutional Codes

    21/25

    State diagramcontd

  • 7/30/2019 Channel Coding - Convolutional Codes

    22/25

    State diagramcontd

  • 7/30/2019 Channel Coding - Convolutional Codes

    23/25

    Trellis

    Trellis diagram is an extension of the state

    diagram that shows the passage of time. Example of a section of trellis for the rate code

    Timeit 1it

    State

    000 S

    011

    S

    102 S

    113 S

    0/00

    1/10

    0/11

    0/10

    0/01

    1/11

    1/01

    1/00

  • 7/30/2019 Channel Coding - Convolutional Codes

    24/25

    Trelliscontd

    A trellis diagram for the example code

    0/11

    0/10

    0/01

    1/11

    1/01

    1/00

    0/00

    0/11

    0/10

    0/01

    1/11

    1/01

    1/00

    0/00

    0/11

    0/10

    0/01

    1/11

    1/01

    1/00

    0/00

    0/11

    0/10

    0/01

    1/11

    1/01

    1/00

    0/00

    0/11

    0/10

    0/01

    1/11

    1/01

    1/00

    0/00

    6t

    1t

    2t

    3t

    4t 5t

    1 0 1 0 0

    11 10 00 10 11

    Input bits

    Output bits

    Tail bits

  • 7/30/2019 Channel Coding - Convolutional Codes

    25/25

    Trelliscontd

    1/11

    0/00

    0/10

    1/11

    1/01

    0/00

    0/11

    0/10

    0/01

    1/11

    1/01

    1/00

    0/00

    0/11

    0/10

    0/01

    0/00

    0/11

    0/00

    6t

    1t

    2t

    3t

    4t 5t

    1 0 1 0 0

    11 10 00 10 11

    Input bits

    Output bits

    Tail bits