http://faculty.chemeketa.edu/ascholer/cs160/Files/ecGrid.html
Error Detection and Correction Fixing 0101X011
Computer Errors RAM isn't perfect
Computer Errors Networks aren't either
Computer Errors How the heck do you read 1s and 0's off this?
Pinpoint How did I do it?
Pinpoint Message / Check Bit Every Row & Col should have odd # of black squares
Pinpoint How did I do it? Every Row & Col should have odd # of black squares
Real Life Checksum Last digit of credit card number calculated to http://tywkiwdbi.blogspot.com/2012/06/checksum-number-on-credit-card.html
Real Life Stair Case ISBN – books: http://www-math.ucdenver.edu/~wcherowi/jcorner/isbn.html
Hamming Codes
Hamming Code Message Coded Message 0000 0001 0010 0011 0000000 Use extra bits to "space out" messages 4 bit message with 3 error correction bits: Message Coded Message 0000 0001 0010 0011 0000000 0001011 0010111 0011100
Hamming Code 7 bits could be 27 = 128 codes Only use 16 of them 0000000 1000110 0001011 1001101 0010111 1010001 0011100 1011010 0100101 1100011 0101110 1101000 0110010 1110100 0111001 1111111
Hamming Code Every good message has distance of 3+ from other good messages: 0000000 1000110 0001011 1001101 0010111 1010001 0011100 1011010 0100101 1100011 0101110 1101000 0110010 1110100 0111001 1111111
Our Message We get: 0110110 Which message was it meant to be? 0000000 1000110 0001011 1001101 0010111 1010001 0011100 1011010 0100101 1100011 0101110 1101000 0110010 1110100 0111001 1111111
Errors Assuming Then Started with valid code word Only one error 1 bit from one valid word 2+ bits from another valid code word Valid Code A Valid Code B Valid Code C Error
Our Message We get: 0110110 Find the closest match: The message was supposed to be 0110010 0000000 1000110 0001011 1001101 0010111 1010001 0011100 1011010 0100101 1100011 0101110 1101000 0110010 1110100 0111001 1111111
Hamming Code Hamming Codes as pinpoint parity checks: http://www.systems.caltech.edu/EE/Faculty/rjm /SAMPLE_20040708.html
Hamming Code Overhead Message size : 4 bits Code word: 7 bits 512bit message can be encoded with 522bits: 2% overhead!