問題タブ [hamming-code]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - ハミング符号拡張
ハミングコードのこのウェブサイトからコードを取得しました。12 ビットのメッセージと 7 ビットのパリティで実装したい場合、どのような変更を行う必要がありますか? DI[11] と CI[6] ビットが相互に処理できないまで追加しました。これはロジックです。
verilog - ハミング (7,4) コード - 有限ステート マシン
そのため、コンピューター エンジニアリング クラスのラボ課題に取り組んでいます。期限のある課題があり、できる限りの助けを得ようとしていますが、教授については、彼らと話すことができるようになるまで数日待たなければなりません. だから私は彼女を助けることができるかどうかを見ています.
私の問題は、ラボの割り当てから求められたように、有限状態マシンが機能していないことです。ステート マシンには 3 つの状態があると想定されています。アイドル、s1、s2。Idle は波形のすべてのゼロを示し、State 1 は LFSR からランダムに生成された 4 ビット数を示し、State 2 はハミング (7,4) が行われた後の 4 ビット数からの結果を示します。クロックは 1HZ クロックに変更され、clk 分周が使用されます。
コードは次のとおりです。
CLOCK_1HZ
LFSR
ハミング
このコードはすべて適切に機能し、正しいハミングを計算し、クロック分周は LFSR とうまく機能し、階層設計として組み合わせると機能します。
このコードの FSM を作成すると、ハミング数を計算するまで機能しますが、指示されたときに状態を変更しません。
- Switch 1 設定時:State IDLE
- スイッチ 2 が設定されている場合: 状態 1、4 ビットの LFSR 番号を表示
- スイッチ 2 が設定されている場合: 状態 2、7 ビットのハミング結果を表示
以下は、有限状態マシンのコードであり、それに続くのは波形出力です。
有限ステートマシンの波形:
error-correction - P0 パリティ ビット エラーは SECDED の他のビットに影響しますか?
私は今、エラーの検出と訂正のための SECDED の観点から勉強しています。私の仕事では、「CC9 の 16 進値を持つ SECDED エンコードされた文字が取得されました。SECDED パリティは偶数です。エラーはありましたか? 修正できるかどうかを説明してください」という仕様です。
仕様によると、P1(奇数)とP2(奇数)でエラーが出ているので、ビット3にエラーがあります。その後、ビットを反転させて再度エラーを確認しました。その結果、P0 パリティ ビットだけがエラーになり、残りの P1、P2、P4、P8 は正しいものになります。
私の質問は、この場合、コードを修正できないということですか? またはその逆?私の答えは、P1 のビット 1 または 3 にエラーがあるか、または P2 のビット 2 または 3 にエラーがあると言えますが、ビット 3 を反転できても修正できません。
どんな答えでもいただければ幸いです。
よろしく、
アレン
c# - C# ハミング エンコードされたシリアル出力
エンコードされた ASCII 文字のハミングを期待する RS232 デバイスと通信しようとしています。
次の表は、製造元から提供されています。
各バイト (ascii char) をエンコードするこの C# 関数を作成しましたが、デバイスは画面上の専門用語のみをデコードします。
ハミングの仕組みを誤解していますか? 私はコンピューター科学者ではありません:)
java - 15, 11 ハミング符号生成行列
私はハミング コードを理解しようとしており、ハミング 7,4 の特定の入力を正しくエンコードおよびデコードするプログラムを作成しました。15,11 でこれを行おうとすると、エンコードしようとすると正しい出力が得られません。
バイトを入力し、先頭に 3 つのゼロを追加してから、以下の生成行列を掛けました。マトリックスの mod2 を取得した後も、正しい答えが得られず、何か間違っているのか、マトリックスが間違っているのかわかりません。
ハミングコードは私にとって非常に新しい概念なので、非常に明白なものを見落としている可能性があります! あなたが私に与えることができるどんな助けにも本当に感謝します!
memory - SEC コードにエラーがあるかどうかを判断するにはどうすればよいですか?
SECハミングコードでエラーを見つけて修正する方法を理解していると思っていましたが、教科書の質問で私の能力が疑問視されました...
4 つのパリティ ビットで 8 ビット ワードを保護する SEC コードを考えてみましょう。値 0x375 を読み取った場合、エラーはありますか? その場合は、エラーを修正してください。
したがって、0x375 は 0011 0111 0101 と同等です。
パリティビットを見つけました...
p1: 0 011 0111 0101
p2: 0 0 11 0111 0101
p4: 001 1 0111 0101
p8: 0011 011 1 0101
エラーを検出するために、パリティビットが奇数かどうかを確認します...
p1: 0 0 1 1 0 1 1 1 0 1 0 1 = 010100 = 偶数 (0)
p2: 0 01 1 0 11 1 0 10 1 = 011110 = 偶数 (0)
p4: 001 1 011 1 010 1 = 10111 = EVEN (0)
p8: 0011 011 1 0101 = 10101 = ODD (1)
エラービットを見つけるには、奇数のパリティビット番号を追加するだけだという印象を受けました。私の場合、パリティ ビット 8 だけが奇数です。したがって、エラー ビット = p8 = 8 です。しかし、パリティ ビット番号がエラー ビットになる可能性があるとは思わなかったので、何か間違ったことをしたに違いありません。
bits - ハミング コードのパリティ分布の問題
誰かがどこが間違っているのかを明確にしてください。私はこの 2 時間にいます...コードの最初のパリティにはそれ自体が含まれており、それ以降の最初の数字はすべて yes と no のシーケンスでスキップされることがわかっています。2 番目は、それ自体とそれに続く番号の後の一連の番号をすべてスキップします。4 番目は、それ自体と最初の 3 つの数字を含めた後、4 をスキップする必要があります。
scala - scala で単純な SECEncoder と SECDecoder を作成する
32 ビット ワードを 40 ビット ワードにエンコードする SECEncoder を scala で作成するタスクが割り当てられました。40 ビット ワードの最下位桁は 32 ビット ワードです。
SECDecoder は、最大で 1 ビット エラーがあったとしても、同じ 32 ビット ワードを返すことができる必要があります。
これまでのところ、エンコーダーは単純なパリティ ビットをチェックしてワードに追加できますが、デコーダーから 32 ビット ワードを正しく取得できないため、デコーダーに行き詰まっています。
だから私が本質的にやろうとしているのは、32ビットワードに追加されたビットがパリティビットであるハミングに似た原理を通してパリティビットを計算することです.
デコーダーでは、指定された単語のパリティ ビットとエンコードされた指定された単語のパリティ ビットの違いをチェックして、どのパリティが異なるかを確認します。
私が立ち往生しているのは、どのビットが32ビットワード全体と異なっているかを正確に計算してから変更する方法です? 私がそれをやろうとすると、いくつかのビットが出てきましたが、正確なものは得られません。
私は完全に間違った方向に進んでいますか、それとも何かが欠けているだけですか?