
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
What is Polynomial Code?
A polynomial code is a linear code having a set of valid code words that comprises of polynomials divisible by a shorter fixed polynomial is known as generator polynomial.
They are used for error detection and correction during the transmission of data as well as storage of data.
Types of Polynomial Codes
The types of polynomial codes are:
- Cyclic Redundancy Code
- Bose–Chaudhuri–Hocquenghem (BCH) Codes
- Reed–Solomon Codes
Representation of Bit Strings with Polynomials
The code words, which are essentially bit strings, are represented by polynomials whose coefficients are either 0 or 1. A ? – bit word is represented by a polynomial ranging from ?0 to ??−1. The order of this polynomial is the power of the highest coefficient, i.e. (?−1).
For example, an 8 – bit word 11001101 is represented by the following polynomial of order 7:
1?7+ 1?6+ 0?5+ 0?4+1?3+ 1?2+ 0?1+1?0 = ?7+?6+ ?3+ ?2+1
Modulo 2 Arithmetic
Polynomial code operations are done by modulo 2 arithmetic.
Addition and Subtraction: According to the rules of finite field theory, in modulo 2 arithmetic, addition and subtraction has no carries or borrows. Thus, both the operations are same as XOR (exclusive OR) operations.
Operand | Operand | Modulo 2 Addition | Modulo 2 Subtraction |
---|---|---|---|
0 | 0 | 0 | 0 |
0 | 1 | 1 | 1 |
1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
For example, if there are two words 11001011 and 10101111, both addition and subtraction will give the result 01100100.
-
Multiplication:
Modulo 2 multiplication is the same as AND operation.
Operand | Operand | Modulo 2 Multiplication |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Generator Polynomial
When messages are encoded using polynomial code, a fixed polynomial called generator polynomial,?(?) is used. The length of ?(?) should be less than the length of the messages it encodes.
In CRC encoding, ?(?) should have 1 in both its MSB (most significant bit) and LSB (least significant bit) positions. In the process of encoding, CRC bits are appended to the message so that the resultant frame is divisible by ?(?).