Chapter 17: Binary Codes - PowerPoint PPT Presentation

About This Presentation
Title:

Chapter 17: Binary Codes

Description:

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, ... – PowerPoint PPT presentation

Number of Views:93
Avg rating:3.0/5.0
Slides: 29
Provided by: JamesH225
Learn more at: http://webspace.ship.edu
Category:
Tags: binary | chapter | codes | mars | rovers

less

Transcript and Presenter's Notes

Title: Chapter 17: Binary Codes


1
Chapter 17 Binary Codes
  • MAT 105 Spring 2008

2
Binary Codes
  • A binary code is a system for encoding data made
    up of 0s and 1s
  • 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)

3
Binary Codes are Everywhere
  • CD, MP3, and DVD players, digital TV, cell
    phones, the Internet, space probes, etc. all
    represent data as strings of 0s and 1s 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

4
Transmission Problems
  • 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

5
Transmission Error Example
  • 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?

6
Another Example
  • 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 1100
0001 0101 1001 1101
0010 0110 1010 1110
0011 0111 1011 1111
7
Lost in Transmission
  • 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

8
Adding Check Digits
  • 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

9
Computing the Check Digits
  • 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

I
V
VI
III
IV
II
VII
10
Appending Digits to the Message
  • 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
1
0
0
0
1
1
11
Detecting and Correcting Errors
  • 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
    thats digit IV
  • Since we know digit IV is wrong, there isonly
    one way to fix it change it from 1 to 0

0
1
0
0
1
1
1
12
Try It!
  • Encode the message 1110 using this method
  • You have received the message 0011101. Find and
    correct the error in this message.

13
Extending This Idea
  • This method only allows us to encode 16 possible
    messages, which isnt even enough to represent
    the alphabet!
  • However, if we use more digits, we wont be able
    to use the circle method to detect and correct
    errors
  • Well have to come up with a different method
    that allows for more digits

14
Parity Check Sums
  • 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

15
Conventional Notation
  • Instead of using Roman numerals, well use a1 to
    represent the first digit of the message, a2 to
    represent the second digit, and so on
  • Well use c1 to represent the first check digit,
    c2 to represent the second, etc.

16
Old Rules in the New Notation
  • 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

a1
c1
c2
a3
a4
a2
c3
17
An Alternative System
  • 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
  • This gives us 32 possible messages enough for
    the alphabet and then some
  • We will also need more check digits to help us
    decode our message c1, c2, c3, c4

18
Rules for the New System
  • We cant use the circles to determine the check
    digits for our new system (if we tried to draw 5
    circles, things would get very hard), 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

19
An Example Code Word
  • What check digits do we have to add on to the
    message 00101? This message will represent the
    letter F
  • c1 is the parity of a1 a2 a3 a4 1, which
    is 1
  • c2 is the parity of a2 a3 a4 a5 2, which
    is 0
  • c3 is the parity of a1 a2 a4 a5 1, which
    is 1
  • c4 is the parity of a1 a2 a3 a5 2, which
    is 0
  • So the code word will be 001011010

20
Making the Code
  • Using 5 digits in our message gives us 32
    possible messages, well use the first 26 to
    represent letters of the alphabet
  • On the next slide youll see the code itself,
    each letter together with the 9 digit code
    representing it

21
The Code
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
22
Using the Code
  • 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
    isnt on the list?
  • Then we know an error has occurred, but how do we
    fix it? We cant use the circle method anymore

23
Beyond Circles
  • 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

24
The Distance Between Messages
  • What is the distance between 110010110 and
    101010110?
  • 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

25
Nearest-Neighbor Decoding
  • The nearest neighbor decoding method decodes a
    received message as the code word that agrees
    with the message in the most positions
  • Another way to think of it is that the nearest
    neighbor is the message that is the smallest
    distance away from the message we receive

26
Trying it Out
  • 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?

27
Distances From 010100011
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
28
Fixing the Error
  • 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
Write a Comment
User Comments (0)
About PowerShow.com