ebook img

Error Coding for Engineers PDF

248 Pages·2001·16.673 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Error Coding for Engineers

ERROR CODING FOR ENGINEERS THE KLUWER INTERNATIONAL SERIES IN ENGINEERING AND COMPUTER SCIENCE ERROR CODING FOR ENGINEERS A. Houghton Synectic Systems, Ltd., United Kingdom SPRINGER. SCIENCE+BUSINESS MEDIA, LLC Library of Congress Cataloging-in-Publication Data Houghton, A. Error coding for engineers / A. Houghton. p.cm. - (The Kluwer international series in engineering and computer science; SECS 641) Includes bibliographical references and index. ISBN 978-1-4613-5589-2 ISBN 978-1-4615-1509-8 (eBook) DOI 10.1007/978-1-4615-1509-8 1. Signal processing. 2. Error-correcting codes (Information theory) 1. Title. II. Series. TK5102.9 .H69 2001 005.7'2--dc21 2001038560 Copyright © 2001 by Springer Science+Business Media New York Originally published by Kluwer Academic Publishers in 2001 Softcover reprint ofthe hardcover Ist edition 2001 AII rights reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, mechanical, photo copying, recording, or otherwise, without the prior written permission of the publisher. Printed on acid-free paper. Table of Contents Preface IX 1. Introduction 1 1.1 Messages Need Space 1 1.2 The Hamming Bound 4 1.3 The Gilbert Bound 6 1.4 Where Do Errors Come From? 7 1.5 ABrief History of Error Coding 12 1.6 Summary 13 2. A Little Maths 15 2.1 Polynomials and Finite Fields 16 2.2 Manipulating Field Elements 19 2.3 Summary 24 3. Error Detection 25 3.1 The Horizontal and Vertical Parity Check 25 3.2 The Cyc1ic Redundancy Check 27 3.3 Longhand Ca1culation of the CRC 28 3.4 Performance 31 3.5 Hardware Implementation 32 3.6 Table-Based Ca1culation of the CRC 35 3.7 Discussion 39 4. Error Correction by Parity 41 4.1 Correcting a Single Bit 43 4.2 Extending the Message Size 45 5. Error Correction Using the CRC 49 5.1 A Hardware Error Locator 52 5.2 Multiple Bit Errors 53 5.3 Expurgated Codes 54 5.4 The Perfect Golay Code 56 5.5 Fire Codes 63 6. Reed-Muller Codes 67 6.1 Constructing a Generator Matrix For RM Codes 67 6.2 Encoding with the Hadamard Matrix 74 6.3 Discussion 77 7. Reed-Solomon Codes 79 7.1 Introduction to the Time Domain 79 7.2 Calculation of the Check Symbols for One Error 80 7.3 Correcting Two Symbols 83 7.4 Error Correction in the Frequency Domain 88 7.5 Recursive Extension 91 7.6 The Berlekamp-Massey Algorithm 97 7.7 The Fomey Algorithm 100 7.8 Mixed-Domain Error Coding 101 7.9 Higher Dimensional Data Structures 107 7.10 Discussion 118 8. Augmenting Error Coding 119 8.1 Erasure 119 8.2 Punctured Codes 121 8.3 Interleaving 125 8.4 Error Forecasting 130 8.5 Discussion 131 9. Convolutional Coding 133 9.1 Error Correction with Convolutional Codes 135 9.2 Finding the Correct Path 136 9.3 Decoding with Soft Decisions 138 9.4 Performance of Convolutional Codes 140 9.5 Concatenated Codes 141 9.6 Iterative Decoding 142 9.7 Turbo Coding 143 9.8 Discussion 144 vi 10. Hardware 147 10.1 Reducing Elements 147 10.2 Multiplication 149 10.3 Division 153 10.4 Logs and Exponentials 158 10.5 Reciprocal 160 10.6 Discussion 164 11. Bit Error Rates 165 11.1 The Gaussian Normal Function 165 11.2 Estimating the Bit Error Rate 166 11.3 Applications 172 11.4 Discussion 176 12. Exercises 177 12.1 Parity Exercises 177 12.2 CRC Exercises 178 12.3 Finite Field Algebra 180 12.4 Convolutional Codes 183 12.5 OtherCodes 183 12.6 Solutions to Parity Exercises 184 12.7 Solutions to CRC Exercises 186 12.8 Solutions to Finite Field Algebra 192 12.9 Solutions to Convolutional Coding 202 12.10 Solutions to Other Codes 203 12.11 Closing Remarks 208 12.12 Bibliography 208 AppendixA Primitive Polynomials 211 Appendix B The Golay Code 219 Appendix C Solving for Two Errors 223 Appendix D Solving some Key Equations 229 AppendixF Software Library 233 Index 245 vii Preface Error coding is the art of encoding messages so that errors can be detected and, if appropriate, corrected after transmission or storage. A full appreciation of error coding requires a good background in whole number maths, symbols and abstract ideas. However, the mechanics of error coding are often quite easy to grasp with the assistance of a few good examples. This book is about the mechanics. In other words, if you're interested in implementing error coding schemes but have no idea what a finite field is, then this book may help you. The material covered starts with simple coding schemes which are often rather inefficient and, as certain concepts are established, progresses to more sophisticated techniques. Error coding is a bit like the suspension in a car. Mostly it's unseen, but the thing would be virtually useless without it. In truth, error coding underpins nearly all modem digital systems and without it, they simply couldn't work. Probably like some car suspensions, the elegance of error coding schemes is often amazing. While it's a bit early to talk about things like efficiency, two schemes of similar efficiency might yield vastly different performance and, in this way, error coding is rather 'holistic'; it can't be treated properly outside of the context for which it is required. WeIl, more of this later. For now, if you're interested in whole number maths (which is actually really good fun), have a problem which requires error coding, are an undergraduate studying DSP or communications, but you don't have a formal background in maths, then this could be the book for you. Principally, you will require a working knowledge ofbinary; the rest can be picked up along the way. x Chapter 1 INTRODUCTION The chapter deals with an overview of error coding, not especially in terms of what' s been achieved over the years or what is the current state of the subject, but in pragmatic terms of what' s undemeath it that makes it work. The maths which surrounds error coding serves two key purposes; one, it shows us what can theoretically be achieved by error coding and what we might reasonable have to do to get there and, two, it provides mechanisms for implementing practical coding schemes. Both of these aspects are, without doubt daunting for anyone whose principal background is not maths yet, for the engineer who needs to implement error coding, many of the practical aspects of error coding are tractable. 1.1 Messages Need Space Space is at the heart of all error coding so it seems like a good place to start. If I transmit an 8-bit number to you by some means, outside of any context, you can have absolutely no idea whether or not what you receive is what I sent. At best, if you were very clever and knew something about the quality of the channel which I used to send the byte (an 8-bit number) to you, you could work out how likely it is that the number is correct. In fact, quite a lot of low-speed communication works on the basis that the channel is good enough that most of the time there are no errors. The reason that you A. Houghton, Error Coding for Engineers © Kluwer Academic Publishers 2001

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.