Why using Generator polynomial like this G(x) =x^8 +x^2 +x+1 for CRC-8. If this is optimal How can we prove it. or using this Polynomial G(x) = x^5 + x^4 + x^2 + 1 for CRC-5-ITU.
Why using Generator polynomial like this x^8 +x^2 +x+1 for CRC-8?
2.6k Views Asked by hussein_moh At
1
There are 1 best solutions below
Related Questions in CRC
- OCR serial number CRC, check algorithm
- CRC Generator(sender) and Checker(receiver) - parallel implementation VHDL
- Calculate CRC 15 for CAN BUS
- Stack over. crc on python
- CRC-CCITT Kermit 16 in C#
- Checksum without logic/bitwise operations
- byte array stream crc check
- Programming the CRC algorithm manipulating Strings in Java
- How to find CRC byte of a image file
- What's wrong with my CRC algorithm? (Java)
- calculate checksum for spilted file by boost crc
- CRC check program
- Boost CRC CCITT output values differ
- CRC test of a zipped directory says it's corrupted but i can open and read it
- How do I run error detection on this binary messsage using polynomial/CRC?
Related Questions in CRC32
- Why crc32 value require -lz
- CRC32 Collision Probability
- convert crc javascript func to c$ func
- Calculating CRC32 checksum of a file
- CRC32 Hashing in Java
- How to divide input in parallel crc?
- Improve Python code/ STM CRC32 function
- Python CRC-32 woes
- How to do CRC check on executable loaded in memory?
- Difference between CRC and hash method (MD5, SHA1)
- checking crc32 of zero padded bitstream
- JavaScript CRC32
- How do I use this CRC-32C C# library?
- python, google cloud platform: unable to overwite a file from google bucket: CRC32 does not match
- How to right using CRC32 on Android
Related Questions in CRC16
- Java equivalent for C CRC16
- Undefined reference to crcsum(unsigned char const*, unsigned long, unsigned short)
- CRC-CCITT Kermit 16 in C#
- How do you figure out the values of a lookup table based on the CRC polynomial?
- 16-bit CRC-CCITT in Matlab
- Java code for CRC 16 calculation
- vhdl "parse error, unexpected FOR"
- Function to calculate CRC16 (Modbus) value
- CRC16 ISO 13239 Implementation
- CRC16 collision (2 CRC values of blocks of different size)
- CRC 16 for DECT in C#
- Extract certain byte from char array and byte array in java
- Calculate 16 bit CRC in java and append it at the end of the byte array
- Reverse Engineering a CRC Packet
- Delphi - change (ini) file but keep Checksum of crc16 equal
Related Questions in ERROR-DETECTION
- Should a property in Swift be implicitly unwrapped in my UIViewControllers?
- Error detection in binary messages using CRC/polynomial key
- How to compute hamming code for 10 bits?
- error correcting code over a 4 element alphabet
- How can I add some detection or correction code in a 48bits message?
- Hamming Code Error Detection
- Code that detects its own bugs?
- What error it could be
- Jar not working?
- Repairing Code Number with missing digits
- What is CRC? And how does it help in error detection?
- Finding hamming distance of code
- Parity error detection, 4-bit example of how a particular scheme doesn't work
- Error correction code for lost bit
- Reed-Solomon detection capability
Related Questions in CRC64
- Identifying polynomial terms of the CRC
- whole file CRC computation undetected error probability
- CRC64 calculation in VB
- Why using Generator polynomial like this x^8 +x^2 +x+1 for CRC-8?
- How to generate Crc-64 table having all negative integer Constants and checksum?
- Reversed message CRC calculation
- No CRC64 implementation equal to CommonCrypto?
- CRC ECMA-182 reference
- CRC implementation in Hardware for multi-bit data
- Read and Write from serial port gives "OUTPUT_BUFFER_EMPTY" (maybe crc calc and checksum is not correct)
- Most efficent way to calculate CRC64 with reflected input
- Mysql Performance Impact with long integer field
- Generating of the polynomial key for crc
- How many string characters should I read to get a good hash?
- Cyclic Redundancy check : Single and double bit error
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The polynomial chosen determines the error detection capability of the CRC. This capability is measured in Hamming Distance, which is the minimum number of bit errors that can be introduced in the message while leaving the CRC unchanged. This would be a false positive, where the CRC says the message is ok, but it isn't. Also important is how many such bit patterns exist at each number of bit errors, called the Hamming Weight. This determines the probability than an error of n bits results in a false positive.
Exhaustive searches over all possible polynomials have been done by Koopman, et al, to find the those with the largest Hamming Distances and smallest Hamming Weights for various message lengths. As an example, the degree-8 polynomial you quote, used in the ITU-T Recommendation I.432.1 CRC, is good, but not the best you could pick. The polynomial x8+x6+x3+x2+1 provides a Hamming Distance of 3 for longer messages. These two pages provide Koopman's most recent results.
Another answer here suggests that "the optimal polynomial depends on the input data set used." The only aspect of the data that the error detection capability of a CRC polynomial depends on is the length of the block on which the CRC is applied. Due to the linearity property of CRC's, the error detection capability is in fact completely independent of the data in the message. If you exclusive-or two messages of the same length, then the CRC of that new message will be the exclusive-or of the CRC's of the original two messages. So once you find the minimum set of errors that leave the CRC unchanged, then that set of errors can be applied to any message of the same length to get a false-positive.