水平および垂直パリティ チェック コードについて読んでいました。これらのコードの特性の 1 つは、最終パリティ チェック (右下のビット) が、水平パリティ チェックのモジュロ 2 の合計に等しく、垂直パリティ チェックの合計のモジュロ 2 にも等しいことです。
なぜこれが本当なのか、私にはわかりませんでした。例でそれらを見ることができますが、同じことについて正式な/直感的な証拠を思い付くことはできません。
ヘルプ/ヒントをいただければ幸いです。
ありがとう、チャンダー
水平および垂直パリティ チェック コードについて読んでいました。これらのコードの特性の 1 つは、最終パリティ チェック (右下のビット) が、水平パリティ チェックのモジュロ 2 の合計に等しく、垂直パリティ チェックの合計のモジュロ 2 にも等しいことです。
なぜこれが本当なのか、私にはわかりませんでした。例でそれらを見ることができますが、同じことについて正式な/直感的な証拠を思い付くことはできません。
ヘルプ/ヒントをいただければ幸いです。
ありがとう、チャンダー
各行と列は2を法とする合計です。結果はすべての数値の合計mod2です。どのように数えるかは関係ありません。
ルールは次のとおりです:
((a mod c)+(b mod c))mod c ==(a + b)mod c
これは、すべての間違ったビットがパリティを水平方向または垂直方向に伝搬するためです。
ビットの行列を持つことを考えてください:
A B C D
E F G H
I J K L
M N O P
現在、これらのビットの一部が誤って送信されているため、合計y個のエラーが横たわっていますが、マトリックス内のどこにあるかはわかりません。
行ごとに行けば(水平パリティを計算するため)、その行に偶数個のエラーがある場合は2を法とするすべての行パリティの合計が0になり、そうでない場合は1になります。また、すべての行に対してこの作業を行うため、それらすべてを検討しているという事実も確信できます。
最後に、ある行の一部を修正し、別の行の別の行を変更する場合、基本的に行から 1 を削除して別の場所に追加するため、最終結果は変わりません。
次に、列ごとに行うことを考えてください。まったく同じ動作になります。唯一の違いは、エラーを異なる方法で分散できることですが、垂直パリティをモジュロ 2 に追加すると、同じ考慮事項が考慮されます。合計エラー数は同じなので、行と列のいずれかで偶数または奇数になります。