第 11 回 誤り訂正符号

本日の内容


このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。

11-1. レポート課題

ワーク11-1

GF 2 の演算表を作りなさい

ワーク11-2

GF 22 について

  1. 整数を4で割った余りは GF 22 にならないことを、演算表を作って、反例を見つけることで示しなさい。
  2. 0 1 a b で、体になるように演算表を作り、 ab の関係を求めなさい。
  3. 係数が GF 2 (つまり 0,1 ) の多項式を x2 + x + 1 で割った余りを考えると、 GF 22 となることを演算表を作って示しなさい。

ワーク11-3

次の (7,4)符号の生成行列を考えます。

1 1 1 1 0 0 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 0 1
  1. パリティチェック行列を求めなさい
  2. 送信符号7bit に関して、それぞれ1bit誤ったときのシンドロームを求 めなさい
  3. 学籍番号の下3桁をそれぞれ4桁の2進数にして、3つのメッセージベクトル を作りなさい。 そして、それぞれに生成行列をかけ、送信符号7✕3=21bit を求めなさい。
  4. それぞれの送信符号を1ビット改変したものを作り、隣同士で交換しなさい
  5. 受け取った誤りを含んだ送信符号の誤りを訂正し、情報を取り出しなさい。

締切、提出方法

12/4 火曜日の夕方までに <sakamoto@c.dendai.ac.jp>宛に グループで一通のレポートを作成し、 メールすること。

11-2. 講義

有限体

集合Gと演算子 であるとは、次の条件を満たすことです。

  1. すべての演算結果が閉じている。 つまり、 x,y G ならば、 x y G が成り立つ。
  2. 結合法則 x y z = x y z が成立
  3. 単位元 e が存在する。 つまり、 x e = x
  4. 逆元が存在する。 つまりすべての xG に対して、次を満たすyG が必ず存在する: x y = e

集合Fと2つの演算子 +, ・が であるとは、次の条件が成り立つことです:

  1. F が + に対して群になり、単位元が 0となる
  2. Fから0を取り除いた集合について・が群になり、単位元が1となる
  3. 分配法則 x+y z = x z + y z が成り立つ

例えば、整数は足し算について群になっています。 さらに、有理数、実数、複素数は足し算、掛け算について群になっていて、 さらに体にもなっています。 そして、これらの持つ重要な性質(方程式が解ける)などは既に学んだとお りです。

コンピュータや通信では、無限長のデータは扱いません。 そのため、符号やデータ表現は有限の集合に含まれます。 有限の集合が群や体になると、有理数や実数などで成り立っていた様々な定 理やアルゴリズムが流用できます。

演算に交換法則 xy = yx が成り立つ群を 可換群あるいはアーベル群 と呼びます。

単純な有限アーベル群としては、 整数の余りがあります。 有限アーベル群には基本定理があり、「素数のべき乗の群の直和になる」、 つまり、要素数に対して構造が一意に定まることが知られています。

さらに、有限体はガロア体とも呼ばれますが、要素数は素数の べきに限られ、構造も一意に定まります。 素数pで割った余りは有限体 GF p になります。 また、論理演算も有限体 GF 2 になります。

なお、有限体には生成元と呼ばれる要素が(いくつか)存在し ます。 これは、ある生成元gに対してその有限体が 0 1 g g2 ... gk で要素をすべて表すことができます。

例11-1

GF 5 の演算表

+ 0 1 2 3 4 0 0 1 2 3 4 1 1 2 3 4 0 2 2 3 4 0 1 3 3 4 0 1 2 4 4 0 1 2 3 · 0 1 2 3 4 0 0 0 0 0 0 1 0 1 2 3 4 2 0 2 4 1 3 3 0 3 1 4 2 4 0 4 3 2 1

2,3 は生成元

誤り訂正符号

誤り訂正符号の原理

送信したいデータを符号化する際に、 送受される符号の何ビットかが改変されても、受信側でそれを訂正して本来送 受されるデータに復元できるような符号方式を誤り訂正符号と呼びます。

送受される符号において、1ビットの変更で別のデータに対応する符号になっ てしまう場合は、誤り訂正ができません。 従って、冗長なビットを付加して、1ビット程度の変更で相互に符号語になら ないようにする必要があります。 2つのビット列について、ハミング距離とは異なるビット数を 言います。 これは一般の距離の定義である、次の条件を満たします。

  1. xとxの距離は0である
  2. xとyの距離と yとxの距離は等しい
  3. xとyの距離とyとzの距離の和はxとzの距離以上になる

このハミング距離を用いると、誤り訂正符号は次のように定義できます。 誤り訂正符号では、すべての符号語はある一定のハミング距離を持ち、符号語 が一定のビット数の誤りがある場合、最もハミング距離の近い符号に訂正さ れます。

例11-2

1bitの情報(0か1)を送る誤り訂正符号として、0 の時は 00000, 1 の時は 11111 を符号語として送ることとします。 すると、この符号語同士のハミング距離は 5 となり、 2bit までの誤りを 訂正できます。 実際、 00001, 01010, 11000 はすべて 00000に訂正され、情報として0 が取 り出されます。 一方、00111, 10101, 11001 はすべて 11111 に訂正され、情報として 1 が取 り出されます。

1bit の誤り訂正能力を持つ誤り訂正符号は、すべての符号語のハミング距 離が 3 以上であれば良いことになります。 データが1bitなら、符号語長は3bit以上となり、伝送効率が1/3となります が、ある程度長いデータに対して、1bitの誤り訂正能力を考えれば、数ビッ トの付加により実現できるため、伝送効率を余り落とさずに実現できます。

組織線形ブロック符号

誤り訂正符号の構成法には行列を使う方法と有限体を使う方法がありますが、 今回は行列を使う方法を説明します。

送りたい情報を表すビット列を m = m1 ... mk 0 1 k で表します。 GF 2 上の演算による行列演算を考えます。 n次元の k個の生成ベクトル v 1 ... v k に対して、符号語 u は 生成行列G により次のように表されます。

u = m G = m v1 vk = m1 v1 + ... + mk vk

これを nk符号 と呼び ます。

ここで、Gが単位行列 Ik を含むとし、残りをパリティ行列 P と呼ぶ行列に分 解する。

G = P | Ik , P = p 1 1 ... p 1 n-k p k 1 ... p k n-k

ここで、パリティチェック行列 H= In-k | P T を定義すると次の性質を持つ。

u HT = m G HT = p 1 1 + p 1 1 ... p 1 n-k + p 1 n-k p k 1 + p k 1 ... p k n-k + p k n-k = u 0 = 0

ここで通信路にノイズ e が乗って受信した符号 r = u + e について、パリティチェック行列をかけると次のように、エラーに関する積( シンドローム)だ け得られる。

s = r HT = u HT + e HT = e HT

坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科