Basics of Error Correcting Codes

Similar documents
Outline. Communications Engineering 1

Channel Coding/Decoding. Hamming Method

Revision of Lecture Eleven

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

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

IEEE C /02R1. IEEE Mobile Broadband Wireless Access <

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

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

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

Digital Television Lecture 5

Spreading Codes and Characteristics. Error Correction Codes

Error Protection: Detection and Correction

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

Error Correction with Hamming Codes

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

A Survey of Advanced FEC Systems

Volume 2, Issue 9, September 2014 International Journal of Advance Research in Computer Science and Management Studies

6. FUNDAMENTALS OF CHANNEL CODER

EDI042 Error Control Coding (Kodningsteknik)

6.004 Computation Structures Spring 2009

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

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

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

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

Umudike. Abia State, Nigeria

LDPC Decoding: VLSI Architectures and Implementations

Communications Theory and Engineering

Digital Communication Systems ECS 452

Error-Correcting Codes

Design High speed Reed Solomon Decoder on FPGA

Course Developer: Ranjan Bose, IIT Delhi

ERROR CONTROL CODING From Theory to Practice

Performance Optimization of Hybrid Combination of LDPC and RS Codes Using Image Transmission System Over Fading Channels

EE 435/535: Error Correcting Codes Project 1, Fall 2009: Extended Hamming Code. 1 Introduction. 2 Extended Hamming Code: Encoding. 1.

S Coding Methods (5 cr) P. Prerequisites. Literature (1) Contents

Distributed Source Coding: A New Paradigm for Wireless Video?

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

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

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

Punctured vs Rateless Codes for Hybrid ARQ

Chapter 1 Coding for Reliable Digital Transmission and Storage

Lec 19 Error and Loss Control I: FEC

Spread Spectrum. Chapter 18. FHSS Frequency Hopping Spread Spectrum DSSS Direct Sequence Spread Spectrum DSSS using CDMA Code Division Multiple Access

Decoding of Block Turbo Codes

ICE1495 Independent Study for Undergraduate Project (IUP) A. Lie Detector. Prof. : Hyunchul Park Student : Jonghun Park Due date : 06/04/04

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

n Based on the decision rule Po- Ning Chapter Po- Ning Chapter

International Journal of Digital Application & Contemporary research Website: (Volume 1, Issue 7, February 2013)

Reliable Wireless Video Streaming with Digital Fountain Codes

Lab/Project Error Control Coding using LDPC Codes and HARQ

AN INTRODUCTION TO ERROR CORRECTING CODES Part 2

PROJECT 5: DESIGNING A VOICE MODEM. Instructor: Amir Asif

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

Design of Reed Solomon Encoder and Decoder

Vector-LDPC Codes for Mobile Broadband Communications

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

Introduction to Error Control Coding

Intro to coding and convolutional codes

Background Dirty Paper Coding Codeword Binning Code construction Remaining problems. Information Hiding. Phil Regalia

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

Error Correcting Code

Iterative Joint Source/Channel Decoding for JPEG2000

ECE 6640 Digital Communications

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

FREDRIK TUFVESSON ELECTRICAL AND INFORMATION TECHNOLOGY

Digital Fountain Codes System Model and Performance over AWGN and Rayleigh Fading Channels

ENGN8637, Semster-1, 2018 Project Description Project 1: Bit Interleaved Modulation

Multilevel RS/Convolutional Concatenated Coded QAM for Hybrid IBOC-AM Broadcasting

Using TCM Techniques to Decrease BER Without Bandwidth Compromise. Using TCM Techniques to Decrease BER Without Bandwidth Compromise. nutaq.

Introduction to Coding Theory

Code Design for Incremental Redundancy Hybrid ARQ

Error Detection and Correction

ECE 6640 Digital Communications

Error Correction Codes for Non-Volatile Memories

The throughput analysis of different IR-HARQ schemes based on fountain codes

EE521 Analog and Digital Communications

Implementation of Reed Solomon Encoding Algorithm

Data Storage Using a Non-integer Number of Bits per Cell

Versuch 7: Implementing Viterbi Algorithm in DLX Assembler

Lecture 6: Reliable Transmission"

Study of Second-Order Memory Based LT Encoders

Nonlinear Multi-Error Correction Codes for Reliable MLC NAND Flash Memories Zhen Wang, Mark Karpovsky, Fellow, IEEE, and Ajay Joshi, Member, IEEE

Chapter 10 Error Detection and Correction 10.1

High-Rate Non-Binary Product Codes

Improvement Of Block Product Turbo Coding By Using A New Concept Of Soft Hamming Decoder

Chapter 1 INTRODUCTION TO SOURCE CODING AND CHANNEL CODING. Whether a source is analog or digital, a digital communication

LDPC Communication Project

MATHEMATICS IN COMMUNICATIONS: INTRODUCTION TO CODING. A Public Lecture to the Uganda Mathematics Society

Comparative Analysis of DVB System for Different Encoding Techniques with Compressed Images

Lecture 1: Tue Jan 8, Lecture introduction and motivation

Error Control Codes. Tarmo Anttalainen

Layering and Controlling Errors

Physical-Layer Services and Systems

TABLE OF CONTENTS CHAPTER TITLE PAGE

Implementation of Reed-Solomon RS(255,239) Code

Simple Algorithm in (older) Selection Diversity. Receiver Diversity Can we Do Better? Receiver Diversity Optimization.

The design of binary shaping filter of binary code

DIGITAL COMMINICATIONS

Combined Modulation and Error Correction Decoder Using Generalized Belief Propagation

Performance of Combined Error Correction and Error Detection for very Short Block Length Codes

Transcription:

Basics of Error Correcting Codes Drawing from the book Information Theory, Inference, and Learning Algorithms Downloadable or purchasable: http://www.inference.phy.cam.ac.uk/mackay/itila/book.html CSE 466 Error Correcting Codes 1

Channel coding aka Forward Error Correction My communication system is working, but I am getting a lot of errors what can I do? CRC is an error DETECTING code it spots errors with high probability, but doesn t tell you how to fix them Error CORRECTING codes can actually allow you to repair the errors if there aren t too many CSE 466 Error Correcting Codes 2

The big picture Channel coding is adding redundancy to improve reliability, at a cost in rate Error correction Source coding is removal of redundancy from information bits to improve rate Compression This lecture is only about channel coding Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 3

How do error correcting codes work? Basic idea: add redundancy (extra bits) to make communication more robust Or, put another way, don t allow all bit patterns, just a subset if you receive an invalid bit sequence, correct to the closest valid bit sequence The extra bits (or disallowed bit patterns) reduce the net communication rate: If information bits are denoted i and error correction bits denoted ec, then the new rate, with error correction is i/(i+ec) The original rate, with no error correction (ec=0) is 1.0 CSE 466 Error Correcting Codes 4

Noisy communication channels EF modem airgap EF modem modem phone line modem wifi card radio waves wifi card Galileo probe radio waves Earth Parent cell daughter cell 1 daughter cell 2 RAM disk drive RAM RAM flash memory RAM printer QR code phone camera CSE 466 Error Correcting Codes 5

A model for the noise in the channel Binary Symmetric Channel (BSC) with f=0.1 f: probability of bit flip Other important channels: Erasure Channel (models packet loss in wired or wireless networks) Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 6

Example 1: Repetition code, R3 Received codeword Decoded as 000 0 (no errors) 001 0 010 0 100 0 111 1 (no errors) 110 1 101 1 011 1 Each 1 information bit gets encoded to 3 transmitted bits, so the rate of this code is 1/3 If you think of the first bit as the message, and bits 2 and 3 as the error correction bits, then the rate also turns out to be 1/(1+2) = 1/3 This code can correct 1 bit flip, or 2 bit erasures (erasures not shown) CSE 466 Error Correcting Codes 7

Problems with R3 Noise set to flip 10% of the bits Rate is only 1/3 Still 3% errors remaining after error correction Crummy! Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 8

Example 2: Random code Original message 000 10100110 001 11010001 010 01101011 011 00011101 100 01101000 101 11001010 110 10111010 111 00010111 Codewords transmitted Each block of 3 info bits mapped to a random 8 bit vector rate 3/8 code. Could pick any rate, since we just pick the length of the random code words. Note that we are encoding blocks of bits (length 3) jointly Problems with this scheme: (1) the need to distribute and store a large codebook (2) decoding requires comparing received bit vectors to entire codebook CSE 466 Error Correcting Codes 9

A visualization of ECCs Codewords Volume in which noise can (obviously) be tolerated An error correcting code selects a subset of the space to use as valid messages (codewords). Since the number of valid messages is smaller than the total number of possible messages, we have given up some communication rate in exchange for robustness. The size of each ball above gives approximately the amount of redundancy. The larger the ball (the more redundancy), the smaller the number of valid messages CSE 466 Error Correcting Codes 10

The name of the game In ECCs is to find mathematical schemes that allow time- and space-efficient encoding and decoding, while providing high communication rates and low bit error rates, despite the presence of noise CSE 466 Error Correcting Codes 11

Types of ECC Algebraic Hamming Codes Reed-Solomon [CD, DVD, hard disk drives, QR codes] BCH Sparse graph codes Turbo [CDMA2000 1x] Repeat accumulate LDPC (Low Density Parity Check) [WiMax, 802.11n, 10GBase 10 802.3an] Fountain / Tornado / LT / Raptor (for erasure) [3GPP mobile cellular broadcast, DVB-H for IP multicast] CSE 466 Error Correcting Codes 12

Other ECC terminology Block vs. convolutional Linear Systematic / non-systematic Systematic means original information bits are transmitted unmodified. Repetition code is systematic Random code is not (though you could make a systematic version of a random code append random check bits that don t depend on the data would not be as good as parity bits that do depend on the data) CSE 466 Error Correcting Codes 13

Example 3: (7,4) Hamming Code (Encoding) b--example: 1000 1000101 Rate 4/7 code Don t encode 1 bit at a time, as in the repetition code Encode blocks of 4 source bits to blocks of 7 transmitted s 1 s 2 s 3 s 4 t 1 t 2 t 3 t 4 t 5 t 6 t 7 Where t 1 -t 4 are chosen s.t. s 1 s 2 s 3 s 4 s 1 s 2 s 3 s 4 t 5 t 6 t 7 Set parity check bits t 5 t 7 using t 5 =s 1 +s 2 +s 3 mod 2 1+0+0 = 1 t 6 =s 2 +s 3 +s 4 mod 2 0+0+0 = 0 t 7 =s 1 +s 3 +s 4 mod 2 1+0+0 = 1 Parity check bits are a linear function information bits a linear code Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 14

Example 3: (7,4) Hamming Code (Encoding) The 16 codewords of the (7,4) Hamming code: Any pair of codewords differs in at least 3 bits! Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 15

Example 3: (7,4) Hamming Code (Encoding) Since it is a linear code, we can write the encoding operation as a matrix multiply (using mod 2 arithmetic): t=g T s where G is called the Generator Matrix of the code. Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 16

Example 3: (7,4) Hamming Code (Decoding) If received vector r = t+n (transmitted plus noise), then write r in circles: Transmitted example Information Theory, Inference, and Learning Algorithms Compute parity for each circle (dash violated parity check) Pattern of parity checks is called the syndrome Error bit is the unique one inside all the dashed circles Dashed line parity check violated * bit flipped CSE 466 Error Correcting Codes 17

Example 3: (7,4) Hamming Code (Decoding) Each of the 3 circles is either dotted (syndrome=1) or solid (syndrome = 0) 2 3 =8 possibilities Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 18

What happens if there are 2 errors? *s denote actual errors Circled value is incorrectly inferred single-bit error Optimal decoder actually adds another error in this case so we started with 2 errors and end with 3 Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 19

Larger (7,4) Hamming example 7% errors remain after error correction Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 20

Comparing codes Binary symmetric channel with f = 0.1 Error probability p b vs communication rate R for repetition codes, (7,4) Hamming code, BCH codes up to length 1023 Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 21

What is the best a code can do? How much noise can be tolerated? What SNR do we need to communicate reliably? At what rate can we communicate with a channel with a given SNR? What error rate should we expect? CSE 466 Error Correcting Codes 22

What is the best a code can do? Binary symmetric channel with f =0.1 R C/(1 H ( p )) 2 b where H p log p (1 p ) log (1 p ) 2 b 2 b b 2 b Information Theory, Inference, and Learning Algorithms CSE 466 Error Correcting Codes 23

End CSE 466 Error Correcting Codes 24