Download presentation
Presentation is loading. Please wait.
1
Practical Session 11 Codes
2
Hamming Distance General case: The distance between two code words is the amount of 1-bit changes required to reach from one word to the other. Binary case: Number of 1’s in the XOR between the words. Hamming Distance is the minimum distance between the code words.
3
Hamming Distance Intuition (code graph): Example: d=2 00 1011 01
4
Error Detection Hamming Distance: d. Can Detect d-1 errors.
5
Fixing Erasures Can fix d-1 erasures.
6
Error Correction Can fix Errors
7
Example Given four “data” words, can we use 5-bit code words for fixing 1 error? Answer: Yes. We need a hamming distance of 3 to fix 1 error. We can create code words with independent graph “spheres”. 00000 0000100010001000100010000 111001100010100011001111011101101111011010101100111111100111010110101001001011110001111011
8
Parity Check The most basic error check. Used to test one character. Appended to the end of the message. Can detect 1 error. Example (Even parity): 100101001 100100001
9
Block Character Checksum Uses vertical and horizontal parity bits to detect double errors. Used for transmitting a block of characters. BCC is used to detect two errors. Odd parity calculated for each row. Even parity calculated for each column.
10
BCC - Example Two errors in the character ‘N’. Parity doesn’t change. BCC changed.
11
Cyclic Redundancy Check A CRC is an error-detecting code An n-bit CRC, applied to a data block of arbitrary length, will detect any single error burst not longer than n bits Will detect a fraction 1-2 -n of all longer error bursts The simplest error-detection system, the parity bit, is in fact a trivial CRC: it uses the two-bit-long divisor 11.
12
Calculation Steps - Sending 1.A generator is chosen. – This is a sequence of bits, of which the first and last are 1. – This sequence is used with the bits of the message to calculate a check sequence which has 1 fewer bits than the generator. 2.The check sequence is appended to the original message
13
Calculation Steps - Receiving At the receiver, the same calculation is performed on the message and check sequence combined. If the result is 0 no transmission error is assumed to have occurred.
14
Example Compute 8-bit CRC for an 8-bit message: ‘W’. ASCII for ‘W’: 87 10 = 57 16 Select Generator: CRC-8-ATM – Polynomial: x 8 + x 2 + x + 1 – Corresponds to: 100000111 Two different orders are possible for the message. – Msbit-first: 01010111 2 = x 6 + x 4 + x 2 + x + 1 – Lsbit-first: 11101010 2 = x 7 + x 6 + x 5 + x 3 + x
15
Example – Generating CRC Code We will focus on Msbit-first order. Append 8 bits to message: 0101011100000000 Perform long-division of message by generator. – Quotient is not needed. – Instead of subtraction perform simple XOR. – CRC code is the reminder.
16
Example – Generating CRC Code 0101011100000000100000111 CRC Code: 10100010 100000111 001011011000000 100000111 0011010110000 100000111 01010101100 100000111 0010100010 xor
17
Example – Checking Message Similar to generating the CRC code. Append CRC code to the message (instead of 0’s): 0101011110100010 Perform long division by the generator. If the reminder is not 0: An error occurred.
18
Example – Checking Message 0101011110100010100000111 Result: 00000000
19
CRC Polynomials (Common) CRC-8-ATMx 8 + x 2 + x + 1 CRC-16-IBMx 16 + x 15 + x 2 + 1 CRC-16-CCITTx 16 + x 12 + x 5 + 1 CRC-32-IEEE 802.3x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x + 1
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.