Linear Block Codes. Saravanan Vijayakumaran Department of Electrical Engineering Indian Institute of Technology Bombay

Similar documents
EE512: Error Control Coding

SIPCom8-1: Information Theory and Coding Linear Binary Codes Ingmar Land

Cyclic Codes. Saravanan Vijayakumaran August 26, Department of Electrical Engineering Indian Institute of Technology Bombay

Chapter 3 Linear Block Codes

MATH3302. Coding and Cryptography. Coding Theory

Finite Fields. Saravanan Vijayakumaran Department of Electrical Engineering Indian Institute of Technology Bombay

Algebraic Geometry Codes. Shelly Manber. Linear Codes. Algebraic Geometry Codes. Example: Hermitian. Shelly Manber. Codes. Decoding.

MATH32031: Coding Theory Part 15: Summary

MATH3302 Coding Theory Problem Set The following ISBN was received with a smudge. What is the missing digit? x9139 9

Chapter 7. Error Control Coding. 7.1 Historical background. Mikael Olofsson 2005

: Coding Theory. Notes by Assoc. Prof. Dr. Patanee Udomkavanich October 30, upattane

Arrangements, matroids and codes

3. Coding theory 3.1. Basic concepts

MATH 433 Applied Algebra Lecture 21: Linear codes (continued). Classification of groups.

LDPC Codes. Slides originally from I. Land p.1

Code design: Computer search

exercise in the previous class (1)

Lecture 12. Block Diagram

Message Passing Algorithm and Linear Programming Decoding for LDPC and Linear Block Codes

MATH 291T CODING THEORY

Coding Theory and Applications. Linear Codes. Enes Pasalic University of Primorska Koper, 2013

Lecture 4 : Introduction to Low-density Parity-check Codes

Solutions to problems from Chapter 3

MATH 291T CODING THEORY

EE 229B ERROR CONTROL CODING Spring 2005

Graph-based codes for flash memory

Lecture 3: Error Correcting Codes

Linear Codes and Syndrome Decoding

Ma/CS 6b Class 25: Error Correcting Codes 2

Finite Mathematics. Nik Ruškuc and Colva M. Roney-Dougal

Parameter Estimation

An Introduction to (Network) Coding Theory

The extended coset leader weight enumerator

Introduction to Convolutional Codes, Part 1

Lecture 14: Hamming and Hadamard Codes

Lecture 12: November 6, 2017

Belief-Propagation Decoding of LDPC Codes

Binary Linear Codes G = = [ I 3 B ] , G 4 = None of these matrices are in standard form. Note that the matrix 1 0 0

Chapter 2. Error Correcting Codes. 2.1 Basic Notions

Lecture B04 : Linear codes and singleton bound

MT5821 Advanced Combinatorics

B. Cyclic Codes. Primitive polynomials are the generator polynomials of cyclic codes.

Lecture Notes on Channel Coding

Vector spaces. EE 387, Notes 8, Handout #12

MATH Examination for the Module MATH-3152 (May 2009) Coding Theory. Time allowed: 2 hours. S = q

An Introduction to (Network) Coding Theory

7.1 Definitions and Generator Polynomials

ECEN 655: Advanced Channel Coding

Linear Cyclic Codes. Polynomial Word 1 + x + x x 4 + x 5 + x x + x


Quasi-cyclic Low Density Parity Check codes with high girth

4 An Introduction to Channel Coding and Decoding over BSC

Vector Spaces. distributive law u,v. Associative Law. 1 v v. Let 1 be the unit element in F, then

Optimum Soft Decision Decoding of Linear Block Codes

Error Detection and Correction: Hamming Code; Reed-Muller Code

Channel Coding for Secure Transmissions

16.36 Communication Systems Engineering

Lecture 2 Linear Codes

Lecture 4: Linear Codes. Copyright G. Caire 88

ERROR-CORRECTING CODES AND LATIN SQUARES

U Logo Use Guidelines

Low-Density Parity-Check Codes

Coding Theory: Linear-Error Correcting Codes Anna Dovzhik Math 420: Advanced Linear Algebra Spring 2014

6.1.1 What is channel coding and why do we use it?

9 THEORY OF CODES. 9.0 Introduction. 9.1 Noise

On Extremal Codes With Automorphisms

Coding Techniques for Data Storage Systems

On Two Probabilistic Decoding Algorithms for Binary Linear Codes

channel of communication noise Each codeword has length 2, and all digits are either 0 or 1. Such codes are called Binary Codes.

Linear Codes, Target Function Classes, and Network Computing Capacity

Introduction to Low-Density Parity Check Codes. Brian Kurkoski

We saw in the last chapter that the linear Hamming codes are nontrivial perfect codes.

And for polynomials with coefficients in F 2 = Z/2 Euclidean algorithm for gcd s Concept of equality mod M(x) Extended Euclid for inverses mod M(x)

Binary Convolutional Codes

Random Variables. Saravanan Vijayakumaran Department of Electrical Engineering Indian Institute of Technology Bombay

Math 512 Syllabus Spring 2017, LIU Post

Error Correction Review

Cyclic Redundancy Check Codes

ECEN 604: Channel Coding for Communications

Information redundancy

ELEC 519A Selected Topics in Digital Communications: Information Theory. Hamming Codes and Bounds on Codes

Introduction into Quantum Computations Alexei Ashikhmin Bell Labs

Answers and Solutions to (Even Numbered) Suggested Exercises in Sections of Grimaldi s Discrete and Combinatorial Mathematics

Codes over Subfields. Chapter Basics

Error Correcting Codes: Combinatorics, Algorithms and Applications Spring Homework Due Monday March 23, 2009 in class

MTAT : Introduction to Coding Theory. Lecture 1

Section 3 Error Correcting Codes (ECC): Fundamentals

Another view of the division property

The Hamming Codes and Delsarte s Linear Programming Bound

Factor Graphs and Message Passing Algorithms Part 1: Introduction

Linear Cyclic Codes. Polynomial Word 1 + x + x x 4 + x 5 + x x + x f(x) = q(x)h(x) + r(x),

Network Coding and Schubert Varieties over Finite Fields

Lecture 8: Channel and source-channel coding theorems; BEC & linear codes. 1 Intuitive justification for upper bound on channel capacity

MATH/MTHE 406 Homework Assignment 2 due date: October 17, 2016

: Error Correcting Codes. October 2017 Lecture 1

Combinatória e Teoria de Códigos Exercises from the notes. Chapter 1

Flip-N-Write: A Simple Deterministic Technique to Improve PRAM Write Performance, Energy and Endurance. Presenter: Brian Wongchaowart March 17, 2010

EE512: Error Control Coding

The idea is that if we restrict our attention to any k positions in x, no matter how many times we

Hamming codes and simplex codes ( )

Transcription:

1 / 26 Linear Block Codes Saravanan Vijayakumaran sarva@ee.iitb.ac.in Department of Electrical Engineering Indian Institute of Technology Bombay July 28, 2014

Binary Block Codes

3 / 26 Let F 2 be the set {0, 1}. Binary Block Code Definition An (n, k) binary block code is a subset of F n 2 containing 2k elements Example n = 3, k = 1, C = {000, 111} Example n 2, C = Set of vectors of even Hamming weight in F n 2, k = n 1 n = 3, k = 2, C = {000, 011, 101, 110} This code is called the single parity check code

4 / 26 Encoding Binary Block Codes The encoder maps k-bit information blocks to codewords. Definition An encoder for an (n, k) binary block code C is an injective function from F k 2 to C Example (3-Repetition Code) 0 000, 1 111 or 1 000, 0 111

5 / 26 Decoding Binary Block Codes The decoder maps n-bit received blocks to codewords Definition A decoder for an (n, k) binary block code is a function from F n 2 to C Example (3-Repetition Code) n = 3, C = {000, 111} 000 000 111 111 001 000 110 111 010 000 101 111 100 000 011 111 Since encoding is injective, information bits can be recovered as 000 0, 111 1

6 / 26 Optimal Decoder for Binary Block Codes Optimality criterion: Maximum probability of correct decision Let x C be the transmitted codeword Let y F n 2 be the received vector Maximum a posteriori (MAP) decoder is optimal ˆx MAP = argmax x C Pr(x y) If all codewords are equally likely to be transmitted, then maximum likelihood (ML) decoder is optimal ˆx ML = argmax x C Pr(y x) Over a BSC with p < 1 2, the minimum distance decoder is optimal if the codewords are equally likely ˆx = argmin x C d(x, y)

7 / 26 Error Correction Capability of Binary Block Codes Definition The minimum distance of a block code C is defined as d min = min d(x, y) x,y C,x y Example (3-Repetition Code) C = {000, 111}, d min = 3 Example (Single Parity Check Code) C = Set of vectors of even weight in F n 2, d min = 2 Theorem For a binary block code with minimum distance d min, the minimum distance decoder can correct upto d min 1 2 errors.

8 / 26 Complexity of Encoding and Decoding Encoder Map from F k 2 to C Worst case storage requirement = O(n2 k ) Decoder Map from F n 2 to C ˆx ML = argmax x C Pr(y x) Worst case storage requirement = O(n2 k ) Time complexity = O(n2 k ) Need more structure to reduce complexity

Binary Linear Block Codes

10 / 26 Vector Spaces over F 2 Define the following operations on F 2 Addition + 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0 Multiplication 0 0 = 0 0 1 = 0 1 0 = 0 1 1 = 1 F 2 is also represented as GF(2) Fact The set F n 2 is a vector space over F 2

11 / 26 Binary Linear Block Code Definition An (n, k) binary linear block code is a k-dimensional subspace of F n 2 Theorem Let S be a nonempty subset of F n 2. Then S is a subspace of Fn 2 if u + v S for any two u and v in S. Example (3-Repetition Code) C = {000, 111} φ 000 + 000 = 000, 000 + 111 = 111, 111 + 111 = 000 Example (Single Parity Check Code) C = Set of vectors of even weight in F n 2 wt(u + v) = wt(u) + wt(v) 2 wt(u v)

12 / 26 Encoding Binary Linear Block Codes Definition A generator matrix for a k-dimensional binary linear block code C is a k n matrix G whose rows form a basis for C. Linear Block Code Encoder Let u be a 1 k binary vector of information bits. The corresponding codeword is v = ug Example (3-Repetition Code) G = [ 1 1 1 ] [ 0 0 0 ] = [ 0 ] [ 1 1 1 ] [ ] 1 1 1 = [ 1 ] [ 1 1 1 ]

13 / 26 Encoding Binary Linear Block Codes Example (Single Parity Check Code) n = 3, k = 2, C = {000, 011, 101, 110} [ ] 1 0 1 G = 0 1 1 [ 0 0 ] 0 [ 0 1 ] 1 [ 1 0 ] 1 [ 1 1 ] 0 = [ 0 0 ] [ ] 1 0 1 0 1 1 = [ 0 1 ] [ ] 1 0 1 0 1 1 = [ 1 0 ] [ ] 1 0 1 0 1 1 = [ 1 1 ] [ ] 1 0 1 0 1 1

14 / 26 Encoding Complexity of Binary Linear Block Codes Need to store G Storage requirement = O(nk) O(n2 k ) Time complexity = O(nk) Complexity can be reduced further by imposing more structure in addition to linearity Decoding complexity? What is the optimal decoder?

15 / 26 Decoding Binary Linear Block Codes Codewords are equally likely ML decoder is optimal ˆx ML = argmax x C Pr(y x) Equally likely codewords and channel is BSC Minimum distance decoder is optimal ˆx ML = argmin x C d(x, y) To exploit linear structure to reduce decoding complexity, we need to study the dual code

16 / 26 Inner Product of Vectors in F n 2 Definition Let u = (u 1, u 2,..., u n ) and v = (v 1, v 2,..., v n ) belong to F n 2. The inner product of u and v is given by u v = n u i v i i=1 u v = 0 u and v are orthogonal. Examples ( 1 0 0 ) (0 1 1 ) = 1 0 + 0 1 + 0 1 = 0 ( 1 1 0 ) (0 1 1 ) = 1 0 + 1 1 + 0 1 = 1 ( 1 1 1 ) (0 1 1 ) = 1 0 + 1 1 + 1 1 = 0 ( 0 1 1 ) (0 1 1 ) = 0 0 + 1 1 + 1 1 = 0 Nonzero vectors can be self-orthogonal

Dual Code of a Linear Block Code Definition Let C be an (n, k) binary linear block code. Let C be the set of vectors in F n 2 which are orthogonal to all the codewords in C. { } C = u F n 2 u v = 0 for all v C C is a linear block code and is called the dual code of C. Example (3-Repetition Code) C = {000, 111}, C =? 000 111 = 0 111 111 = 1 001 111 = 1 110 111 = 0 010 111 = 1 101 111 = 0 100 111 = 1 011 111 = 0 C = {000, 011, 101, 110} = Single Parity Check Code 17 / 26

18 / 26 Dimension of the Dual Code Example (3-Repetition Code and SPC Code) C = {000, 111}, dim C = 1 C = {000, 011, 101, 110}, dim C = 2 dim C + dim C = 1 + 2 = 3 Theorem dim C + dim C = n Corollary C is an (n, k) binary linear block code C is an (n, n k) binary linear block code

19 / 26 Parity Check Matrix of a Code Definition Let C be an (n, k) binary linear block code and let C be its dual code. A generator matrix H for C is called a parity check matrix for C. Example (3-Repetition Code) C = {000, 111} C = {000, 011, 101, 110} A generator matrix of C is H = H is a parity check matrix of C. [ 1 0 ] 1 0 1 1

20 / 26 Parity Check Matrix Completely Describes a Code Theorem Let C be a linear block code with parity check matrix H. Then v C v H T = 0 Example (3-Repetition [ Code) ] 1 0 1 C = {000, 111}, H = 0 1 1 Forward direction: v C v H T = 0 [ ] 1 0 0 0 0 0 1 = [ 0 0 ], [ 1 1 1 ] 1 0 0 1 = [ 0 0 ] 1 1 1 1

21 / 26 Parity Check Matrix Completely Describes a Code Theorem Let C be a linear block code with parity check matrix H. Then v C v H T = 0 Example (3-Repetition [ Code) ] 1 0 1 C = {000, 111}, H = 0 1 1 Reverse direction: v C v H T = 0 v H T = [ ] 1 0 v 1 v 2 v 3 0 1 = [ ] v 1 + v 3 v 2 + v 3 1 1 v H T = 0 v 1 + v 3 = 0, v 2 + v 3 = 0 v 1 = v 3, v 2 = v 3 v 1 = v 2 = v 3

22 / 26 Decoding Binary Linear Block Codes Let a codeword x be sent through a BSC to get y, where e is the error vector y = x + e The probability of observing y given x was transmitted is given by Pr(y x) = p d(x,y) (1 p) n d(x,y) = p wt(e) (1 p) n wt(e) = (1 p) n ( p 1 p ) wt(e) If p < 1 2, lower weight error vectors are more likely

Decoding Binary Linear Block Codes Optimal decoder is given by ˆx ML = argmin x C d(x, y) = y + ê ML where ê ML = Most likely error vector such that y + e C. y + e C (y + e) H T = 0 e H T = y H T If s = y H T, the most likely error vector is ê ML = argmin wt(e) e F n 2,e HT =s Time complexity = O ( p(n)2 k) where p is a polynomial For each s, the ê ML can be precomputed and stored s is 1 n k binary vector Storage required is O(n2 n k ) 23 / 26

Summary

25 / 26 Complexity Comparison General Block Codes Encoding = O(n2 k ) Decoding = O(n2 k ) Linear Block Codes Encoding = O(nk) Decoding = O(p(n)2 min(k,n k) ) Observations Linear structure in codes reduces encoding complexity Decoding complexity is still exponential Need for codes with low complexity decoders

Questions? Takeaways? 26 / 26