おしょうしな日記 Thanks 101

科学・技術をわかりやすい言葉で解説。「おしょうしな」とは、山形おきたま弁で「ありがとう」の意味。

ハミング符号の原理(6) -巡回ハミング符号-

2008-12-30 17:33:25 | 科学・技術
送信データに次のように目印(アドレス、シンドロームなど)を割り当てると、シフトレジスタを用いた簡単な回路で、符号化・復号化が行えるようになります。
      (1**) (*1*) (**1)
101 a   a       a
111 b   b   b   b 
110 c   c   c 
011 d       d   d 
100 p1   p1 
010 p2      p2 
001 p3         p3
--------------------------
       s1  s2  s3

s1 = a+b+c+p1
s2 = b+c+d+p2
s3 = a+b+d+p3

p1 = a+b+c
p2 = b+c+d
p3 = a+b+d

a=1 b=1 c=0 d=1
(a,b,c,d)=(1101) のとき (p1,p2,p3)=(001)

送信データを
(a,b,c,d,p1,p2,p3)=(1101001)
として、
(a,b,c,d,p1,p2,p3)=(1100001)
が受信されたとします。

シンドローム計算回路は、次のとおりです。これは、R3、R2、R1 の3つのシフトレジスタと、2つの排他的論理和回路(+)からなる割り算回路です。

          ← ← ← ← ← ← ← ← ← ←
         ↓      ↓         ↑
受信データ →(+)→ R3 →(+)→ R2 → R1 →

受信データ(a,b,c,d,p1,p2,p3)=(1100001)を次のように、入力すると、

                ← ← ← ← ← ← ← ←
               ↓     ↓       ↑
   p3,p2,p1,d,c,b,a →(+)→R3→(+)→R2→R1→

7ビットの受信データが入力された段階で、このシフトレジスタの内部状態がシンドロームとなります。

R3,R2,R1  
--------
000 (初期状態)
100 (時刻t1で a=1 がレジスタ R3 に入力された状態)
110 (時刻t2で b=1 が入力された状態)
011 (時刻t3で c=0 を入力)
111 (時刻t4で d=0 を入力)
101 (時刻t5で p1=0 を入力)
100 (時刻t6で p2=0 を入力)
110 (時刻t7で p3=1 を入力)

時刻t7で、すべての受信データが入力された状態で、(R3,R2,R1)=(110) となります。
よって、シンドローム(s1,s2,s3)=(R1,R2,R3)=(011)
したがって、d の1ビット誤りであることがわかります。

数式で書くと
1100001÷1011=011
 (1100001を1011で割って余りが011の意味)
上記のシンドローム計算回路は、1011割り算回路になっています。


◆送信する符号化データの作成も同じ回路(割り算回路)で行うことができます。
(a,b,c,d,)=(1101)を送信するときには、

先ほどと同様に、
(a,b,c,d,p1,p2,p3)=(1101000)を入力すると、(R3,R2,R1)=(100)
となり、(p1,p2,p3)=(R1,R2,R3)=(001)となります。

数式で書くと、
1101000÷1011=001 (110100を1011で割って、余りが001の意味)

◆ちなみに、初期状態を (R3,R2,R1) = (100) として、下図の回路のシフト動作を行うと、シフトレジスタの内部状態 (R3,R2,R1) は、次のように変化します。

  ← ← ← ← ← ← ← ←
 ↓    ↓        ↑
  →R3→(+)→R2→R1→

上図の回路は、R3、R2、R1 の3つのシフトレジスタを用いて、R1の出力を、R3、R2にフィードバックしたものです。
R2=R1+R3 として、フィードバックします。

R3,R2,R1  
--------
100 
010 
001 
110 
011 
111 
101 
100

◆巡回符号とは
巡回符号の意味は、先ほどの送信データ、
(a,b,c,d,p1,p2,p3)=(1101001)

の最下位ビットを最上位ビットに移動し、他のビットを順次、右側に巡回シフト(巡回置換)した符号
(a,b,c,d,p1,p2,p3)=(1110100)
も、符号語になっています。
1110100÷1011=0 (上記のシンドローム回路(割り算回路)に符号後の7ビットを入力した段階で、シフトレジスタの内部状態が000になる)

これをさらに、巡回シフトした符号
(a,b,c,d,p1,p2,p3)=(0111010)
も、符号語になっています。
0111010÷1011=0

まとめて書くと、
(a,b,c,d,p1,p2,p3)=
(1101001) 
(1110100) 1回目の巡回シフト
(0111010) 2回目の巡回シフト
(0011101) 3回目
(1001110) 4回目
(0100111) 5回目
(1010011) 6回目
(1101001) 7回目

7回目の巡回シフトで元の符号に戻ります。

モジュロ2の算法による割り算 -1=+1

はじめに、符号に割り当てた、符号の目印は、ガロア拡大体の元です。
ガロア拡大体の元

参考文献:
誤り訂正符号とその応用,テレビジョン学会 編

ハミング符号の原理(1)
ハミング符号の原理(2)
ハミング符号の原理(3)
ハミング符号の原理(4) -拡大ハミング符号-
ハミング符号の原理(5) -グレイ・ハミング符号-
ハミング符号の原理(6) -巡回ハミング符号-


最新の画像もっと見る

コメントを投稿