1 introduction 2 coding and uncoding siso (soft input soft ...jean-marc.brossier/... · a scheme of...

39
Introduction Turbo Principle SISO (Soft Input Soft Output) Example of a product code 1 Introduction 2 Turbo Principle Coding and uncoding 3 SISO (Soft Input Soft Output) Definition of a soft information, how to use it? Convolutional codes Block codes 4 Example of a product code J.-M. Brossier Turbo codes.

Upload: others

Post on 24-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    1 Introduction

    2 Turbo PrincipleCoding and uncoding

    3 SISO (Soft Input Soft Output)Definition of a soft information, how to use it?Convolutional codesBlock codes

    4 Example of a product code

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Achieving channel capacity ...

    Shannon says this is possible ... how ?

    Make use of the gap between the source rate and the channelcapacity: coding scheme

    Claude Shannon, 1953

    A scheme of coding and decoding can be found allowing correctionof all transmission errors, if the information rate is inferior or equalto the channel capacity.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Achieving channel capacity ...

    Shannon says this is possible ... how ?

    Make use of the gap between the source rate and the channelcapacity: coding scheme

    Claude Shannon, 1953

    A scheme of coding and decoding can be found allowing correctionof all transmission errors, if the information rate is inferior or equalto the channel capacity.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Achieving channel capacity ...

    Shannon says this is possible ... how ?

    Make use of the gap between the source rate and the channelcapacity: coding scheme

    Claude Shannon, 1953

    A scheme of coding and decoding can be found allowing correctionof all transmission errors, if the information rate is inferior or equalto the channel capacity.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Coding and uncoding

    Turbo coding

    Serial encoding

    Code 1

    Code 2Interleaver

    Data

    u

    p

    q

    Two short systematic codes are used to build a large codeData uRedundancy of the first coder pRedundancy of the second coder q

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Coding and uncoding

    Turbo coding

    Serial encoding

    Code 1

    Code 2Interleaver

    Data

    u

    p

    q

    Two short systematic codes are used to build a large codeData uRedundancy of the first coder pRedundancy of the second coder q

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Coding and uncoding

    Turbo coding

    Serial encoding

    Code 1

    Code 2Interleaver

    Data

    u

    p

    q

    Two short systematic codes are used to build a large codeData uRedundancy of the first coder pRedundancy of the second coder q

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Coding and uncoding

    Turbo coding

    Serial encoding

    Code 1

    Code 2Interleaver

    Data

    u

    p

    q

    Two short systematic codes are used to build a large codeData uRedundancy of the first coder pRedundancy of the second coder q

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Coding and uncoding

    Turbo decoding

    Iterative Decoding Scheme

    Decoder 1

    Decoder 2

    u

    p

    q

    E

    E

    D

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Coding and uncoding

    Turbo decoding

    Iterative Decoding Scheme

    Decoder 1

    Decoder 2

    u

    p

    q

    E

    E

    D

    First iteration

    The two decoders provide afirst estimation of thetransmitted symbols.

    Each decoder transmits itsoutput to the input of theother one for the seconditeration.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Coding and uncoding

    Turbo decoding

    Iterative Decoding Scheme

    Decoder 1

    Decoder 2

    u

    p

    q

    E

    E

    D

    First iteration

    The two decoders provide afirst estimation of thetransmitted symbols.

    Each decoder transmits itsoutput to the input of theother one for the seconditeration.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Coding and uncoding

    Turbo decoding

    Iterative Decoding Scheme

    Decoder 1

    Decoder 2

    u

    p

    q

    E

    E

    D

    Second Iteration

    Using the outputs computedat the first iteration, the twodecoders provide a secondestimation of the transmittedsymbols.

    the same sequence ofoperations is applied for alliterations ...

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Coding and uncoding

    Turbo decoding

    Iterative Decoding Scheme

    Decoder 1

    Decoder 2

    u

    p

    q

    E

    E

    D

    Second Iteration

    Using the outputs computedat the first iteration, the twodecoders provide a secondestimation of the transmittedsymbols.

    the same sequence ofoperations is applied for alliterations ...

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Soft information

    What is a soft information?

    A log-likelihood ratio

    Example: the Additive White Gaussian Noise Channel

    Its output is given by r = x + b with x = ±1 and b zero-meanGaussian random variable with variance σ2.

    LLR (Log Likelihood Ratio):

    logp (r |+ 1)p (r | − 1)

    = log

    1σ√2π exp(− (r−1)

    2

    2σ2

    )1

    σ√

    2πexp

    (− (r+1)

    2

    2σ2

    ) = 2

    σ2r

    Interpretation:

    The sign of the LLR is a hard decisionIts module indicates the reliability of this decision.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Soft information

    What is a soft information?

    A log-likelihood ratio

    Example: the Additive White Gaussian Noise Channel

    Its output is given by r = x + b with x = ±1 and b zero-meanGaussian random variable with variance σ2.

    LLR (Log Likelihood Ratio):

    logp (r |+ 1)p (r | − 1)

    = log

    1σ√2π exp(− (r−1)

    2

    2σ2

    )1

    σ√

    2πexp

    (− (r+1)

    2

    2σ2

    ) = 2

    σ2r

    Interpretation:

    The sign of the LLR is a hard decisionIts module indicates the reliability of this decision.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Modelisation of the decoder input

    Emitted codeword

    X = (X1, · · · ,Xn)

    Soft received sequence of values

    R = (LLR1, · · · , LLRn)

    LLRi are Log-Likelihood Ratios

    Iteration 1: information ishard or soft.

    Following iterations: onlysoft information.

    Decomposition of the informationgiven by LLRs

    Hard decision: the LLR signprovides a hard decision:

    Yi = sgn [LLRi ]

    Reliability: the LLR moduleprovides its reliability:

    αi = |LLRi |

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Modelisation of the decoder input

    Emitted codeword

    X = (X1, · · · ,Xn)

    Soft received sequence of values

    R = (LLR1, · · · , LLRn)

    LLRi are Log-Likelihood Ratios

    Iteration 1: information ishard or soft.

    Following iterations: onlysoft information.

    Decomposition of the informationgiven by LLRs

    Hard decision: the LLR signprovides a hard decision:

    Yi = sgn [LLRi ]

    Reliability: the LLR moduleprovides its reliability:

    αi = |LLRi |

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Modelisation of the decoder input

    Emitted codeword

    X = (X1, · · · ,Xn)

    Soft received sequence of values

    R = (LLR1, · · · , LLRn)

    LLRi are Log-Likelihood Ratios

    Iteration 1: information ishard or soft.

    Following iterations: onlysoft information.

    Decomposition of the informationgiven by LLRs

    Hard decision: the LLR signprovides a hard decision:

    Yi = sgn [LLRi ]

    Reliability: the LLR moduleprovides its reliability:

    αi = |LLRi |

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Modelisation of the decoder input

    Emitted codeword

    X = (X1, · · · ,Xn)

    Soft received sequence of values

    R = (LLR1, · · · , LLRn)

    LLRi are Log-Likelihood Ratios

    Iteration 1: information ishard or soft.

    Following iterations: onlysoft information.

    Decomposition of the informationgiven by LLRs

    Hard decision: the LLR signprovides a hard decision:

    Yi = sgn [LLRi ]

    Reliability: the LLR moduleprovides its reliability:

    αi = |LLRi |

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Modelisation of the decoder input

    Emitted codeword

    X = (X1, · · · ,Xn)

    Soft received sequence of values

    R = (LLR1, · · · , LLRn)

    LLRi are Log-Likelihood Ratios

    Iteration 1: information ishard or soft.

    Following iterations: onlysoft information.

    Decomposition of the informationgiven by LLRs

    Hard decision: the LLR signprovides a hard decision:

    Yi = sgn [LLRi ]

    Reliability: the LLR moduleprovides its reliability:

    αi = |LLRi |

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Modelisation of the decoder input

    Emitted codeword

    X = (X1, · · · ,Xn)

    Soft received sequence of values

    R = (LLR1, · · · , LLRn)

    LLRi are Log-Likelihood Ratios

    Iteration 1: information ishard or soft.

    Following iterations: onlysoft information.

    Decomposition of the informationgiven by LLRs

    Hard decision: the LLR signprovides a hard decision:

    Yi = sgn [LLRi ]

    Reliability: the LLR moduleprovides its reliability:

    αi = |LLRi |

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Modelisation of the decoder input

    Emitted codeword

    X = (X1, · · · ,Xn)

    Soft received sequence of values

    R = (LLR1, · · · , LLRn)

    LLRi are Log-Likelihood Ratios

    Iteration 1: information ishard or soft.

    Following iterations: onlysoft information.

    Decomposition of the informationgiven by LLRs

    Hard decision: the LLR signprovides a hard decision:

    Yi = sgn [LLRi ]

    Reliability: the LLR moduleprovides its reliability:

    αi = |LLRi |

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Modelisation of the decoder input

    Emitted codeword

    X = (X1, · · · ,Xn)

    Soft received sequence of values

    R = (LLR1, · · · , LLRn)

    LLRi are Log-Likelihood Ratios

    Iteration 1: information ishard or soft.

    Following iterations: onlysoft information.

    Decomposition of the informationgiven by LLRs

    Hard decision: the LLR signprovides a hard decision:

    Yi = sgn [LLRi ]

    Reliability: the LLR moduleprovides its reliability:

    αi = |LLRi |

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Several kinds of decoders

    Notations

    Vector of errors Zm = Y ⊕ Xm

    Weights of errors W (Zm) =n∑

    i=1Zmi

    Analog weight (soft) Wα (Zm) =

    ∑ni=1 αiZ

    mi .

    Incomplete Decoder (Hard input)

    It only uses the hard information.

    It gives the word Xm = (Xm1 , · · · ,Xmn ) whose Hammingdistance to Y = (Y1, · · · ,Yn) is minimum.

    1 word is found if W (Zm) ≤⌊

    dmin−12

    ⌋else no word found.

    The decision is right if the number of errors is less than⌊dmin−1

    2

    ⌋.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Several kinds of decoders

    Notations

    Vector of errors Zm = Y ⊕ Xm

    Weights of errors W (Zm) =n∑

    i=1Zmi

    Analog weight (soft) Wα (Zm) =

    ∑ni=1 αiZ

    mi .

    Complete Decoder (Soft input)

    It uses the whole information.

    Complete decoder: minm Wα (Y ⊕ Xm) can provide acodeword even if the number of errors is greater than⌊

    dmin−12

    ⌋Complete Soft Decoder: minm Wα (Y ⊕ Xm) with analogweight Wα (Z

    m).

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    SISO Convolutional

    Soft input

    The Viterbi algorithm is able to use soft inputs: it only needs touse an Euclidian metric.

    Soft output

    The Viterbi must be modified:

    Soft Output Viterbi Algorithm (SOVA)

    Idea: keep more than a single path: the difference betweenmetrics of the two best paths is an indication about thereliability of the decision.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    SISO Convolutional

    Soft input

    The Viterbi algorithm is able to use soft inputs: it only needs touse an Euclidian metric.

    Soft output

    The Viterbi must be modified:

    Soft Output Viterbi Algorithm (SOVA)

    Idea: keep more than a single path: the difference betweenmetrics of the two best paths is an indication about thereliability of the decision.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft input - Chase Algorithm

    If only hard decisions are known. Vector R is received. A hardversion Y of R is usable by a usual algebric decoder. Analgebraic decoder provides a codeword XA.

    For an incomplete decoder, the procedure stops here.

    But, if reliabilities are known, it is possible to improve theestimation:

    Find weak positions (weak LLRs)Modify Y for these positions and produce a small set ofdecoded codewords using this set of decisions about R.Select the codeword whose analog distance to R is minimum.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft input - Chase Algorithm

    If only hard decisions are known. Vector R is received. A hardversion Y of R is usable by a usual algebric decoder. Analgebraic decoder provides a codeword XA.

    For an incomplete decoder, the procedure stops here.

    But, if reliabilities are known, it is possible to improve theestimation:

    Find weak positions (weak LLRs)Modify Y for these positions and produce a small set ofdecoded codewords using this set of decisions about R.Select the codeword whose analog distance to R is minimum.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft input - Chase Algorithm

    If only hard decisions are known. Vector R is received. A hardversion Y of R is usable by a usual algebric decoder. Analgebraic decoder provides a codeword XA.

    For an incomplete decoder, the procedure stops here.

    But, if reliabilities are known, it is possible to improve theestimation:

    Find weak positions (weak LLRs)Modify Y for these positions and produce a small set ofdecoded codewords using this set of decisions about R.Select the codeword whose analog distance to R is minimum.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft input - Chase Algorithm

    If only hard decisions are known. Vector R is received. A hardversion Y of R is usable by a usual algebric decoder. Analgebraic decoder provides a codeword XA.

    For an incomplete decoder, the procedure stops here.

    But, if reliabilities are known, it is possible to improve theestimation:

    Find weak positions (weak LLRs)Modify Y for these positions and produce a small set ofdecoded codewords using this set of decisions about R.Select the codeword whose analog distance to R is minimum.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft input - Chase Algorithm

    If only hard decisions are known. Vector R is received. A hardversion Y of R is usable by a usual algebric decoder. Analgebraic decoder provides a codeword XA.

    For an incomplete decoder, the procedure stops here.

    But, if reliabilities are known, it is possible to improve theestimation:

    Find weak positions (weak LLRs)Modify Y for these positions and produce a small set ofdecoded codewords using this set of decisions about R.Select the codeword whose analog distance to R is minimum.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft input - Chase Algorithm

    If only hard decisions are known. Vector R is received. A hardversion Y of R is usable by a usual algebric decoder. Analgebraic decoder provides a codeword XA.

    For an incomplete decoder, the procedure stops here.

    But, if reliabilities are known, it is possible to improve theestimation:

    Find weak positions (weak LLRs)Modify Y for these positions and produce a small set ofdecoded codewords using this set of decisions about R.Select the codeword whose analog distance to R is minimum.

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft outputs - Pyndiah Algorithm

    Aim : computation of reliabilities

    Λ (dj) = logP (aj = +1|R)P (aj = −1|R)

    Reliabilities

    S±1j is the set of words with cij = ±1,

    P (aj = ±1|R) =∑

    C i∈S±1j

    P(E = C i |R

    )

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft outputs - Pyndiah Algorithm

    Aim : computation of reliabilities

    Λ (dj) = logP (aj = +1|R)P (aj = −1|R)

    Reliabilities

    S±1j is the set of words with cij = ±1,

    P (aj = ±1|R) =∑

    C i∈S±1j

    P(E = C i |R

    )

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft outputs - Pyndiah Algorithm

    Aim : computation of reliabilities

    Λ (dj) = logP (aj = +1|R)P (aj = −1|R)

    Reliabilities

    Λ (dj) = log

    ∑C i∈S+1j

    P(R|E = C i

    )∑C i∈S−1j

    P (R|E = C i )

    with P(R|E = C i

    )=(

    1√2πσ

    )nexp

    (−|R−C

    i |22σ2

    )

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft outputs - Pyndiah Algorithm

    Aim : computation of reliabilities

    Λ (dj) = logP (aj = +1|R)P (aj = −1|R)

    Reliabilities

    Λ (dj) = log

    ∑C i∈S+1j

    P(R|E = C i

    )∑C i∈S−1j

    P (R|E = C i )

    with P(R|E = C i

    )=(

    1√2πσ

    )nexp

    (−|R−C

    i |22σ2

    )

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft outputs - Pyndiah Algorithm

    Aim : computation of reliabilities

    Λ (dj) = logP (aj = +1|R)P (aj = −1|R)

    A good approximation of reliabilities is given by:

    Λ (dj) ≈1

    2σ2

    (∣∣∣R − C−1(j)∣∣∣2 − ∣∣∣R − C+1(j)∣∣∣2)C±1(j) are words in S±1j whose Euclidian distance to R is minimum.

    S±1j is the set of words with cij = ±1

    J.-M. Brossier Turbo codes.

  • IntroductionTurbo Principle

    SISO (Soft Input Soft Output)Example of a product code

    Definition of a soft information, how to use it?Convolutional codesBlock codes

    Block turbo codes

    Soft outputs - Pyndiah Algorithm

    Aim : computation of reliabilities

    Λ (dj) = logP (aj = +1|R)P (aj = −1|R)

    A good approximation of reliabilities is given by:

    Λ (dj) ≈1

    2σ2

    (∣∣∣R − C−1(j)∣∣∣2 − ∣∣∣R − C+1(j)∣∣∣2)C±1(j) are words in S±1j whose Euclidian distance to R is minimum.

    S±1j is the set of words with cij = ±1

    J.-M. Brossier Turbo codes.