0

We know the all procedures of CRC and how to find of CRC.

For example ,

If input data is the $0$x$C2 = 11000010.$

As generator polynomial (=divisor), let's use $100011101.$

The divisor has $9$ bits (therefore this is a $CRC-8$ polynomial), so append $8$ zero bits to the input pattern which is $1100001000000000.$ Align the leading $'1'$ of the divisor with the first $'1'$ of the divident and perform a step-by-step school-like division, using $XOR$ operation for each bit:

Then the calculated actual CRC value is $00001111$ which is $0$x$0F.$

My question is why CRC is called cyclic, we don't see any cyclicness in CRC calculations? Please discuss with one example why it is cyclic.

leonbloy
  • 66,202
S. M.
  • 1
  • This might be better in a computing rather than a maths forum. – badjohn Apr 27 '22 at 13:58
  • @badjohn which site? Please provide the link. – S. M. Apr 27 '22 at 13:59
  • Sorry, I am not sure since I don't frequent computing forums. At the bottom of the page, you should be able to explore other forums within Stack Exchange. If you find one that seems suitable then search for your question before posting it. – badjohn Apr 27 '22 at 14:06
  • 1
    @badjohn it's more suitable, I found this tagged question in this site. – S. M. Apr 27 '22 at 14:08
  • Let's wait and see what others suggest. – badjohn Apr 27 '22 at 14:12
  • @MorganRodgers Of course, there is a substantial overlap in the subjects so a definitive answer is not possible. It is probably the presentation that made me think that e.g. hexadecimal constants written as $0xC2$ and the operator $XOR$. With a different presentation, the same question would have felt more like maths. Leonboy's answer caused me to change my opinion. – badjohn May 09 '22 at 20:39

1 Answers1

3

That's because CRC are based on Cyclic codes. This answer explains how.

Cyclic codes are so called because they, beside being linear, are closed under circular shifts (a circular shift of a codeword gives another codeword).

That cyclicness is only manifest when one sees the whole codebook, which is not the case when dealing with CRC. More abstractly/deeply, the cyclicness reflect on some algebraical properties (and produces some restrictions that the generator polynomial must fulfill), and also has some consequences in the error-detecting capabilities of the code (for example: if the code is able to detect some error pattern, it will also detect the same pattern subjected to some cyclic rotation).

leonbloy
  • 66,202