Interleavers for Turbo Codes - · PDF fileInterleavers for Turbo Codes by ... 1.2 Generalised Turbo Encoder ... 9.1 Turbo code BER simulation (small block size)

Embed Size (px)

Citation preview

  • UNIVERSITY OF MALTA

    Faculty of Engineering

    Department of Communications and Computer Engineering

    M. Phil.

    Interleavers for Turbo Codes

    by

    Johann Briffa

    A dissertation submitted in fulfilment of the requirements for the award of

    Master of Philosophy of the University of Malta

    OCTOBER 1999

  • Abstract

    Since their introduction in 1993, in a seminal paper by Berrou, Glavieux, and Thitima-

    jshima, Turbo codes have changed the way we look at high-performance error-control

    coding. After some initial skepticism from the coding community, Turbo coding gained

    rapid acceptance as the original results (Berrou et al. claimed a Bit Error Rate of 105

    within 0:7 dB of the Shannon limit) were replicated by a number of independent re-

    searchers.

    A flexible software Turbo codec and simulation environment is designed and tested.

    Using this tool, the Turbo code interleaver design problem is considered for large block

    sizes, where the effect of trellis termination is less marked. The performance of various

    interleavers with a similar block size are compared, including an implementation of the

    uniform interleaver. An optimised interleaver design technique based on simulated

    annealing is proposed the results obtained show that the error performance may

    be significantly improved without increasing the delay. Finally, interleaver design for

    small Turbo codes is considered. In this case it is shown that while correct termination

    improves the performance for an average interleaver, its effect on Turbo codes with

    optimised interleavers is negligible.

    Using our simulated annealing design technique it is easier to include restrictions

    which make the interleaver correctly-terminating or odd-even. While the S-random

    algorithm serves well for specifying interleaver spread, we believe that our algorithm

    is better suited for more sophisticated design criteria.

    1

  • Acknowledgements

    I would like to take this opportunity to thank my supervisor Dr. Victor Buttigieg,

    Ph.D. (Manch.), M.Sc. (Manch.), B.Elec.Eng. (Hons), MIEEE, for suggesting this field

    of study and for all his invaluable assistance.

    This thesis finds me once again indebted to my family, particularly my parents, for

    their patience and support throughout my studies. I never show you how much I

    appreciate what you do, certainly not as much as you deserve. Thank you!

    Johann Briffa

    OCTOBER 1999

    2

  • To my family and to the one I love

  • There is nothing like looking, if you want to find something.

    Thorin Oakenshield

    The Hobbit

    JOHN RONALD REUEL TOLKIEN, 1937

  • Contents

    I Implementation of a Turbo Codec and Simulation Environment 18

    1 Introduction 19

    1.1 Fundamentals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

    1.1.1 Turbo Encoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    1.1.2 Turbo Decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    1.2 Aims and Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    1.3 Thesis Outline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    1.4 Summary of Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

    2 Iterative (Turbo) Decoding 25

    2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    2.2 Turbo Decoder Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    2.2.1 Soft Decision Decoding . . . . . . . . . . . . . . . . . . . . . . . . 25

    2.2.2 Likelihood Ratios . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

    2.2.3 Turbo Decoder Structure . . . . . . . . . . . . . . . . . . . . . . . . 27

    2.2.4 Turbo Code Performance . . . . . . . . . . . . . . . . . . . . . . . 28

    2.3 Literature Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    2.3.1 Presentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

    2.3.2 Initial Reception . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

    2.3.3 Analysis of Performance and Design Strategy . . . . . . . . . . . 31

    2.3.4 Performance Bounds . . . . . . . . . . . . . . . . . . . . . . . . . . 31

    2.3.5 Design Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    2.3.6 Trellis Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

    2.3.7 Interleaver Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    3 System Design and Functionality 36

    3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    3.2 Component Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

    5

  • CONTENTS 6

    3.2.1 Non-Recursive Convolutional Codes . . . . . . . . . . . . . . . . 37

    3.2.2 Recursive Systematic Convolutional Codes . . . . . . . . . . . . . 37

    3.3 Interleaver . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

    3.3.1 Trellis Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

    3.3.2 Odd-Even Interleavers . . . . . . . . . . . . . . . . . . . . . . . . . 41

    3.3.3 The Spreading Factor of an Interleaver . . . . . . . . . . . . . . . 41

    3.4 Modulation and Channel Modelling . . . . . . . . . . . . . . . . . . . . . 41

    3.4.1 Additive White Gaussian Noise . . . . . . . . . . . . . . . . . . . 42

    3.5 Puncturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    3.6 MAP Decoding Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    3.6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

    3.6.2 Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    3.6.3 The BCJR Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 45

    3.7 Monte Carlo Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

    4 Implementation Details 50

    4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    4.1.1 Choice of Language . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    4.2 Monte Carlo Simulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    4.2.1 Multi-Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

    4.2.2 Dynamic Load Balancing . . . . . . . . . . . . . . . . . . . . . . . 52

    4.2.3 Initialising the Master-Slave Parallel System . . . . . . . . . . . . 52

    4.2.4 Handling Dead-Lock . . . . . . . . . . . . . . . . . . . . . . . . . . 53

    4.3 BCJR Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    4.3.1 Infinite Precision . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

    4.3.2 Extended Precision Floating-Point . . . . . . . . . . . . . . . . . . 56

    4.3.3 Log-Scale Floating-Point . . . . . . . . . . . . . . . . . . . . . . . . 56

    4.4 Other Support Facilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

    4.4.1 Random Number Generator . . . . . . . . . . . . . . . . . . . . . . 57

    5 Testing 58

    5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    5.2 Uncoded Transmission . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    5.3 Upper Bound for MAP Decoder . . . . . . . . . . . . . . . . . . . . . . . . 59

    5.4 BCJR Arithmetic Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

    5.5 Upper Bound for Turbo Decoder . . . . . . . . . . . . . . . . . . . . . . . 61

  • CONTENTS 7

    5.6 Comparison with Published Results . . . . . . . . . . . . . . . . . . . . . 63

    II Interleaver Design for Turbo Codes 66

    6 Overview 67

    6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

    6.2 Interleaving in Coding Systems . . . . . . . . . . . . . . . . . . . . . . . . 67

    6.2.1 Classical Use of Interleavers . . . . . . . . . . . . . . . . . . . . . . 67

    6.2.2 Interleavers in Turbo Codes . . . . . . . . . . . . . . . . . . . . . . 68

    6.3 Performance of Turbo Codes . . . . . . . . . . . . . . . . . . . . . . . . . . 69

    6.3.1 Recursive and Non-Recursive Constituent Codes . . . . . . . . . 69

    6.3.2 Performance Bound . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    6.3.3 Free Distance and Performance at High SNR . . . . . . . . . . . . 72

    6.3.4 Spectral Thinning and Performance at Low-Medium SNR . . . . 74

    6.3.5 Interleaver Input-Output Distance Spectrum . . . . . . . . . . . . 74

    6.4 Interleaver Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    6.4.1 Block Size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

    6.4.2 Interleaver Mapping Randomisation . . . . . . . . . . . . . . . . . 77

    6.4.3 Interleaver Spread . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

    6.4.4 Interleavers for Punctured Codes . . . . . . . . . . . . . . . . . . . 78

    6.4.5 Trellis Termination . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

    7 Interleaver Types 80

    7.1 Standard Interleavers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

    7.1.1 Rectangular Interleaver . . . . . . . . . . . . . . . . . . . . . . . . 80

    7.1.2 Berrou-Glavieux Interleaver . . . . . . . . . . . . . . . . . . . . . . 82

    7.1.3 Helical Interleaver . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

    7.2 Reference Interleavers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    7