MAT 1000 Mathematics in Today's World Winter 2015
Last Time We looked at ways to add extra digits to a binary code, allowing us to catch and correct errors. One example used Venn diagrams to encode four digit messages. More generally, we can use “parity check sums.” With these, we can have messages of any length, and we can catch or correct more errors
Today For any parity check sum encoding system, we can determine how many errors it will correct or detect.
Binary linear codes A binary linear code is a set of strings of 0’s and 1’s obtained from all messages of a given length by using parity check sums to add digits. The resulting strings of 0’s and 1’s are called code words.
Binary linear codes Example Last class we constructed the following example: This is a binary linear code. The right column are the code words. For example: is a code word.
Error detection and correction capacity For any binary linear code, we can determine how many errors it will detect or correct. We call these numbers the “error detection capacity” and the “error correction capacity.” These can be determined once we know the “weight” of a binary linear code. The weight of a binary code is the smallest number of 1’s that appear in a code word (except a code word which is all 0’s)
Error detection and correction capacity In the example from last class, we had the following code words: This binary code has weight 3. Code words Number of 1’s
Error detection and correction capacity
What does “detecting errors at most 2 errors” mean? We have to decide in advance that we will reject any message which does not match a code word (that we will not try to correct errors). If we do, then as long as a message has 2 or fewer errors, we will always notice.
Error detection and correction capacity For example, if we receive the message Incorrectly as (two errors: in the second and fifth place), we notice, because isn’t a code word. On the other hand, if we receive incorrectly as (three errors, in the second, third and fifth places) we won’t notice, because is a code word.
Error detection and correction capacity
What does “correcting at most 1 error” mean? We must decide in advance that if a message doesn’t match any code word, then we will decode it (using nearest neighbor decoding). As long as the message received has only 1 error, we will decode it correctly. However, if there are 2 or more errors, we may decode it incorrectly.
Error detection and correction capacity Suppose we have decided to attempt to decode all messages. If we are sent the message But we receive it with one error as 100 Then it will decode correctly.
Error detection and correction capacity Decode using nearest neighbor decoding. The closest message is the correct one: Distance Code Words
Error detection and correction capacity On the other hand, if a message has two or more errors, it may not decode correctly. For example, suppose we receive the message Incorrectly as Let’s decode this message
Error detection and correction capacity Decode using nearest neighbor decoding. We decode this message incorrectly as The correct message was Distance Code Words
Error detection and correction capacity
Example The code words for the Venn diagram system are: The smallest number of 1’s in any of these is 3. So this code also has weight 3.
Error detection and correction capacity Example Since the Venn diagram system has weight 3, it will either: 1.Detect 2 errors 2.Correct 1 error
Error detection and correction capacity When designing a binary linear code, the higher the weight, the more errors can be detected or corrected. So when we choose which parity check sums to use, we should pick the ones that give our code the highest weight.