interleavers for turbo codes - · pdf fileinterleavers for turbo codes by ... 1.2...
TRANSCRIPT
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