20.Channel Coding

download 20.Channel Coding

of 28

Transcript of 20.Channel Coding

  • 8/3/2019 20.Channel Coding

    1/28

    Satellite Communications

    Home work: Error Correcting Control

    Submitted by: Farqad Yasin Farhan

  • 8/3/2019 20.Channel Coding

    2/28

    OutlineOutline

    Channel coding protects digital data from errors by selectivelyintroducing redundancies in the transmitted data.

    block codes: Hamming codes, Cyclic Codes, BCH codes,Reed-Solomon Codes

    convolutional codes

    Trellis Coded ModulationCombine both coding and modulation to achieve significant coding gains

    without compromising bandwidth efficiency

  • 8/3/2019 20.Channel Coding

    3/28

    Types of Error Correcting Codes

    Repetition Code Linear Block Code, e.g. Hamming

    Cyclic Code, e.g. CRC

    BCH and RS Code

    Convolutional Code

    Viterbi Decoding

    Turbo Code

    Coded Modulation TCM

  • 8/3/2019 20.Channel Coding

    4/28

    ParityCheck

    Add one bit so that xor of all bit is zero Send, correction, miss

    Applications: ASCII, Serial port transmission

  • 8/3/2019 20.Channel Coding

    5/28

    Hammings Solution

    A type of Linear Block Code

    Encoding: H(7,4)

    Multiple Checksums

    Message=[a b c d]

    r= (a+b+d) mod 2

    s= (a+b+c) mod 2

    t= (b+c+d) mod 2

    Code=[r s a tb c d]

    Coding rate: 4/7 Smaller, more redundancy, the better protection.

    Difference between detection and correction

    Message=[1 0 1 0]

    r=(1+0+0) mod 2 =1

    s=(1+0+1) mod 2 =0

    t=(0+1+0) mod 2 =1

    Code=[ 1 0 1 1 0 1 0 ]

  • 8/3/2019 20.Channel Coding

    6/28

    Coding Gain

    Coding Rate R=k/n, k, no. of message symbol, n overall symbol

    For a coding scheme, the coding gain at a given bit error

    probability is defined as the difference between the energy per

    information bit required by the coding scheme to achieve the

    given bit error probability and that by un-coded transmission.

  • 8/3/2019 20.Channel Coding

    7/28

    Coding Gain Example

  • 8/3/2019 20.Channel Coding

    8/28

    Cyclic code

    Cyclic codes are of interest and importance because They posses rich algebraic structure that can be utilized in a

    variety of ways.

    They have extremely concise specifications.

    They can be efficiently implemented using simpleshift register Many practically important codes are cyclic

    In practice, cyclic codes are often used for error detection

    (Cyclic redundancy check, CRC)

    Used for packet networks When an error is detected by the receiver, it requests

    retransmission

    ARQ

  • 8/3/2019 20.Channel Coding

    9/28

    BCHPerformance

  • 8/3/2019 20.Channel Coding

    10/28

    Reed-Solomon Codes

    An important subclass of non-binary BCH Wide range of applications

    Storage devices (tape, CD, DVD)

    Wireless or mobile communication

    Satellite communication Digital television/Digital Video Broadcast(DVB)

    High-speed modems (ADSL, xDSL)

  • 8/3/2019 20.Channel Coding

    11/28

    Convolutional Code Introduction

    Convolutional codes map information to code bits sequentiallyby convolving a sequence of information bits with generatorsequences

    A convolutional encoder encodesKinformation bits toN>Kcode bits at one time step

    Convolutional codes can be regarded as block codes for which

    the encoder has a certain structure such that we can express the

    encoding operation as convolution

  • 8/3/2019 20.Channel Coding

    12/28

    Encoder Convolutional codes are applied in applications that require good

    performance with low implementation cost. They operate on code streams(not in blocks)

    Convolution codes have memory that utilizes previous bits to encode ordecode following bits (block codes are memoryless)

    Convolutional codes achieve good performance by expanding their memory

    depth

    Convolutional codes are denoted by (n,k,L), where L is code (or encoder)Memory depth (number of register stages)

    Constraint length C=n(L+1) is defined as the number of encoded bits amessage bit can influence to

  • 8/3/2019 20.Channel Coding

    13/28

    Example Convolutional encoder, k= 1, n= 2, L=2

    Convolutional encoder is a finite state machine (FSM) processing

    information bits in a serial manner

    Thus the generated code is a function of input and the state of the FSM

    In this (n,k,L) = (2,1,2) encoder each message bit influences a span ofC=

    n(L+1)=6successive output bits = constraint length C

    Thus, for generation ofn-bit output, we require n shift registers in k= 1

    convolutional encoders

  • 8/3/2019 20.Channel Coding

    14/28

    Example: Using generatormatrix

    (1)

    ( 2)

    [1 0 11]

    [11 1 1]

    ! !

    g

    g

  • 8/3/2019 20.Channel Coding

    15/28

    Example of exhaustive maximal likelihood detection

    Assume a three bit message is transmitted [and encoded by (2,1,2)

    convolutional encoder]. To clear the decoder, two zero-bits are appendedafter message. Thus 5 bits are encoded resulting 10 bits of code. Assumechannel error probability is p= 0.1. After the channel 10,01,10,11,00 is

    produced (including some errors). What comes after the decoder, e.g.what was most likely the transmitted code and what were the respective

    message bits?

    a

    b

    c

    d

    states

    decoder outputs

    if this path is selected

    DAYANANDA SAGAR COLLEGE OF ENGINEERING, BANGALORE

  • 8/3/2019 20.Channel Coding

    16/28

    Note also the Hamming distances!

    correct:1+1+2+2+2=8;8 ( 0.11) 0.88

    false:1+1+0+0+0=2;2 ( 2.30) 4.6

    total path metric: 5.48

    !

    !

    The largest metric, verify

    that you get the same result!

    DAYANANDA SAGAR COLLEGE OF ENGINEERING, BANGALORE

  • 8/3/2019 20.Channel Coding

    17/28

    The Viterbialgorithm

    Problem of optimum decoding is to find the minimum distance

    path from the initial state back to initial state (below from S0 toS0). The minimum distance is the sum of all path metrics

    that is maximized by the correct path

    Exhaustive maximum likelihood

    method must search all the paths

    in phase trellis (2kpaths emerging/

    entering from 2 L+1 states foran (n,k,L) code)

    The Viterbi algorithm gets its

    efficiency via concentrating intosurvivor paths of the trellis

    0ln ( , ) ln ( | )jm j mj p p y xg

    !!y x

    Received code

    sequence

    Decoders output sequence

    for the m:th path

    DAYANANDA SAGAR COLLEGE OF ENGINEERING, BANGALORE

  • 8/3/2019 20.Channel Coding

    18/28

    The survivorpath Assume for simplicity a convolutional code with k=1, and up to 2k= 2

    branches can enter each state in trellis diagram Assume optimal path passes S. Metric comparison is done by adding the

    metric ofS into S1 and S2. At the survivor path the accumulated metricis naturally smaller (otherwise it could not be the optimum path)

    For this reason the non-survived path can

    be discarded -> all path alternatives need notto be considered

    Note that in principle whole transmittedsequence must be received before decision.However, in practice storing of states forinput length of 5L is quite adequate 2 branches enter each nodek

    2 nodes, determinedL

    by memory depth

  • 8/3/2019 20.Channel Coding

    19/28

    Example of using the Viterbialgorithm

    Assume the received sequence is

    and the (n,k,L)=(2,1,2) encoder shown below. Determine the

    Viterbi decoded output sequence!

    01101111010001y !

    (Note that for this encoder code rate is 1/2 and memory depth L= 2)

    states

  • 8/3/2019 20.Channel Coding

    20/28

    The maximum likelihoodpath

    The decoded ML code sequence is 11 10 10 11 00 00 00 whose Hamming

    distance to the received sequence is 4 and the respective decoded

    sequence is 1 1 0 0 0 0 0 (why?). Note that this is the minimum distance path.

    (Black circles denote the deleted branches, dashed lines: '1' was applied)

    (1)

    (1)

    (0)

    (2)

    (1)

    (1)

    1

    1

    Smaller accumulated

    metric selected

    First depth with two entries to the node

    After register length L+1=3

    branch pattern begins to repeat

    (Branch Hamming distancesin parenthesis)

  • 8/3/2019 20.Channel Coding

    21/28

    Turbo Codes

    Backgound Turbo codes were proposed by Berrou and Glavieux in the 1993

    International Conference in Communications.

    Performance within 0.5 dB of the channel capacity limit for BPSK

    was demonstrated.

    Features of turbo codes

    Parallel concatenated coding

    Recursive convolutional encoders

    Pseudo-random interleaving

    Iterative decoding

    DAYANANDA SAGAR COLLEGE OF ENGINEERING, BANGALORE

  • 8/3/2019 20.Channel Coding

    22/28

    otivation: Performance ofTurbo Codes

    Comparison: Rate 1/2 Codes.

    K=5 turbo code.

    K=14 convolutional

    code.

    Plot is from: L. Perez, Turbo Codes,

    chapter 8 of Trellis Coding

    by C. Schlegel. IEEE Press,

    1997

    Gain of almost 2 dB!

    Theoretical Limit!

  • 8/3/2019 20.Channel Coding

    23/28

    The Turbo-Principle

    Turbo codes get their name because the decoder uses feedback,like a turbo engine.

    DAYANANDA SAGAR COLLEGE OF ENGINEERING, BANGALORE

  • 8/3/2019 20.Channel Coding

    24/28

    Performance as a Function of Number of Iterations

    K=5, r=1/2, L=65,536

    0 .5 1 1 . 5 21 0

    -7

    1 0-6

    1 0-5

    1 0-4

    1 0-3

    1 0

    -2

    1 0-1

    1 00

    Eb

    /No

    in dB

    B

    ER

    1 i teration

    2 iterations

    3 i terations6 i terations

    1 0 i terations

    1 8 i terations

  • 8/3/2019 20.Channel Coding

    25/28

    Turbo Code Summary

    Turbo code advantages: Remarkable power efficiency in AWGN and flat-fading channelsfor moderately low BER.

    Deign tradeoffs suitable for delivery of multimedia services.

    Turbo code disadvantages:

    Long latency.

    Poor performance at very low BER.

    Because turbo codes operate at very low SNR, channel estimationand tracking is a critical issue.

    The principle of iterative or turbo processing can be applied toother problems.

    Turbo-multiuser detection can improve performance of codedmultiple-access systems.

  • 8/3/2019 20.Channel Coding

    26/28

    Trellis Coded Modulation

    1. Combine both encoding and modulation. (using Euclideandistance only)

    2. Allow parallel transition in the trellis.

    3. Has significant coding gain (3~4dB) without bandwidth

    compromise.4. Has the same complexity (same amount of computation, same

    decoding time and same amount of memory needed).

    5. Has great potential for fading channel.

    6. Widely used in Modem

  • 8/3/2019 20.Channel Coding

    27/28

    SetPartitioning

    1. Branches diverging from the same state must have the largest distance.2. Branches merging into the same state must have the largest distance.

    3. Codes should be designed to maximize the length of the shortest error eventpath for fading channel (equivalent to maximizing diversity).

    4. By satisfying the above two criterion, coding gain can be increased.

  • 8/3/2019 20.Channel Coding

    28/28

    Coding Gain

    About 3dB