Detecting and Correcting Bit Errors. COS 463: Wireless Networks Lecture 8 Kyle Jamieson

Similar documents
Layering and Controlling Errors

ECE 5325/6325: Wireless Communication Systems Lecture Notes, Spring 2013

Lecture 6: Reliable Transmission"

Physical-Layer Services and Systems

Chapter 10 Error Detection and Correction 10.1

ECE 5325/6325: Wireless Communication Systems Lecture Notes, Spring 2013

Lecture 3: Error Handling

Outline. EECS 122, Lecture 6. Error Control Overview Where are Codes Used? Error Control Overview. Error Control Strategies ARQ versus FEC

Digital Data Communication Techniques

Revision of Lecture Eleven

Wireless Communications

Lecture 4: Wireless Physical Layer: Channel Coding. Mythili Vutukuru CS 653 Spring 2014 Jan 16, Thursday

Single Error Correcting Codes (SECC) 6.02 Spring 2011 Lecture #9. Checking the parity. Using the Syndrome to Correct Errors

Lecture 3 Data Link Layer - Digital Data Communication Techniques

Error Protection: Detection and Correction

Error Detection and Correction: Parity Check Code; Bounds Based on Hamming Distance

EE521 Analog and Digital Communications

ECE 476/ECE 501C/CS Wireless Communication Systems Winter Lecture 9: Error Control Coding

Lecture 17 Components Principles of Error Control Borivoje Nikolic March 16, 2004.

Error Detection and Correction

Page 1. Outline. Basic Idea. Hamming Distance. Hamming Distance Visual: HD=2

Data and Computer Communications

Chapter 10 Error Detection and Correction

b. When transmitting a message through a transmission medium, the equipment which receives the message should first find out whether it has received

QUIZ : oversubscription

Digital Transmission using SECC Spring 2010 Lecture #7. (n,k,d) Systematic Block Codes. How many parity bits to use?

16.36 Communication Systems Engineering

Error Correction with Hamming Codes

Block code Encoder. In some applications, message bits come in serially rather than in large blocks. WY Tam - EIE POLYU

Basics of Error Correcting Codes

Computer Networks. Week 03 Founda(on Communica(on Concepts. College of Information Science and Engineering Ritsumeikan University

Channel Coding/Decoding. Hamming Method

6. FUNDAMENTALS OF CHANNEL CODER

Digital Communication Systems ECS 452

DIGITAL DATA COMMUNICATION TECHNIQUES

ETSI TS V1.1.2 ( )

Computer Science 1001.py. Lecture 25 : Intro to Error Correction and Detection Codes

Summary of Basic Concepts

FREDRIK TUFVESSON ELECTRICAL AND INFORMATION TECHNOLOGY

Spreading Codes and Characteristics. Error Correction Codes

CSC344 Wireless and Mobile Computing. Department of Computer Science COMSATS Institute of Information Technology

Umudike. Abia State, Nigeria

EECS 380: Wireless Technologies Week 7-8

Department of Computer Science and Engineering. CSE 3213: Communication Networks (Fall 2015) Instructor: N. Vlajic Date: Dec 13, 2015

ECE 6640 Digital Communications

Simulink Modelling of Reed-Solomon (Rs) Code for Error Detection and Correction

Datacommunication I. Layers of the OSI-model. Lecture 3. signal encoding, error detection/correction

Error-Correcting Codes

CSCI-1680 Physical Layer Rodrigo Fonseca

MIMO II: Physical Channel Modeling, Spatial Multiplexing. COS 463: Wireless Networks Lecture 17 Kyle Jamieson

Performance of Reed-Solomon Codes in AWGN Channel

Communications Theory and Engineering

The ternary alphabet is used by alternate mark inversion modulation; successive ones in data are represented by alternating ±1.

A Novel Approach for Error Detection Using Additive Redundancy Check

Implementation of Reed Solomon Encoding Algorithm

and coding (a.k.a. communication theory) Signals and functions Elementary operation of communication: send signal on

Design of Reed Solomon Encoder and Decoder

A Survey of Advanced FEC Systems

Exercises to Chapter 2 solutions

6.004 Computation Structures Spring 2009

Digital Television Lecture 5

Computer Networks - Xarxes de Computadors

Intuitive Guide to Principles of Communications By Charan Langton Coding Concepts and Block Coding

OSI Reference Model. Application Layer. Presentation Layer. Session Layer. Chapter 4: Application Protocols. Transport Layer.

Lecture #2. EE 471C / EE 381K-17 Wireless Communication Lab. Professor Robert W. Heath Jr.

White Paper FEC In Optical Transmission. Giacomo Losio ProLabs Head of Technology

Wireless Communication

An Efficient Forward Error Correction Scheme for Wireless Sensor Network

BSc (Hons) Computer Science with Network Security BEng (Hons) Electronic Engineering

ECE 6640 Digital Communications

CAN FD and the CRC issue

The design of the IEEE coding scheme

IMPERIAL COLLEGE of SCIENCE, TECHNOLOGY and MEDICINE, DEPARTMENT of ELECTRICAL and ELECTRONIC ENGINEERING.

Hamming Codes as Error-Reducing Codes

BSc (Hons) Computer Science with Network Security, BEng (Hons) Electronic Engineering. Cohorts: BCNS/17A/FT & BEE/16B/FT

Department of Computer Science and Engineering. CSE 3213: Computer Networks I (Fall 2009) Instructor: N. Vlajic Date: Dec 11, 2009.

International Journal of Engineering Research in Electronics and Communication Engineering (IJERECE) Vol 1, Issue 5, April 2015

IJESRT. (I2OR), Publication Impact Factor: 3.785

Error Control Coding. Aaron Gulliver Dept. of Electrical and Computer Engineering University of Victoria

Introduction to Coding Theory

CS 438 Communication Networks Spring 2014 Homework 2 Due Date: February 19

Synchronization of Hamming Codes

Hardware Implementation of BCH Error-Correcting Codes on a FPGA

Channel Coding RADIO SYSTEMS ETIN15. Lecture no: Ove Edfors, Department of Electrical and Information Technology

Hamming Codes and Decoding Methods

Error Correcting Code

Multiple Downstream Profile Implications. Ed Boyd, Broadcom

Introduc)on to Computer Networks

The idea of similarity is through the Hamming

Improved PHR coding of the MR-O-QPSK PHY

RADIO SYSTEMS ETIN15. Channel Coding. Ove Edfors, Department of Electrical and Information Technology

Wireless Personal Area Networks

Design and Characterization of ECC IP core using Improved Hamming Code

Physical Layer: Modulation, FEC. Wireless Networks: Guevara Noubir. S2001, COM3525 Wireless Networks Lecture 3, 1

Intro to coding and convolutional codes

2018/11/1 Thursday. YU Xiangyu

Digital to Digital Encoding

SECTION 4 CHANNEL FORMAT TYPES AND RATES. 4.1 General

Encapsulation Baseline Proposal for EFM Copper

Front End To Back End VLSI Design For Convolution Encoder Pravin S. Tupkari Prof. A. S. Joshi

Transcription:

Detecting and Correcting Bit Errors COS 463: Wireless Networks Lecture 8 Kyle Jamieson

Bit errors on links Links in a network go through hostile environments Both wired, and wireless: Scattering Diffraction Reflection Consequently, errors will occur on links Today: How can we detect and correct these errors? There is limited capacity available on any link Tradeoff between link utilization & amount of error control 2

Today 1. Error control codes Encoding and decoding fundamentals Measuring a code s error correcting power Measuring a code s overhead Practical error control codes Parity check, Hamming block code 2. Error detection codes Cyclic redundancy check (CRC) 3

Where is error control coding used? The techniques we ll discuss today are pervasive throughout the internetworking stack Based on theory, but broadly applicable in practice, in other areas: Hard disk drives Optical media (CD, DVD, & c.) Satellite, mobile communications Application Transport Network Link Physical In 463, we cover the tip of the iceberg in the Internetworking stack 4

Error control in the Internet stack Transport layer Internet Checksum (IC) over TCP/UDP header, data IC TCP header TCP payload 5

Error control in the Internet stack Transport layer Internet Checksum (IC) over TCP/UDP header, data Network layer (L3) IC over IP header only IC TCP header IC IP header TCP payload IP payload 6

Error control in the Internet stack Transport layer Internet Checksum (IC) over TCP/UDP header, data Network layer (L3) IC over IP header only Link layer (L2) Cyclic Redundancy Check (CRC) IC TCP payload TCP header IC IP payload IP header LL header LL payload LL CRC 7

Error control in the Internet stack Transport layer Internet Checksum (IC) over TCP/UDP header, data Network layer (L3) IC over IP header only Link layer (L2) Cyclic Redundancy Check (CRC) Physical layer (PHY) Error Control Coding (ECC), or Forward Error Correction (FEC) IC TCP payload TCP header IC IP payload IP header LL header LL payload LL CRC PHY payload 8

Today 1. Error control codes Encoding and decoding fundamentals Measuring a code s error correcting power Measuring a code s overhead Practical error control codes Parity check, Hamming block code 2. Error detection codes Cyclic redundancy check (CRC) 9

Error control: Motivation 00 Network 00 011011 011011 Allowed messages Sender message Receiver Every string of bits is an allowed message Hence any changes to the bits (bit errors) the sender transmits produce allowed messages Therefore without error control, receiver wouldn t know errors happened! 10

Error control: Key Ideas Reduce the set of allowed messages Not every string of bits is an allowed message Receipt of a disallowed string of bits means that the message was garbled in transit over the network We call an allowable message (of n bits) a codeword Not all n-bit strings are codewords! The remaining n-bit strings are space between codewords Plan: Receiver will use that space to both detect and correct errors in transmitted messages 11

Encoding and decoding Problem: Not every string of bits is allowed But we want to be able to send any message! How can we send a disallowed message? Answer: Codes, as a sender-receiver protocol The sender must encode its messages codewords The receiver then decodes received bits messages The relationship between messages and codewords isn t always obvious! 12

A simple error-detecting code Let s start simple: suppose messages are one bit long Take the message bit, and repeat it once This is called a two-repetition code Sender: 0 1 00 01 10 11 13

Receiving the two-repetition code Suppose the network causes no bit error Receiver removes repetition to correctly decode the message bits 0 1 Sender: 00 01 10 11 Network: Receiver: 00 0 11 1 14

Detecting one bit error Suppose the network causes up to one bit error The receiver can detect the error: It received a non-codeword Can the receiver correct the error? No! The other codeword could have been sent as well Sender: 0 1 00 01 10 11 Network: Receiver: 00 0 01 10 11 1 Error detected Error detected 15

Reception with two bit errors Can receiver detect presence of two bit errors? No: It has no way of telling which codeword was sent! Enough bit errors that the sent codeword jumped over the space between codewords Sender: 0 Space between codewords: 1 00 01 10 11 Network: Receiver: 00 0 11 1 16

Hamming distance Measures the number of bit flips to change one codeword into another Hamming distance between two messages m 1, m 2 : The number of bit flips needed to change m 1 into m 2 Example: Two bit flips needed to change codeword 00 to codeword 11, so they are Hamming distance of two apart: 00 01 11 17

How many bit errors can we detect? Suppose the minimum Hamming distance between any pair of codewords is d min Then, we can detect at most d min 1 bit errors Will land in space between codewords, as we just saw 2 bit errors d min = 3 Receiver will flag message as Error detected 18

Decoding error detecting codes The receiver decodes in a two-step process: 1. Map received bits à codeword Decoding rule: Consider all codewords Choose the one that exactly matches the received bits Return error detected if none match 2. Map codeword à source bits and error detected Use the reverse map of the sender 19

A simple error-correcting code Let s look at a three-repetition code If no errors, it works like the two-repetition code: Sender: Network: Receiver: 0 000 000 0 001 001 010 010 100 100 011 011 101 101 110 110 1 111 111 1 20

Correcting one bit error Receiver chooses the closest codeword (measured by Hamming distance) to the received bits A decision boundary exists halfway between codewords Sender: Network: Receiver: 0 000 000 0 001 010 001 010 Fix error 100 011 100 011 Decision boundary 101 110 101 110 Fix error 1 111 111 1 21

Decoding error correcting codes The receiver decodes in a two-step process: 1. Map received bits à codeword Decoding rule: Consider all codewords Choose one with the minimum Hamming distance to the received bits 2. Map codeword à source bits Use the reverse map of the sender 22

How many bit errors can we correct? Suppose there is at least d min Hamming distance between any two codewords Then, we can correct at most d min 1$ $ bit flips 2 % This many bit flips can t move received bits closer to another codeword, across the decision boundary: " # " 2 bit errors Round down d min = 5 Decision boundary 23

Code rate Suppose codewords of length n, messages length k (k < n) The code rate R = k/n is a fraction between 0 and 1 So, we have a tradeoff: High-rate codes (R approaching one) correct fewer errors, but add less overhead Low-rate codes (R close to zero) correct more errors, but add more overhead 24

Today 1. Error control codes Encoding and decoding fundamentals Measuring a code s error correcting power Measuring a code s overhead Practical error control codes Parity check, Hamming block code 2. Error detection codes Cyclic redundancy check (CRC) 25

Parity bit Given a message of k data bits D 1, D 2,, D k, append a parity bit P to make a codeword of length n = k + 1 P is the exclusive-or of the data bits: P = D 1 D 2 D k Pick the parity bit so that total number of 1 s is even k data bits parity bit 011100 1 26

Checking the parity bit Receiver: counts number of 1s in received message Even: received message is a codeword Odd: isn t a codeword, and error detected But receiver doesn t know where, so can t correct What about d min? Change one data bit à change parity bit, so d min = 2 So parity bit detects 1 bit error, corrects 0 Can we detect and correct more errors, in general? 27

Two-dimensional parity Break up data into multiple rows Start with normal parity within each row (p i ) Do the same down columns (q i ) Add a parity bit r covering row parities d 1,1 d 1,2 d 1,3 d 1,4 p 1 d 2,1 d 2,2 d 2,3 d 2,4 p 2 d 3,1 d 3,2 d 3,3 d 3,4 p 3 d 4,1 d 4,2 d 4,3 d 4,4 p 4 q 1 q 2 q 3 q 4 r This example has rate 16/25 p j = d j,1 d j,2 d j,3 d j,4 q j = d 1,j d 2,j d 3,j d 4,j r = p 1 p 2 p 3 p 4 28

Two-dimensional parity: Properties Flip 1 data bit, 3 parity bits flip Flip 2 data bits, 2 parity bits flip Flip 3 data bits, 3 parity bits flip d 1,1 d 1,2 d 1,3 d 1,4 p 1 d 2,1 d 2,2 d 2,3 d 2,4 p 2 Therefore, d min = 4, so Can detect 3 bit errors Can correct single-bit errors (how?) d 3,1 d 3,2 d 3,3 d 3,4 p 3 d 4,1 d 4,2 d 4,3 d 4,4 p 4 q 1 q 2 q 3 q 4 r 2-D parity detects most four-bit errors 29

Block codes Let s fully generalize the parity bit for even more error detecting/correcting power Split message into k-bit blocks, and add n k parity bits to the end of each block: This is called an (n, k) block code k bits data bits n k bits parity bits codeword: n bits 30

A higher rate error correcting code? What if we repeat the parity bit 3? P = D 1 D 2 D 3 D 4 ; R = 4/7 D 1 D 2 D 3 D 4 P P P Flip one data bit, all parity bits flip. So d min = 4? No! Flip another data bit, all parity bits flip back to original values! So d min = 2 What happened? Parity checks either all failed or all succeeded, giving no additional information 31

Hamming (7, 4) code k = 4 bits n k = 3 bits D 1 D 4 P 1 D 1 D 2 D 3 D 4 P 1 P 2 P 3 P 1 = D 1 P 2 = D 1 P 3 = D 3 D 4 D 2 D 3 D 2 D 3 D 4 D 3 :all P 2 P 3 D 2 32

Hamming (7, 4) code: d min Change one data bit, either: Two P i change, or Three P i change D 1 P 1 D 4 Change two data bits, either: Two P i change, or One P i changes D 3 :all P 2 P 3 D 2 d min = 3: Detect 2 bit errors, correct 1 bit error 33

Hamming (7, 4): Correcting One Bit Error Infer which corrupt bit from which parity checks fail: D 1 D 4 P 1 P 1 and P 2 fail Error in D 1 P 2 and P 3 fail Error in D 2 P 1, P 2, & P 3 fail Error in D 3 P 1 and P 3 fail Error in D 4 D 3 :all P 2 P 3 D 2 What if just one parity check fails? Summary: Higher rate (R = 4/7) code correcting one bit error 34

Today 1. Error control codes 2. Error detection codes Cyclic redundancy check (CRC) 35

Cyclic redundancy check (CRC) Most popular method error detecting code at L2 Found in Ethernet, Wi-Fi, token ring, many many others Often implemented in hardware at the link layer Represent k-bit messages as degree k 1 polynomials Each coefficient in the polynomial is either zero or one, e.g.: k = 6 bits of message 1 0 1 1 1 0 M(x) = 1x 5 + 0x 4 + 1x 3 + 1x 2 + 1x + 0 36

Modulo-2 Arithmetic Addition and subtraction are both exclusive-or without carry or borrow Multiplication example: 1101 110 0000 11010 110100 101110 Division example: 1101 110 101110 110 111 110 011 000 110 110 37

CRC at the sender M(x) is our message of length k e.g.: M(x) = x 5 + x 3 + x 2 + x (k = 6) 1 0 1 1 1 0 Sender and receiver agree on a generator polynomial G(x) of degree g 1 (i.e., g bits) e.g.: G(x) = x 3 + 1 (g = 4) 1 0 0 1 1. Calculate padded message T(x) = M(x) x g 1 i.e., right-pad with g 1 zeroes e.g.: T(x) = M(x) x 3 = x 8 + x 6 + x 5 + x 4 1 0 1 1 1 0 0 0 0 38

CRC at the sender 2. Divide padded message T(x) by generator G(x) The remainder R(x) is the CRC: 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 R(x) = x + 1 39

CRC at the sender 3. The sender transmits codeword C(x) = T(x) + R(x) i.e., the sender transmits the original message with the CRC bits appended to the end Continuing our example, C(x) = x 8 + x 6 + x 5 + x 4 + x + 1 1 0 1 1 1 0 0 1 1 40

Properties of CRC codewords Remember: Remainder [ T(x)/G(x) ] = R(x) What happens when we divide C(x) / G(x)? C(x) = T(x) + R(x) so remainder is Remainder [ T(x)/G(x) ] = R(x), plus Remainder [ R(x)/G(x) ] = R(x) Recall, addition is exclusive-or operation, so: Remainder [ C(x)/G(x) ] = R(x) + R(x) = 0 41

Detecting errors at the receiver Divide received message C (x) by generator G(x) If no errors occur, remainder will be zero 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 0 0 0 1 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 0 à no error detected 42

Detecting errors at the receiver Divide received message C (x) by generator G(x) If errors occur, remainder may be non-zero 1 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 1 1 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 à error detected 43

Detecting errors at the receiver Divide received message C (x) by generator G(x) If errors occur, remainder may be non-zero 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 0 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 1 1 1 0 0 1 0 1 0 0 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 0 à undetected error! How many errors can the CRC detect? How do we choose generator G(x)? 44

Detecting errors with the CRC The error polynomial E(x) = C(x) + C (x) is the difference between the transmitted and received codeword E(x) tells us which bits the channel flipped We can write the received message C (x) in terms of C(x) and E(x): C (x) = C(x) + E(x), so: Remainder [C (x) / G(x) ] = Remainder [ E(x) / G(x) ] When does an error go undetected? When Remainder [ E(x) / G(x) ] = 0 45

Detecting single-bit errors w/crc Suppose a single-bit error in bit-position i: E(x) = x i Choose G(x) with 2 non-zero terms: x g 1 and 1 Remainder [ x i / (x g 1 + + 1) ] 0, e.g.: 1 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 Therefore a CRC with this choice of G(x) always detects single-bit errors in the received message 46

Error detecting properties of the CRC The CRC will detect: All single-bit errors Provided G(x) has two non-zero terms All burst errors of length g 1 Provided G(x) begins with x g 1 and ends with 1 Similar argument to previous property All double-bit errors With conditions on the frame length and choice of G(x) Any odd number of errors Provided G(x) contains an even number of non-zero coefficients 47

Error detecting code: CRC Far less overhead than error correcting codes Typically 16 to 32 bits on a 1,500 byte (12 Kbit) frame Error detecting properties are more complicated But in practice, missed bit errors are exceedingly rare 48

Friday Precept: Work on Lab 2 Tuesday Topic: Convolutional Codes 49