The Coding Theory Workbook: a Companion to EE
Total Page:16
File Type:pdf, Size:1020Kb
The Coding Theory Workbook A companion to EE 567 Version 1.1 Spring 2016 Matthew C. Valenti, Ph.D., P.E. West Virginia University Copyright 2012, Matthew C. Valenti Contents 1 Finite Fields 1 1.1 Sets (Ryan and Lin Section 2.1) . 1 1.2 Binary Operations (Ryan and Lin Section 2.1) . 2 1.3 Groups (Ryan and Lin Section 2.2) . 2 1.3.1 Examples . 3 1.3.2 Modulo-m Addition . 3 1.3.3 Modulo-m Multiplication . 4 1.3.4 Cyclic Groups . 4 1.3.5 Subgroups . 5 1.3.6 Cosets . 5 1.4 Fields (Ryan and Lin Section 2.3) . 6 1.4.1 Examples . 6 1.4.2 Subfields . 7 1.4.3 Galois Fields . 7 2 Vector Spaces 9 2.1 Definition of a Vector Space (Ryan and Lin Section 2.4) . 9 2.2 Linear Dependence . 10 2.3 Vector Subspaces . 11 2.4 Bases and Dimensionality . 11 2.4.1 Some Definitions . 11 2.4.2 Binary Linear Codes . 11 2.4.3 Finding a Basis . 12 2.5 Vector and Matrix Multiplication . 13 2.6 Hamming Space . 14 2.7 Subspaces of Vn ....................................... 14 2.7.1 Binary Linear Codes . 15 2.7.2 Generator Matrices . 15 2.8 Dual Spaces . 16 2.8.1 Dual Codes . 17 2.8.2 Parity-Check Matrices . 17 2.9 Systematic Codes . 18 iii 3 Binary Linear Codes 21 3.1 Binary Codes . 21 3.1.1 Hamming Space . 21 3.1.2 Binary Codes . 21 3.1.3 Linear Codes . 21 3.1.4 Nonlinear Codes . 21 3.1.5 Cosets of C ..................................... 21 3.1.6 Dual Code . 22 3.2 Binary Linear Codes . 22 3.2.1 Bases and Generators . 22 3.2.2 Dimension of a Code and its Dual . 22 3.2.3 Generator and Parity-Check Matrices . 22 3.2.4 Systematic Codes . 23 3.2.5 Syndromes . 24 3.2.6 Error Detection . 25 3.2.7 Error Correction . 26 3.3 Minimum Distance . 26 3.3.1 Definitions . 26 3.3.2 Error Correction and Detection Capability . 27 3.3.3 Minimum Distance of a Linear Code . 28 3.4 Finding the Minimum Distance from H . 29 4 The Many-Uses of H: Design, Encoding, and Decoding 31 4.1 Properties of Parity-Check Matrices . 31 4.1.1 Non-uniqueness of the H matrix: . 31 4.1.2 Finding the Minimum Distance from H . 32 4.2 Code Design . 32 4.2.1 Optimizing Codes of Particular n and dmin ................... 32 4.2.2 Designing Codes with dmin ≥ 3.......................... 32 4.2.3 Hamming Codes . 33 4.2.4 Shortening . 34 4.2.5 The Singleton Bound . 35 4.2.6 Codes of dmin =4 ................................. 35 4.3 Systematic Encoding Using the H Matrix . 36 4.4 Decoding Using H ..................................... 37 4.4.1 Standard Array Decoding . 37 4.4.2 Syndrome Table Decoding . 39 4.4.3 A Simple Decoder for the Hamming Code . 39 4.5 The Hamming Bound . 40 4.6 Perfect Codes . 40 4.7 Summary of Terms . 41 iv 5 Cyclic Codes 43 5.1 Cyclic Codes: Motivation . 43 5.2 Cyclic Codes: Definitions . 43 5.3 Polynomial Representation of Vectors . 44 5.4 Polynomial Arithmetic . 44 5.5 Factoring Polynomials . 47 5.6 Cyclic Shift of Polynomials . 48 5.7 Code, Generator, and Parity Polynomials . 49 6 BCH Codes 51 6.1 Review of Cyclic Codes . 51 6.2 Overview of BCH Codes . 52 6.3 Advanced Polynomial Theory . 52 6.3.1 Primitive Polynomials . 52 6.3.2 Constructing GF (2`)................................ 53 6.3.3 Minimal Polynomials . 55 6.3.4 Conjugates . 56 6.4 BCH Code Generators . 56 v Chapter 1 Finite Fields 1.1 Sets (Ryan and Lin Section 2.1) A set is a collection of elements. The convention is to use uppercase letters to denote sets, such as X or Y . The elements of a set may be represented by lowercase letters, which could be subscripted, e.g. x1 or y1.A finite set has a finite number of elements, for instance: X = fx1; x2g Y = fy1; y2; y3g are two finite sets. The cardinality of a finite set is the number of elements in the set. The cardinality of a set S is denoted jSj. For the above examples, determine jXj and jY j: jXj = jY j = A set X is said to be a subset of another set Y if all the elements in X are also in Y . For instance, if X = f4; 5g Y = f4; 5; 6g then X is a subset of Y and we would express this relationship as X ⊆ Y . X is said to be a proper subset of Y if jXj < jY j, and we indicate this by X ⊂ Y . Note that any set X is a subset of itself but not a proper subset of itself, therefore we can write X ⊆ X but we cannot write X ⊂ X. We are often interested in the following set operations: Union: X [ Y contains all elements in X or Y (or both). Intersection: X \ Y contains all elements in X and Y . Difference: Y n X contains the elements in Y that are not in X. Two sets are said to be disjoint if they have no elements in common, i.e. X \ Y = ?. 1 2 1.2 Binary Operations (Ryan and Lin Section 2.1) A binary operation is a rule that assigns a value to a pair of elements called operands. The word binary means that there are exactly two operands. While a variety of symbols may be used for the operator, we will use the notation `∗' to denote an arbitrary operator. Thus, we would write a binary operator as: a ∗ b = c Properties: A binary operator defined over a set S may or may not satisfy the following properties: Closure: for all a; b 2 S, a ∗ b = c 2 S. Associativity: for all a; b; c 2 S,(a ∗ b) ∗ c = a ∗ (b ∗ c). Commutativity: for all a; b 2 S, a ∗ b = b ∗ a. Examples: Some typical binary operations: 1. Arithmetic operations on scalars: Addition, multiplication, subtraction, division. 2. Exponentiation: ab. 3. Matrix addition; matrix multiplication. 1 4. Modulo-m addition a b; modulo-m and multiplication a b. 5. Logicals: AND, OR, XOR, NOR, NAND. 1.3 Groups (Ryan and Lin Section 2.2) A group is an algebraic system consisting of a set G on which a binary operation ∗ is defined with properties: 1. Closure: if a; b 2 G then a ∗ b = c 2 G. 2. Associativity: for all a; b; c 2 G,(a ∗ b) ∗ c = a ∗ (b ∗ c). 3. Identity: there exists a unique element e 2 G such that a ∗ e = e ∗ a = a. 4. Inverse: for all a 2 G there exists a unique element a0 2 G such that a ∗ a0 = a0 ∗ a = e. A group is said to be commutative or abelian if it satisfies the above properties as well as: 5. Commutativity: for all a; b 2 G, a ∗ b = b ∗ a. The order of a group is the number of elements it contains, i.e. jGj, which is the cardinality of set G. If the order is finite, then the group is said to be finite. 1 a b is defined as the remainder that results when (a+b) is divided by m. The result is contained in the set f0; :::; m − 1g. Similarly, a b is the remainder.