chapter 17: binary codes

27
MAT 105 Spring 2008

Upload: libby

Post on 18-Feb-2016

66 views

Category:

Documents


4 download

DESCRIPTION

MAT 105 Spring 2008. Chapter 17: Binary Codes. Binary Codes. A binary code is a system for encoding data made up of 0’s and 1’s Examples Postnet (tall = 1, short = 0) UPC (dark = 1, light = 0) Morse code (dash = 1, dot = 0) Braille (raised bump = 1, flat surface = 0) - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 17: Binary Codes

MAT 105 Spring 2008

Page 2: Chapter 17: Binary Codes

A binary code is a system for encoding data made up of 0’s and 1’s

Examples Postnet (tall = 1, short = 0) UPC (dark = 1, light = 0) Morse code (dash = 1, dot = 0) Braille (raised bump = 1, flat surface = 0) Movie ratings (thumbs up = 1, thumbs down = 0)

Page 3: Chapter 17: Binary Codes

CD, MP3, and DVD players, digital TV, cell phones, the Internet, space probes, etc. all represent data as strings of 0’s and 1’s rather than digits 0-9 and letters A-Z

Whenever information needs to be digitally transmitted from one location to another, a binary code is used

Page 4: Chapter 17: Binary Codes

What are some problems that can occur when data is transmitted from one place to another?

The two main problems are transmission errors: the message sent is not the

same as the message received security: someone other than the intended

recipient receives the message

Page 5: Chapter 17: Binary Codes

Suppose you were looking at a newspaper ad for a job, and you see the sentence “must have bive years experience”

We detect the error since we know that “bive” is not a word

Can we correct the error?

Why is “five” a more likely correction than “three”?

Why is “five” a more likely correction than “nine”?

Page 6: Chapter 17: Binary Codes

Suppose NASA is directing one of the Mars rovers by telling it which crater to investigate

There are 16 possible signals that NASA could send, and each signal represents a different command

NASA uses a 4-digit binary code to represent this information

0000 0100 1000 11000001 0101 1001 11010010 0110 1010 11100011 0111 1011 1111

Page 7: Chapter 17: Binary Codes

The problem with this method is that if there is a single digit error, there is no way that the rover could detect or correct the error

If the message sent was “0100” but the rover receives “1100”, the rover will never know a mistake has occurred

This kind of error – called “noise” – occurs all the time

Page 8: Chapter 17: Binary Codes

One way to try to avoid these errors is to send the same message twice

This would allow the rover to detect the error, but not correct it (since it has no way of knowing if the error occurs in the first copy of the message or the second)

There is a better way to allow the rover to detect and correct these errors, and only requires 3 additional digits

Page 9: Chapter 17: Binary Codes

The original message is four digits long

We will call these digits I, II, III, and IV

We will add three new digits, V, VI, and VII

Draw three intersecting circles as shown here

Digits V, VI, and VII should bechosen so that each circlecontains an even number ofones

III IVII

I

VII

V VI

Page 10: Chapter 17: Binary Codes

The message we want to send is “0100”

Digit V should be 1 so that the first circle has two ones

Digit VI should be 0 so that the second circle has zero ones (zero is even!)

Digit VII should be 1 so thatthe last circle has two ones

Our message is now 0100101

0 01

0

1

1 0

Page 11: Chapter 17: Binary Codes

Now watch what happens when there is a single digit error

We transmit the message 0100101 and the rover receives 0101101

The rover can tell that the second and third circles have odd numbers of ones, but the first circle is correct

So the error must be in the digit that is in the second and third circles, but not the first: that’s digit IV

Since we know digit IV is wrong, there isonly one way to fix it: change it from 1 to 0

0 11

0

1

1 0

Page 12: Chapter 17: Binary Codes

Encode the message 1110 using this method

You have received the message 0011101. Find and correct the error in this message.

Page 13: Chapter 17: Binary Codes

This method only allows us to encode 16 possible messages, which isn’t even enough to represent the alphabet!

However, if we use more digits, we won’t be able to use the circle method to detect and correct errors

We’ll have to come up with a different method that allows for more digits

Page 14: Chapter 17: Binary Codes

The circle method is a specific example of a “parity check sum”

The “parity” of a number is 1 is the number is odd and 0 if the number is even

For example, digit V is 0 if I + II + III is even, and 1 if I + II + III is odd

Page 15: Chapter 17: Binary Codes

Instead of using Roman numerals, we’ll use a1

to represent the first digit of the message, a2 to represent the second digit, and so on

We’ll use c1 to represent the first check digit, c2 to represent the second, etc.

Page 16: Chapter 17: Binary Codes

Using this notation, our rules for our check digits become c1 = 0 if a1 + a2 + a3 is even c1 = 1 if a1 + a2 + a3 is odd c2 = 0 if a1 + a3 + a4 is even c2 = 1 if a1 + a3 + a4 is odd c3 = 0 if a2 + a3 + a4 is even c3 = 1 if a2 + a3 + a4 is odd

a3 a4a2

a1

c3

c1 c2

Page 17: Chapter 17: Binary Codes

If we want to have a system that has enough code words for the entire alphabet, we need to have 5 message digits: a1, a2, a3, a4, a5

We will also need more check digits to help us decode our message: c1, c2, c3, c4

Page 18: Chapter 17: Binary Codes

We can’t use the circles to determine the check digits for our new system, so we use the parity notation from before

c1 is the parity of a1 + a2 + a3 + a4

c2 is the parity of a2 + a3 + a4 + a5

c3 is the parity of a1 + a2 + a4 + a5

c4 is the parity of a1 + a2 + a3 + a5

Page 19: Chapter 17: Binary Codes

Using 5 digits in our message gives us 32 possible messages, we’ll use the first 26 to represent letters of the alphabet

On the next slide you’ll see the code itself, each letter together with the 9 digit code representing it

Page 20: Chapter 17: Binary Codes

Letter Code Letter Code

A 000000000 N 011010101

B 000010111 O 011101100

C 000101110 P 011111011

D 000111001 Q 100001011

E 001001101 R 100011100

F 001011010 S 100100101

G 001100011 T 100110010

H 001110100 U 101000110

I 010001111 V 101010001

J 010011000 W 101101000

K 010100001 X 101111111

L 010110110 Y 110000100

M 011000010 Z 110010011

Page 21: Chapter 17: Binary Codes

Now that we have our code, using it is simple

When we receive a message, we simply look it up on the table

But what happens when the message we receive isn’t on the list?

Then we know an error has occurred, but how do we fix it? We can’t use the circle method anymore

Page 22: Chapter 17: Binary Codes

Using this new system, how do we decode messages?

Simply compare the (incorrect) message with the list of possible correct messages and pick the “closest” one

What should “closest” mean?

The distance between the two messages is the number of digits in which they differ

Page 23: Chapter 17: Binary Codes

What is the distance between 1100101 and 1010101? The messages differ in the 2nd and 3rd digits, so the

distance is 2

What is the distance between 1110010 and 0001100? The messages differ in all but the 7th digit, so the

distance is 6

Page 24: Chapter 17: Binary Codes

The nearest neighbor decoding method decodes a received message as the code word that agrees with the message in the most positions

Page 25: Chapter 17: Binary Codes

Suppose that, using our alphabet code, we receive the message 010100011

We can check and see that this message is not on our list

How far away is it from the messages on our list?

Page 26: Chapter 17: Binary Codes

Code Distance Code Distance

000000000 4 011010101 5

000010111 4 011101100 5

000101110 4 011111011 3

000111001 4 100001011 4

001001101 6 100011100 8

001011010 6 100100101 4

001100011 2 100110010 4

001110100 6 101000110 6

010001111 3 101010001 6

010011000 5 101101000 6

010100001 1 101111111 6

010110110 3 110000100 5

011000010 3 110010011 3

Page 27: Chapter 17: Binary Codes

Since 010100001 was closest to the message that we received, we know that this is the most likely actual transmission

We can look this corrected message up in our table and see that the transmitted message was (probably) “K”

This might still be incorrect, but other errors can be corrected using context clues or check digits