Издательство Clarendon Press, 1992, -205 pp.
This book arose out of a series of courses given to students of mathematics and electrical engineering at Imperial College. The theory of error-correcting block codes combines mathematical elegance and practical utility to an unusual degree. Thus, the intention of the courses was twofold. On the one hand I wished to introduce the mathematicians to some attractive practical problems and to address,these as an essential part ,.of the development of a mathematical theory. On the other I hoped to persuade engineers ofthe power and elegance of modem mathematics and to give them confidence in using it.
There are many excellent texts on coding theory, notably that by MacWilliams and Sloane, but I found that they were either too advanced for my purposes or stopped short of providing all the mathematical tools required to implement a coding system (like the excellent introductions by Hill or Pless). I therefore wrote my own set of lecture notes, which form the basis of Parts 1-3 of the book. These start with a standard elementary introduction to coding theory, then develop the theory of finite fields (which is an essential tool) and in Part 3, exploit it to construct and decode BCH and Reed-Solomon codes.
I abhor tome-like textbooks that skim over a vast array of topics saying only trivialities about all of them. So this book does require its reader to think. My experience has been that although electrical engineers go through a kind of culture shock as the material on finite fields is presented, they emerge confident that they can apply them in the many areas of their discipline in which they appear. Similarly mathematicians used to abstract, generalities and existence theorems find the conces of coding theory unfamiliar but gain a deeper understanding of the mathematical theory by seeing it at work.
The standard courses at Imperial College covered most of the material in Parts 1-
3. The additional sections (the Extras), were only mentioned, or left out of the course entirely. However, in writing the book, I could not resist the temptation to add a further part on Goppa codes (both classical and geometrical) including the decoder of Skorobogatov and Vladut. This part was tried out in a postgraduate course at the University of London. During that course it became evident that the major difficulty in presenting geometric Goppa codes is to find a simple presentation for the geometry of algebraic curves. Chapters 21-23 are my attempt to do this. I hope that once a reader has worked through the first three parts of the book, these chapters will not present excessive difficulties. In treating Goppa's codes, I have tried to exhibit them as natural generalizations ofBCH codes, and included proofs that BCH codes are a special class of both classical and geometric Goppa codes in the exercises.
Part 1 Basic Coding Theory.
Introduction.
Block codes, weight, and distance.
Linear codes.
Error processing for linear codes.
Hamming codes and the binary Golay codes.
Part 2 Finite Fields.
Introduction and an example.
Euclid's algorithm.
Invertible and irreducible elements.
The construction of fields.
The structure of finite fields.
Roots of polynomials.
Primitive elements.
Part 3 BCH Codes and other Polynomial Codes.
BCH codes as subcodes of Hamming codes.
BCH codes as polynomial codes.
BCH error correction: (1) the fundamental equation.
BCH error correction: (2) an algorithm.
Reed-Solomon codes and burst error correction.
Bounds on codes.
Part 4 Classical and Geometric Goppa Codes.
Classical Goppa codes.
Classical Goppa codes: error processing.
Introduction to algebraic curves.
Functions on algebraic curves.
A survey of the theory of algebraic curves.
Geometric Goppa codes.
An error processor for geometric Goppa codes.
This book arose out of a series of courses given to students of mathematics and electrical engineering at Imperial College. The theory of error-correcting block codes combines mathematical elegance and practical utility to an unusual degree. Thus, the intention of the courses was twofold. On the one hand I wished to introduce the mathematicians to some attractive practical problems and to address,these as an essential part ,.of the development of a mathematical theory. On the other I hoped to persuade engineers ofthe power and elegance of modem mathematics and to give them confidence in using it.
There are many excellent texts on coding theory, notably that by MacWilliams and Sloane, but I found that they were either too advanced for my purposes or stopped short of providing all the mathematical tools required to implement a coding system (like the excellent introductions by Hill or Pless). I therefore wrote my own set of lecture notes, which form the basis of Parts 1-3 of the book. These start with a standard elementary introduction to coding theory, then develop the theory of finite fields (which is an essential tool) and in Part 3, exploit it to construct and decode BCH and Reed-Solomon codes.
I abhor tome-like textbooks that skim over a vast array of topics saying only trivialities about all of them. So this book does require its reader to think. My experience has been that although electrical engineers go through a kind of culture shock as the material on finite fields is presented, they emerge confident that they can apply them in the many areas of their discipline in which they appear. Similarly mathematicians used to abstract, generalities and existence theorems find the conces of coding theory unfamiliar but gain a deeper understanding of the mathematical theory by seeing it at work.
The standard courses at Imperial College covered most of the material in Parts 1-
3. The additional sections (the Extras), were only mentioned, or left out of the course entirely. However, in writing the book, I could not resist the temptation to add a further part on Goppa codes (both classical and geometrical) including the decoder of Skorobogatov and Vladut. This part was tried out in a postgraduate course at the University of London. During that course it became evident that the major difficulty in presenting geometric Goppa codes is to find a simple presentation for the geometry of algebraic curves. Chapters 21-23 are my attempt to do this. I hope that once a reader has worked through the first three parts of the book, these chapters will not present excessive difficulties. In treating Goppa's codes, I have tried to exhibit them as natural generalizations ofBCH codes, and included proofs that BCH codes are a special class of both classical and geometric Goppa codes in the exercises.
Part 1 Basic Coding Theory.
Introduction.
Block codes, weight, and distance.
Linear codes.
Error processing for linear codes.
Hamming codes and the binary Golay codes.
Part 2 Finite Fields.
Introduction and an example.
Euclid's algorithm.
Invertible and irreducible elements.
The construction of fields.
The structure of finite fields.
Roots of polynomials.
Primitive elements.
Part 3 BCH Codes and other Polynomial Codes.
BCH codes as subcodes of Hamming codes.
BCH codes as polynomial codes.
BCH error correction: (1) the fundamental equation.
BCH error correction: (2) an algorithm.
Reed-Solomon codes and burst error correction.
Bounds on codes.
Part 4 Classical and Geometric Goppa Codes.
Classical Goppa codes.
Classical Goppa codes: error processing.
Introduction to algebraic curves.
Functions on algebraic curves.
A survey of the theory of algebraic curves.
Geometric Goppa codes.
An error processor for geometric Goppa codes.