Cyclic Redundancy Check Codes

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

Solutions to problems from Chapter 3

Information redundancy

EE 229B ERROR CONTROL CODING Spring 2005

9 THEORY OF CODES. 9.0 Introduction. 9.1 Noise

Chapter 3 Linear Block Codes

Communications II Lecture 9: Error Correction Coding. Professor Kin K. Leung EEE and Computing Departments Imperial College London Copyright reserved

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

16.36 Communication Systems Engineering

ECEN 604: Channel Coding for Communications

Fully-parallel linear error block coding and decoding a Boolean approach

MATH3302. Coding and Cryptography. Coding Theory

1. How many errors may be detected (not necessarily corrected) if a code has a Hamming Distance of 6?

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

3. Coding theory 3.1. Basic concepts

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


Mathematics Department

Introduction to Wireless & Mobile Systems. Chapter 4. Channel Coding and Error Control Cengage Learning Engineering. All Rights Reserved.

Fault Tolerant Computing CS 530 Information redundancy: Coding theory. Yashwant K. Malaiya Colorado State University

ECE8771 Information Theory & Coding for Digital Communications Villanova University ECE Department Prof. Kevin M. Buckley Lecture Set 2 Block 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

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

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

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

x n k m(x) ) Codewords can be characterized by (and errors detected by): c(x) mod g(x) = 0 c(x)h(x) = 0 mod (x n 1)

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

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

Can You Hear Me Now?

Cyclic codes: overview

1.6: Solutions 17. Solution to exercise 1.6 (p.13).

Linear Codes and Syndrome Decoding

Lecture 12. Block Diagram

Outline. EECS Components and Design Techniques for Digital Systems. Lec 18 Error Coding. In the real world. Our beautiful digital world.

Chapter 5. Cyclic Codes

MATH 433 Applied Algebra Lecture 22: Review for Exam 2.

Lecture 4: Linear Codes. Copyright G. Caire 88

Error Detection & Correction

MT5821 Advanced Combinatorics

Arrangements, matroids and codes

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

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

EE512: Error Control Coding

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

exercise in the previous class (1)

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

MATH32031: Coding Theory Part 15: Summary

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

Math 512 Syllabus Spring 2017, LIU Post

Hamming Codes 11/17/04

Part III Advanced Coding Techniques

MATH 291T CODING THEORY

The extended coset leader weight enumerator

EECS Components and Design Techniques for Digital Systems. Lec 26 CRCs, LFSRs (and a little power)

Assume that the follow string of bits constitutes one of the segments we which to transmit.

MATH 291T CODING THEORY

Multimedia Systems WS 2010/2011

Solutions of Exam Coding Theory (2MMC30), 23 June (1.a) Consider the 4 4 matrices as words in F 16

Channel Coding and Interleaving

Error Correction Methods

Fault Tolerance & Reliability CDA Chapter 2 Cyclic Polynomial Codes

Objective: To become acquainted with the basic concepts of cyclic codes and some aspects of encoder implementations for them.

Quasi-cyclic Low Density Parity Check codes with high girth

ERROR CORRECTING CODES

BINARY CODES. Binary Codes. Computer Mathematics I. Jiraporn Pooksook Department of Electrical and Computer Engineering Naresuan University

An Introduction to (Network) Coding Theory

Error Correction and Trellis Coding

A Brief Encounter with Linear Codes

EECS150 - Digital Design Lecture 26 Error Correction Codes, Linear Feedback Shift Registers (LFSRs)

Physical Layer and Coding

Cyclic codes. Vahid Meghdadi Reference: Error Correction Coding by Todd K. Moon. February 2008

Roll No. :... Invigilator's Signature :.. CS/B.TECH(ECE)/SEM-7/EC-703/ CODING & INFORMATION THEORY. Time Allotted : 3 Hours Full Marks : 70

U Logo Use Guidelines

Know the meaning of the basic concepts: ring, field, characteristic of a ring, the ring of polynomials R[x].

7.1 Definitions and Generator Polynomials

Lecture Introduction. 2 Linear codes. CS CTT Current Topics in Theoretical CS Oct 4, 2012

Coset Decomposition Method for Decoding Linear Codes

4F5: Advanced Communications and Coding

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

Information Redundancy: Coding

Lecture 3: Error Correcting Codes

Chapter 6. BCH Codes

1 1 0, g Exercise 1. Generator polynomials of a convolutional code, given in binary form, are g

Optical Storage Technology. Error Correction

Information Theory. Lecture 7

Lecture B04 : Linear codes and singleton bound

Introduction to Low-Density Parity Check Codes. Brian Kurkoski

ECE 4450:427/527 - Computer Networks Spring 2017

: Error Correcting Codes. October 2017 Lecture 1

Improving the Performance of the SYND Stream Cipher

An Introduction to Low Density Parity Check (LDPC) Codes

Channel Coding I. Exercises SS 2017

ICS141: Discrete Mathematics for Computer Science I

Error-Correcting Codes

Some Easily Decoded, Efficient, Burst Error Correcting Block Codes

An Introduction to (Network) Coding Theory

Lecture 14: Hamming and Hadamard Codes

Generator Matrix. Theorem 6: If the generator polynomial g(x) of C has degree n-k then C is an [n,k]-cyclic code. If g(x) = a 0. a 1 a n k 1.

Weaknesses of Margulis and Ramanujan Margulis Low-Density Parity-Check Codes

EECS150 - Digital Design Lecture 23 - FFs revisited, FIFOs, ECCs, LSFRs. Cross-coupled NOR gates

Transcription:

Cyclic Redundancy Check Codes Lectures No. 17 and 18 Dr. Aoife Moloney School of Electronics and Communications Dublin Institute of Technology

Overview These lectures will look at the following: Cyclic redundancy check (CRC) codes Generator and parity check matrices Decoding at the receiver DT008/2 Digital Communications Engineering II Slide: 1

Cyclic Redundancy Check (CRC) Codes CRCs are very popular linear block codes. They are very effective for error detection and correction. The channel coders and decoders are easy to implement in hardware. DT008/2 Digital Communications Engineering II Slide: 2

CRC Advantages CRC codes of length n can be generated which detect: All single and double errors Any odd number of errors Any burst error n and most larger error bursts Sample questions DT008/2 Digital Communications Engineering II Slide: 3

Generator and Parity Check Matrices All linear block codes can be generated from generator matrices and have error checking performed using parity check matrices and syndrome testing. We will use these matrix techniques to examine CRC codes here. DT008/2 Digital Communications Engineering II Slide: 4

Generating the Codewords Let x m1,x m2,...,x mk denote the k information bits which are encoded to give the codeword C m. The information bits are represented using a 1 k matrix (meaning 1 row k columns). This matrix is called X m and is shown below: X m = [x m1 x m2 x mk ] The codeword is represented by a 1 n matrix as shown DT008/2 Digital Communications Engineering II Slide: 5

below: C m = [c m1 c m2 c mn ] Each element of the codeword C m is given by: c mj = x m1 g 1j x m2 g 2j x mk g kj for j = 1,...,n where g ij is either a 1 or a 0. The products x mi g ij represent ordinary multiplication, and the operator indicates XOR (modulo-2 addition). The n linear equations that generate each codeword may DT008/2 Digital Communications Engineering II Slide: 6

be written in matrix form as follows: C m = X m G G is called the generator matrix of the code and is given as: g 11 g 12... g 1n g 21 g 22 g 2n... g k1 g k2 g kn DT008/2 Digital Communications Engineering II Slide: 7

Systematic Form The form of the generator matrix is not unique. However, it may always be reduced to systematic form as shown below: 1 0 0 p 11 p 12... p 1n k 0 1 0 p 21 p 22 g 2n k G =......... 0 0 1 p k1 p k2 g kn k The generator matrix has the form [I k P] where I k is DT008/2 Digital Communications Engineering II Slide: 8

the identity matrix (note: an identity matrix is a matrix which has a diagonal made up of 1s and has 0s everywhere else) and P is the k (n k) parity check matrix. This systematic form generator matrix generates codewords C m in which the k information bits are followed by the n k parity bits. DT008/2 Digital Communications Engineering II Slide: 9

The Parity Check Matrix H Since G is a k n matrix with all k rows being linearly independent we can say that the rows of G form a set of basis vectors in a k-dimensional subspace of the n- dimensional space defined by considering all valid and invalid codewords. There therefore must exist another matrix, H, consisting of n k linearly independent rows that forms a set of basis vectors in the n k subspace which is unreachable from G. It follows that each valid codeword C m will be DT008/2 Digital Communications Engineering II Slide: 10

orthogonal to the basis vector set defined by H, i.e. C m H = 0 As the basis vectors defined by G occupy a subspace unreachable by H, it follows that every vector of G is orthogonal to every vector of H, i.e. GH = 0 DT008/2 Digital Communications Engineering II Slide: 11

Constructing H So a codeword generated by G cannot reach the subspace defined by H unless a transmission error occurs. H may therefore be used to verify that a received codeword is valid by verifying that it has not entered this forbidden sub-space. Due to this special property H is called the parity check matrix of the generator matrix G. Because of the relationship between G and H, H may be DT008/2 Digital Communications Engineering II Slide: 12

written as: H = [P I n k ] when G = [I k P] and GH = 0 DT008/2 Digital Communications Engineering II Slide: 13

Example Find the H matrix given that the generator matrix G = [I k P] is: 1 0 0 0 1 1 0 0 1 0 0 0 1 1 G = 0 0 1 0 1 1 1 0 0 0 1 1 0 1 H = [P I n k ] (note: P means the transpose of the matrix P, the transpose is found by making the columns DT008/2 Digital Communications Engineering II Slide: 14

of P into rows) giving: 1 0 1 1 1 0 0 H = 1 1 1 0 0 1 0 0 1 1 1 0 0 1 DT008/2 Digital Communications Engineering II Slide: 15

Decoding at the Receiver A simple method for decoding at the receiver would be to add (modulo-2) each received codeword to the complete set of allowed codewords (C i i = 1, 2,...,m) to obtain the error vector set e r. The error vector e i with the smallest number of 1s is the one with the minimum distance to an allowed codeword and therefore the transmitted codeword is deemed to be C i. Ideally e i consists of all 0s, i.e. no error occurs. DT008/2 Digital Communications Engineering II Slide: 16

The Syndrome of the Error Pattern The previous method is easy to understand but is inefficient. It involves comparing each received codeword Y with 2 n possible valid codewords. In general Y may be written as: Y = C m + e DT008/2 Digital Communications Engineering II Slide: 17

Multiply Y by H the parity check matrix gives: Y H = (C m + e)h = C m H + eh = 0 + eh = eh = S The n k vector S is called the syndrome of the error pattern. DT008/2 Digital Communications Engineering II Slide: 18

Syndrome Testing To correct a received codeword, Y, follow the 3 step process outlined below: Calculated S S = Y H Use S to find the most likely error e m from a syndrome look-up table. Correct the codeword by adding e m to Y : C m = Y e m DT008/2 Digital Communications Engineering II Slide: 19

Sample Questions Quesion 1 (a) A (7, 4) CRC code has the following generator matrix: 1 0 0 0 1 0 1 0 1 0 0 1 1 1 G = 0 0 1 0 1 1 0 0 0 0 1 0 1 1 Noting that this matrix is given in the [I k write down the parity check matrix H. P] form, DT008/2 Digital Communications Engineering II Slide: 20

(b) Hence calculate the syndromes for the following received code words: Y 1 = (1 1 0 0 1 0 1) Y 2 = (1 1 0 0 0 0 1) Y 3 = (1 1 1 1 0 1 0) (c) The syndrome table for this code is: DT008/2 Digital Communications Engineering II Slide: 21

Syndrome Error Pattern 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 0 DT008/2 Digital Communications Engineering II Slide: 22

Question 2: A (7, 3) CRC code has the following generator matrix: 1 0 1 1 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0 0 1 1. Calculate the entire code book for this codeword, i.e. the set of eight allowable codewords generated from input messages 000, 001, 010,..., 111. 2. Calculate the Hamming distance between the all-zero codeword (C 0 =[0 0 0 0 0 0 0]) and each of the other DT008/2 Digital Communications Engineering II Slide: 23

non-zero code words (a total of seven Hamming distance calculations). Question 3: A (7, 4) Hamming Linear Block code has the following generator matrix: 1 0 0 0 1 1 0 0 1 0 0 0 1 1 G = 0 0 1 0 1 1 1 0 0 0 1 1 0 1 1. Noting that this matrix is given in the [I k P] form, DT008/2 Digital Communications Engineering II Slide: 24

write down the parity check matrix H. 2. Using H, verify that the following code words are valid: C 1 = [1 0 1 1 1 0 0] C 2 = [0 1 0 1 1 1 0] C 3 = [0 0 0 1 1 0 1] DT008/2 Digital Communications Engineering II Slide: 25

Conclusion These lectures have looked at the following: Cyclic redundancy check (CRC) codes Generator and parity check matrices Decoding at the receiver Sample questions DT008/2 Digital Communications Engineering II Slide: 26