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.5k Views Asked by hussein_moh At
1
There are 1 best solutions below
Related Questions in CRC
- Add additional fields to Linq group by
- couldn't copy pdb file to another directory while consuming wcf web service
- Why are the aliases for string and object in lowercase?
- WPF MessageBox Cancel checkbox check
- Resolve object using DI container with object instance
- Creating a parametrized field name for a SELECT clause
- Does compiler optimize operation on const variable and literal const number?
- Get data from one form to another form in C#
- Writing/Overwriting to specific XML file from ASP.NET code behind
- Deleting Orphans with Fluent NHibernate
Related Questions in CRC32
- Add additional fields to Linq group by
- couldn't copy pdb file to another directory while consuming wcf web service
- Why are the aliases for string and object in lowercase?
- WPF MessageBox Cancel checkbox check
- Resolve object using DI container with object instance
- Creating a parametrized field name for a SELECT clause
- Does compiler optimize operation on const variable and literal const number?
- Get data from one form to another form in C#
- Writing/Overwriting to specific XML file from ASP.NET code behind
- Deleting Orphans with Fluent NHibernate
Related Questions in CRC16
- Add additional fields to Linq group by
- couldn't copy pdb file to another directory while consuming wcf web service
- Why are the aliases for string and object in lowercase?
- WPF MessageBox Cancel checkbox check
- Resolve object using DI container with object instance
- Creating a parametrized field name for a SELECT clause
- Does compiler optimize operation on const variable and literal const number?
- Get data from one form to another form in C#
- Writing/Overwriting to specific XML file from ASP.NET code behind
- Deleting Orphans with Fluent NHibernate
Related Questions in ERROR-DETECTION
- Add additional fields to Linq group by
- couldn't copy pdb file to another directory while consuming wcf web service
- Why are the aliases for string and object in lowercase?
- WPF MessageBox Cancel checkbox check
- Resolve object using DI container with object instance
- Creating a parametrized field name for a SELECT clause
- Does compiler optimize operation on const variable and literal const number?
- Get data from one form to another form in C#
- Writing/Overwriting to specific XML file from ASP.NET code behind
- Deleting Orphans with Fluent NHibernate
Related Questions in CRC64
- Add additional fields to Linq group by
- couldn't copy pdb file to another directory while consuming wcf web service
- Why are the aliases for string and object in lowercase?
- WPF MessageBox Cancel checkbox check
- Resolve object using DI container with object instance
- Creating a parametrized field name for a SELECT clause
- Does compiler optimize operation on const variable and literal const number?
- Get data from one form to another form in C#
- Writing/Overwriting to specific XML file from ASP.NET code behind
- Deleting Orphans with Fluent NHibernate
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 # Hahtags
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.