6.02 Fall 2012 Lecture #5



Similar documents
Coping with Bit Errors using Error Correction Codes

Linear Codes. Chapter Basics

Data Link Layer Overview

Sheet 7 (Chapter 10)

Notes on Determinant

Direct Methods for Solving Linear Systems. Matrix Factorization

Computer Networks. Data Link Layer

Data Link Layer(1) Principal service: Transferring data from the network layer of the source machine to the one of the destination machine

Technical Specifications for KD5HIO Software

MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS. + + x 2. x n. a 11 a 12 a 1n b 1 a 21 a 22 a 2n b 2 a 31 a 32 a 3n b 3. a m1 a m2 a mn b m

MATH10212 Linear Algebra. Systems of Linear Equations. Definition. An n-dimensional vector is a row or a column of n numbers (or letters): a 1.

Similar matrices and Jordan form

Data Storage - II: Efficient Usage & Errors

MATH 304 Linear Algebra Lecture 18: Rank and nullity of a matrix.

STATISTICS AND DATA ANALYSIS IN GEOLOGY, 3rd ed. Clarificationof zonationprocedure described onpp

Coding and decoding with convolutional codes. The Viterbi Algor

Lecture 2 Matrix Operations

Fast Fourier Transform: Theory and Algorithms

LECTURE 4. Last time: Lecture outline

Linearly Independent Sets and Linearly Dependent Sets

MATRIX ALGEBRA AND SYSTEMS OF EQUATIONS

LS.6 Solution Matrices

Error Control Coding and Ethernet

The finite field with 2 elements The simplest finite field is

6. Cholesky factorization

Solving Systems of Linear Equations

Notes 11: List Decoding Folded Reed-Solomon Codes

Linear Algebra Notes

Notes on Factoring. MA 206 Kurt Bryan

The mathematics of RAID-6

THE DIMENSION OF A VECTOR SPACE

Introduction to Matrix Algebra

1 Introduction to Matrices

Orthogonal Projections

December 4, 2013 MATH 171 BASIC LINEAR ALGEBRA B. KITCHENS

It explains the differences between the Plesiochronous Digital Hierarchy and the Synchronous Digital Hierarchy.

Lecture 2 Linear functions and examples

How To Write A Hexadecimal Program

Data Link Layer. Flow Control. Flow Control

Systems of Linear Equations

Math 215 HW #6 Solutions

Matrices 2. Solving Square Systems of Linear Equations; Inverse Matrices

SOLVING LINEAR SYSTEMS

Introduction to Algebraic Coding Theory

Revision of Lecture Eighteen

Codes for Network Switches

x = + x 2 + x

Why disk arrays? CPUs improving faster than disks

Why disk arrays? CPUs speeds increase faster than disks. - Time won t really help workloads where disk in bottleneck

8. Linear least-squares

CODING THEORY a first course. Henk C.A. van Tilborg

13 MATH FACTS a = The elements of a vector have a graphical interpretation, which is particularly easy to see in two or three dimensions.

PEDS: A Parallel Error Detection Scheme for TCAM Devices

1.2 Solving a System of Linear Equations

A =

Mathematical Modelling of Computer Networks: Part II. Module 1: Network Coding

Nonlinear Multi-Error Correction Codes for Reliable NAND Flash Memories

Lecture 3: Finding integer solutions to systems of linear equations

October 3rd, Linear Algebra & Properties of the Covariance Matrix

Solutions to Math 51 First Exam January 29, 2015

Data Corruption In Storage Stack - Review

= = 3 4, Now assume that P (k) is true for some fixed k 2. This means that

Solving Systems of Linear Equations Using Matrices

K80TTQ1EP-??,VO.L,XU0H5BY,_71ZVPKOE678_X,N2Y-8HI4VS,,6Z28DDW5N7ADY013

Chapter 7. Matrices. Definition. An m n matrix is an array of numbers set out in m rows and n columns. Examples. (

The Assignment Problem and the Hungarian Method

Similarity and Diagonalization. Similar Matrices

Linear Algebra Notes for Marsden and Tromba Vector Calculus

Enhancing High-Speed Telecommunications Networks with FEC

160 CHAPTER 4. VECTOR SPACES

Question 2: How do you solve a matrix equation using the matrix inverse?

Solution to Homework 2

Data Mining: Algorithms and Applications Matrix Math Review

Some facts about polynomials modulo m (Full proof of the Fingerprinting Theorem)

Efficient Data Recovery scheme in PTS-Based OFDM systems with MATRIX Formulation

Introduction to Multivariate Analysis

A Frequency Hopping Algorithm for Cordless Telephone Systems

MATH 423 Linear Algebra II Lecture 38: Generalized eigenvectors. Jordan canonical form (continued).

Chapter 6. Linear Programming: The Simplex Method. Introduction to the Big M Method. Section 4 Maximization and Minimization with Problem Constraints

How To Encrypt Data With A Power Of N On A K Disk

10.2 ITERATIVE METHODS FOR SOLVING LINEAR SYSTEMS. The Jacobi Method

Lecture L3 - Vectors, Matrices and Coordinate Transformations

Functional-Repair-by-Transfer Regenerating Codes

Name: Section Registered In:

Interference Alignment and the Degrees of Freedom of Wireless X Networks

Chapter 3: Sample Questions, Problems and Solutions Bölüm 3: Örnek Sorular, Problemler ve Çözümleri

The Characteristic Polynomial

α = u v. In other words, Orthogonal Projection

Chapter 2 Data Storage

CDMA TECHNOLOGY. Brief Working of CDMA

Section Continued

Course 13 SDH/SONET multiplexing strategy

Arithmetic and Algebra of Matrices

Transcription:

6.2 Fall 22 Lecture #5 Error correction for linear block codes - Syndrome decoding Burst errors and interleaving 6.2 Fall 22 Lecture 5, Slide #

Matrix Notation for Linear Block Codes Task: given k-bit message, compute n-bit codeword. We can use standard matrix arithmetic (modulo 2) to do the job. For example, here s how we would describe the (9,4,4) rectangular code that includes an overall parity bit. D G = C D D D D 2 3 4 = [ D D 2 D 3 D 4 P P2 P P 3 P [ ] n k k n code word vector 6.2 Fall 22 Lecture 5, Slide #2 4 5 message generator in the row space of G vector matrix The generator matrix, G kxn = I A k k k (n k) ]

A closer look at the Parity Check Matrix A Parity equation k P j = D i a ij i= k Parity relation P j + D i a ij = i= A = [a ij ] So entry a ij in i-th row, j-th column of A specifies whether data bit D i is used in constructing parity bit P j Questions: Can two columns of A be the same? Should two columns of A be the same? How about rows? 6.2 Fall 22 Lecture 5, Slide #3

Parity Check Matrix Can restate the codeword For (9,4,4) example generation process as a D parity check or D 2 nullspace check D 3 C. H T H C = (n k)xn xn D 4 = P = 5x P 2 T P 3 P 4 (n-k) x n P 5 parity check The parity check matrix, n matrix code word vector (transpose) 6.2 Fall 22 Lecture 5, Slide #4

Extr acting d from H Claim: The minimum distance d of the code C is the minimum number of columns of H that are linearly dependent, i.e., that can be combined to give the zero vector Proof: d = minimum-weight nonzero codeword in C One consequence: If A has two identical rows, then A T has two identical columns, which means d is no greater than 2, so error correction is not possible. 6.2 Fall 22 Lecture 5, Slide #5

Simple-minded Decoding Compare received n-bit word R = C + E against each of 2 k valid codewords to see which one is HD away Doesn t exploit the nice linear structure of the code! 6.2 Fall 22 Lecture 5, Slide #6

Syndrome Decoding Matrix Fo rm Task: given n-bit code word, compute (n-k) syndrome bits. Again we can use matrix multiply to do the job. received word compute Syndromes R = C + E (n-k) x H R T S syndrome on receive word = To figure out the relationship of Syndromes to errors: H (C + E) T = S H E T = S vector use H C T = figure-out error type from Syndrome Knowing the error patterns we want to correct for, we can compute k Syndrome vectoroffline (or n, if you want to correct errors in the parity bits, but this is not needed) and then do a lookup after the Syndrome is calculated from a received word to find the error type that occurred 6.2 Fall 22 Lecture 5, Slide #7

Syndrome Decoding Steps Step : For a given code and error patterns E i, precompute Syndromes and store them H E i = S i Step 2: For each received word, compute the Syndrome H R = S Step 3: Find l such that S l == S and apply correction for error E l C = R + E l 6.2 Fall 22 Lecture 5, Slide #8

Syndrome Decoding Steps (9,4,4) example Codeword generation: [ ] = [ ] Received word in error:generation: [ ] = [ ] + [ Syndrome computation for received word = Precomputed Syndrome for a given error pattern 6.2 Fall 22 ] = Lecture 5, Slide #9

Syndrome Decoding Steps (9,4,4) example Correction: Since received word Syndrome [ ] T matches the Syndrome of the error [ ], apply this error to the received word to recover the original codeword Received word [ ] = [ ] + [ ] Corrected codeword Error pattern from matching Syndrome 6.2 Fall 22 Lecture 5, Slide #

Linear Block Codes: Wrap-Up (n,k,d) codes have rate k/n and can correct up to floor((d-)/2) bit errors Code words are linear operations over message bits: sum of any two code words is a code word Message + parity bit: (n+,n,2) code Good code rate, but only -bit error detection Replicating each bit c times is a (c,,c) code Simple way to get great error correction; poor code rate Hamming single-error correcting codes are (n, n-m, 3) where n = 2 m - for m > Adding an overall parity bit makes the code (n+,n-m,4) Rectangular parity codes are (rc+r+c, rc, 3) codes Rate not as good as Hamming codes Syndrome decoding: general efficient approach for decoding linear block codes 6.2 Fall 22 Lecture 5, Slide #

Burst Errors Correcting single-bit errors is good Similar ideas could be used to correct independent multi-bit errors But in many situations errors come in bursts: correlated multi-bit errors (e.g., fading or burst of interference on wireless channel, damage to storage media etc.). How does single-bit error correction help with that? 6.2 Fall 22 Lecture 5, Slide #2

Independent multi-bit errors e.g., m errors in n bits n p m ( p) n m m n n! = m (n m)!(m)! n n n! 2πn e 6.2 Fall 22 Lecture 5, Slide #3

Coping with Burst Errors by Interleav ing Well, can we think of a way to turn a B-bit error burst into B single-bit errors? Row-by-row Col-by-col B transmission B transmission order order Problem: Bits from a particular codeword are transmitted sequentially, so a B-bit burst produces multi-bit errors. Solution: interleave bits from B different codewords. Now a B-bit burst produces -bit errors in B different codewords. 6.2 Fall 22 Lecture 5, Slide #4

Framing Looking at a received bit stream, how do we know where a block of interleaved codewords begins? Physical indication (transmitter turns on, beginning of disk sector, separate control channel) Place a unique bit pattern (frame sync sequence) in the bit stream to mark start of a block Frame = sync pattern + interleaved code word block Search for sync pattern in bit stream to find start of frame Bit pattern can t appear elsewhere in frame (otherwise our search will get confused), so have to make sure no legal combination of codeword bits can accidentally generate the sync pattern (can be tricky ) Sync pattern can t be protected by ECC, so errors may cause us to lose a frame every now and then, a problem that will need to be addressed at some higher level of the communication protocol. 6.2 Fall 22 Lecture 5, Slide #5

Summary: example channel coding steps. Break message stream into k-bit blocks. Step : k=4 2. Add redundant info in the form of (n-k) parity bits to form n-bit codeword. Goal: choose parity bits so we can correct single-bit errors. Step 2: (8,4,3) code 3. Interleave bits from a group of B codewords to protect against B- Step 3: B = 3 bit burst errors. 4. Add unique pattern of bits to Step 4: sync = start of each interleaved codeword block so receiver can tell how to extract blocks from Sync pattern has five consecutive s. To prevent sync from appearing in message, received bitstream. 5. Send new (longer) bitstream to bit-stuff s after any sequence of four s in the message. This step is easily transmitter. reversed at receiver (just remove after any sequence of four consecutive s in the message). 6.2 Fall 22 Lecture 5, Slide #6

Summary: example error correction steps. Search through received bit stream for sync pattern, Step : sync = extract interleaved codeword block 2. De-interleave the bits to form Step 2: B = 3, n = 8 B n-bit codewords 3. Check parity bits in each code word to see if an error has Step 3: (8,4,3) code occurred. If there s a singlebit error, correct it. 4. Extract k message bits from each corrected codeword and concatenate to form message stream. Step 4 6.2 Fall 22 Lecture 5, Slide #7

MIT OpenCourseWare http://ocw.mit.edu 6.2 Introduction to EECS II: Digital Communication Systems Fall 22 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.