Golay符号化・復号ソフト

12bitのデータを24bitの符号語に変換し、任意の3bit誤りを訂正可能・4bit誤りを検出可能な拡張2元Golay符号の符号化・復号ソフトウェアIPです。
符号化と復号のC関数をご提供します。

Golay符号は復号処理が単純なので、ソフト処理でも比較的高速な通信に適用できる特徴を有しています。

仕様

符号化方式拡張2元Golay符号化(システマティック符号)
(24,12,8)
符号化率:1/2
生成マトリックス(G) <————— 24bit —————>
1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1
0 1 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 1 0 0 1 0
0 0 1 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 1 0 1 0 1 1
0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 1 1 1 0 1 1 0
0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 0 1
0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 0 1
0 0 0 0 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 1 0 1 1 1
0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0 0
0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0 0
0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 1 0 1 1 1 1 0
0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 1
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 1 1 0 0 0 1 1 1

関数プロトタイプ

符号化関数
long encode(short u)
引数u12bit入力データ
戻り値24bit出力(符号)データ
復号関数
long decode(long code)
引数code24bit入力(符号)データ
戻り値24bit出力(復号)データ
ただし、訂正不可(4bit)エラーを検出した場合は-1を返す。

処理速度性能(参考)

符号化関数・復号関数を Intel Celeron 1.2GHz で動作させた場合の1符号(データ12bit/符号語24bit)の処理時間
関数処理時間
符号化関数約 0.32us
復号関数最大(訂正不可) 約 1.2us
最小(エラーなし) 約 0.32us

ご提供方法など

  • 符号化関数・復号関数をC言語ソースでご提供いたします。
  • 符号化方式(生成マトリクスの変更等)のカスタマイズも承ります。
  • 上位プロトコル制御等を含めたソフトウェアのカスタム設計も承りますので、ご相談ください。

お問い合わせ

この製品に関するお問い合わせはこちら