Summary of lecture 4 • We are accustomed to count like 1,2,3,4,5,6,7,8,9,10,11,12,… • This is called counting in base 10 – the second digit tells us how many lots of ‘tens’ we have. Summary of lecture 4 • We are accustomed to count like 1,2,3,4,5,6,7,8,9,10,11,12,… • This is called counting in base 10 – the second digit tells us how many lots of ‘tens’ we have. • We can count in any base we like – e.g., base 5 (tally charts); base 12 (dozens); base 60 (time); base 2 (binary). Summary of lecture 4 • We are accustomed to count like 1,2,3,4,5,6,7,8,9,10,11,12,… • This is called counting in base 10 – the second digit tells us how many lots of ‘tens’ we have. • We can count in any base we like – e.g., base 5 (tally charts); base 12 (dozens); base 60 (time); base 2 (binary). • Addition works in any base we like, e.g., 9 in base 10 = 1001 in base 2 6 in base 10 = 110 in base 2 1001+111= 1111 in base 2 = 15 in base 10 = 9 + 6 Bending light • Light will always take the fastest route between two places. MAT199: Math Alive Error corretcing and compression Ian Griffiths Mathematical Institute, University of Oxford, Department of Mathematics, Princeton University MAT199: Math Alive Error corretcing and compression correcting Ian Griffiths Mathematical Institute, University of Oxford, Department of Mathematics, Princeton University • We can represent the five-digit code pictorially: • Here we have marked each codeword with a different box (oval, double oval, solid rectangle, dashed rectangle). • The codewords and errors don’t overlap, but don’t cover the whole space either. The Hamming code Summary of lecture 5 • We wish to correct for one-bit errors using the minimum amount of extra memory. • We define a perfect code as one in which the total number codes achievable (either correct or one-bit corrupted) is equal to the total available number of code combinations. • The Hamming code is a perfect code. • Things that we didn’t talk about: Chicken Nuggets. Oops. Sorry! Error correction Check digits – U.S. Postal Service money order Error correction Check digits – U.S. Postal Service money order This number is the remainder when we add the other ten numbers together and divide by 9 Error correction and encoding Check digits - ISBNs This number is solely to check for errors Error correction and encoding Universal Product Codes (U.P.C.) Error correction and encoding Universal Product Codes (U.P.C.) • Other things that use check digits include: • Bank routing numbers • Airline tickets QR Codes Binary encoding – CDs • The audio information on a CD is encoded in ridges on the disc which are read by a laser. Binary encoding – CDs • The audio information on a CD is encoded in ridges on the disc which are read by a laser. The data is coded using a Reed-Soloman code. • The laser may misread a bump so there need to be error-correcting codes to handle single-bit errors. To solve this problem, extra data bits are added that allow the drive to detect single-bit errors and correct these. Summary of lecture 6 • Parity addition: 0+0=0 0+1=1 1+0=1 1+1=0 • The Hamming code is a perfect code that can be used to detect and correct for errors. • It does this by parity adding various combinations of the seven digits. • Ideas in binary counting can allow us to work out a lot more than we might expect – for example working out what colour hat we are all wearing. As always, the song is relevant to today’s lecture. Enjoy Why we need error correcting on CDs… Binary encoding – data compression • In data compression binary codes are assigned in a way that minimizes the number of digits required, by choosing short codes for the most frequently occurring data. Binary encoding – data compression • In data compression binary codes are assigned in a way that minimizes the number of digits required, by choosing short codes for the most frequently occurring data. • A compression algorithm converts data that is easy to use into a format that is easy to transport. A common compression algorithm is a zip file. When this is uncompressed the file is unzipped you recover the original information. Binary encoding – data compression • In data compression binary codes are assigned in a way that minimizes the number of digits required, by choosing short codes for the most frequently occurring data. • A compression algorithm converts data that is easy to use into a format that is easy to transport. A common compression algorithm is a zip file. When this is uncompressed the file is unzipped you recover the original information. • In some cases not all of the information is recovered from the encoding. • In such cases the data is returned only approximately to its original state: Binary encoding – data compression • In data compression binary codes are assigned in a way that minimizes the number of digits required, by choosing short codes for the most frequently occurring data. • A compression algorithm converts data that is easy to use into a format that is easy to transport. A common compression algorithm is a zip file. When this is uncompressed the file is unzipped you recover the original information. • In some cases not all of the information is recovered from the encoding. • In such cases the data is returned only approximately to its original state: e.g., Joint Photographic Expert Group (jpeg) files and Motion Picture Expert Group (mpeg) files. • (Graphics interchange format (gif) files recover all original information upon decoding.) The Voyager 1 space probe • The Voyager 1 space probe is now the most distant human-made object from Earth at almost 10 billion miles away. The Voyager 1 space probe • The Voyager 1 space probe is now the most distant human-made object from Earth at almost 10 billion miles away. • The probe is still transmitting information. The signal reached is now one hundred quintillion times weaker than when it was only a mile away (100000000000000000000 times weaker). The Voyager 1 space probe • The Voyager 1 space probe is now the most distant human-made object from Earth at almost 10 billion miles away. • The probe is still transmitting information. The signal reached is now one hundred quintillion times weaker than when it was only a mile away (100000000000000000000 times weaker). • The total power used by the transmitter is less than one eighth of an electric kettle. • The signal can still be decoded because of error-correction schemes. Summary of lecture 7 • The Reed Solomon code is used to correct for errors in CDs. • This is highly efficient in correcting for many consecutive errors, and is actually used in transmitting data from the Voyager spacecraft. • Data compression can be lossless (no information is lost following compression and recovery) or lossy (some information is lost but nothing that is detrimental). • Zip files use lossless data compression. • Mp3s use lossy data compression. • I am not very good at understanding text message acronyms… American Express Traveler’s Checks American Express Traveler’s Checks • Add together the first nine digits: 0+0+0+2+9+9+9+0+1= • Divide this number by 9 and take the remainder: • Subtract this number from 9: • If there are no errors then this is your final digit – this is a check digit. American Express Traveler’s Checks • Add together the first nine digits: 0+0+0+2+9+9+9+0+1=30. • Divide this number by 9 and take the remainder: 3. • Subtract this number from 9: 9-3=6. • If there are no errors then this is your final digit – this is a check digit. Airline tickets Airline tickets • Divide the ten digit number (without the final check digit) by 7 and take the remainder: Airline tickets • Divide the ten digit number (without the final check digit) by 7 and take the remainder: 00953046010 = 13614943 + 0 remainder. 7 Airline tickets • Divide the ten digit number (without the final check digit) by 7 and take the remainder: 00953046010 = 13614943 + 0 remainder. 7 • The remainder is the check digit. American banking system American banking system • For a routing number a1a2a3a4a5a6a7a8a9 calculate: 7a1 + 3a2 + 9a3 + 7a4 + 3a5 + 9a6 + 7a7 + 3a8 American banking system • For a routing number a1a2a3a4a5a6a7a8a9 calculate: 7a1 + 3a2 + 9a3 + 7a4 + 3a5 + 9a6 + 7a7 + 3a8 • Take the remainder when you divide by 10 and this is the check digit. American banking system • For a routing number a1a2a3a4a5a6a7a8a9 calculate: 7a1 + 3a2 + 9a3 + 7a4 + 3a5 + 9a6 + 7a7 + 3a8 • Take the remainder when you divide by 10 and this is the check digit. • In example above, 7x1 + 3x2 + 9x1 + 7x3 + 3x0 + 9x1 + 7x5 + 3x7 = 108. 108 = 10 remainder 8 10 American banking system • For a routing number a1a2a3a4a5a6a7a8a9 calculate: 7a1 + 3a2 + 9a3 + 7a4 + 3a5 + 9a6 + 7a7 + 3a8 • Take the remainder when you divide by 10 and this is the check digit. • In example above, 7x1 + 3x2 + 9x1 + 7x3 + 3x0 + 9x1 + 7x5 + 3x7 = 108. 108 = 10 remainder 8 10 • Check digit is 8. Universal Product Codes (barcodes) Separator • The binary code is then decoded using the following decryption: Separator • The barcode encodes the numbers beneath it. • In this example the barcode reads: separator left side: 0001101 0100011 0110111 0110001 0001101 0001101 separator right side: 1110010 1110010 1100110 1000010 1110100 1011100 separator Separator Other uses for barcodes Other uses for barcodes ISBNs Check digit ISBNs Check digit • In ISBN codes we add the first number times 10, the second times 9, and so on: 10x3+9x8+8x8+7x0+6x5+5x3+4x1+3x0+2x1=217 ISBNs Check digit • In ISBN codes we add the first number times 10, the second times 9, and so on: 10x3+9x8+8x8+7x0+6x5+5x3+4x1+3x0+2x1=217 • We then divide this number by 11 and take the remainder 217/11=19 remainder 8. ISBNs Check digit • In ISBN codes we add the first number times 10, the second times 9, and so on: 10x3+9x8+8x8+7x0+6x5+5x3+4x1+3x0+2x1=217 • We then divide this number by 11 and take the remainder 217/11=19 remainder 8. • We then subtract this number from 11 to get our check digit, 3. ISBNs What errors can we detect? • We can detect ALL single errors. • We can detect ALL transpositions. ISBNs What errors can we detect? • We can detect ALL single errors. • We can detect ALL transpositions. • The only inconvenience is if the check digit turns out to be 10 (double figures). In this case we write X for the check digit. The ZIP bar code • The ZIP bar code consists of 52 long and short bars at the bottom of a letter. • The bars at the start and the end are just guard lines. The ZIP bar code • Every group of five digits encodes one digit using the following code: The ZIP bar code • Every group of five digits encodes one digit using the following code: • This gives, in the previous example, the ZIP+4 code 20077-5576-1. The ZIP bar code • Every group of five digits encodes one digit using the following code: • This gives, in the previous example, the ZIP+4 code 20077-5576-1. • The 1 is a check digit. This makes sure the sum of all the digits is an exact multiple of 10. (In this case the sum of the digits is 40.) The ZIP bar code • There is also additional error correction: each group of five bars has exactly two long and three short bars. The ZIP bar code • There is also additional error correction: each group of five bars has exactly two long and three short bars. • If you have an incorrect digit you can use the sum of the other digits to work out what this should be (by ensuring the sum of all digits is an exact multiple of 10). The ZIP bar code • There is also additional error correction: each group of five bars has exactly two long and three short bars. • If you have an incorrect digit you can use the sum of the other digits to work out what this should be (by ensuring the sum of all digits is an exact multiple of 10). • More recent codes use 12 digits rather than 10, though the sum still adds up to an exact multiple of 10.