ハミング符号をpythonで実装してみた
前回ハミング符号について紹介しました
今回は一つのエラーを訂正するハミング符号と一つのエラー訂正・2つのエラー検知の拡大ハミング符号ををpythonを使って実装してみたいと思います
(7,4)ハミング符号
(7,4)のハミング符号の実装したコードを下記に示します
Desktop/PPP/python/audio/HammingCode.ipynb
実装に関しては主にWikipediaを参照
ハミング符号の計算とシンドロームの計算は生成行列と検査行列を利用すると容易に行うことができます
シンドロームが計算されるとがそれぞれ20, 21, 22としてインデックスを示す値と計算されます
あとは該当データを訂正して、情報データを取り出せばよし
(8,4) 拡張ハミング符号
同様に1つのエラー訂正、2つのエラー検知(SECDED)の拡張ハミングの実装も行いました
Desktop/PPP/python/audio/HammingCode-Copy1.ipynb
こちらは生成行列・検査行列に行を追加し、全体の偶数パリティを計算してデータの後ろにつけています
全体の偶数パリティがで表されるのが面白いですね
これは、パリティを含めた計算で同じデータ同士の排他的論理和を取ると偶数になるので、残ったものがこうなると言うことですね
まとめ
検査ビット数が任意のものにも対応したものも作成したので、もしよろしければこちらもどうぞ