2016-08-19 10 views
2

任意のCRC多項式の誤り検出能力を計算する方法を調べようとしました。CRC多項式の誤り検出能力を確認する

は、シングルビットエラーの
  1. 検出::このため、これを行うことができます すべてのCRCが唯一必要と

    私は(またはしない場合があります)任意の多項式に適用される場合がありますさまざまなエラー検出機能があることを知っていますCRC幅> = 1。

  2. バーストエラーの検出: すべてのCRCは、その幅に等しいサイズまでのバーストエラーを検出できます。

  3. ビットエラーの奇数の検出: 偶数の項を持つ多項式(完全な2進多項式では1ビットの偶数を意味します)でこれを行うことができます。

  4. ランダムビットエラーの検出(フレームサイズによって異なる): 私は、用意されたCアルゴリズムを使用して、与えられたHDおよびポーランドの最大フレームサイズを計算できます。私は完全にそれを理解していないが、それは動作します。

16ビットCRC多項式x16 + x12 + x5 + 1 = 0x11021と仮定する。その多項式は次のようになります。

  • すべてのシングルビットエラー(データサイズに依存しません)を検出できます。
  • は、最大16ビット幅(データサイズに依存しない)までのすべてのバーストエラーを検出します。
  • はすべての奇数のビットエラーを検出します(4つの多項式を持つため、データサイズに依存しません)。
  • は、最大32571ビットのデータサイズの3ビットエラー(HD4)を検出します。

上記は正しいですか?

追加のCRCエラー検出機能はありますか?はいの場合、任意のCRC多項式がそれらをサポートしているかどうかを(深い数学知識なしで)どのように確認できますか?

+0

この質問はかなり面白いです。 cs.stackexchange.comの方がいいかもしれません。 – Nayuki

+0

@Nayuki:あなたはおそらく正しいでしょう。まず、ここで何が起こるかを見てみましょう... – Silicomancer

答えて

2

このpaper by Koopman and Chakravartyは、CRCパフォーマンスのいくつかの指標を調べ、多くの多項式の測定値と結果を説明します。要するに、「良い」多項式の定義は、それが適用されているメッセージの長さに依存し、アプリケーションによって異なります。主な措置は、同じCRCに戻すために変更しなければならないメッセージの最小ビット数であるハミング距離と、所定の低ビット誤り率での性能です。