Today, we introduce the class of polynomial codes that are used extensively in error detection. It applies polynomial arithmetic instead of parity check sums. Polynomial codes involve generating check bits in the form of a cyclic redundancy check, called the CRC. Polynomial codes are readily implemented in shift-register circuits. And then therefore, are the most widely used implemented area control codes, both for error detection and error correction methods. In polynomial codes, the information sentence the codeword and error vectors are all represented by polynomials with binary coefficients. For example, the k information bits from ik minus 1, ik minus 2, and 2i 0. I used it to form information polynomial of degree k- 1. The polynomial code is module 2 polynomial arithmetic, to calculate the codeword corresponding to the information polynomial. The presentation slides give examples of polynomial addition, multiplication, and division, using binary coefficients of 0 and 1 only. Notice that the binary polynomial arithmetic is done by per bit x r. For example, we have x + j + x + j that equals to 1 + 1 multiplied by x + j which equals 0. In binary arithmetic, subtraction is the same as addition. The division is a bit more involved and requires reviewing of the including division. Let's first reveal our familiar pattern of dividing the integer 1,222 by 35. We eventually get as a quotient 34, and remainder 17. When we divide our polynomial code px function by gx function, our goal is to find a quotient at qx under the remainder rx. So that px equals to qx multiples gx plus rx. In the example, we divide x power 6 plus x power 5 by x power 3 plus x plus 1. We use binary polynomial arithmetic. Please note that if the highest power of the interim remainder polynomial is equal or greater than the highest power of the divisor, a new quotient term is computed along with a new interim remainder polynomial. The division process stops when the degree of the remainder must be less than the degree of divisor. Cyclic redundancy check, CRC, use a polynomial code which is based on treating bit strings as a presentation of polynomials which coefficient of 0 and 1 only. A k-bit of frame is regarded as a coefficient list for a polynomial with k terms, ranging from x power k- 1 to x power 0. Such a polynomial is said to be degree k- 1. Also note that polynomial arithmetic is done by per-bit XOR operation. To understand the CRC idea, we assume we are dealing with a code in which the codeword has n bits of which k are information bits, and n- k are check bits. The procedure of error detection is as follows. The k bits information is used to calculate the check bits, according to a generator polynomial gx that a half degree of n- k. The k bits information and n- k check bits are sent with the communication channel. Received information bits are used to calculate check bits, which will be compared to the received check bits. If the check bits match, the information is accepted as no error. Note that a sender and receiver agree upon a generator for polynomial in advance. Given a generator polynomial gx that has degree n- k, information polynomial ix that has k information bits, that has degree k- 1. The CRC Encoding Procedure is as follows. First step is to multiply ix by x + n- k, that is done by putting n- k zeros in the low order positions. The second step is to divide x powers n- k, multiplies ix by gx. And get a remainder polynomial of ix of at most degree n- k- 1, so remainder in the CRC check bits. Finally, add the remainder rx to x powers n- k by ix. That is done by putting check bits in the n- k lower order positions. The resulting polynomial will be the transmitted codeword. Let's look at the CRC polynomial example in which k equals to 4 and n- k equals to 3. The generator polynomial gx is x powers 3 + x + 1, which has degree 3. The information block has four bits, 1, 1, 0, 0, which is represented by a polynomial ix equals x power 3 + x power 2. The result in encoding dividend is x power 3 multiplies ix, that is x power 6 + x power 5. We show the division examples in both polynomial and the binary, so information vector after shifting became 1, 1, 0, 0, 0, 1, 0, that is the dividend. The divisor is a generator polynomial 1, 0, 1, 1. So the remainder 0, 1, 0, which are CRC check bits. The transmitted codeword is four information bits and three check bits. As a quick summary, binary polynomial code and binary arithmetic are key to CRC encoding and check bits calculation.