Table Of ContentThe Art of Error Correcting Coding
Robert H. Morelos-Zaragoza
Copyright © 2002 John Wiley & Sons Ltd
ISBNs: 0-471-49581-6 (Hardback); 0-470-84782-4 (Electronic)
The Art of
Error
Correcting
Coding
The Art of
brror
Correcting
Coding
Robert H. Morelos-Zaragoza
SONY Computer Science Laboratories, Inc. JAPAN
JOHN WILEY & SONS, LTD
Copyright Q 2002 by John Wiley & Sons, Ltd
Baffins Lane, Chichester,
West Sussex, P019 lUD, England
National 01243 779777
International (+44) 1243 779777
e-mail (for orders and customers ervice enquiries): cs-books@viley.co.uk
Visit our HomeP age on http://www.wileyeurope.com or http://www.wiley.com
All Rights Reserved. No part of this publicationm ay be reproduced, stored in a retrieval system, or transmitted,
in anyf orm or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except
under the termo f the CopyrightD esigns and PatentsA ct 1988 or under the termso f a licence issued by the
Copyright Licensing Agency,
90 Tottenham CourRt oad, London, W1P9 HE, UK, without the permission in writing of the Publisher, with the
exception of any material supplied specifically for the purposeo f being entered and executed on a computer sys-
tem, for exdusiveu se by the purchasero f the publication.
Neither the author(s) nor JohnW iley & Sons, Ltd accept any responsibility or liability for loss or damage occa-
sioned to any person or property through using the material, instructions, methodso r ideas contained herein, or
acting or refraining from actinags a result of such use. The author(s) andP ublisher expressly disclaim all implied
warranties, including merchantabilityo f fitness for any particular purpose. Therew ill be no duty on the author(s)
or Publisher to correct any errorso r defects in thes oftware.
Designations used by companies to distinguish their products areo ften claimed as trademarks. In all instances
where John Wiley & Sons, Ltd is aware of a daim, the product names appeari niinti al capital or capital letters.
Readers, however, should contact the appropriatceo mpanies for more complete informatiorne garding trade-
marks and registration.
Other WhyE ditorial Ofices
John Wiley & Sons, Inc., 605 Third Avenue,
New York, NY 10158-0012, USA
WILEY-VCH Verlag GmbH
Pappelallee 3, D-69469 Weinheim, Germany
John Wiley & Sons Australia Ltd, 33 Park Road, Milton,
Queensland 4064, Australia
John Wiley & Sons (Canada) Ltd, 22 Worcester Road
Rexdale, Ontario, M9W 1L1, Canada
John Wiley & Sons (Asia) Pte Ltd, 2 Clementi Loop #02-01,
Jin Xing Distripark, Singapore 129809
British Library Cataloguing inP ublication Data
A catalogue record for this booki s available from theB ritish Library
ISBN 0471 49581 6
Produced fromL aTeX files supplied by the author.
Printed and bound inG reat Britain by Antony Rowe Ltd, Chippenham, Wiltshire.
This book is printed on acid-free paper responsibly manufactured froms ustainable forestry, in which at least two
trees are planted foer ach one used for paper production.
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Foreword . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
...
The ECC webs ite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x111
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. 1 Error correcting coding: Basic concepts . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Block codesa ndc onvolutionalc odes . . . . . . . . . . . . . . . . . 3
1.1.2 Hamming distance, Hamming spheres and error correcting capability 4
l .2 Linear block codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Generatora ndp arity-checkm atrices . . . . . . . . . . . . . . . . . . 6
1.2.2 Thew eight is the distance . . . . . . . . . . . . . . . . . . . . . . . 6
1.3 Encoding and decoding of linear block codes . . . . . . . . . . . . . . . . . 7
1.3.1 Encoding with G and H . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Standard array decoding . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.3 Hamming spheres, decoding regions and the standard array . . . . . . 11
1.4 Weight distribution and error performance . . . . . . . . . . . . . . . . . . . 12
1.4.1 Weight distribution and undetected error probability over a BSC . . . 12
.
1.4.2 Performance bounds over BSC AWGN and fading channels . . . . . 13
1.5 General structure of a hard-decision decodero f linear codes . . . . . . . . . . 19
2 Hamming.G olaya ndR eed-Mullerc odes . . . . . . . . . . . . . . . . . . . . . 23
2.1 Hammingcodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1.1 Encoding and decodingp rocedures . . . . . . . . . . . . . . . . . . 24
2.2 Theb inaryG olayc ode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.1 Encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2 Decoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.3 Arithmetic decoding of the extended (24. 12. 8) Golay code . . . . . . 26
2.3 Binary Reed-Mullecr o des . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.1 Booleanp olynomialsa nd RM codes . . . . . . . . . . . . . . . . . . 27
2.3.2 Finite geometries and majority-logic decoding . . . . . . . . . . . . 28
3 Binaryc yclicc odesa nd BCH codes . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1 Binary cyclic codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3 .l . 1 Generator and parity-check polynomials . . . . . . . . . . . . . . . . 33
vi CONTENTS
3.1.2T heg eneratorp olynomial . . . . . . . . . . . . . . . . . . . . . . . 34
3.1.3 Encoding and decoding of binary cyclic codes . . . . . . . . . . . . . 35
3.1.4T hep arity-checkp olynomial . . . . . . . . . . . . . . . . . . . . . . 36
3.1.5 Shortened cyclic codesa nd CRC codes . . . . . . . . . . . . . . . . 37
3.2 General decoding of cyclic codes . . . . . . . . . . . . . . . . . . . . . . . . 39
3.2.1 GF(2 m) arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.3 Binary BCH codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.4P olynomiacl odes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5 Decoding of binary BCH codes . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.5.1 General decoding algorithm for BCH codes . . . . . . . . . . . . . . 48
3.5.2 TheB erlekamp-Masseya lgorithm( BMA) . . . . . . . . . . . . . . . 49
3.5.3 PGZ decoder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5.4E uclideanA lgorithm( EA) . . . . . . . . . . . . . . . . . . . . . . . 53
3.5.5C hiens earch and error correction . . . . . . . . . . . . . . . . . . . 55
3.5.E6 r rors-and-erasureds e coding . . . . . . . . . . . . . . . . . . . . . 55
3.6 Weight distribution and performance bounds . . . . . . . . . . . . . . . . . . 56
3.6.1 Erropr erformancee valuation . . . . . . . . . . . . . . . . . . . . . 57
4 Non-binary BCH codes: Reed-Solomon codes . . . . . . . . . . . . . . . . . . .
63
4.1 RS codes as polynomialc odes . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.2 From binary BCH to RS codes . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.3 Decoding RS codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.3.1R emarks on decodinga lgorithms . . . . . . . . . . . . . . . . . . . . 69
4.3.E2 r rors-and-erasureds e coding . . . . . . . . . . . . . . . . . . . . . 69
4.4 Weight distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
73
5 Binaryc onvolutionalc odes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
75
5.1 Basic structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.1.1R ecursives ystematicc onvolutionalc odes . . . . . . . . . . . . . . . 80
5.1.2F rede istance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2C onnections with blockc odes . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2.1 Zero-tail construction . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.2.2D irect-truncationc o nstruction . . . . . . . . . . . . . . . . . . . . . 82
5.2.3 Tail-biting construction . . . . . . . . . . . . . . . . . . . . . . . . . 82
5.2.4 Weight distributions . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.3 Weight enumeration and performance bounds . . . . . . . . . . . . . . . . .
84
5.4 Decoding: Viterbi algorithm with Hamming metrics . . . . . . . . . . . . . .
86
5.4.1 Maximuml ikelihoodd ecoding and metrics . . . . . . . . . . . . . . 87
5.4.2T he Viterbi algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.4.I3 m plementation issues . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.5 Puncturedc onvolutionalc odes . . . . . . . . . . . . . . . . . . . . . . . . .
96
5.5.1 Implementation issues related to punctured convolutional codes . . . 99
5.5.2 RCPC codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6 Modifyinga ndc ombiningc odes . . . . . . . . . . . . . . . . . . . . . . . . . .
103
6.M1 odifyincg o des . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
103
6.1.1 Shortening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
CONTENTS vii
6.1.E2 x tending . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.1P. 3u ncturing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.1.4 Augmenting and expurgating . . . . . . . . . . . . . . . . . . . . . . 106
6.2C ombiningc o des . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.2.1 Time-sharing of codes . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.2.2D irect-sums of codes . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.2.3P roducts of codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.2.4C oncatenatedc odes . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
6.2.5G eneralizedc oncatenatedc odes . . . . . . . . . . . . . . . . . . . . 119
7 Soft-decisiond ecoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.1 Binary transmission over AWGN channels . . . . . . . . . . . . . . . . . . . 124
7.2 Viterbi algorithm with Euclidean metric .................... 124
7.3 Decoding binary linear block codes with a trellis . . . . . . . . . . . . . . . 130
7.4T heC hasea lgorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.5O rdereds tatisticsd ecoding . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
7.6G eneralized minimum distanced ecoding . . . . . . . . . . . . . . . . . . . . 134
7.6.1 Sufficient conditionsf oro ptimality . . . . . . . . . . . . . . . . . . 1 35
7.7 Lisdt e coding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.S8 oft-outpuat l gorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
7.8.1S oft-output Viterbi algorithm . . . . . . . . . . . . . . . . . . . . . . 136
7.8.2M aximum-a-posteriori (MAP) algorithm . . . . . . . . . . . . . . . 139
7.8.L3 og-MAaP l gorithm . . . . . . . . . . . . . . . . . . . . . . . . . . 141
7.8.M4 ax-Log-MAaP l gorithm . . . . . . . . . . . . . . . . . . . . . . . 142
7.8.5S oft-output OSD algorithm . . . . . . . . . . . . . . . . . . . . . . . 142
8 Iterativelyd ecodablec odes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
8.1 Iterativde ecoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
8.2P roducct odes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.2.1 Parallel concatenationt: u rboc odes . . . . . . . . . . . . . . . . . . 149
8.2.2 Seriac lo ncatenation . . . . . . . . . . . . . . . . . . . . . . . . . . 155
8.2.3B lockp roducct odes . . . . . . . . . . . . . . . . . . . . . . . . . . 157
8.3 Low-density parity-checkc odes . . . . . . . . . . . . . . . . . . . . . . . . 161
8.3.1 Tanner graphs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
8.3.2 Iterative hard-decision decoding: The bit-flip algorithm . . . . . . . . 163
8.3.3I terativep robabilisticd ecoding: belief propagation . . . . . . . . . . 164
9 Combiningc odesa ndd igitalm odulation . . . . . . . . . . . . . . . . . . . . . 171
9.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
9.1 . 1 Examples of signal sets . . . . . . . . . . . . . . . . . . . . . . . . . 172
modula Ctioond ed 9 .l .2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.1.D3 istancce o nsiderations . . . . . . . . . . . . . . . . . . . . . . . . 175
9.2T rellis-codedm odulation( TCM) . . . . . . . . . . . . . . . . . . . . . . . . 176
9.2.1S etp artitioning and trellis mapping . . . . . . . . . . . . . . . . . . 1 76
9.2.2M aximum-likelihoodd ecoding . . . . . . . . . . . . . . . . . . . . . 177
9.2.3D istancec onsiderations and errorp erformance . . . . . . . . . . . . 177
9.2.4P ragmatic TCMa nd two-staged ecoding . . . . . . . . . . . . . . . . 1 78
...
v111 CONTENTS
9.3M ultilevelc odedm odulation( MCM) . . . . . . . . . . . . . . . . . . . . . . 182
9.3.1C onstructions and multi-staged ecoding . . . . . . . . . . . . . . . . 183
9.3.2 Unequal-error-protectionw itMh CM . . . . . . . . . . . . . . . . . 1 85
9.4 Bit-interleaved codedm odulation( BICM) . . . . . . . . . . . . . . . . . . . 191
9.4.1G raym apping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
9.4.2M etric generation: De-mapping . . . . . . . . . . . . . . . . . . . . 192
9.4.3 Interleaving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
9.5T urbo trellis-coded modulation( TTCM) . . . . . . . . . . . . . . . . . . . . 194
9.5.1P ragmatitc u rbo TCM . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.5.2T urbo TCM with symbol interleaving . . . . . . . . . . . . . . . . . 194
9.5.3 Turbo TCM withb it interleaving . . . . . . . . . . . . . . . . . . . . 194
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
Appendix A Weight distributions of extended BCH codes . . . . . . . . . . . . . . 207
A.Ll ength8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
A.2L ength1 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
A.3L ength 32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
A.4L ength 64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
A.L5 e ngth128 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
Preface
This booki s the result of hundreds of emails froma ll over the world with questions on theory
and applications of error correcting coding (ECC), from colleagues from both academaina d
industry. Most of the questions have been from engineersa nd computer scientists needing to
select, implement or simulate ap articular coding scheme. The questions were sparkebdy an
ECC web site that was initially set up at Imai Laboratorya t the Institute of Industrial Science,
University of Tokyo, att he beginning of 1995. The readerw ill notice the absence of theorems
and proofs in this text. The approach is to teach basic concepts by using simple examples.
References to theoretical developments are made when needed. This bookis intended to be a
reference guidet o error correcting coding techniquesf or graduate students and professionals
interested in learning the basic techniques and applications of ECC. Computer programs
that implement the basic encoding and decoding algorithmso f practical coding schemes are
available on a companionw eb site at:
http://the-art-of-ecc.com
This site is referred to as the “ECC webs ite” throughout the text. This booki s unique in that
it introduces the basic concepts of error correcting codes using simplei llustrative examples.
Computer programs,w ritten in C language anda vailable on the ECC web site, help to further
illustrate the implementation of basic encoding and decoding algorithmso f important coding
schemes, such as convolutional codes, Hamming codes, BCH codes, Reed-Solomon codes
and turbo codes, andth eir application in coded modulation systems. Thme aterial focuses on
basic algorithms for analyzinagn d implementing ECC. Theries a rich theory of ECC that will
be touched upon,b y referring to the appropriate material. There are many good books dealing
with the theory of ECC, e.g., references [LC], [MS],[ PW], [Blah], [Bos], [Wic], just to cite a
few. Readers may wish to consult them before, during or after going through the material in
this book. Each chapter describes, using simple and easy to follow numerical examples,t he
basic concepts of a particular coding or decoding scheme, rather than going into the detail
of the theory behind it. Basic analysis tools are given throughout the book, to help in the
assessment of the error performance of a particular ECC scheme, for some basic channel
models. With the companion webs ite, this makes the book unique.
The bookd eals with the art of error correcting coding, in the sense that it addresses the need
for selecting, implementing and simulating algorithmfosr encoding and decoding of codes for
error correction and detection. The booki s organized as follows. In the firstc hapter, the basic
concepts of error correction, and coding and decoding techniquesa, re introduced. Chapter 2
deals with important and simplteo understand families of codes, such ast he Hamming, Golay
and Reed-Muller codes. In Chapter 3, cyclic codes and the important family of BCH codes
are described. Finite field arithmetic is introduced and basic decoding algorithms, such as
X THE ART OF ERROR CORRECTING CODING
Berlekamp-Massey, Euclidean and PGZ, are described and easy to follow examples given
to understand their operation. Chapter 4 deals with Reed-Solomon codes and errors-and-
erasures decodingA. comprehensive treatment of the available algorithms is given, along with
examples of their operation. In Chapter 5, binary convolutional codes are introduced. Focus
in this chapter is on the understanding of the basic structure of these codes, along with a basic
explanation of the Viterbi algorithm with Hamming metrics. Important implementation issues
are discussed. In Chapter 6, several techniques for modifying a single code or combining
several codesa re given and illustrated by simple examples. Chapter 7 deals with soft-
decision decoding algorithms, some of which haven ot yet received attention in the literature,
such as a soft-output ordered statistics decoding algorithm. Moreover, Chapter 8 presents
a unique treatment of turbo codes, both parallel concatenated and serial concatenated, and
block product codes, froma coding theoretical perspective. In the same chapter, low-density
parity check codes are examined. Faollr these classes of codes, basic decoding algorithms are
described and simple examples are given. Finally, Chapter 9 deals with powerful techniques
that combine error correcting coding with digital modulation, and several clever decoding
techniques are described. A comprehensive bibliography is included, for readers who wish to
learn more about the beautiful theory that makes it all work. It is my hope that this book
will become a valuable and indispensable tool for both students and practitioners of this
interesting, exciting and never-ending area of information theory.
I would like to thank the following persons for influencing this work. Professor Francisco
GarciaU galde, Universidad Nacional Autonoma de MCxico, for introducing me to the
exciting world of error correcting codes. Parts of this book are based on my Bachelor’s
thesis under his direction. Professor Edward Bertram, University of Hawaii, for teaching me
the basics of abstract algebra. Professor David Mufioz, Instituto Technologico y de Estudios
Superiores de Monterrey, MCxico, for his kindness and support. Professors Tadao Kasami,
Hiroshima City University, Toru Fujiwara, University of Osaka, and Hideki Imai, University
of Tokyo, for supporting my stays as a visiting academic researcher in Japan. Dan Luthi and
Advait Mogre, LSI LogicC orporation, for many stimulating discussions and the opportunity
to experience the process of putting ideas into silicon. Professor Marc P.C. Fossorier,
Universityo f Hawaii, forh is help. My colleague Dr. Misa MihaljeviC,S onyC omputer
Science Laboratories, for pointing out connections between decoding and cryptanalysis. I
would also like to thank wholeheartedly Dr. Mario Tokoro, President of Sony Computer
Science Laboratories, and Professor Ryuji Kohno, Yokohama National University, for making
it possible for me to have a fine environment in which to write this book. In particular, I want
to express my eternal gratitude to Professor Shu Lin, now at the University of California at
Davis, who supported me when I was a graduate student in Hawaii, and encouraged me to
continue my research in this fascinating topic. Last but not least, I want to thank the many
students and colleagues who throughout the years listened to my lectures in Mexico, Japan
and the U.S.A.
I dedicate this book to the memory of Richard W. Hamming, Claude Shannon and Gustave
Solomon, three extraordinary gentlemen who greatly impacted the way people live and work
today.
Robert H. Morelos-Zaragoza
Tokyo, Japan, April 2002.
Foreword
In modem digital communication ands torage systems design, information theoryis becoming
increasingly important. Theb est example of this is the appearance and quick adoptioofn t urbo
and block product codes in many practical satellite and wireless communication systems. I
am pleased to recommend this new book, authoredb y Dr. Robert Morelos-Zaragozat, o those
who are interested in error correcting codes or have to apply them. Theb ook introduces key
concepts of error correcting coding (ECC)i n a mannert hat is easy to understand. Them aterial
is logically well structured and presented using simple illustrative examples. This, together
with the computer programs available on the web site, is a novel approach to teaching the
basic techniques used in the design and application of error correcting codes.
One of the best features of the book is that it provides an atural introduction to the principles
and decoding techniques of turbo codes, LDPC codes,a nd product codes, froma n algebraic
channel coding perspective. In this context, turbo codes are viewed as punctured product
codes. With simple examples, the underlying ideas and structures used in the construction
and iterative decoding of product codesa re presented in an unparalleled manner. The detailed
treatment of various algebraic decoding techniques for the correction of errors and erasures
using Reed-Solomon codesi s also worth a mention. On the applications of ECC in combined
channel coding and digital modulation, or coded modulation, the author does a goodj ob in
introducing the basic principles that are used in the construction of several important classes
of coded modulation systems.
I believe that practitioner engineers and computer scientists will find this book to be both a
good learningt ool and a valuablere ference. The companion ECCw eb site is a uniquef eature
that is not found anywhere else. Incidentally, this web site was born in my laboratory at the
University of Tokyo in 1995, whereD r. Morelos-Zaragoza worked until June of 1997 and did
a very good job as my associate researcher, writing many high-quality papers. Robert is polite,
modest and hard-workinga,n d is always friendly. In summary, I strongly recommend The Art
of Error Correcting Coding as an excellent introductory and reference book onth e principles
and applications of error correcting codes.
Professor Hideki Imai
The University of Tokyo
Tokyo, Japan, April 2002