In this lesson, we will learn how to communicate efficiently. This lesson includes:
Communication
Coding Theory
Error-control Coding
Error-correcting Codes
Repetition Codes
Majority Decoding Process
Error-detecting Codes
Parity Code
Even Parity
Odd Parity
Hamming Code
If this video does not work, here is the link of the video for Communicating Efficiently: https://drive.google.com/file/d/1om53QlGfLsj338yw188e0orotmaxfl1H/view?usp=sharing
If this video does not work, here is the link of the video for Hamming Distance and Minimum Distance: https://drive.google.com/file/d/1WQBGgzXYPyflf_0Ajx9pZsffMkamnH74/view?usp=sharing
3.1. Communicating Efficiently
A communication system consists of a sender sending a message through a channel so that it will be received by the receiver.
Now, what is the problem with this? The problem is sending data from one place to another may yield errors.
The noise present in the channel distorts a message.
For example, Alice is on a phone call with Ben. Alice mentioned the word "PARTY" . But because of the weak signal, Ben heard
We fix this problem by studying ‘Coding Theory’!
Coding Theory is a field of mathematics that deals with the design of error-correcting codes for the reliable transmission of information across noisy channels.
Coding Theory has (2) main goals:
Error-detection
Error-correction
Claude Shannon was an American mathematician, electrical engineer, computer scientist and cryptographer known as the "father of information theory". He inspired mathematicians who developed coding theory.
Source Encoding involves encoding the message to become a source code, a string of binary digits representing a message.
Channel Coding is a common rule applied to each message so that we can easily detect errors.
Example: The source codes are represented as x1x2. Using the previous example, we can add redundancy digits to each string.
The given redundancy is r=3. This means that x needs to be repeated 3 times.
The channel coding rule will now be: x1x1x1 x2x2x2
Channel Encoding is the process of applying the channel coding rule to create the code word, or in this case, the redundancy string.
The code is the collection of all code words
In this example, our code is C={ 000 000, 000 111, 111 000, 111 111}
Error-Correcting Codes
Repetition Code
Majority Decoding Process
Parity Code
Hamming Code
In the previous examples, we have discussed error-correcting codes repetition code and majority decoding process. Now, we will be tackling Error-Detecting Codes. First up, are PARITY codes.
generated by adding an extra parity bit (information redundancy) to the string of data bits. There are two types of parity, such as even parity and odd parity.
The number of 1s in the code determine if it is in even parity or odd parity.
For example, 000 101 is a code that has even parity. The number of 1s are 2 -- 2 is an even number
010 110 has odd parity since the number of 1s is 3, an odd number.
111 111 is a code with even number. The number of zeros is 0. 0 is considered an even number.
Practice!
The messages wisdom, knowledge, pity, and counsel are encoded as 00, 10, 01, 11, respectively.
Add an extra parity bit to make the code have an;
a. Even Parity
b. Odd Parity
a. Even Parity: C= {000, 101, 011 110}
b. Odd Parity: C= {001, 100, 010, 111}
Now that we're done with parity codes, let us discuss the second error-detecting code, Hamming Code.
In coding theory, Hamming(7,4) is a linear error-correcting code that encodes four bits of data into seven bits by adding three parity bits. It is a member of a larger family of Hamming codes, but the term Hamming code often refers to this specific code that Richard W. Hamming introduced in 1950.
The code 0101 will be represented as x1x2x3x4
Add three redundancy digits (x5, x6, x7) to the last part of the 4-bit string to transform it to a 7-bit string
To get x5, get the sum of x1, x2, and x3
x1 + x2 + x4
0 + 1 + 1
2 --> 0
To get x6, get the sum of x1, x3, and x4
x1 + x3 + x4
0 + 0 + 1
1
To get x7, get the sum of x2, x3, and x4
x2 + x3 + x4
1 + 0 + 1
2 --> 0 (Note: Since the computer can not read the digit 2, if the sum is an even number such as 2, it will be written as 0)
The new code will now be x1x2x3x4x5x6x7 , or C = 0101010