Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
University of Wollongong University of Wollongong
Research Online Research Online
University of Wollongong Thesis Collection 1954-2016 University of Wollongong Thesis Collections
2004
Study of turbo codes across space time spreading channel Study of turbo codes across space time spreading channel
I. Raad SECTE, University of Wollongong, [email protected]
Follow this and additional works at: https://ro.uow.edu.au/theses
University of Wollongong University of Wollongong
Copyright Warning Copyright Warning
You may print or download ONE copy of this document for the purpose of your own research or study. The University
does not authorise you to copy, communicate or otherwise make available electronically to any other person any
copyright material contained on this site.
You are reminded of the following: This work is copyright. Apart from any use permitted under the Copyright Act
1968, no part of this work may be reproduced by any process, nor may any other exclusive right be exercised,
without the permission of the author. Copyright owners are entitled to take legal action against persons who infringe
their copyright. A reproduction of material that is protected by copyright may be a copyright infringement. A court
may impose penalties and award damages in relation to offences and infringements relating to copyright material.
Higher penalties may apply, and higher damages may be awarded, for offences and infringements involving the
conversion of material into digital or electronic form.
Unless otherwise indicated, the views expressed in this thesis are those of the author and do not necessarily Unless otherwise indicated, the views expressed in this thesis are those of the author and do not necessarily
represent the views of the University of Wollongong. represent the views of the University of Wollongong.
Recommended Citation Recommended Citation Raad, Ibrahim Samir, Study of turbo codes across space time spreading channel, School of Electrical, M.Eng thesis, Computer and Telecommunications Engineering, University of Wollongong, 2004. http://ro.uow.edu.au/theses/269
Research Online is the open access institutional repository for the University of Wollongong. For further information contact the UOW Library: [email protected]
Study of Turbo Codes Across Space Time
Spreading Channel
A thesis submitted in fulfilment of the
requirements for the award of the degree
Masters of Engineering Research
from
The University of Wollongong
by
Ibrahim Samir Raad
Bachelor of Engineering
School of Electrical, Computer
and Telecommunications Engineering
2004
Abstract
This thesis deals with an application of turbo codes across Space Time Spread-
ing Channel. This is done by undertaking a study into the extent to which
these error correction codes can reduce the bit error rate across the space time
spreading channel. Both the turbo codes and space time channel have been
developed in Matlab’s Simulink.
The thesis starts with an introduction to turbo codes which is presented on the
basis of classical turbo codes introduced by Berrou et al in 1993 (Berrou et al.,
1993). This is illustrated by some examples of their performance across the
Additive White Gaussian Noise Channel (AWGN). Then a detailed description
of the Space Time Spreading (STS) channel and the Universal Mobile Telecom-
munications System (UMTS) turbo codes. Using the UMTS turbo codes this
thesis produces simulation results showing to what extent they reduce the bit
error rate of the STS channel. A description of the system in Simulink and
Matlab is presented. The simulation results show that UMTS turbo codes ap-
plied on the top of the STS channel can improve the bit error rate performance
by approximately 5dB. This is done at the expense of increased complexity and
reduced effective data rate.
ii
Statement of Originality
This is to certify that the work described in this thesis is entirely my own,
except where due reference is made in the text.
No work in this thesis has been submitted for a degree to any other university
or institution.
Signed
Ibrahim Samir Raad
7 March,2004
iii
Acknowledgments
Firstly, I would like to thank my supervisor Mr. Peter James Vial for his
support and help during my thesis year for Masters of Engineering Research.
Without his help and tireless effort, this project could not have been completed.
Secondly, I would like to thank Associate Professor Tad Wysocki for his help in
this project.
Finally, I would like to thank my family for their support and patience during
the year.
iv
Contents
1 Introduction 1
1.1 Objectives of Thesis . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Outline of Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2 Convolutional Coding 4
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Convolutional Encoding . . . . . . . . . . . . . . . . . . . . . . 4
2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
3 Turbo Codes 8
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3.2 Turbo Coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.1 Turbo Encoding . . . . . . . . . . . . . . . . . . . . . . . 9
3.2.2 Turbo Decoding . . . . . . . . . . . . . . . . . . . . . . . 9
3.3 Factors that effect Turbo Code Performance . . . . . . . . . . . 12
3.3.1 Turbo Interleaver/Permuter . . . . . . . . . . . . . . . . 13
3.3.2 Constituent Encoder . . . . . . . . . . . . . . . . . . . . 14
3.3.3 Puncturing . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3.4 Decoding Algorithm . . . . . . . . . . . . . . . . . . . . 15
3.4 Decoding Algorithms . . . . . . . . . . . . . . . . . . . . . . . . 15
3.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.4.2 The Soft Output Viterbi Algorithm (SOVA) . . . . . . . 15
3.4.3 Map Algorithm . . . . . . . . . . . . . . . . . . . . . . . 19
3.4.4 The Max-Log-Map Algorithm . . . . . . . . . . . . . . . 20
3.4.5 Log-Map Algorithm . . . . . . . . . . . . . . . . . . . . . 23
3.4.6 Extrinsic and Intrinsic Information . . . . . . . . . . . . 25
v
CONTENTS vi
3.4.7 Soft-Input/Soft-Output (SISO) Decoding algorithm . . . 25
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4 A study of the Classical Turbo Codes across AWGN channel 28
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4.2 Influence of the Size of input frame (N) . . . . . . . . . . . . . . 29
4.3 Influence of the number of Iterations . . . . . . . . . . . . . . . 29
4.4 Influence of Code Rate (r) . . . . . . . . . . . . . . . . . . . . . 29
4.5 Influence of the Code generator (g) . . . . . . . . . . . . . . . . 38
4.6 Comparison of SOVA and Log-Map decoding algorithms . . . . 39
4.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5 Turbo Codes Across Space Time Spreading Channel 42
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2 Space Time Spreading (STS) . . . . . . . . . . . . . . . . . . . . 42
5.3 Description of Validated Space Time Spreading Channel. . . . . 44
5.3.1 The Simulink Model . . . . . . . . . . . . . . . . . . . . 45
5.4 Description of implementations of the UMTS Turbo Codes . . . 47
5.4.1 UMTS Turbo Code . . . . . . . . . . . . . . . . . . . . . 47
5.4.2 UMTS Decoder Architecture . . . . . . . . . . . . . . . . 48
5.4.3 Validation Results of UMTS turbo codes across AWGN
channel . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.5 Implemented STS turbo codes in Simulink . . . . . . . . . . . . 50
5.6 Results of Turbo Codes over Space Time Spreading . . . . . . . 55
5.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6 Conclusion 64
6.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
A Classical Turbo Codes tables N=100 and N=400 72
B Classical Turbo Codes tables N=1024 and N=2000 76
C Classical Turbo Codes tables for different generator matrix (g) 80
D Classical Turbo Codes- graphs of results 82
CONTENTS vii
E Classical Turbo Codes- comparing SOVA and Log-Map decod-ing algorithms 93
F Classical Turbo Codes- comparing constraint length K = 3 andK = 4 95
List of Figures
1.1 Model for combination of turbo code and STS. . . . . . . . . . . 2
1.2 An example of the components that can be included in this study. 2
2.1 Systematic half-rate, constraint-length two convolutional encoder
CC(2,1,2). (Rooyen et al., 2000) . . . . . . . . . . . . . . . . . . 5
2.2 State transition diagram of the CC(2,1,2) systematic code, where
broken lines indicate transitions due to an input one, while con-
tinuous lines correspond to input zero (Hanzo et al., 2002). . . . 6
3.1 Turbo encoder schematic (Rooyen et al., 2000) . . . . . . . . . . 9
3.2 Turbo decoder schematic (Rooyen et al., 2000) . . . . . . . . . . 10
3.3 Turbo Decoder block diagram (Rooyen et al., 2000) . . . . . . . 11
3.4 Turbo code design space (Berens et al., 1999). . . . . . . . . . . 13
3.5 A summary of the key operations in the MAP algorithm (Hanzo
et al., 2002). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.6 Soft-input/Soft-output decoder for a rate 1/2 RSC code (Hanzo
et al., 2002). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
4.1 Comparison of N = 100, 400, 1024 and 2000 for bit error rate
(BER) versus Eb
Nowith g = [7; 5]octal, rate = 1
2, number of itera-
tion is 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2 Comparison of N = 100, 400, 1024 and 2000 for bit error rate
(BER) versus Eb
Nowith g = [7; 5]octal, rate = 1
3, number of itera-
tion is 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
viii
LIST OF FIGURES ix
4.3 Bit Error Rate (BER) versus Eb
Nowith N = 400, with g = [7; 5]octal,
rate = 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.4 Bit Error Rate (BER) versus Eb
Nowith N = 400, with g = [7; 5]octal,
rate = 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.5 Bit Error Rate (BER) versus Eb
Nowith N = 100, with g = [7; 5]octal,
rate = 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.6 Bit Error Rate (BER) versus Eb
Nowith N = 100, with g = [7; 5]octal,
rate = 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.7 Bit Error Rate(BER) versus Eb
Nowith N = 2000, with g = [7; 5]octal,
rate = 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.8 Bit Error Rate(BER) versus Eb
Nowith N = 2000, with g = [7; 5]octal,
rate = 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.9 Comparison of r = 12
and r = 13
with 5 iterations, N=400, g =
[7; 5]octal, Log-Map decoding. . . . . . . . . . . . . . . . . . . . . 38
4.10 Comparison of SOVA and Log-Map decoding algorithms for N =
400 with r = 12
and r = 13. . . . . . . . . . . . . . . . . . . . . . 40
5.1 A(2,1) STS scheme (Hochwald et al., 2001). . . . . . . . . . . . 43
5.2 Block diagram of the operation of the STS model in Simulink
(Vial et al., 2003). . . . . . . . . . . . . . . . . . . . . . . . . . 45
5.3 Plot of m = 1 and m = 2 for STS channel. . . . . . . . . . . . . 46
5.4 Block diagram of the UMTS turbo encoder (Valenti and Sun,
2001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.5 Block diagram of the UMTS turbo decoder (Valenti and Sun,
2001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.6 UMTS turbo codes,BER, N=100. . . . . . . . . . . . . . . . . . 51
5.7 UMTS turbo codes,BER, N=400. . . . . . . . . . . . . . . . . . 52
5.8 UMTS turbo codes,BER, N=1024. . . . . . . . . . . . . . . . . 53
5.9 UMTS turbo codes,BER, N=2000. . . . . . . . . . . . . . . . . 54
5.10 UMTS turbo codes,FER, N=100. . . . . . . . . . . . . . . . . . 55
5.11 UMTS turbo codes,FER, N=400. . . . . . . . . . . . . . . . . . 56
5.12 UMTS turbo codes,FER, N=1024. . . . . . . . . . . . . . . . . 57
LIST OF FIGURES x
5.13 UMTS turbo codes,FER, N=2000. . . . . . . . . . . . . . . . . 58
5.14 Input Turbo encoder. . . . . . . . . . . . . . . . . . . . . . . . . 58
5.15 STS channel section. . . . . . . . . . . . . . . . . . . . . . . . . 59
5.16 Output Turbo decoder. . . . . . . . . . . . . . . . . . . . . . . . 59
5.17 UMTS turbo codes across STS channel with m = 1, This com-
pares uncoded BER with the 12 iterations. . . . . . . . . . . . . 60
5.18 UMTS turbo codes across STS channel with m = 2, This com-
pares uncoded BER with the 12 iterations. . . . . . . . . . . . . 61
5.19 UMTS turbo codes across STS channel with m = 1 and m = 2,
This compares uncoded BER with the 12 iterations. . . . . . . . 62
D.1 Bit Error Rate versus (BER) Eb
Nowith N = 1024, with g =
[7; 5]octal, rate = 12. . . . . . . . . . . . . . . . . . . . . . . . . . 83
D.2 Frame Error Rate versus (FER) Eb
Nowith N = 1024, with g =
[7; 5]octal, rate = 12. . . . . . . . . . . . . . . . . . . . . . . . . . 84
D.3 Bit Error Rate versus (BER) Eb
Nowith N = 1024, with g =
[7; 5]octal, rate = 13. . . . . . . . . . . . . . . . . . . . . . . . . . 85
D.4 Frame Error Rate versus (FER) Eb
Nowith N = 1024, with g =
[7; 5]octal, rate = 13. . . . . . . . . . . . . . . . . . . . . . . . . . 86
D.5 Frame Error Rate versus (FER) Eb
Nowith N = 2000, with g =
[7; 5]octal, rate = 12. . . . . . . . . . . . . . . . . . . . . . . . . . 87
D.6 Frame Error Rate versus (FER) Eb
Nowith N = 2000, with g =
[7; 5]octal, rate = 13. . . . . . . . . . . . . . . . . . . . . . . . . . 88
D.7 Frame Error Rate (FER) versus Eb
Nowith N = 100, with g =
[7; 5]octal, rate = 12. . . . . . . . . . . . . . . . . . . . . . . . . . 89
D.8 Frame Error Rate (FER) versus Eb
Nowith N = 100, with g =
[7; 5]octal, rate = 13. . . . . . . . . . . . . . . . . . . . . . . . . . 90
D.9 Frame Error Rate versus (FER) Eb
Nowith N = 400, with g =
[7; 5]octal, rate = 12. . . . . . . . . . . . . . . . . . . . . . . . . . 91
D.10 Frame Error Rate versus (FER) Eb
Nowith N = 400, with g =
[7; 5]octal, rate = 13. . . . . . . . . . . . . . . . . . . . . . . . . . 92
List of Tables
A.1 1 iteration, N=100, rate=12, Log-Map decoding, g = [7; 5]octal . . 72
A.2 3 iterations, N=100, rate=12, Log-Map decoding, g = [7; 5]octal . 73
A.3 5 iterations, N=100, rate=12, Log-Map decoding, g = [7; 5]octal . 73
A.4 8 iterations, N=100, rate=12, Log-Map decoding, g = [7; 5]octal . 73
A.5 1 iteration, N=100, rate=13, Log-Map decoding, g = [7; 5]octal . . 73
A.6 3 iterations, N=100, rate=13, Log-Map decoding, g = [7; 5]octal . 73
A.7 5 iterations, N=100, rate=13, Log-Map decoding, g = [7; 5]octal . 73
A.8 8 iterations, N=100, rate=13, Log-Map decoding, g = [7; 5]octal . 73
A.9 1 iteration, N=400, rate=12, Log-Map decoding, g = [7, 5]octal. . . 74
A.10 3 iterations, N=400, rate=12, Log-Map decoding, g = [7, 5]octal . 74
A.11 5 iterations, N=400, rate=12, Log-Map decoding, g = [7, 5]octal . 74
A.12 8 iterations, N=400, rate=12, Log-Map decoding, g = [7, 5]octal . 74
A.13 1 iteration, N=400, rate=13, Log-Map decoding, g = [7, 5]octal . . 74
A.14 3 iterations, N=400, rate=13, Log-Map decoding, g = [7, 5]octal . 74
A.15 5 iterations, N=400, rate=13, Log-Map decoding, g = [7, 5]octal . 74
A.16 8 iterations, N=400, rate=13, Log-Map decoding, g = [7, 5]octal . 75
B.1 1 iteration, N=1024, rate=12, Log-Map decoding, g = [7, 5]octal . 76
B.2 3 iterations, N=1024, rate=12, Log-Map decoding, g = [7, 5]octal . 77
B.3 5 iterations, N=1024, rate=12, Log-Map decoding, g = [7, 5]octal . 77
B.4 8 iterations, N=1024, rate=12, Log-Map decoding, g = [7, 5]octal . 77
B.5 1 iteration, N=1024, rate=13, Log-Map decoding, g = [7, 5]octal . 77
B.6 3 iterations, N=1024, rate=13, Log-Map decoding, g = [7, 5]octal . 77
B.7 5 iterations, N=1024, rate=13, Log-Map decoding, g = [7, 5]octal . 77
xi
LIST OF TABLES xii
B.8 8 iterations, N=1024, rate=13, Log-Map decoding, g = [7, 5]octal . 77
B.9 1 iteration, N=2000, rate=12, Log-Map decoding, g = [7, 5]octal . 78
B.10 3 iterations, N=2000, rate=12, Log-Map decoding, g = [7, 5]octal . 78
B.11 5 iterations, N=2000, rate=12, Log-Map decoding, g = [7, 5]octal . 78
B.12 8 iterations, N=2000, rate=12, Log-Map decoding, g = [7, 5]octal . 78
B.13 1 iteration, N=2000, rate=13, Log-Map decoding, g = [7, 5]octal . 78
B.14 3 iterations, N=2000, rate=13, Log-Map decoding, g = [7, 5]octal . 78
B.15 5 iterations, N=2000, rate=13, Log-Map decoding, g = [7, 5]octal . 78
B.16 8 iterations, N=2000, rate=13, Log-Map decoding, g = [7, 5]octal . 79
C.1 5 iterations, N=400, rate=12, Log-Map decoding, g = [7, 5]octal . 80
C.2 5 iterations, N=400, rate=13, Log-Map decoding, g = [7, 5]octal . 81
C.3 5 iterations, N=400, rate=12, Log-Map decoding, g = [17, 15]octal 81
C.4 5 iterations, N=400, rate=13, Log-Map decoding, g = [17, 15]octal 81
E.1 5 iterations, N=400, rate=12, Log-Map decoding, g = [7, 5]octal . 93
E.2 5 iterations, N=400, rate=13, Log-Map decoding, g = [7, 5]octal . 94
E.3 5 iterations, N=400, rate=12, SOVA decoding, g = [7, 5]octal . . . 94
E.4 5 iterations, N=400, rate=13, SOVA decoding, g = [7, 5]octal . . . 94
F.1 5 iterations, N=400, rate=12, Log-Map decoding, g = [7, 5]octal . 95
F.2 5 iterations, N=400, rate=13, Log-Map decoding, g = [7, 5]octal . 96
F.3 5 iterations, N=400, rate=12, Log-Map decoding, g = [17, 15]octal 96
F.4 5 iterations, N=400, rate=13, Log-Map decoding, g = [17, 15]octal 96
List of Abbreviations
ANSI American National Standard Institute.
APP A Posteriori Probability.
ARIB Association of Radio Industries and Business.
AWGN Additive White Gaussian Noise.
BER Bit Error Rate.
BPSK Binary Phase Shift Keying.
CCs Convolutional Codes.
CS Circuit Switch.
CWTS Chinese Wireless Telecommunications Standard.
FEC Forward Error Correction.
FER Frame Error Rate.
GSM Global System For Mobile Communications.
IMT International Mobile Telecommunications.
LLR Log Likelihood Ratio.
LPF Low Pass Filter.
MAP Maximum-A-Posteriori.
PCCC Parallel Concatenated Convolutional Code
PS Packet Switch.
PSD Power Spectral Density.
QPSK Quadrature Phase Shift Keying.
RSC Recursive Systematic Convolutional.
SISO Soft-Input Soft-Output.
SNR Signal to Noise Ratio.
SOVA Soft-Output Viterbi Algorithm.
STS Space Time Spreading.
xiii
List of Abbreviations xiv
TC Turbo Codes.
TTA Telecommunications Technology Association.
TTC Telecommunications Technology Committee.
VA Viterbi Algorithm
UMTS Universal Mobile Telecommunications System.
WCDMA Wide-band Code Division Multiple Access.
3GPP Third Generation Partnership Project.
Chapter 1
Introduction
The reason for using turbo codes is due to the fact that noise and distortion
typically hamper the transmission quality in communication systems. Channel
coding can solve this problem. An example in real-time communications, vari-
able delays coming from retransmissions are very disturbing. In broadcasting
applications, retransmission is impossible to implement.
Forward error correction (FEC) adds redundancy to the bit stream which means
information can be properly reproduced at the receiver side.
1.1 Objectives of Thesis
The objectives of this thesis is to investigate the following topics,
1. To carry out an investigation of turbo codes.
2. To implement and validate classical turbo codes.
3. To investigate Universal Mobile Telecommunications System (UMTS) and
UMTS turbo codes (Valenti and Sun, 2001).
4. To implement and investigate UMTS turbo codes in Simulink.
5. To investigate Space Time Spreading channel.
6. To test to what extent turbo coding improves the Bit Error Rate (BER)
of Space Time Spreading (STS).
1
Introduction 2
Figure 1.1 Model for combination of turbo code and STS.
Figure 1.2 An example of the components that can be included in this study.
Figure 1.1 depicts the model used to test to what extent the turbo codes improve
the bit error rate (BER) of a Space Time Spread (STS) channel. An example
of the components that can be used for this system is given in Figure 1.2. At
the transmitter end the source can be an MPEG file, the encoding is carried
out using turbo encoders and the modulation scheme is Binary Phase Shift
Keying (BPSK). At the receiver side, the demodulation is carried out by BPSK
modulation, the turbo decoder is used to improve the BER and the output
would be the same quality as the input.
1.2 Outline of Thesis
Chapter 2 gives a brief introduction into the convolutional codes and different
parameters associated with them. It outlines important features including the
constraint length, generator matrix and rate. This is important as convolutional
Introduction 3
codes are the building blocks for turbo codes.
In Chapter 3, a detailed outline of turbo codes proposed by Berrou et al in
1993 is given. This chapter covers both the turbo encoder and turbo decoder
presenting schematics for both. The theoretical performance is discussed along
with the effects of such components as puncturing and interleaver sizes have on
the performance of turbo codes. Decoding algorithms utilized by turbo codes
are discussed in detail.
Chapter 4 presents simulation results for the classical turbo codes discussed in
Chapter 3. The simulations are for varying sizes of the input frame size N,
different generator matrix and two different coding rates, r = 12
and r = 13.
Chapter 5 presents the main objective of this thesis, which is to test to what ex-
tent turbo codes improve space time spreading channels. It begins with an intro-
duction to the space time spreading channel and describes the implementation
and validation of this channel. It then presents an introduction to the Universal
Mobile Telecommunications System or UMTS. The implemented UMTS turbo
codes and simulation results are presented. Finally, the system of turbo codes
across STS, which was designed and implemented in Simulink is presented. The
simulation results are presented and analysed.
Chapter 6 is the conclusion of this thesis. An outline for future work is sug-
gested. Various appendices are provided with information on different aspects
of this thesis which include tables of simulation results obtained for the classical
turbo codes.
Chapter 2
Convolutional Coding
2.1 Introduction
Convolutional Codes (CCs) can be classified as systematic or non-systematic
codes, where the original information bits of symbols in the systematic codes,
make up part of the encoded codeword, so it becomes possible to recognise the
encoded codeword at the output.
Turbo codes are an example of convolutional channel coding which facilitates
the operation of communication systems near the Shannon theoretical limit.
These codes were proposed in 1993 by Berrou, Glauvieux and Thitimajshima
(Berrou et al., 1993).
2.2 Convolutional Encoding
Figure 2.1 is an example of an encoder using convolutional coding. These en-
coders are usually implemented using linear shift registers. In general, a k -bit
information symbol is entered into the encoder consisting of K shift-register
stages.
In Figure 2.1 the two shift-register stages are s1 and s2. The Constraint Length
of the code refers to the number of shift-register stages K.
The next state of this state machine is determined by the current shift-register,
in case s1 and s2 and the incoming bit bi. The symbol n usually denotes the
4
Convolutional Coding 5
Figure 2.1 Systematic half-rate, constraint-length two convolutional encoderCC(2,1,2). (Rooyen et al., 2000)
Convolutional Coding 6
Figure 2.2 State transition diagram of the CC(2,1,2) systematic code, where brokenlines indicate transitions due to an input one, while continuous lines correspond toinput zero (Hanzo et al., 2002).
number of output bits and the coding rate is given by r = kn. Here, n generator
polynomials are necessary for generating n bits.
Generally, a CC is denoted as a CC(n,k,K ) scheme. With the n generator
polynomials given, the code is fully specified. Figure 2.2 depicts the operation
of a convolutional encoder state diagram. From state (s1,s2)=(1, 1) a logical one
input results in a transition to (1,1), while an input zero leads to state (0,1).
The convolutional encoders operational characteristics can be described using
a state transition diagram. An example for this is given in Figure 2.2.
The incoming bit bi governs the state transitions. There are two bits in the
shift register at any moment producing four possible states in the machine. In
Figure 2.2 a continuous line represents a state transition due to a logical zero.
The broken line represents a state transition activated by a logical one.
Convolutional Coding 7
2.3 Conclusion
This chapter presented a brief description of convolutional codes. This is im-
portant background information as turbo codes are also known as PCCC or
Parallel Concatenated Convolutional Codes. The turbo encoder is made up of
two or more convolutional encoders concatenated in parallel as the name sug-
gests. These convolutional encoders are used with interleavers to produce the
turbo encoder, which will be discussed in Chapter 3.
Chapter 3
Turbo Codes
3.1 Introduction
The invention of turbo codes (Berrou et al., 1993) not only assisted in attaining
a performance approaching the Shannon theoretical limits of channel coding
for transmissions over Gaussian channels, but also revitalised channel coding
research.
Turbo coding opened a new chapter in the design of iterative detection-assisted
communication systems, such as turbo trellis coding schemes and turbo channel
equalisers. Similarly dramatic advances have been attained with the advent of
space-time coding, when communicating over dispersive, fading wireless chan-
nels.
Recent trends indicate that better overall system performance maybe attained
by jointly optimising a number of system components, such as channel coding,
channel equalization, transmit and receive diversity and the modulation scheme,
than in case of individually optimising the system components (Hanzo et al.,
2002).
This chapter discusses the theory behind the classical turbo codes and the com-
ponents that are involved in designing them. This includes background infor-
mation on the encoder and decoder, with the schematics for both presented and
explained. Other issues are discussed such as puncturing, decoding algorithms,
interleaver design, extrinsic information and intrinsic information.
8
Turbo Codes 9
Figure 3.1 Turbo encoder schematic (Rooyen et al., 2000)
3.2 Turbo Coding
3.2.1 Turbo Encoding
Two or more recursive systematic convolutional (RSC) encoders compose a
turbo encoder. Typically they are the same and the same data is received by
the two encoders with streams to each encoder permuted by an interleaver. Due
to the interleavers fixed structure and since they generally work on data in a
block-wise manner, turbo codes are classified as block codes. The combination
of interleaving and RSC encoding ensures that most code words produced by a
turbo code have high Hamming weights.
A good first order estimate of code performance is the minimum distance of a
linear-block code. “For linear block codes, the minimum distance is the smallest
non-zero Hamming weight of all the valid code words” (Rooyen et al., 2000).
Figure 3.1 depicts a turbo encoder designed by Berrou et al.
Due to the small number of low weight code words turbo codes can perform
well at low signal to noise ratio (SNR). The relatively small minimum distance
of the code limits the performance of turbo codes at higher signal to noise ratio.
Therefore, it can be said that the goal of turbo codes design is to reduce the
multiplicity of low weight code words.
3.2.2 Turbo Decoding
Figure 3.2 depicts a turbo decoder designed by Berrou at al. The problem of
estimating the states of a Markov process observed through noise has two well
Turbo Codes 10
Figure 3.2 Turbo decoder schematic (Rooyen et al., 2000)
known trellis-based solutions.
1. The Viterbi Algorithm (Forney, 1973)
2. The (Symbol-to-Symbol) Maximum-A-Posteriori (MAP) Algorithm. (Bahl
et al., 1974)
The two algorithms differ in their optimality criterion. The Viterbi algorithm
finds the most probable transmitted sequence, while the MAP attempts to find
the most likely transmitted symbol, given the received sequence (Valenti, 1999).
The Viterbi Algorithm finds the most probable transmitted sequence using the
expression in Equation 3.1.
x = arg{max
xiP [x|y]
}(3.1)
While the Maximum-A-Posteriori attempts to find the most likely transmit
symbol
xi
given the received sequence.
xi = arg{max
xiP [x|y]
}(3.2)
Turbo Codes 11
Figure 3.3 Turbo Decoder block diagram (Rooyen et al., 2000)
The problem of decoding turbo codes involves the joint estimation of two (for
the punctured (see section 3.3.3) rate- 12
case) or more Markov processes, one
for each constituent code. While in theory it is possible to model a turbo code
as a single Markov process (Rooyen et al., 2000), it then becomes very complex
and difficult to calculate. Therefore, turbo coding first independently estimates
the individual Markov processes using two trellis based decoding algorithms.
Due to the fact that the two Markov processes are linked by an interleaver, ad-
ditional gain can be achieved by sharing information between the two decoders
in an iterative fashion (Rooyen et al., 2000). The output of one decoder can
be used as a priori information by the second decoder. There is little advantage
in sharing information between the two decoders if the output of one is a hard
decision. Having said that, there is advantage in sharing if soft decisions are
used. Considerable gains can be achieved by performing multiple iterations of
decoding at the expense of increased processing delay.
3.2.2.1 Turbo Decoder Block Diagram
The Schematic for a standard turbo decoder is shown in Figure 3.3.
Turbo Codes 12
The systematic channel observation y(s)= {y(1)1 , y
(1)2 , ..., y
(1)Ntc} is received by the
first decoder. It also receives the observations of the first encoders parity bits
y(p)={y(2)1 , y
(2)2 , ..., y
(2)Ntc} and a priori information Z(1) derived from the second
decoder’s output, where Ntc is the interleaver size.
Log-Likelihood Ratio or LLR, Λ(1)={Λ(1)1 , Λ
(1)2 , ..., Λ
(1)Ntc} is produced by the
first decoder.
By subtracting the weighted systematic and a priori inputs from the first de-
coders output, the extrinsic information of the first decoder L(1) is found.
Once the extrinsic information is interleaved, it is used by the second decoder
as a priori information. The interleaved and weighted systematic channel ob-
servation r(1) and weighted observations of the second encoders parity bits r(3)
are received by the second decoder as well. The second decoder produces the
LLR, Λ(2), the weighted systematic and a priori inputs of the second decoders
are subtracted to produce the extrinsic information L(2).
The first decoder utilises the extrinsic information produced by the second de-
coder. This information is de-interleaved and used as the a priori input to the
first decoder during the next iteration.
After Itc iterations, the final estimate of the message is found by de-interleaving
and hard-limiting the output of the second decoder.
ui =
1 if Λ(2)π−1(i) ≥ 0,
0 if Λ(0)π−1(i) < 0.
(3.3)
3.3 Factors that effect Turbo Code Performance
Figure 3.4 depicts the turbo code design space (Berens et al., 1999). This
design space can be grouped into two categories, i.e. into a service dependent
and an implementation dependent. The Service dependent influence the quality
of service and the data rate.
The Implementation dependent influence the maximum decoding delay, the im-
Turbo Codes 13
Figure 3.4 Turbo code design space (Berens et al., 1999).
plementation complexity, system flexibility and modularity.
3.3.1 Turbo Interleaver/Permuter
This defines the service dependent part of the system design space. Depending
on the code words, one of the simple components are teamed with other code
words from the other encoders, which affects the weight distribution of the code
words produced by the turbo decoder.
The performance of the turbo codes depends on the data sequence which pro-
duces low encoded weights at the output of one encoder effectively matching
them with permutations of the same data sequence that yield higher encoded
weights at the outputs of the other encoders.
Three characteristics are important for the interleaver.
1. Interleaver size Ntc: As the interleaver size increases the performance
of the output improves (Benedetto and Divsalar, 1998). This is the most
important factor influencing the turbo code performance.
2. Interleaver gain : In terms of error performance, with the increased
interleaver size, decoding delay increases. Balance must be found between
Turbo Codes 14
acceptable performance and tolerable latency. Interleaver design becomes
critical at high SNR (Benedetto and Montrosi, 1996). The low weight
code words dominate the performance. Turbo codes perform well at low
SNR with almost any (randomly permutated) interleaver. This is true if
the inputs at the RSC encoders are sufficiently uncorrelated.
3. Interleaver Selection: In principle it is possible to design deterministic
permutations that work better if randomly chosen permutations perform
well. A good reference is (Divsalar et al., 1995) in which they investi-
gate several non-random permutations. They include permutations based
on block interleavers, permutations based on circular shifting and Semi-
random (“S-random”) permutations.
3.3.2 Constituent Encoder
Constituent encoders are chosen from encoders that are recursive and sys-
tematic. In (Divsalar et al., 1995) they argue that for a non-recursive en-
coder, approximately all low weight input sequences are self terminating. Self-
terminating is used to force the encoder back to the all-zero state. This is done
without the aid of the trellis termination scheme (Dolinar and Divsalar, 1995).
While not-self-terminating is where the encoder does not return to the non-zero
state until this is forced on to it at the end of the block (Dolinar and Divsalar,
1995).
Therefore, the output is strongly correlated with the input weight for all possible
input sequences. These encoders are very desirable as constituent encoders due
to this characteristic. The desirability for systematic encoders comes from the
fact that puncturing can be employed to realise code rates that are higher than
those code rates achievable with non-systematic encoders.
The performance of turbo codes is not significantly influenced by the choice of
constituent RSC encoder and in particular its codes. Turbo codes use simple
constituent codes with constraint length of Ktc=3, 4 or 5 for the reasons outlined
above.
Turbo Codes 15
3.3.3 Puncturing
A common method undertaken in increasing the code rate of turbo codes is
called puncturing. This method punctures the parity bits, therefore reducing
the total number of code bits. The typical method of puncturing is where the
first parity bits are punctured at odd positions and the second parity bits at
even positions (Mielcszarek and Svensson, 2000).
3.3.4 Decoding Algorithm
The number of iterations has an impact on the performance because most de-
coding algorithms are iterative. (Robertson, 1999) and (Robertson, 1994) say
that the number of iterations can be static or determined dynamically during
decoding after evaluation of some criteria. For this project the number of itera-
tions is fixed, since this is a study into the extent to which turbo codes improve
the bit error rate of the space time spreading channel.
3.4 Decoding Algorithms
3.4.1 Introduction
This section presents the theory behind the decoding algorithms used in Turbo
Codes. The decoding algorithms presented and discussed are the soft output
Viterbi algorithm (SOVA), Maximum A-Posteriori (MAP), the Max-Log-MAP,
Log-Map algorithms, Extrinsic and Intrinsic Information and Soft-Input/Soft-
Output (SISO).
3.4.2 The Soft Output Viterbi Algorithm (SOVA)
This has two variations from the classical Viterbi Algorithm, which allows it to
be used as a component decoder for turbo codes.
1. The path metrics utilised are modified to take account of a priori infor-
mation when selecting the maximum likelihood path through the trellis
(Hanzo et al., 2002).
Turbo Codes 16
2. A modification of the algorithm takes place to provide a soft output in
the form of a-posteriori LLR Λ(uk|y) for each decoded bit (Hanzo et al.,
2002).
The modification of path metrics is carried out as follows (Hanzo et al., 2002).
The states along the surviving path are given by the state sequence Ssk. This
is at state Sk = s at stage k in the trellis. Equation 3.4 gives the probability
that this is the correct path through the trellis: (Note that the symbol ∧ in this
instance denotes logical ’and’.)
P (Ssk|yj≤k
) =P (Ss
k ∧ yj≤k
)
P (yj≤k
)(3.4)
The probability of the received sequence yj≤k
for transitions up to and including
the kth transition is constant for all paths Sk through the trellis to stage k. The
probability that the path Ssk is the correct one is proportional to P (Ss
k ∧ yj≤k
).
It can be said that to maximize P (Ssk ∧ y
j≤k), the path metric must be maxi-
mized.
In a recursive manner, the path metric is easily computable, as we go from the
(k − 1)th stage in the trellis to the kth stage. If the path Ssk at the kth stage,
has the path S sk−1 for its first (k − 1) transitions, then assuming a memoryless
channel, Equation 3.5 holds.
P (Ssk ∧ y
j≤k) = P (S s
k−1 ∧ yj≤k−1
) · P (Sk = s ∧ yk|Sk−1 = s) (3.5)
A suitable metric for the path Ssk is given by M(Ss
k).
M(Ssk) = ln(P (Ss
k ∧ yj≤k
))
= M(S sk−1 + ln(P (Ss ∧ |Sk−1 = s)))
(3.6)
Using Equation 3.7
γk(s, s) = P ({y
k∧ Sk = s
}|Sk−1 = s) (3.7)
Turbo Codes 17
which is the probability that given trellis was in state s at time k−1. It moves to
state s and the received channels sequence for this transition is yk, the following
equation is obtained:
M(Ssk) = M(S s
k−1) + ln(γk(s, s)) (3.8)
where γk(s, s) is the branch transition probability for path from Sk−1 = s to
Sk = s. Hence (Hanzo et al., 2002):
Γk(s, s) = ln(γk(s, s))
= ln(C.e(ukL(uk)/2)).exp[ Eb
2σ2 2a∑n
l=1 yklxkl])
= ln(C.e(ukLuk/2).exp[Lc
2
∑nl=1 yklxkl])
= C + 12ukL(uk) + Lc
2
∑nl=1 yklxkl
(3.9)
Where Eb is the transmitted energy per bit, σ2 is the noise variance and a is
the fading amplitude with a = 1 for non-fading AWGN channel.
Equation 3.8 can be rewritten by substituting equation 3.9 into it, which gives
the following equation.
ln(γk(s, s)) = Γk(s, s)
= C + 12ukL(uk) + Lc
2
∑nl=1 yklxkl
(3.10)
Since the term C is a constant, it can be omitted hence,
M(Ssk) = M(S s
k−1) +1
2ukL(uk) +
Lc
2
n∑
l=1
yklxkl (3.11)
Finally it can be said that the metric in the SOVA is updated as in the Viterbi
algorithm. The term ukL(uk) is included so that the a-priori information is
available to be taken to account. The application for such a modification is
the requirement to use a-priori information in the Soft-in Soft-out component
decoders of turbo decoders (Hanzo et al., 2002).
The second section of the algorithm is to give soft outputs and a description is
given below (Hanzo et al., 2002).
Turbo Codes 18
At stage k in the trellis, two paths will reach the state Sk = s in a binary
trellis. Equation 3.11 defines the metric for merging paths. The lower metric is
discarded. The metric difference is defined as:
∆sk = M(Ss
k)−M(Ss
k) ≥ 0 (3.12)
where Ssk and S
s
k reach state Sk = s and have metrics M(Ssk) and M(S
s
k) and
the path Ssk is selected due to its higher metric.
Probability that the correct decision has been taken and the path Ssk is the
selected path is given by Equation 3.13.
P (correct− decision− at− Sk = s) =P (Ss
k)
P (Ssk) + P (S
s
k)(3.13)
Taking into account the metric definition given by Equation 3.6, the following
is obtained:
P (correct− decision− at− Sk = s) =eM(Ss
k)
eM(Ssk) + eM(S
s
k)=
e∆sk
1 + e∆sk
(3.14)
also the LLR that is the correct decision is given by:
L(correct−decision−at−Sk = s) = ln(P (correct− decision− at− Sk = s))
(1− P (correct− decision− at− Sk = s))= ∆s
k
(3.15)
Once the end of the trellis has been reached and the Maximum Likelihood (ML)
path has been identified through the trellis, the LLRs, giving the reliability of
the bit decisions along the ML path, needs to be found.
Studies carried out on the Viterbi algorithm have shown that all paths that
have reached the stage l in the trellis would normally have come from the same
path at some point before l in the trellis (Hanzo et al., 2002). This point before
1 is taken to be γ transitions before the point l, where in most cases γ is itself
five times the constraint length of the convolutional code.
Turbo Codes 19
The value of uk would not be affected if the algorithm had selected any of the
paths which merged with the ML path after this point. This is due to existence
of such paths that have diverged from the ML path after the transition from
Sk−1 = s to Sk = s.
So SOVA takes into account the probability that the paths merging with the
ML path from stage σ to stage k + σ in the trellis were incorrectly discarded
when calculating the LLR of the bit uk.
This is carried out by considering the values of the metric difference ∆sii for
all states si along the ML path from trellis stage i = k to i = k + δ. LLR is
approximated as follows:
L(uk|y) ≈ ukmini=k...k+δ∆sii
uk 6= uik
(3.16)
uk is the value of the bit given by the ML path and uik is the value of this bit
for the path which merged with the ML path and was discarded at trellis stage
i.
3.4.3 Map Algorithm
The main objective of this algorithm is to decode the received sequence y to
give the a-posteriori LLR Λ(uk|y) (Hanzo et al., 2002).
Note: The three terms αk(s), γk(s, s) and βk(s) are used to calculate the LLRs
L(uk|y) for each bit uk. The MAP algorithm finds αk(s) and βk(s) for all states
s throughout the trellis, i.e. for k = 0, 1, ..., N − 1 and γk(s, s) for all possible
transitions from state Sk−1 = s to state Sk = s, again for k = 0, 1..., N − 1
(Hanzo et al., 2002).
To calculate the γk(s, s) the algorithm uses the channel values ykl and the a-
priori LLR L(uk), in accordance with:
Turbo Codes 20
γk(s, s) = P (uk)P (yk| {s ∧ s})
= CeukL(uk)/2.exp( Eb
2σ2 2a∑n
l=1 yklxyl)
= CeukL(uk)/2.exp(Lc
2
∑nl=1 yklxyl)
(3.17)
where C = C(1)Luk
C(2)y
kC(3)
xk. The term C does not depend on the sign of the bit uk
or the transmitted codeword xk. Therefore, C is a constant for the summations
and cancels out.
The γk(s, s) values are calculated as the channel values ykl are received, and are
later used to calculate αk(s, s).
αk(s) =∑
alls
γk(s, s).αk−1(s) (3.18)
The βk(s, s) values are calculated using backward recursion:
βk−1(s) =∑
alls
βk(s).γk(s, s) (3.19)
Once all the calculated values of αk(s, s), βk(s, s) and γk(s, s) have been ob-
tained, they are then used to calculate the values of L(uk|y).
L(uk|y) = ln
∑(s,s)=⇒uk=+1 αk−1(s)γk(s, s)βk(s)∑(s,s)=⇒uk=−1 αk−1(s)γk(s, s)βk(s)
(3.20)
Equation 3.20 gives the conditional LLR L(uk|y) that the MAP decoder delivers.
Figure 3.5 depicts a summary of the key operation in the MAP algorithm taken
from (Hanzo et al., 2002).
3.4.4 The Max-Log-Map Algorithm
This algorithm (Hanzo et al., 2002) converts the equations used in the MAP
algorithms to a less complex format. A description of the process follows:
1. αk−1(s) is calculated in a forward recursive manner using Equation 3.18.
2. βk(s) values are calculated in a backward recursion using Equation 3.19.
Turbo Codes 21
Figure 3.5 A summary of the key operations in the MAP algorithm (Hanzo et al.,2002).
Turbo Codes 22
3. The branch transition probabilities γs(s, s) is calculated using Equation
3.17.
The simplification by the Max-Log-MAP algorithm takes place by transferring
these equations into the log arithmetic domain and using the following approx-
imation:
ln(∑
i
exi) ≈ maxi
(xi) (3.21)
Where maxi(xi) is the maximum value of xi. Then Ak(s), Bk(s) and Γk(s, s)
are defined as:
Ak(s) = ln(αk(s)) (3.22)
Bk(s) = ln(βk(s)) (3.23)
Γk(s, s) = ln(γk(s, s)) (3.24)
Substituting the approximations given in Equations 3.22, 3.23 and 3.24 in Equa-
tion 3.18 yields:
Ak(s) ≈ maxs
(Ak−1(s) + Γk(s, s)) (3.25)
A branch metric term Γk(s, s) is added to the previous value Ak−1(s) to find
a new value As for that path. Therefore, according to Equation 3.25, the new
value of Ak(s) is the maximum of the Ak(s) values of the various paths reaching
the state Sk = s.
The Ak(s) gives the natural logarithm of the probability that the trellis is in
the state Sk = s at the stage k. Due to the approximation of Equation 3.21,
only the maximum likelihood path through the state Sk = s is considered when
calculating this probability.
Turbo Codes 23
It then follows that the value of Ak is the Max-Log-Map algorithm which gives
the probability of the most likely path through the trellis to state Sk = s, rather
than the probability of any path through the trellis to state Sk = s. Due to
the approximations of this algorithm, the performance is sub-optimal compared
with the MAP algorithm.
Equation 3.19 is converted using the approximation to form:
Bk−1(s) ≈ maxs
(Bk(s) + Γk(s, s)) (3.26)
Substituting Equations 3.25 and 3.26 into Equation 3.17 gives:
Γk(s, s) = C +1
2ukL(uk) +
Lc
2
n∑
l=1
yklxkl (3.27)
Where C = lnC does not depend on uk or on the transmitted codeword xk and
so can be considered a constant and omitted.
Equation 3.20 is then converted to form:
L(uk|y) ≈ max(s,s)=⇒uk=+1(Ak−1(s) + Γk(s, s) + Bk(s))
−max(s,s)=⇒uk=−1(Ak−1(s) + Γk(s, s) + Bk(s))(3.28)
Every transition from the trellis stage Sk−1 to stage Sk is considered in calcu-
lating the a-posteriori LLR L(uk|y) for each bit uk. There are two groupings
which occur; uk = +1 and uk = −1, with each group that might have occurred
if uk equalled to the values mentioned above.
The maximum value of (Ak−1(s) + Γk(s, s) + Bk(s)) is found for both of these
groups. Then the a-posteriori LLR is calculated based on only these two ‘best’
transitions. There will be 2× 2k−1 transitions at each stage for a binary trellis.
Where K is the constraint length of the convolutional code (Hanzo et al., 2002).
3.4.5 Log-Map Algorithm
Due to Equation 3.21, the Max-Log-Map algorithm gives a slight degradation
in performance compared to the MAP algorithm. The drop in performance is
Turbo Codes 24
approximately 0.35dB when used for iterative decoding of turbo codes (Hanzo
et al., 2002).
Using the Jacobian algorithm, the approximation of Equation 3.21 can be made
exact, because (Hanzo et al., 2002):
ln(ex1 + ex2) = max(x1, x2) + ln(1 + e−|x1−x2|)
= max(x1, x2) + fc(|x1 − x2|)= g(x1, x2)
(3.29)
The term fc(x) is utilized as a correction term. The calculations for this algo-
rithm are the same as that of Max-Log-Map algorithm except that Equations
3.25 and 3.26 do not have the correction factor which is included in Equation
3.29.
The maximisation will be over two terms in the binary trellises. The approxi-
mations of Equations 3.25 and 3.26 are corrected by adding in the term fc(δ),
where δ is the magnitude of the difference between the metrics of the two merg-
ing paths.
Using the Jacobian logarithm, the approximation in Equation 3.28 giving the
a-posteriori LLR’s L(uk|y) can be eliminated. There will be 2k−1 transitions
to consider in each of the maximisation of Equation 3.28. So Equation 3.21 is
generalised in order to handle more than two xi terms:
ln(I∑
i=1
exi) = g(xI , g(xI−1, . . . , g(x3, g(x2, x1))) . . .) (3.30)
A lookup table can be used to store values of the terms fc(δ), which means
the correction term does not need to be calculated for each value of δ. It was
discovered in (Robertson et al., 1995) that only eight values for δ, ranging from
0 to 5 need to be contained in the table. This algorithm is slightly more complex
than Max-Log-MAP algorithm but it gives exactly the same performance as the
MAP algorithm.
Turbo Codes 25
3.4.6 Extrinsic and Intrinsic Information
3.4.6.1 Extrinsic Information
Extrinsic information is information from other symbols in the code word se-
quence imposed by the code constraints without using any information concern-
ing the symbol itself.
Extrinsic information relating to a specific symbol is only determined by its
surrounding symbols.
The term Soft Output refers to internal variables of the decoder, indicating a
measure of decoding reliability of bits instead of providing hard decisions.
3.4.6.2 Intrinsic Information
Intrinsic information is a a priori information of the symbol without any code
constraints in relation to a data symbol.
This information is used by the constituent decoders as additional information
related to each code symbol.
In iterative decoding, the extrinsic information provided by the previous decod-
ing step becomes the a priori information of the current decoding stage.
3.4.7 Soft-Input/Soft-Output (SISO) Decoding algorithm
Soft decisions typically take the form of the a posteriori LLRs Λ, of the form
given by:
Λi = lnP [ui = 1|y]
P [ui = 0|y](3.31)
where ui is the information input bit.
A decoding algorithm that accepts an a priori information at its input and
produces an a posteriori information at its output is called a soft-input/soft-
output (SISO) decoding algorithm. The inputs and the outputs of the SISO
decoder for a rate of 12
code are shown in Figure 3.6.
The SISO decoder accepts the three following inputs:
Turbo Codes 26
Figure 3.6 Soft-input/Soft-output decoder for a rate 1/2 RSC code (Hanzo et al.,2002).
1. The systematic observation y(s)i (agreeing with transmitted bit x
(1)i ).
2. The parity observations y(p)i (agreeing with either transmitted bits x
(2)i or
x(3)i or both.)
3. The a priori information Zi, which is derived from the other decoders
output.
The decoder then produces an output in the LLR form. The log-Likelihood at
the output of a SISO can be factored into 3 terms (Hagenauer, 1996).
Λi =4a
(s)i Es
No
y(s)i + Zi + Li (3.32)
Li - the extrinsic information. a(s) = a(1) - is the fading amplitude associated
with the received systematic observation, y(s)i .
While the first two terms are related to the systematic channel observation
y(s)i and information derived by the other decoder Zi, the extrinsic information
represents new information derived by the current stage of decoding.
In order to prevent positive feedback, it is important that only the extrinsic
information is passed from one decoder to the other.
Thus a priori information at the input of one decoder is found by subtracting
two values from its output - a value proportional to the decoders systematic
input as well as the a-priori input of another decoder.
Turbo Codes 27
Li = Λi − 4a(s)i Es
No
y(s)i − Zi (3.33)
3.5 Conclusion
This chapter presented a detailed description of the classical turbo codes, which
were designed and proposed by Berrou et al in 1993. It discussed several aspects
of the turbo codes, which included a detailed theoretical background to decod-
ing algorithms, like SOVA, MAP, the Max-Log-Map, Log-Map, soft-input/soft-
output. The concepts of extrinsic and intrinsic information and the a-priori
information, were also introduced.
Interleaver designs and puncturing were presented and discussed briefly. De-
tailed schematics of the turbo design of the decoder and encoder were pre-
sented.
Chapter 4
A study of the Classical TurboCodes across AWGN channel
4.1 Introduction
This chapter presents simulation results for the implementation of classical
turbo codes based on the Matlab code provided by (Wu, 2000). This study
was undertaken to gain a further understanding of classical codes proposed by
Berrou et al in 1993. It was done by studying different parameters determin-
ing performance of turbo codes . The parameters included the frame size (N),
generator matrix (g), code rate (r) and the number of iterations in the de-
coding process. After presenting diagrams depicting these results, this chapter
discusses the influences of the above mentioned parameters. It concludes by
highlighting some of the major results of turbo codes.
The frame size, N, was varied and the following N sizes were used for this project:
N=100,400,1024 and 2000. The generator matrices used were g = [7; 5]octal,
g = [17; 15]octal and g = [37; 31]octal for the listed frame sizes. The decoding
algorithms used were Log-Map and SOVA discussed in detail in Chapter 3.
The number of iterations were fixed at the values of 1, 3, 5 and 8. The resulting
bit error rate (BER) and frame error rate (FER) are presented. (Please refer
to the appendices for the results of each experiment on the different parameters
listed above.)
28
A study of the Classical Turbo Codes across AWGN channel 29
4.2 Influence of the Size of input frame (N)
After the simulations results were collected and analyzed it was evident that
the influence of the size of the frame or N is an important factor to consider
while undertaking a project in the area of turbo codes. From the results, it is
visible that as N increases the performance of turbo codes improves. Both the
bit error rate and frame error rate are reduced with the increase of N. This is
due to the larger number of data available to the turbo decoder. Figure 4.1 and
Figure 4.2 depicts plots for a simulation with N = 100, N = 400, N = 1024
and N = 2000, and code rates of r = 12
and r = 13
respectively. Both codes
have the same generator matrix of g = [7; 5]octal and use the Log-Map decoding
algorithm. It can be seen that the simulation with the larger value for N,
performs better than when the smaller value is used giving a lower BER for the
same Eb
No. This is also true for the frame error rate.
4.3 Influence of the number of Iterations
The number of decoding iterations is also very important in the design if turbo
codes as seen in the Figure 4.8. From the results obtained, it is evident that
the increase in iteration improved the performance and decreased the bit error
rate and frame error rate. It can also be seen that smaller frame size, such
as N = 100, do not need a high number of iterations to converge, 3 to 5 is
sufficient. This can be seen in Figures 4.5 and 4.6 which depict simulations
for N = 100 with r = 12
and r = 13
and the generator matrix is g = [7; 5]octal
with constraint length k = 3. With larger frame sizes, such as that depicted
in Figures 4.7 and 4.8, (frame size N = 2000) for convergence to occur more
iterations are required.
4.4 Influence of Code Rate (r)
For this simulation code rates of r = 12
and r = 13
are used. Code rate of r = 12
is
achieved by puncturing the parity bits of the constituent encoders (Wu, 2000).
It can be seen that the lower the code rate the lower the bit error rate and frame
A study of the Classical Turbo Codes across AWGN channel 30
0 0.5 1 1.5 2 2.5 3 3.5 410
−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
BER versus Eb/No and r=1/2, Iteration number = 5, g=[7;5]octal, k=3
N=100N=400N=1024N=2000
Figure 4.1 Comparison of N = 100, 400, 1024 and 2000 for bit error rate (BER)versus Eb
Nowith g = [7; 5]octal, rate = 1
2 , number of iteration is 5.
A study of the Classical Turbo Codes across AWGN channel 31
0 0.5 1 1.5 2 2.5 3 3.5 410
−8
10−7
10−6
10−5
10−4
10−3
10−2
10−1
BER versus Eb/No and r=1/3, Iteration number = 5, g=[7;5]octal, k=3
Eb/No(dB)
Bit
Err
or R
ate
(BE
R)
N=100N=400N=1024N=2000
Figure 4.2 Comparison of N = 100, 400, 1024 and 2000 for bit error rate (BER)versus Eb
Nowith g = [7; 5]octal, rate = 1
3 , number of iteration is 5.
A study of the Classical Turbo Codes across AWGN channel 32
0 0.5 1 1.5 2 2.5 3 3.5 410
−6
10−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
BER vs dB with N=400, g=[7;5], k=3 r=1/2
1 iteration3 iterations5 iterations8 iterations
Figure 4.3 Bit Error Rate (BER) versus EbNo
with N = 400, with g = [7; 5]octal,rate = 1
2 .
A study of the Classical Turbo Codes across AWGN channel 33
0 0.5 1 1.5 2 2.5 3 3.5 410
−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
BER versus Eb/No and r=1/3, N=400, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure 4.4 Bit Error Rate (BER) versus EbNo
with N = 400, with g = [7; 5]octal,rate = 1
3 .
A study of the Classical Turbo Codes across AWGN channel 34
0 0.5 1 1.5 2 2.5 3 3.5 410
−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
BER versus Eb/No and r=1/2, N=100, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure 4.5 Bit Error Rate (BER) versus EbNo
with N = 100, with g = [7; 5]octal,rate = 1
2 .
A study of the Classical Turbo Codes across AWGN channel 35
0 0.5 1 1.5 2 2.5 3 3.5 410
−6
10−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
BER versus Eb/No and r=1/3, N=100, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure 4.6 Bit Error Rate (BER) versus EbNo
with N = 100, with g = [7; 5]octal,rate = 1
3 .
A study of the Classical Turbo Codes across AWGN channel 36
0 0.5 1 1.5 2 2.5 3 3.5 410
−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
BER versus Eb/No and r=1/2, N=2000, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure 4.7 Bit Error Rate(BER) versus EbNo
with N = 2000, with g = [7; 5]octal,rate = 1
2 .
A study of the Classical Turbo Codes across AWGN channel 37
0 0.5 1 1.5 2 2.5 3 3.5 410
−8
10−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
BER versus Eb/No and r=1/3, N=2000, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure 4.8 Bit Error Rate(BER) versus EbNo
with N = 2000, with g = [7; 5]octal,rate = 1
3 .
A study of the Classical Turbo Codes across AWGN channel 38
0 0.5 1 1.5 2 2.5 3 3.5 410
−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
plot of r=1/2 and r=1/3 for BER versus Eb/No with N=400, g=[7;5]octal, k=3
rate=1/2rate=1/3
Figure 4.9 Comparison of r = 12 and r = 1
3 with 5 iterations, N=400, g = [7; 5]octal,Log-Map decoding.
error rate are for the same Eb
No. This is seen by in Figure 4.9, which compares
r = 12
and r = 13
with the same parameters of N = 400, 5 iterations and the
generator matrix of g = [7; 5]octal. It is evident that the decrease in code rate
from 12
to 13
provided a gain of 0.5dB.
4.5 Influence of the Code generator (g)
The influence of the code generator is also an important factor for the perfor-
mance of Turbo Codes. As the constraint length was increased from k = 3 to
k = 4, the performance improved and the bit error rate and frame error rate
decreased.
Studies have also shown that reversing g such as g = [5; 7]octal instead of g =
A study of the Classical Turbo Codes across AWGN channel 39
[7; 5]octal, results in an inferior turbo code (Dolinar and Divsalar, 1995). Results
were obtained for the following two generator matrix with constraint lengths
of k = 3 and k = 4 respectively g = [7; 5]octal and g = [17; 15]octal. While the
results of the bit error rate for g = [17; 15]octal did not show better results, it
did reduce calculation time. These results and their comparisons are included
in Appendix F.
4.6 Comparison of SOVA and Log-Map decod-
ing algorithms
Figure 4.10 depicts the graph of the results of SOVA and Log-Map decoding
algorithms for N = 400 and two rates of r = 12
and r = 13. It can be seen that
the Log-Map decoding algorithms produces lower values of the bit error rate.
4.7 Conclusion
This chapter presented the results obtained from simulating the classical turbo
codes that were proposed by Berrou et al in 1993. By varying the parameters,
a detailed study was undertaken with the following important conclusions.
1. With the increase of iterations, the performance increased and lower bit
error rate and frame error rate was achieved for the same values of Eb
No.
2. For smaller frame sizes, such as N = 100, convergence in decoding is
achieved for smaller iterations numbers between 3 and 5 iterations.
3. For larger frame sizes, such as N = 2000, more iterations are required to
achieve convergence, i.e. between 8 and 10
4. Lower code rates, such as r = 13, lead to better performance than higher
rates achieved by puncturing, such as r = 12.
5. As the frame size N increased, the performance improved, with lower bit
error rate and frame error rate decreasing for the same values of Eb
No.
A study of the Classical Turbo Codes across AWGN channel 40
0 0.5 1 1.5 2 2.5 3 3.5 410
−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Comparison of Log−Map and Sova decoding algorithms for N=400, with r=1/2 and r=1/3
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
Log−Map 1/2Log−Map 1/3Sova 1/2Sova 1/3
Figure 4.10 Comparison of SOVA and Log-Map decoding algorithms for N = 400with r = 1
2 and r = 13 .
A study of the Classical Turbo Codes across AWGN channel 41
6. Increase of the constraint length k, leads to the better performance, but
this is at the expense of increased complexity.
7. Log-Map decoding algorithm out performs the SOVA decoding algorithm
in terms of reducing bit error rate.
From the above listed results, it can be seen that this set of implemented turbo
codes obtains similar results presented by Berrou et al. in the paper (Berrou
et al., 1993) presented in 1993 and (Wu, 2000).
Chapter 5
Turbo Codes Across Space TimeSpreading Channel
5.1 Introduction
This section begins with a discussion on the theory of Space Time Spreading
Channel with two transmitter antennas. A discussion of the implementation
and validation follows. A new form of Turbo Codes, called UMTS turbo codes,
is presented. This is followed by the implementation and validation, where
simulation results of bit error rate and frame error rates are plotted. The
simulation results of the extent to which UMTS turbo codes improves STS
channels is presented and analysed.
The UMTS turbo codes and the STS channel are both developed in Simulink.
5.2 Space Time Spreading (STS)
Space Time Spreading spreads each user’s data in a different way on each trans-
mitter antenna. This is carried out by splitting the data into sub-streams, odd
and even, {b1} and {b2} (Hochwald et al., 2001). The signal transmitted on
each of the antennas are given by:
t1 = (1√2)(b1c1 + b2c2) (5.1)
42
Turbo Codes Across Space Time Spreading Channel 43
t2 = (1√2)(b2c1 − b1c2) (5.2)
The block diagram of the transmitter is depicted in Figure 5.1.
Figure 5.1 A(2,1) STS scheme (Hochwald et al., 2001).
Where c1 and c2 can be any set of orthogonal 2P × 1 unit-norm spreading
sequence: c1.c2 = 0 (Hochwald et al., 2001). After de-spreading with c1 and c2,
the received signals d1 and d2 are:
d1 = (1√2)(h1b1 + h2b2) + c1n (5.3)
d2 = (1√2)(−h2b1 + h1b2) + c2n (5.4)
The constant 1√2
is a normalization factor of power so a comparison can take
place to a single antenna (Vial et al., 2003). d is defined as d = [d1d2]T , which
yields
d =1√2Hd + v (5.5)
where
Turbo Codes Across Space Time Spreading Channel 44
H =
h1 h2
−h2 h1
(5.6)
b =
b1
b2
(5.7)
v =
c1n
c2n
(5.8)
It is then shown in (Hochwald et al., 2001) that by allowing hq to denote the
qth column of H, you obtain:
Re{Hd} =1√2[|h1|2 + |h2|2]bq + Re{hqv} (5.9)
By multiplying the de-spread signal d by h1 and h2, where h1 and h2 are the
complex channel gains for path 1 and path 2, it can recover its odd and even
symbols. This then enables the receiver to get the input into soft or hard
decisions. Note that Equation 5.9 assumes perfect knowledge of the channel
coefficients and that no multi-path is present.
For this project, the soft decisions are needed for the Turbo Decoder to enable it
to work correctly. The simulation test-bed of the STS channel system developed
in (Vial et al., 2003) is used for this project. Refer to (Vial et al., 2003) for
validation of the system.
5.3 Description of Validated Space Time Spread-
ing Channel.
This section describes the implemented and validated STS channel in Simulink,
this is developed by Peter Vial of School of Electrical, Computer and Telecom-
munications Engineering and published in (Vial et al., 2003). The study in-
cluded assistance in validating the STS Simulink simulations.
Turbo Codes Across Space Time Spreading Channel 45
Figure 5.2 Block diagram of the operation of the STS model in Simulink (Vialet al., 2003).
5.3.1 The Simulink Model
Figure 5.2 depicts the block diagram of the Simulink model used in this thesis.
The operation of the STS model begins with the input obtained from a source,
in this particular case, it is a Bernoulli Binary Generator, which is a built-in
Simulink module. The signal is divided into it’s odd and even streams and it
is assumed that BPSK modulation scheme is used. The spreading sequences
are retrieved from a Matlab variable within the Matlab environment. Then
each antenna signal is calculated and transmitted. The next stage requires that
the complex coefficients of simulated space time channel are added via scalar
multiplication of signal with complex coefficients. Both streams are summed
and de-spreading is done. Finally, decoding is carried out and the output is
compared to the input so the BER is calculated. For this section, the output is
a hard decision. Figure 5.3 depicts the simulation results of m = 1 and m = 2
validating the STS channel, where m denotes the number of transmit antennas.
Turbo Codes Across Space Time Spreading Channel 46
0 2 4 6 8 10 1210
−3
10−2
10−1
100 BER versus Eb/No (dB) STS m=1and m=2.
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
m=1m=2
Figure 5.3 Plot of m = 1 and m = 2 for STS channel.
Turbo Codes Across Space Time Spreading Channel 47
5.4 Description of implementations of the UMTS
Turbo Codes
The UMTS turbo codes implementation, based on DeBang Lao’s code from
New Jersey Institute of Technology, is described in (Valenti and Sun, 2001).
Turbo codes, due to their performance, have been included in the specifica-
tions for both the WCDMA (UMTS) and cdma2000 third-generation cellular
standards (Valenti and Sun, 2001). It is predicted that the Universal Mobile
Telecommunications System (UMTS) will eventually replace the Global System
for Mobile Communications (GSM). As telecommunications systems move into
third-generation of mobile networks, UMTS addresses the increase in demand
for mobile and Internet applications (Valenti and Sun, 2001). More efficient
error control coding is achieved through the use of turbo codes. It should be
noted that from this point on the notation used is the same as that of (Valenti
and Sun, 2001).
5.4.1 UMTS Turbo Code
Figure 5.4 depicts the block diagram of the UMTS turbo encoder proposed in
(Valenti and Sun, 2001). As with the classical turbo encoders, two recursive
systematic convolutional (RSC) encoders with constraint length four are con-
catenated in parallel. The feed forward generator is 15 and feed back generator
is 13 which is equivalent to g = [15; 13]octal. These values are in octal. K
is the input number of data bits of the turbo encoder, this value is between
40 ≤ K ≤ 5114. The two switches at the start of the process are in the up
position. The data is encoded by the top encoder in its natural order while the
bottom encoder encodes the bits after they are interleaved. Depending on the
size of the input word, the interleaver is a matrix with 5, 10 or 20 rows with
anywhere between 8 to 256 columns. The interleaver accepts the data in a row
wise method, where the first data bit is in the upper-left position of the matrix.
The ordering of the rows is changed by performing inter-row permutations. This
process does not change the ordering of elements within each row. The data is
then read in a column wise method, where the first output bit comes from the
Turbo Codes Across Space Time Spreading Channel 48
Figure 5.4 Block diagram of the UMTS turbo encoder (Valenti and Sun, 2001)
upper-left position of the transformed matrix. The overall code rate is r = 13
because the data bits are transmitted together with the parity bits generated
by the two encoders.
5.4.2 UMTS Decoder Architecture
Figure 5.5 depicts the block diagram of the UMTS turbo decoder proposed by
Valenti and Sun in (Valenti and Sun, 2001). The decoder, as with the classical
turbo decoder proposed by Berrou et al in (Berrou et al., 1993), is iterative. This
is indicated by the feedback shown in Figure 5.5. Two half-iterations, one for
each constituent RSC code, make up a full iteration. The extrinsic information,
w(Xk), is produced by the second decoder, which becomes the input of the first
decoder. Before the first iteration, the extrinsic information w(Xk) is set to all
zeros, due to decoder number two not carrying out any tasks. The extrinsic
information is updated after every iteration. Due to the two encoders having
independent tails, information which is only regarded as the actual data bits
are passed between decoders.
It is sufficient to add the extrinsic information w(Xk) to the received systematic
LLR R(xk) due to the method of deriving the branch metrics, forming a new
variable V1(Xk). The input to RSC decoder number one, for 1 ≤ k ≤ K, is
Turbo Codes Across Space Time Spreading Channel 49
Figure 5.5 Block diagram of the UMTS turbo decoder (Valenti and Sun, 2001)
the combined systematic data and the extrinsic information V1(Xk), with the
received parity bits in LLR form R(Zk). The LLR Λ1(Xk) is the output of the
first RSC decoder.
V2(Xk) is formed when w(Xk) is subtracted from Λ1(Xk). Again, V2(Xk) holds
the sum of the systematic channel LLR and the extrinsic information produced
by the first decoder. The input to the second decoder is the interleaved version
of V2(Xk). This input is denoted as V2(X′k). The second input to decoder
number two is the channel LLR corresponding to the second encoders parity
bits denoted as R(Z′k). LLR Λ2(X
′k) is the output of the second decoder, this
is de-interleaved to form Λ2(Xk). V2(Xk) is subtracted from the de-interleaved
output of the second decoder, Λ2(Xk), to form the extrinsic information w(Xk).
This is then fed as an input to the first decoder in the next iteration.
The hard bit decision is taken after the completion of the iterations. If Λ2(Xk),
1 ≤ k ≤ K, where Xk = 1 when Λ2(Xk) > 0 and Xk = 0 when Λ2(Xk) ≤ 0
(Valenti and Sun, 2001).
The decoding algorithm used in this thesis is the Max-Log-Map algorithm de-
scribed in Chapter 3.
Turbo Codes Across Space Time Spreading Channel 50
5.4.3 Validation Results of UMTS turbo codes acrossAWGN channel
This section presents UMTS turbo codes for different sizes of frames. As men-
tioned above, the rate is set at r = 13. Figures 5.6, 5.7, 5.8 and 5.9 depict the bit
error rate versus Eb
Nofor sizes of the input word (N) of 100, 400, 1024 and 2000
respectively. While Figures 5.10, 5.11, 5.12 and 5.13 depict the frame error rate
for sizes of the input word of 100, 400, 1024 and 2000. The experiment is across
AWGN channel and as can be seen from the listed Figures, there is a significant
improvement for both BER and FER with the increase of iterations. It is also
worth while to note that the BER, for the same number of iterations, improved
with the increase of the size of the input word. This is due to a greater number
of bits for the Turbo Decoder to process. As with the classical turbo codes, the
BER improves over the FER. This is due to turbo codes operating better using
bits rather than entire frames. This validation the Turbo Decoder is important
as it will be used in the next section of this chapter. Results are compared with
(Valenti and Sun, 2001).
5.5 Implemented STS turbo codes in Simulink
Figure 5.14 depicts the implemented in Simulink encoder section of the test-
bed for examining UMTS turbo codes across STS channel. Figure 5.15 depicts
the implemented section of the STS channel. This shows the input from the
encoder to the STS channel and the soft output required for the decoder, while
Figure 5.16 depicts the turbo decoder for the implemented system. The control
panel shown is used to control some of the simulation parameters including the
number of iterations.
The input of the system is generated using a built-in Simulink module called
Random-Integer Generator. The parameters for this built-in block has the
following parameters: the initial seed, frame size, sampling time and the size
of the m-array. The output of this generator is frame based, which is changed
to bits using the Reshape Simulink module. This is the input of the UMTS
turbo encoder, developed in the programming language C and embedded into
Turbo Codes Across Space Time Spreading Channel 51
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 510
−6
10−5
10−4
10−3
10−2
10−1
100
Bit Error Rate for 1/3 all iterations, N=100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
1 iteration3 iterations5 iterations8 iterations
Figure 5.6 UMTS turbo codes,BER, N=100.
Turbo Codes Across Space Time Spreading Channel 52
0 0.5 1 1.5 2 2.5 3 3.510
−5
10−4
10−3
10−2
10−1
100
Bit Error Rate for 1/3 all iterations, N=400
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
1 iteration3 iterations5 iterations8 iterations
Figure 5.7 UMTS turbo codes,BER, N=400.
Turbo Codes Across Space Time Spreading Channel 53
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 510
−7
10−6
10−5
10−4
10−3
10−2
10−1
100 Bit Error Rate for 1/3 all iterations, N=1024
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
1 iteration3 iterations5 iterations8 iterations
Figure 5.8 UMTS turbo codes,BER, N=1024.
a Simulink module. The reason for changing the input to bits is due to turbo
encoders and decoders operation being based on bits, where approximation of
those bits takes place.
The turbo encoder carries out its operation as described earlier in this chapter.
The output is converted to frames and becomes the input of the STS channel.
The STS channel operates as described earlier and at the output a soft-decision
is required to become the input of the turbo decoder. Another output, a hard-
decision is also taken to compare with the input of the channel so the bit error
rate can be calculated. This is done to allow a comparison of the performance
improvement due to the use of turbo codes with the performance of the STS
channel.
Finally, the input of the turbo decoder is again converted from frames to bits.
At this point the gain is added to the channel. The BER is calculated using
the code in Matlab, which compares the input bits to the output bits.
Turbo Codes Across Space Time Spreading Channel 54
0 0.5 1 1.5 2 2.5 3 3.5 410
−5
10−4
10−3
10−2
10−1
100
Bit Error Rate for 1/3 all iterations, N=2000
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
1 iteration3 iterations5 iterations8 iterations
Figure 5.9 UMTS turbo codes,BER, N=2000.
Turbo Codes Across Space Time Spreading Channel 55
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 510
−4
10−3
10−2
10−1
100 Frame Error Rate for 1/3 all iterations, N=100
Eb/No (dB)
Fra
me
Err
or R
ate
(BE
R)
1 iteration3 iterations5 iterations8 iterations
Figure 5.10 UMTS turbo codes,FER, N=100.
5.6 Results of Turbo Codes over Space Time
Spreading
This section shows simulation results for UMTS turbo codes across the STS
channel for m = 1 and m = 2 using 12 iterations for the decoding. The
decoding algorithm used is the Max-Log-Map described in detail under the
chapter heading turbo codes. The input frame size was set to 400 and the Eb
No
was varied from 0dB to 12dB. This showed that turbo codes has a gain of up to
5 dB, decreasing the BER. These simulation results are shown in Figures 5.17,
5.18 and 5.19.
In terms of the redundancy of the entire system (turbo codes plus STS channel)
for the N = 400 case used for the simulation results presented in Figures 5.17,
5.18 and 5.19, there is an extra 812 bits transmitted with the original frame
size. This occurs after the turbo encoder and are removed by decoder so a
comparison between the input and output can be carried out producing the bit
Turbo Codes Across Space Time Spreading Channel 56
0 0.5 1 1.5 2 2.5 3 3.510
−4
10−3
10−2
10−1
100
Frame Error Rate for 1/3 all iterations, N=400
Eb/No (dB)
Fra
me
Err
or R
ate
(BE
R)
1 iteration3 iterations5 iterations8 iterations
Figure 5.11 UMTS turbo codes,FER, N=400.
Turbo Codes Across Space Time Spreading Channel 57
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 510
−4
10−3
10−2
10−1
100 Frame Error Rate for 1/3 all iterations, N=1024
Eb/No (dB)
Fra
me
Err
or R
ate
(BE
R)
1 iteration3 iterations5 iterations8 iterations
Figure 5.12 UMTS turbo codes,FER, N=1024.
Turbo Codes Across Space Time Spreading Channel 58
0 0.5 1 1.5 2 2.5 3 3.5 4 4.510
−3
10−2
10−1
100
Frame Error Rate for 1/3 all iterations, N=2000
Eb/No (dB)
Fra
me
Err
or R
ate
(BE
R)
1 iteration3 iterations5 iterations8 iterations
Figure 5.13 UMTS turbo codes,FER, N=2000.
Figure 5.14 Input Turbo encoder.
Turbo Codes Across Space Time Spreading Channel 59
Figure 5.15 STS channel section.
Figure 5.16 Output Turbo decoder.
Turbo Codes Across Space Time Spreading Channel 60
0 2 4 6 8 10 1210
−3
10−2
10−1
100
BER versus Eb/No (dB) with Turbo Codes across STS m=1. N=400, r=1/3, uncoded and 12 iterations
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
uncoded m=112 iterations m=1
Figure 5.17 UMTS turbo codes across STS channel with m = 1, This comparesuncoded BER with the 12 iterations.
Turbo Codes Across Space Time Spreading Channel 61
0 2 4 6 8 10 1210
−4
10−3
10−2
10−1
100
BER versus Eb/No (dB) with Turbo Codes across STS m=2, N=400, r=1/3, uncoded and 12 iterations
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
STS M=2 uncoded12 iterations
Figure 5.18 UMTS turbo codes across STS channel with m = 2, This comparesuncoded BER with the 12 iterations.
Turbo Codes Across Space Time Spreading Channel 62
0 2 4 6 8 10 1210
−4
10−3
10−2
10−1
100BER versus Eb/No (dB) with Turbo Codes across STS m=1 amd m=2. N=400, r=1/3, uncoded and 12 iterations
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
uncoded m=1uncoded m=212 iterations m=2
Figure 5.19 UMTS turbo codes across STS channel with m = 1 and m = 2, Thiscompares uncoded BER with the 12 iterations.
Turbo Codes Across Space Time Spreading Channel 63
error rate. The following is used to calculate redundancy for this system, where
N is the input frame size:
Redundancy = 3 ∗N + 12 (5.10)
The complexity of this system includes 15 multiplication operations, 14 addition
operations and one subtraction. The delay of this system is N which is the size
of the first frame, so before processing can begin in the decoding stage, an entire
frame has to have been transmitted and received.
5.7 Conclusion
This chapter presented and discussed the Space Time Spreading channel with
two transmitter antennas and presented a different version of turbo codes,
known as UMTS turbo codes proposed by Valenti et al. It described the back-
ground information on both of these topics from a variety of sources. Then
this chapter discussed the implementation of both the STS channel in Simulink
and the UMTS turbo codes, presented the results and validation of the system.
UMTS turbo codes performs better than the classical Turbo Codes proposed
by Berrou et al in 1993 across the AWGN channel. It explains the implemen-
tation of the turbo codes across the STS channel. Simulations results showed
that turbo codes decreased BER for the STS channel achieving an extra gain
of 5dB.
Chapter 6
Conclusion
Turbo codes are a set of error correction codes used on top of wireless channel
to decrease the bit error rate in the transmission between the transmitter and
receiver. Turbo codes were first proposed by Berrou et al in 1993 and have
been used since that time in a number of applications, including deep space
exploration (Berens et al., 1999). The purpose of this thesis is to study to
what extent does the Universal Mobile Telecommunications System (UMTS)
turbo codes, proposed by Valenti and Sun in (Valenti and Sun, 2001) for the
3GPP standard (which is the standard for 3rd generation telecommunications),
decrease the bit error rate of the space time channel (STS). STS channel spreads
each users data in a different way on each transmitter antenna, this is carried
out by splitting the transmitted data into sub-streams, odd {b1} and even {b2}.The signal is transmitted across the STS channel in bits, when the signal arrives
at the receiver, where the turbo decoder is located, the bits become the input.
Depending on the required number of iterations needed to improve the BER,
these bits are passed between the first and second decoder with each iteration
an approximation is carried out on each bit trying to predict the value of the
bit based on the probability of the bit using the systematic and recursive bits
received. The larger the number of iterations carried out the better the perfor-
mance of the system, reducing the BER of the transmitted signal. The results
in this thesis are similar to results obtained in (Wu, 2000), (Hanzo et al.,
2002), (Berrou et al., 1993) and (Rooyen et al., 2000). This showed the larger
the number of iterations and the larger the frame size, the lower the BER.
64
Conclusion 65
Chapter 1 gives an introduction to the topic and lists the objectives that this
thesis covers. The main objective of this thesis was to determine using simula-
tions to what extent do turbo codes decrease the bit error rate of STS channel
for two transmit antennas (m = 2).
Chapter 2 introduced convolutional codes which are used as building blocks
for the turbo encoder. Turbo codes are also known as Parallel Convolutional
Concatenated Codes (PCCC) because the encoder is designed from two or more
convolutional encoders concatenated in parallel with an interleaver separating
the two. This is used to ensure that the bits coming into the second encoder
are statistically independent. Puncturing is employed to reduce the coding rate
from 13
to 12
by removing bits from the stream of information.
A detailed description of the classical turbo codes proposed by Berrou et al
was presented in Chapter 3. This chapter covered the theoretical background
reading for different aspects of turbo codes such as different decoding algo-
rithms. The decoding algorithms included the Soft Output Viterbi Algorithm
(SOVA), Maximum-A-Posteriori (MAP), the Max-Log-Map algorithm, the Log-
Map Algorithm and the Soft-output Soft-input (SISO) decoding algorithm. The
Max-Log-Map decoding algorithm was used in this thesis at the decoder. This
chapter also presented block diagrams of the turbo encoder and turbo decoder.
Simulation results of the classical turbo codes were presented in Chapter 4. As
discussed, turbo codes improve the overall performance of wireless transmission
data. The results obtained, also shown and discussed in (Berrou et al., 1993),
(Wu, 2000) and (Rooyen et al., 2000), showed that with the increase of the
number of iterations the bit error rate and frame error rate decreased. For
smaller frame sizes such as N = 100, convergence in decoding is achieved with
smaller number of iterations, between three and five. For larger frame sizes such
as N = 2000, more iterations were required to achieve convergence, between 8
and 10. The larger the frame size the quicker the bit error rate and frame error
rate decreased. Better performance was achieved with lower code rate such as
13
rather than 12. This improvement can be shown as a decrease in BER as the
energy of bits increased and finally the Log-Map decoding algorithm performed
Conclusion 66
better than the SOVA, which was also shown by (Wu, 2000).
Chapter 5 presented the study that was carried out to see to what extent do
turbo codes improve the STS channel with two transmit antennas. A description
of STS channel was presented. The UMTS turbo codes structure was also
presented. This system was developed in Matlab and Simulink. The validation
of simulation results across the Additive White Gaussian Noise channel are
presented and it was shown, as expected, to decrease the bit error rate and
frame error rate with the increase of the number of the decoding iterations and
the increase in the energy per bit relative to noise ( Eb
No). This is compared with
the results presented in (Valenti and Sun, 2001) for the case across AWGN
channel and it can be seen from the results presented in this thesis that the
objective of validating the implemented turbo codes was achieved successfully.
This is followed by the implementation of the turbo codes across STS channel.
Simulating one transmit antenna for the STS channel is similar to simulating
the rayleigh fading channel shown in (Valenti and Sun, 2001). Studying the
result obtained for 12 iterations, frame size of N = 400 and a coding rate of
13
an extra coding gain of 4dB is achieved. Due to turbo codes weakness at
smaller frame sizes as mentioned in Chapter 4 and in (Wu, 2000), the results
in thesis were shown to have higher BER than the results shown in (Valenti
and Sun, 2001).
Comparing the case of turbo codes across two transmit antennas for the STS
channel, where there is greater diversity, it showed that the BER was lower
than the results showed for the rayleigh fading channel in (Valenti and Sun,
2001). Again, this is due to the diversity introduced by the STS channel when
the odd and even parity bits are separated and transmitted across the two
antennas. This reduces the probability of losing or corrupting bits during the
transmission period. Since there is not any comparable material available for
these results, based on the fact that both the STS channel and UMTS turbo
codes were validated and compared to other work that was available, we believe
that the results are accurate. The simulation results showed that the turbo
codes decreases the BER of the STS channel and achieve an extra coding gain
of 5dB.
Conclusion 67
The redundancy of this system was shown to send an extra 812 bits across the
channel using an input frame size of N = 400. The delay for this system, if
we use a sampling time of 1 × 10−6 seconds / symbol, would be 400 µsecs.
The decoder required a delay of N before any processing could begin. Finally,
the complexity of the entire system included 15 multiplication operations, 14
addition operations and one subtraction operation.
6.1 Contributions
Contributions of this thesis include the following:
1. Principle author of the conference paper (Raad et al., 2004b).
2. Principle author of the conference paper (Raad et al., 2004a).
3. Co-Author of the conference paper (Vial et al., 2003).
4. Co-Author of the conference paper (Vial et al., 2004).
5. A study of classical turbo codes and simulation results.
6. A study of UMTS turbo codes and implementation in Simulink and Mat-
lab.
7. An implementation of UMTS turbo codes across STS in Simulink.
8. A study to what extent UMTS turbo codes decreases bit error rate of STS
channel.
9. Achieved an extra coding gain of 5dB in this system.
6.2 Future Work
1. Apply some of this work for QPSK.
2. Fine tune the STS turbo decoder to see if better results can be achieved
3. Study UMTS turbo codes across m = 4 and m = 8 for the STS channel.
4. Implement the UMTS turbo codes on hardware.
Conclusion 68
5. Future work requires the development of a new set of decoding algorithms.
Bibliography
Bahl, L., Cocke, J., Jeinek, F., and Raviv, J. (1974). Optimal Decoding of Lin-
ear Codes for Minimizing Symbol Error. IEEE trans, Information theory,
20:248–287.
Benedetto, S. and Divsalar, D. (1998). Turbo codes: Comprehension, per-
formance, analysis, design and iterative decoding. In IEEE Globe Com
Tutorial, Sydney, Australia. IEEE.
Benedetto, S. and Montrosi, G. (1996). Serial concatenation of block and con-
volution codes. Electrical Let., 32:887–888.
Berens, F., Worm, A., Michel, H., and Wehn, N. (1999). Implmentation aspects
of turbo-decoders for future radio applications. In VTC, pages 601–2605,
Amsterdam,The Netherlands. IEEE.
Berrou, C., Glavieux, A., and Thitimajshima, P. (1993). Near Shannon limit
Error-Correcting Coding and Decoding: Turbo Codes. In ICC, pages 1064–
1070. IEEE.
Divsalar, D., Pollara, F., and McEliece, R. J. (1995). Transfer function bounds
on the performance of turbo codes. JPL TDA Progress Report, 41.
Dolinar, S. and Divsalar, D. (1995). Weight Distributions for Turbo Codes
Using Random and Nonrandom Permutations. TDA Progress Report, 42.
Forney, G. D. (1973). The Viterbi Algorithm. pages 268–278. IEEE.
Hagenauer, J. (1996). Iterative decoding of binary block and Convolutional
Codes. IEEE trans. Inform. Theory, 42:429–445.
69
BIBLIOGRAPHY 70
Hanzo, L., Liew, T., and Yeap, B. (2002). Turbo Coding, Turbo Equalisation
and Space-Time Coding for transmission over fading channels, volume 1.
John Wiley and Sons Ltd.
Hochwald, B., Marzetta, T., and Papadias, C. (2001). A Transmitter Diversity
Scheme for Wideband CDMA Systems Based on Space-Time Spreading.
IEEE, 19(1):48–60.
Mielcszarek, B. and Svensson, A. (2000). Fast Header Decoding Using Turbo
Codes on Rayleigh Channels.
Raad, I., Vial, P., and Wysocki, T. (2004a). A Study of Turbo Codes across
Space Time Spreading Channel. Radioelectronkia 2004 - 14th International
Czech-Slovak Scientific Conference, 1.
Raad, I., Vial, P., and Wysocki, T. (2004b). A Study of UMTS Turbo Codes
across Space Time Spreading Channel with case of m = 1 and m = 2.
3rd Workshop on the Internet, Telecommunications and Signal Processing,
WITSP’04, Adelaide, 1.
Robertson, P. (1994). Illuminating the structure of parallel concatenated recur-
sive systematic (Turbo) codes. In Globecom, pages 1298–1303. IEEE.
Robertson, P. (1999). Improving decoder and code structure of parallel con-
catenated recursive systematic (Turbo) Codes. In ICUPC, pages 183–187.
IEEE.
Robertson, P., Villebrun, E., and Hoher, P. (1995). A comparison of optimal
and suboptimal MAP decoding algorithms operating in the Log domain.
Int. Con. Communications, pages 1009–1013.
Rooyen, P. V., Lotter, M., and van Wyk, D. (2000). Space-Time
Processing for CDMA Mobile Communications. Kluwer Acemdemic,
Boston/Dordrecht/London.
Valenti, M. C. (1999). Iterative detection and decoding for wireless Communi-
cations. PhD thesis, Virgina Polytechnic, Blackburg, Virgina.
Valenti, M. C. and Sun, J. (2001). The UMTS Turbo Code and an Efficient De-
BIBLIOGRAPHY 71
coder Implementation Suitable for Software-Defined Radios. International
Journal of Wireless Information Networks, 8(4):203–215.
Vial, P., Raad, I., and Wysocki, T. (2003). On the effect of adjacent sector
Multiple Access Interference on Space Time Spreading Systems. The 7th
international symposium on DSP and Communication systems AND the
second workshop on the internet, telecommunication and signal processing.,
1.
Vial, P., Raad, I., and Wysocki, T. (2004). On the Design and Validation
Using Simulink of a Space Time Spreading. Radioelectronkia 2004 - 14th
International Czech-Slovak Scientific Conference., 1.
Wu, Y. (2000). Implementation of Parallel and Serial Concatenated Convolu-
tional Codes. Phd, Faculty of the Virgina Polytechnic Institute and State
University, Blackburg, Virginia.
Appendix A
Classical Turbo Codes tablesN=100 and N=400
This appendix provides results obtained in this thesis for frame sizes of N = 100
and N = 400 for two code rates of r = 12
and r = 13. These results are obtained
for iterations of 1, 3, 5 and 8.
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.2e-001 1.0e-001 4.5e-002 4.1e-002 3.5e-002 1.5e-002 5.9e-003 2.3e-003 4.0e-004FER 1 4.5e-001 8.3e-001 7.4e-001 6.5e-001 3.5e-001 1.9e-001 9.2e-002 2.1e-002
Table A.1 1 iteration, N=100, rate=12 , Log-Map decoding, g = [7; 5]octal
72
Classical Turbo Codes tables N=100 and N=400 73
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 8.5e-002 7.3e-002 3.6e-002 1.4e-002 6.2e-003 1.4e-003 2.6e-004 1.3e-004 4.2e-005FER 7.4e-001 6.3e-001 4.8e-001 2.4e-001 1.3e-001 3.8e-002 8.6e-003 3.6e-003 1.1e-003
Table A.2 3 iterations, N=100, rate=12 , Log-Map decoding, g = [7; 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 9.7e-002 4.1e-002 2.9e-002 1.2e-002 5.0e-003 1.5e-003 6.5e-004 1.1e-004 3.0e-005FER 8.3e-001 5.9e-001 3.1e-001 1.8e-001 6.7e-002 3.2e-002 1.4e-002 2.8e-003 8.2e-004
Table A.3 5 iterations, N=100, rate=12 , Log-Map decoding, g = [7; 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 9.9e-002 6.1e-002 4.7e-002 1.5e-002 4.4e-003 8.1e-004 2.8e-004 9.8e-005 2.9e-005FER 8.7e-001 6.5e-001 4.9e-001 2.2e-001 7.9e-002 1.7e-002 6.7e-003 2.9e-003 9.8e-004
Table A.4 8 iterations, N=100, rate=12 , Log-Map decoding, g = [7; 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.2e-001 9.6e-002 4.6e-002 4.9e-002 1.5e-002 7.2e-003 2.6e-003 2.1e-003 5.3e-004FER 9.5e-001 9.0e-001 8.0e-001 8.3e-001 3.9e-001 2.2e-001 9.8e-002 7.6e-003 2.2e-002
Table A.5 1 iteration, N=100, rate=13 , Log-Map decoding, g = [7; 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 6.4e-002 4.0e-002 2.3e-002 1.1e-002 1.7e-003 5.1e-004 7.5e-005 3.8e-005 6.2e-006FER 7.1e-001 4.0e-001 2.8e-001 1.6e-001 3.6e-002 1.2e-002 2.6e-003 1.2e-003 2.3e-004
Table A.6 3 iterations, N=100, rate=13 , Log-Map decoding, g = [7; 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 6.0e-002 2.7e-002 1.8e-002 7.5e-003 1.3e-003 3.3e-004 7.1e-005 2.2e-005 4.7e-006FER 4.7e-001 3.2e-001 1.9e-001 7.5e-002 2.5e-002 7.7e-003 2.3e-003 7.2e-004 1.9e-004
Table A.7 5 iterations, N=100, rate=13 , Log-Map decoding, g = [7; 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 6.7e-002 3.4e-002 1.1e-002 3.4e-003 1.1e-003 3.9e-004 6.2e-005 1.9e-005 5.6e-006FER 5.4e-001 3.2e-001 1.5e-001 5.5e-002 2.4e-002 8.2e-003 1.7e-003 6.6e-004 2.1e-004
Table A.8 8 iterations, N=100, rate=13 , Log-Map decoding, g = [7; 5]octal
Classical Turbo Codes tables N=100 and N=400 74
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.2e-001 9.8e-002 6.8e-002 4.6e-002 1.9e-002 9.9e-003 3.5e-003 1.6e-003 3.9e-004FER 1 1 1 1 1 6.8e-001 3.6e-001 2.0e-001 6.6e-002
Table A.9 1 iteration, N=400, rate=12 , Log-Map decoding, g = [7, 5]octal.
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.1e-001 7.0e-002 2.2e-002 6.0e-003 9.5e-004 1.6e-004 3.2e-005 8.7e-006 3.3e-006FER 1 1 6.5e-001 3.3e-001 1.17e-001 1.7e-002 5.4e-003 1.1e-003 5.6e-004
Table A.10 3 iterations, N=400, rate=12 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.1e-001 6.7e-002 2.2e-002 3.5e-003 6.7e-004 9.4e-005 2.4e-005 6.7e-006 2.4e-006FER 1 9.7e-001 5.7e-001 1.6e-001 3.5e-002 8.9e-003 2.9e-003 1.2e-003 4.5e-004
Table A.11 5 iterations, N=400, rate=12 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.1e-001 5.1e-002 1.7e-002 3.8e-003 2.9e-004 8.8e-005 2.1e-005 8.1e-006 2.0e-006FER 1 7.3e-001 4.1e-001 1.6e-001 2.2e-002 8.7e-003 2.9e-003 1.5e-003 3.9e-004
Table A.12 8 iterations, N=400, rate=12 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.2e-001 9.3e-002 7.4e-002 3.8e-002 1.5e-002 9.3e-003 2.4e-003 6.7e-004 2.2e-004FER 1 1 1 1 7.69e-001 7.5e-001 3.1e-001 9.62e-002 4.12e-002
Table A.13 1 iteration, N=400, rate=13 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 8.8e-002 3.5e-002 7.6e-003 1.0e-003 1.2e-004 2.3e-005 4.6e-006 1.6e-006 8.0e-007FER 9.7e-001 8.3e-001 3.6e-001 7.7e-002 1.4e-002 3.7e-003 8.9e-004 2.8e-004 1.2e-004
Table A.14 3 iterations, N=400, rate=13 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 6.3e-002 1.6e-002 3.2e-003 5.1e-004 4.9e-004 1.2e-005 4.1e-006 1.8e-006 5.8e-007FER 8.6e-001 4.6e-001 1.4e-001 3.3e-002 5.9e-003 2.1e-003 6.2e-004 3.0e-004 1.0e-004
Table A.15 5 iterations, N=400, rate=13 , Log-Map decoding, g = [7, 5]octal
Classical Turbo Codes tables N=100 and N=400 75
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 5.7e-002 1.5e-002 1.5e-003 1.6e-004 3.1e-005 1.0e-005 4.5e-006 1.0e-006 6.6e-007FER 7.0e-001 3.0e-001 8.3e-002 1.6e-002 4.8e-003 1.8e-003 7.0e-004 3.0e-004 1.2e-004
Table A.16 8 iterations, N=400, rate=13 , Log-Map decoding, g = [7, 5]octal
Appendix B
Classical Turbo Codes tablesN=1024 and N=2000
This appendix provides results obtained in this thesis for the frame sizes of
N = 1024 and N = 2000 for two code rates of r = 12
and r = 13. These results
are obtained for iterations of 1, 3, 5 and 8.
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.2e-001 9.6e-002 6.4e-002 4.0e-002 2.4e-002 8.8e-003 2.7e-003 1.1e-003 2.5e-004FER 1 1 1 1 1 9.5e-001 8.3e-001 3.4e-001 1.0e-001
Table B.1 1 iteration, N=1024, rate=12 , Log-Map decoding, g = [7, 5]octal
76
Classical Turbo Codes tables N=1024 and N=2000 77
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.1e-001 6.9e-002 2.6e-002 6.3e-003 5.0e-004 3.2e-005 6.1e-006 3.8e-006 8.1e-007FER 1 1 9.5e-001 5.0e-001 1.3e-001 1.2e-002 2.9e-003 1.8e-003 3.6e-004
Table B.2 3 iterations, N=1024, rate=12 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.0e-001 6.1e-002 1.0e-002 1.1e-003 7.5e-005 2.4e-005 3.2e-006 1.7e-006 7.6e-007FER 1 9.5e-001 6.7e-001 1.2e-001 2.2e-002 7.5e-003 1.5e-003 8.2e-004 3.6e-004
Table B.3 5 iterations, N=1024, rate=12 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.1e-001 7.0e-002 1.8e-002 5.8e-004 5.9e-005 1.5e-005 3.1e-006 1.7e-006 7.9e-007FER 1 1 5.4e-001 1.2e-001 1.3e-002 4.9e-003 1.5e-003 8.2e-004 3.8e-004
Table B.4 8 iterations, N=1024, rate=12 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.2e-001 9.0e-002 5.4e-002 3.4e-002 1.6e-002 4.9e-003 2.0e-003 4.7e-004 1.6e-004FER 1 1 1 1 1 7.7e-001 6.3e-001 1.9e-001 6.4e-002
Table B.5 1 iteration, N=1024, rate=13 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 7.2e-002 2.8e-002 4.2e-003 2.8e-004 2.2e-005 3.1e-006 1.0e-006 5.5e-007 2.6e-007FER 1 1 5.4e-001 7.2e-002 8.7e-003 1.4e-003 5.2e-004 2.8e-004 1.1e-004
Table B.6 3 iterations, N=1024, rate=13 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 5.4e-002 1.8e-002 5.1e-004 6.2e-005 8.2e-006 6.4e-006 1.7e-006 6.3e-007 2.6e-007FER 1 6.5e-001 7.5e-002 1.3e-002 3.2e-003 1.1e-003 8.4e-004 2.9e-004 1.2e-004
Table B.7 5 iterations, N=1024, rate=13 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 5.9e-002 1.1e-002 3.7e-004 3.7e-005 1.4e-005 2.8e-006 1.7e-006 6.2e-007 2.6e-007FER 8.7e-001 3.4e-001 3.4e-002 1.0e-002 4.9e-003 1.3e-003 8.4e-004 2.8e-004 1.0e-004
Table B.8 8 iterations, N=1024, rate=13 , Log-Map decoding, g = [7, 5]octal
Classical Turbo Codes tables N=1024 and N=2000 78
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.2e-001 9.8e-002 6.6e-002 3.9e-002 2.2e-002 8.2e-003 3.2e-003 8.9e-004 2.5e-004FER 1 1 1 1 1 1 9.1e-001 5.0e-001 1.8e-001
Table B.9 1 iteration, N=2000, rate=12 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.1e-001 6.2e-002 2.5e-002 4.6e-003 1.8e-004 1.3e-005 1.9e-006 1.4e-006 3.4e-007FER 1 1 1 7.7e-001 1.2e-001 1.1e-002 1.6e-003 1.0e-003 3.4-004
Table B.10 3 iterations, N=2000, rate=12 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.1e-001 4.8e-002 1.4e-002 3.4e-004 3.1e-005 4.8e-006 2.4e-006 7.9e-007 3.4e-007FER 1 1 8.7e-001 1.1e-001 2.0e-002 4.6e-003 2.0e-003 6.7e-004 3.4e-004
Table B.11 5 iterations, N=2000, rate=12 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.1e-001 6.2e-002 1.1e-002 2.2e-004 9.2e-006 4.6e-006 1.5e-006 6.2e-007 3.2e-007FER 1 1 4.8e-001 4.6e-002 6.5e-003 3.9e-003 1.3e-003 6.0e-004 3.0e-004
Table B.12 8 iterations, N=2000, rate=12 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.2e-001 8.9e-002 5.5e-002 3.3e-002 1.5e-002 5.6e-003 2.0e-003 4.2e-004 1.4e-004FER 1 1 1 1 1 9.5e-001 7.1e-001 3.1e-001 9.3e-002
Table B.13 1 iteration, N=2000, rate=13 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 7.4e-002 2.6e-002 3.4e-003 9.8e-005 9.5e-006 1.7e-006 7.6e-007 1.9e-007 8.0e-008FER 1 1 7.1e-001 6.5e-002 8.2e-003 1.8e-003 7.4e-004 1.9e-004 7.7e-005
Table B.14 3 iterations, N=2000, rate=13 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 7.1e-002 6.3e-003 1.3e-004 2.5e-005 5.8e-006 2.0e-006 5.9e-007 2.0e-007 7.1e-008FER 1 7.7e-001 6.8e-002 1.5e-002 3.4e-003 1.7e-003 5.7e-004 1.8e-004 7.0e-005
Table B.15 5 iterations, N=2000, rate=13 , Log-Map decoding, g = [7, 5]octal
Classical Turbo Codes tables N=1024 and N=2000 79
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 6.8e-002 3.4e-003 4.8e-005 1.0e-005 3.1e-006 1.2e-006 5.2e-007 2.0e-007 8.6e-008FER 1 2.8e-001 2.2e-002 6.4e-003 2.9e-003 1.2e-003 5.2e-004 2.0e-004 8.1e-005
Table B.16 8 iterations, N=2000, rate=13 , Log-Map decoding, g = [7, 5]octal
Appendix C
Classical Turbo Codes tables fordifferent generator matrix (g)
This appendix provides tables for different generator matrix g, all other param-
eters are kept constant and g is varied to study its affects on turbo codes.
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 1.1e-001 6.7e-002 2.2e-002 3.5e-003 6.7e-004 9.4e-005 2.4e-005 6.7e-006 2.4e-006FER 1 9.7e-001 5.7e-001 1.6e-001 3.5e-002 8.9e-003 2.9e-003 1.2e-003 4.5e-004
Table C.1 5 iterations, N=400, rate=12 , Log-Map decoding, g = [7, 5]octal
80
Classical Turbo Codes tables for different generator matrix (g) 81
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 6.3e-002 1.6e-002 3.2e-003 5.1e-004 4.9e-004 1.2e-005 4.1e-006 1.8e-006 5.8e-007FER 8.6e-001 4.6e-001 1.4e-001 3.3e-002 5.9e-003 2.1e-003 6.2e-004 3.0e-004 1.0e-004
Table C.2 5 iterations, N=400, rate=13 , Log-Map decoding, g = [7, 5]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 8.8e-002 7.1e-002 5.1e-002 3.7e-002 1.1e-002 4.8e-003 1.8e-003 5.8e-004 1.1e-004FER 1 1 1 1 5.1e-001 2.8e-001 1.4e-001 4.7e-002 1.2e-002
Table C.3 5 iterations, N=400, rate=12 , Log-Map decoding, g = [17, 15]octal
Eb
No(dB) 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0
BER 8.8e-002 6.6e-002 4.4e-002 2.1e-002 1.0e-002 3.1e-003 1.0e-003 1.9e-004 5.0e-005FER 1 1 1 1 6.1e-001 2.1e-001 6.9e-002 1.4e-002 5.6e-003
Table C.4 5 iterations, N=400, rate=13 , Log-Map decoding, g = [17, 15]octal
Appendix D
Classical Turbo Codes- graphs ofresults
This appendix depicts figures of extra results obtain during the course of this
thesis. This helps in gaining further understanding of the classical turbo codes
and different aspects and parameters associated with the influential error cor-
rection code.
82
Classical Turbo Codes- graphs of results 83
0 0.5 1 1.5 2 2.5 3 3.5 410
−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
BER versus Eb/No and r=1/2, N=1024, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure D.1 Bit Error Rate versus (BER) EbNo
with N = 1024, with g = [7; 5]octal,rate = 1
2 .
Classical Turbo Codes- graphs of results 84
0 0.5 1 1.5 2 2.5 3 3.5 410
−4
10−3
10−2
10−1
100
Eb/No (dB)
Fra
me
Err
or R
ate
(FE
R)
FER versus Eb/No and r=1/2, N=100, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure D.2 Frame Error Rate versus (FER) EbNo
with N = 1024, with g = [7; 5]octal,rate = 1
2 .
Classical Turbo Codes- graphs of results 85
0 0.5 1 1.5 2 2.5 3 3.5 410
−7
10−6
10−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Bit
Err
or R
ate
(BE
R)
BER versus Eb/No and r=1/3, N=1024, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure D.3 Bit Error Rate versus (BER) EbNo
with N = 1024, with g = [7; 5]octal,rate = 1
3 .
Classical Turbo Codes- graphs of results 86
0 0.5 1 1.5 2 2.5 3 3.5 410
−4
10−3
10−2
10−1
100
Eb/No (dB)
Fra
me
Err
or R
ate
(FE
R)
FER versus Eb/No and r=1/3, N=1024, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure D.4 Frame Error Rate versus (FER) EbNo
with N = 1024, with g = [7; 5]octal,rate = 1
3 .
Classical Turbo Codes- graphs of results 87
0 0.5 1 1.5 2 2.5 3 3.5 410
−4
10−3
10−2
10−1
100
Eb/No (dB)
Fra
me
Err
or R
ate
(FE
R)
FER versus Eb/No and r=1/2, N=2000, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure D.5 Frame Error Rate versus (FER) EbNo
with N = 2000, with g = [7; 5]octal,rate = 1
2 .
Classical Turbo Codes- graphs of results 88
0 0.5 1 1.5 2 2.5 3 3.5 410
−5
10−4
10−3
10−2
10−1
100
Eb/No (dB)
Fra
me
Err
or R
ate
(FE
R)
FER versus Eb/No and r=1/3, N=2000, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure D.6 Frame Error Rate versus (FER) EbNo
with N = 2000, with g = [7; 5]octal,rate = 1
3 .
Classical Turbo Codes- graphs of results 89
0 0.5 1 1.5 2 2.5 3 3.5 410
−4
10−3
10−2
10−1
100
Eb/No (dB)
Fra
me
Err
or R
ate
(FE
R)
FER versus Eb/No and r=1/2, N=100, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure D.7 Frame Error Rate (FER) versus EbNo
with N = 100, with g = [7; 5]octal,rate = 1
2 .
Classical Turbo Codes- graphs of results 90
0 0.5 1 1.5 2 2.5 3 3.5 410
−4
10−3
10−2
10−1
100
Eb/No (dB)
Fra
me
Err
or R
ate
(FE
R)
FER versus Eb/No and r=1/3, N=100, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure D.8 Frame Error Rate (FER) versus EbNo
with N = 100, with g = [7; 5]octal,rate = 1
3 .
Classical Turbo Codes- graphs of results 91
0 0.5 1 1.5 2 2.5 3 3.5 410
−4
10−3
10−2
10−1
100
Eb/No (dB)
Fra
me
Err
or R
ate
(FE
R)
FER vs dB with N=400, g=[7;5], k=3 r=1/2
1 iteration3 iterations5 iterations8 iterations
Figure D.9 Frame Error Rate versus (FER) EbNo
with N = 400, with g = [7; 5]octal,rate = 1
2 .
Classical Turbo Codes- graphs of results 92
0 0.5 1 1.5 2 2.5 3 3.5 410
−4
10−3
10−2
10−1
100
Eb/No (dB)
Fra
me
Err
or R
ate
(FE
R)
BER versus Eb/No and r=1/3, N=400, g=[7;5]octal, k=3
1 iteration3 iterations5 iterations8 iterations
Figure D.10 Frame Error Rate versus (FER) EbNo
with N = 400, with g = [7; 5]octal,rate = 1
3 .
Appendix E
Classical Turbo Codes-comparing SOVA and Log-Mapdecoding algorithms
This appendix presents tables comparing the SOVA and Log-Map decoding
algorithm discussed and presented in Chapter three. This comparison is carried
out for 5 iterations, g = [7; 5]octal, N = 400 for both code rates of r = 12
and
r = 13.
dB 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0BER 1.1e-001 6.7e-002 2.2e-002 3.5e-003 6.7e-004 9.4e-005 2.4e-005 6.7e-006 2.4e-006FER 1 9.7e-001 5.7e-001 1.5e-001 3.5e-002 8.9e-003 2.9e-003 1.2e-003 4.5e-004
Table E.1 5 iterations, N=400, rate=12 , Log-Map decoding, g = [7, 5]octal
93
Classical Turbo Codes- comparing SOVA and Log-Map decoding algorithms 94
dB 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0BER 6.3e-002 1.6e-002 3.2e-003 5.1e-004 4.9e-004 1.2e-005 4.1e-006 1.8e-006 5.8e-007FER 8.6e-001 4.6e-001 1.4e-001 3.3e-002 5.9e-003 2.1e-003 6.2e-004 3.0e-004 1.0e-004
Table E.2 5 iterations, N=400, rate=13 , Log-Map decoding, g = [7, 5]octal
dB 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0BER 1.4e-001 9.8e-002 4.6e-002 1.1e-002 3.7e-003 6.1e-004 1.5e-004 5.8e-005 1.1e-005FER 1 1 6.3e-001 3.3e-001 1.6e-001 4.0e-002 1.2e-002 4.4e-003 1.4e-003
Table E.3 5 iterations, N=400, rate=12 , SOVA decoding, g = [7, 5]octal
dB 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0BER 1.3e-001 5.8e-002 2.4e-002 2.9e-003 6.2e-004 8.5e-005 2.1e-005 9.9e-006 4.4e-006FER 9.5e-001 8.3e-001 5.0e-001 1.5e-001 4.1e-002 1.2e-002 3.4e-003 1.2e-003 5.7e-004
Table E.4 5 iterations, N=400, rate=13 , SOVA decoding, g = [7, 5]octal
Appendix F
Classical Turbo Codes-comparing constraint lengthK = 3 and K = 4
This appendix presents tables for different constraint lengths for Turbo Codes,
which include k = 3 and k = 4. These are derived from different generator
matrices which include g = [7; 5]octal and g = [17; 15]octal. The results are
obtained for two code rates of r = 12
and r = 13, for five iterations and input
frame size of N = 400. The Log-Map decoding algorithm is assumed. These
results are shown in Tables F.1, F.2, F.3 and F.4 respectively.
dB 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0BER 1.1e-001 6.7e-002 2.2e-002 3.5e-003 6.7e-004 9.4e-005 2.44e-005 6.7e-006 2.4e-006FER 1 9.7e-001 5.7e-001 1.6e-001 3.5e-002 8.9e-003 2.9e-003 1.2e-003 4.5e-004
Table F.1 5 iterations, N=400, rate=12 , Log-Map decoding, g = [7, 5]octal
95
Classical Turbo Codes- comparing constraint length K = 3 and K = 4 96
dB 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0BER 6.3e-002 1.6e-002 3.2e-003 5.1e-004 4.9e-004 1.2e-005 4.1e-006 1.8e-006 5.8e-007FER 8.6e-001 4.6e-001 1.4e-001 3.3e-002 5.9e-003 2.1e-003 6.2e-004 3.0e-004 1.0e-004
Table F.2 5 iterations, N=400, rate=13 , Log-Map decoding, g = [7, 5]octal
dB 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0BER 8.8e-002 7.1e-002 5.1e-002 3.7e-002 1.1e-002 4.8e-003 1.8e-003 5.8e-004 1.1e-004FER 1 1 1 1 5.1e-001 2.8e-001 1.4e-001 4.7e-002 1.2e-002
Table F.3 5 iterations, N=400, rate=12 , Log-Map decoding, g = [17, 15]octal
dB 0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0BER 8.8e-002 6.6e-002 4.4e-002 2.1e-002 1.0e-002 3.1e-003 1.0e-003 1.9e-004 5.0e-005FER 1 1 1 1 6.1e-001 2.1e-001 6.9e-002 1.4e-002 5.6e-003
Table F.4 5 iterations, N=400, rate=13 , Log-Map decoding, g = [17, 15]octal