CRC Encoding with Generator (Polynomial CRC-3) — Finding the Transmitted Codewords
In CRC (Cyclic Redundancy Check) encoding, a generator polynomial is used to compute a remainder by polynomial (binary) division. The generator here is For CRC, if has degree , you append zeros to the message, divide the resulting polynomial by , and append the -bit remainder to form the transmitted codeword 3.
Key items for this specific problem:
- keywordG(x)/keyword
- keyworddegree [/keyword]
- keywordremainder[/keyword]
- keywordcodeword[/keyword]
Because has degree , we append 3 zeros to each message before dividing, and the transmitted codeword length becomes message length + 3 2.
Footnotes
-
CRC (Cyclic Redundancy Check) basics - General CRC procedure and concept of generator polynomial/remainder. ↩ ↩2
-
Cyclic redundancy check long division (mod-2) - Describes modulo-2 division and appending zeros. ↩ ↩2
-
Polynomial division in GF(2) for CRC - Explains XOR-based polynomial division logic. ↩
type="tip" title="How to read as a binary generator" content="Write coefficients in order from highest degree to . For , the bit pattern is 1001 (since the and coefficients are 0). So the CRC divisor is 1001 ."
Footnotes
-
Generator polynomial representation (bit form) - Connection between polynomial form and binary generator/divisor representation. ↩
type="warning" title="CRC division is over GF(2) (mod-2)" content="Subtraction and addition are both XOR in binary polynomial arithmetic. So during long division, “borrow” never happens; you just XOR with the shifted generator when the leading bit is 1 2."
Footnotes
-
Cyclic redundancy check long division (mod-2) - Describes modulo-2 division and appending zeros. ↩
-
Polynomial division in GF(2) for CRC - Explains XOR-based polynomial division logic. ↩
CRC Encoding Roadmap (for this generator)
Identify generator degree
1has degree so append 3 zeros."
Form message polynomial
2Treat the message bits as coefficients in GF(2)."
Append zeros
3Compute by appending 000."
Divide by $G(x)$
4Compute remainder from modulo-2 division."
Transmit message + remainder
5Transmitted codeword is ."
Compute the transmitted codeword using generator $G(x)=x^3+1$
- 1Step 1
Use generator bit pattern is 1001.
- 2Step 2
Since , append 000 to the given message to get the dividend.
- 3Step 3
Perform long division: whenever the current leftmost bit is 1, XOR the generator (shifted to that position) with the current dividend segment.
- 4Step 4
The remainder will be exactly 3 bits (degree < 3).
- 5Step 5
Append the 3-bit remainder to the original message bits to obtain the transmitted codeword.
Let the message be: Since , append 3 zeros:
We must compute the remainder when dividing this 11-bit dividend by the generator bits 1001 (i.e., ).
Below is the modulo-2 long division result (XOR-based). We track the dividend and perform XOR with the shifted divisor whenever the leftmost bit is 1.
Long-division outcome (remainder)
The remainder turns out to be:
Therefore the transmitted codeword is:
This matches option (ii).
Option Check vs CRC-3 (degree 3) requirement
A CRC with must append 3 bits to an 8-bit message → transmitted length must be 11.
Why options (i) and (ii) are both length 11, but only (ii) is correct
- Options (i) and (ii) both append 3 bits to the 8-bit message (length 11), so they are structurally consistent with CRC degree .
- The correct CRC remainder for the given message with generator is , so only: is valid.
Why the other options cannot be correct
- (iii) has no extra 3 CRC bits (length remains 8), contradicting .
- (iv) appends 4 extra bits (length 12), which contradicts the degree-3 generator requirement.
Common CRC pitfalls (and how they affect this question)
Knowledge Check
For CRC with generator , how many zero bits are appended to an 8-bit message before division?