素人の言語コンピュータ組成原則として:データの整合性(下) - 犯罪現場を復元する方法(50と言います)

まず、プライマー

後にコードをチェックし終え、あなたは今、パリティまたは巡回冗長検査符号CRCなどは、私たちだけの事を伝えることができるかどうか、あなたのデータが間違っている、知っている必要があります。そのため、また、チェックサムエラー検出コード(誤り検出符号)と呼ばれます。

チェックコードまたはエラー検出コードかどうかは、ハードウェア・エラーは、唯一、あなたを伝えることができたときに「私が間違っていました。」ただし、次の質問、「間違っている、」それは答えではありません。「すべて間違っているところ。」とこれは、つまり、私たちの治療シャッターモードのみにつながります ダウンロードした場合
、ファイルとチェックコードが一致していない見つけ、私たちは再びダウンロードして行くことができる。それはデータメモリコンピューティング・プログラムの内部で置かれている場合、我々は再び再カウントすることができます。

このような効率が低すぎるので、我々だけではなく、「私が間違っていた」私たちに伝える方法を持っている必要がありますが、またことを教えてくれる「何が間違っていたことは間違っていました。」その結果、コンピュータ科学者は、誤り訂正符号を発明しました。誤り訂正符号は、より多くの冗長な情報を必要とし、冗長な情報を通じて、私たちだけではなく
、データが間違っているところを知っているが、また、右にデータを直接変更します。これは魔法の音ではないでしょうか?次は、見てみましょう。

第二に、ハミングコード:我々は、冗長性を必要とするどのくらいの情報?

最もよく知られている誤り訂正符号は、ハミング符号です。ハミングコード(ハミングコード)という名前の彼の発明のPORTRAITリチャード・ハミング(リチャード・ハミング)に基づいています。バック1940年代にこのエンコードは発明されました。この日のために、我々は最後の講義に言った
もまだハミング符号誤り訂正を使用して、ECCメモリ。

最も基本的なハミングコードのハミングコードが7-4と呼ばれています。ここで、「7」は実際に有効なデータ、7(ビット)の合計を指します。そしてここで、「4」は、それが誤り訂正のために私たちの4つの追加店舗のデータを参照します。

まず第一に、あなたが少しをクリアする必要があり、誤り訂正符号誤り訂正能力には限界があります。どんなに多くの間違った場所、我々はできるそれらを修正すると言っているわけではありません。そうでなければ、我々は、7個のデータビットというデータビットが情報を送信することができるために、我々は使用できないということのような4つしかパリティビットを必要としません。この
非科学的。実際には、内部の7-4ハミングコードで、我々は間違ったものを修正することができます。これはそれを行う方法ですか?私たちは見て⼀。

4ビットのチェックコードは、2 ^ 4 = 16の異なる数の合計を表すことができます。チェック値を計算されたデータビットは、決定されなければなりません。したがって、データ・ビット・エラー、計算されたチェックサムは、チェックサムが決定され、特定の異なる場合。すなわち、2 ^ 4-1 = 15の値とすることができる
15の可能うちチェック値の残りのもの。

図15は、値をチェックすることができる実際には、15個の可能なビットエラーに対応することができます。あなたは尋ねるかもしれません。この時間は、私たちだけで7データビット以来、なぜ私たちは4つのチェックコードにそれを使うのですか?3十分ではないと?2 ^ 3-1 = 7、データだけ異なるAHの上位7ビットに!

シングルビットエラーを反転、忘れてはいけない、だけでも、チェックデジットで表示されることがあり、データ・ビットに表示されないことがあります。パリティビットは、エラーの可能性だったでしょう。だから、7データビットと3つのパリティビットは、唯一のシングルビットエラーならば、間違って行くことができるビット数は10で、2 ^ 3-1 = 7の場合は、
どちらのエラーを見つける私たちを助けるために特有のものではありません。

我々は、データ・ビットのKビットを持っている場合、実際には、パリティは、Nビットを持っています。だから我々は、我々は、データの誤り訂正の単一のビットを反転することができることを保証するために、次の不等式を満たす必要があります。この不等式は、次のとおりです。

7つのデータビットで、即ち、K = 7の場合、Nは4.4パリティビットの最小値は、実際には、データの11ビットをサポートできています。以下は、データ・ビットの数と簡単なチェックデジットの比較表をリストアップしました、私、あなたが数学を自分で行うことができ、どのような式は上記理解しています。

エラー訂正ハミングコードの3原則

今、あなたは、必要なチェックデジットを計算する方法を決定されたデータビットの場合には、把握すべきです。その後、次の、我々はコードの符号化方式は、どのようにの一種であるハミングから⼀を見ていきます。

簡単にそれを理解するために、我々は4-3ハミングコードをカウントするために、より少ないビットを使用する(すなわち、4つのデータビット、パリティビット3)。我々 D1、D2、D3、D4として示される4つのデータ・ビット、。ここでDは、データ・ビットのデータ・ビットの最初の文字を取ります。私たちは、3パリティビット、入れ
それぞれP1、P2、P3で表されます。Pから個々の場合には、パリティビットのパリティビットの頭文字を取っています。

我々は1を取る4ビットのデータから、それに対応するパリティビットを計算します。我々はそれにパリティチェックビットを計算する前に話をしました。例えば、我々は、パリティビットP1を算出するためにD1、D2、D3を使用して、⼀D1、D3、D4を用いてP2パリティ・ビットを計算し、と
計算されたパリティビットP3のD2、D3、D4。同じに対応する次の表のように:

この時間は、あなたがそれについて考えるために行く、データd1を間違ったのこのビットならば、何が起こりますか?我々はチェックし、P1、P2の結果が同じではないことがわかります。D2間違って、P1およびP3のチェックサム計算結果が同じではないからである。ためD3間違っ、P2、P3がある場合
D4の間違った、P1、P2、P3である同じではありません。あなたは、データエラーコードは、あるだろう少なくとも二つのチェックサムを計算することは矛盾していることがわかります。

その後、我々は、P1のチェックサムが間違っている場合は、それが⽣どのような状況を送信します降りてきますか?今回、唯一のチェック結果P1・エラー。P2とP3間違った結果が唯​​一のチェックコードが矛盾して計算され、同じです。

そう一致しないコードを確認し、2 ^ 3-1 = 7例合計は、わずかに異なるエラーの7ビットに対応します。私はまた、あなたがそれを理解することができ、この対応テーブルの下に置いています。

あなたは、このハミングコードの誤り訂正処理を見ることができる映画のようなビットは、推論ホームズプロセスを参照してください。間違い、見つけTiaofenlvxiステップバイステップによる追加の情報サイトは、最終的にどのようなデータエラー、エラーの削減、「犯罪現場」ですここを参照してください、私はどのように我々は、ハミングコードを生成するための手順やルールのセットを使用することができ、あなたが片手のハミングコードに見つける特に魔法のですが、また新しい質問を出てくるだろうと考えていますか?実際には、この手順は複雑ではありません、そして、私たちは一緒に見ていきます。

まず第一に、我々は最初のビット数で送信すべき符号化データを決定します。例えば、我々はここで7-4ハミングコードは⼀11の合計です。その後、我々は、11ビットのデータは、左から右に番号が付けられ、また、そのバイナリ表現を書き込むこと与えます。

その後、我々は見つけるためにこれらの11個のデータのバイナリ整数電源を入れます。1,2,4,8であるこの7-4ハミングコードで。その私たちのチェックサムビットこれらの数字は、我々がdo P1〜P4それらを記録します。度⼆⻆進数が表示される場合、その中で11の数、唯一のことである
のみ4ビットである4つの値1のビットです。その後、我々はD1-D7のデータシンボルを数7、残りの。

その後、私たちのチェックコードのビットのために、我々はまだパリティを使用します。しかし、それぞれのパリティコードビットは、チェックサムを計算するために、すべての7つのデータを使用していません。3,5,7,9,11 P1児が計算されます。即ち、バイナリ表現では、右から左に4ビット目は、ケース1であり
、P1パリティ符号として用います。

残りp2は、我々は、すなわち二進表現で、P2と、ケース1の左側に、右から2番目のビットをチェックサム3,6,10,11を計算するために使用します。その後、右から左への自然数P3、第3ビットは、チェックコード番号1の場合です。第4ビットP4はあるが
1の場合にはチェックコード。

私たちはどちらのデータコードが間違っを見つけるために回すことができるように、あなたはデータコードのいずれかが間違っていることがわかります、我々は少なくとも2または3に対応するチェックコードを持つことになります。この時間は、オンになっていません。チェックサムが間違っている場合は、唯一のチェックコードはこの1つ上にない、我々はこれが知っている
間違ったチェックコード。

上記の方法は、我々はいくつかのハミングコードのいずれかを意味するプログラム、で表される期間を決定することができる、我々はもはや符号化方式の手動コンパクト設計する必要がありません。

第四に、ハミング距離:ハミングコードの役割の画像理解

実際には、我々は、ハミングコードの役割を理解するための視点を変更することができます。データの2つのバイナリ表現のために、我々はハミング距離を呼び出し、それらの間の中央値の違いは、あります。彼らは最初のフレームの唯一の最も左側の位置が異なっている持っているので、例えば、ハミング距離は、1001および0001の1です。1001
それらのほとんどは左と右のほとんどの2が異なるため、ハミング距離は、2と0000です。

だから、あなたは簡単に数1及び当社のすべてのデータのハミング距離が、戻って修正することができますされて送信される、いわゆる補正を、想像することができます。

任意の2つのデータは、我々は実際にハミング距離が少なくとも3をしている場合、転送したいです。あなたはなぜそれ2できない、頼むかもしれませんか?そうである場合、2、次に誤りの数が存在することになるので、正しいデータへの2人のハミング距離は1です。私たちは、このエラー番号を参照すると
候補を、我々は数のものに修正すべきかわかりません。

ハミング距離として引用した後、我々はより鮮やかにエラー訂正コードを理解することができます。ポイントは内部空間であるように、いかなる状況のエラー訂正の下で、我々はデータを参照してください。今回は、データ間の距離が非常にコンパクトであるが、これらの点の座標少しあれば作ることができます
間違って、私たちはその一点間違っているかもしれません。

我々は、中心、1球の半径でのポイントにポイントを置くかのようにあなたの後、誤り訂正を持っています。限り、この範囲のボールの座標として、我々はすべての実際のデータは、ボールのセンター加重座標であることをであることを知っています。そして、それぞれのデータがボールに近すぎることができない、ボールが異なるデータ持っている必要があります
3つのユニットからを。

 

 

V.概要拡張

まあ、個々のケースでのエラー訂正コードの内容が終了したから。あなたは、この一見単純な⼩のハミングコードを見ることができません。また1940年代初期に生まれたが、しかし内部今日のECCメモリまで、我々はまだこの技術的な解決策を使用しています。そしてまた、ハミングコードハミングはチューリング賞を受賞しましたので。

ハミングコード、データ内の複数の冗長検査符号ビットを追加することによってだけでなく、データのエラーを検出することができ、データはまた、可能な場合にのみ、単一のビットエラー、上のエラー訂正。そして、ハミングコードを計算する過程を理解する上で、非常に重要なポイントがあり、オリジナルだけでなく、
データビットが間違っている可能性があります。私たちは、シングルビットエラーが発生することがありひっくり返すと同じ、パリティビットを追加しました。これは、3桁のチェックコード付き7つのデータビットが十分でない理由を、4つのチェックサム・ビットが必要です。

実際のハミングコード符号化プロセスが複雑ではない、我々は、エラーチェックコードの複数のビットを生成するように意図されている任意のデータ・ビット・エラーことを確実にするために、データの異なるセットを複数に一致するように、異なるパリティビットを通過しませんユニークな組み合わせ。何かがうまくいかないとき、このように、我々は見つけるために回すことができる
データのビットエラーをし、それらを修正します。1ビットだけエラーチェックコードがある場合、我々は、実際のエラーがビットのチェックサムである知っています。

 

おすすめ

転載: www.cnblogs.com/luoahong/p/11442996.html