任意のCRC多項式の誤り検出能力を計算する方法を調べようとしました。CRC多項式の誤り検出能力を確認する
は、シングルビットエラーの検出::このため、これを行うことができます すべてのCRCが唯一必要と
私は(またはしない場合があります)任意の多項式に適用される場合がありますさまざまなエラー検出機能があることを知っていますCRC幅> = 1。
バーストエラーの検出: すべてのCRCは、その幅に等しいサイズまでのバーストエラーを検出できます。
ランダムビットエラーの検出(フレームサイズによって異なる): 私は、用意されたCアルゴリズムを使用して、与えられたHDおよびポーランドの最大フレームサイズを計算できます。私は完全にそれを理解していないが、それは動作します。
ビットエラーの奇数の検出: 偶数の項を持つ多項式(完全な2進多項式では1ビットの偶数を意味します)でこれを行うことができます。
16ビットCRC多項式x16 + x12 + x5 + 1 = 0x11021と仮定する。その多項式は次のようになります。
- すべてのシングルビットエラー(データサイズに依存しません)を検出できます。
- は、最大16ビット幅(データサイズに依存しない)までのすべてのバーストエラーを検出します。
- はすべての奇数のビットエラーを検出します(4つの多項式を持つため、データサイズに依存しません)。
- は、最大32571ビットのデータサイズの3ビットエラー(HD4)を検出します。
上記は正しいですか?
追加のCRCエラー検出機能はありますか?はいの場合、任意のCRC多項式がそれらをサポートしているかどうかを(深い数学知識なしで)どのように確認できますか?
この質問はかなり面白いです。 cs.stackexchange.comの方がいいかもしれません。 – Nayuki
@Nayuki:あなたはおそらく正しいでしょう。まず、ここで何が起こるかを見てみましょう... – Silicomancer