400 likes | 1.33k Views
練習問題. 以下の検査行列を持つ線形符号 C を考える C の重み分布を求めよ C の誤り特性評価を行い,式とグラフで各確率を示せ. 回答例は http://narayama.naist.jp/~kaji/lecture/ に掲載. 前回の復習,本日の講義. 前回の講義:符号の性能評価 最小ハミング距離に基づく評価 重み分布に基づく評価 今回の講義:やや実用・研究的な話題 巡回符号:線形符号の特殊なクラス シャノンの通信路符号化定理 新しいタイプの誤り訂正符号. 「実用的な」線形符号の模索. これまでの議論 ... 一般の線形符号を対象
E N D
練習問題 • 以下の検査行列を持つ線形符号 Cを考える • Cの重み分布を求めよ • Cの誤り特性評価を行い,式とグラフで各確率を示せ 回答例は http://narayama.naist.jp/~kaji/lecture/ に掲載
前回の復習,本日の講義 • 前回の講義:符号の性能評価 • 最小ハミング距離に基づく評価 • 重み分布に基づく評価 • 今回の講義:やや実用・研究的な話題 • 巡回符号:線形符号の特殊なクラス • シャノンの通信路符号化定理 • 新しいタイプの誤り訂正符号
「実用的な」線形符号の模索 これまでの議論...一般の線形符号を対象 • 符号化,誤りの検出,訂正とも,行列演算により実行可能 • 行列演算 ⇒ 単純な組合せ回路だけで実現可能 ⇒ 高速に動作させるのに有利 • 性能向上のためには,符号長などを大きくすることが有利 • 規模の大きな線形符号 • 生成行列,検査行列とも巨大(符号長の2乗オーダ) • 組合せ回路の面積増大 ⇒ 遅延,消費電力,設計困難 もっと扱いやすい線形符号は? • 畳込み符号 • 巡回符号
符号 線形符号 巡回符号 巡回符号 巡回符号(cyclic code):線形符号の一種 • 符号化器や復号器のハードウェア実現が容易 • 組合せ回路ではなく,シフトレジスタを利用して, 符号化器や復号器を構成可能 • シフトレジスタの利用は,速度的には若干不利 • 回路面積や消費電力,コストの削減に貢献.
x4 + x3 + x2 + 1 x3 + x + 1 x4 + x3 + x2 + 1 x3 + x + 1 ×) +) x4 + x3 + x2 + 1 x4 + x2 + x x5 + x4 + x3 + x x7 + x6 + x5 + x3 x7 + x6 + x3 + x2+ x + 1 巡回符号:準備(1) 係数が 0 か 1 であるような,1変数多項式を考える 11101 01011 多項式の加算: (減算) +) 10110 多項式の乗算: 11101 01011 ×) 11101 11101 11101 11001111 • 係数の足し算は2進で行う • 繰り上がりなし xmを掛ける: 左 mビットシフト
111 11101 ) 1010000 11101 10010 11101 11110 11101 11 巡回符号:準備(2) 多項式の除算: x2 + x + 1 x4 + x3 + x2 + 1 ) x6 + x4 x6 + x5 + x4 + x2 x5 + x2 x5 + x4 + x3 + x x4 + x3 + x2 + x x4 + x3 + x2 + 1 x + 1 • 足し算と引き算は同じ • シフトレジスタを利用すれば,除算回路の実現は容易
参考:除算回路について(1) • x6 + x4を x4 + x3 + x2 + 1 で割る場合 除数 1 1 1 0 1 (a bの b) 被除数 (a bの a) 1 0 1 0 0 0 0 商 • 被除数をシフトレジスタに投入 • 最上位ビットが1のとき, • 除数と加算(排他的論理和) • 左にシフト(step 1へ) 剰余
111 11101 ) 1010000 11101 10010 11101 11110 11101 11 参考:除算回路について(2) 1 1 1 0 1 0 0 1 0 1 0 0 1 1 1 0 1 • 1サイクルの操作 • = 筆算の1ステップ • 被除数を全部投入後の • レジスタ内の値 = 剰余 0 0 0 1 0 0 1
1101 11101 ) 10000001 11101 1101001 11101 11101 11101 0 巡回符号:生成多項式 符号長 n, 情報記号数 kの巡回符号を構成する. (検査記号数 p = n-k) 準備:xn + 1を割り切る p次の多項式 G(x) を求める n = 7の場合,x7 + 1 = (x3 + x2 + 1) (x4 + x3 + x2 + 1). p = 4, G(x) = x4 + x3 + x2 + 1として (7,3) 巡回符号を構成可能 G(x) • G(x) を利用して巡回符号を生成する. • G(x) を生成多項式と呼ぶ. • (generator polynomial)
巡回符号の定義 G(x) を生成多項式とする巡回符号: n次未満である G(x) の倍多項式(に対応する2進系列)の集合 倍多項式:数字の「倍数」の多項式版 0, G(x), xG(x), (x + 1)G(x), x2G(x), (x2+1)G(x), (x2+x)G(x), ... • n = 4, G(x) = x2 + 1 のとき (n = 4, k = p = 2), • 倍多項式は 0, x2 + 1, x(x2 + 1) = x3 + x, (x + 1)(x2 + 1) = x3 + x2 + x + 1 • 符号語は 0000, 0101, 1010, 1111
巡回符号の性質(1) 定理: 巡回符号は線形符号である 証明: • 任意の2つの符号語の和が,符号語になることを示せばよい. • 巡回符号の符号語は,G(x) の倍多項式になっている • 符号語 c1...倍多項式 f1(x)G(x) の係数と対応 • 符号語 c2...倍多項式 f2(x)G(x) の係数と対応 • c1 + c2... 倍多項式 (f1(x) + f2(x))G(x) の係数と対応 ⇒ c1 + c2も,正しい符号語である
巡回符号の性質(2) 定理: (an-1, an-2, ..., a0) が符号語なら,(an-2, ..., a0, an-1) も符号語 証明: W(x) = an-1xn-1 + ... + a0とすると,W(x) は G(x) の倍多項式. 一方,W ’(x) = an-2xn-1 + ... + a0x + an-1 = an-1xn + an-2xn-1 + ... + a0x + an-1+ an-1xn = xW(x)+ an-1(xn + 1) W(x),(xn +1)はG(x)の倍多項式⇒W ’(x) も G(x) の倍多項式 よって (an-2, ..., a0, an-1) も符号語 符号語を巡回シフトしても,やはり符号語
巡回符号の符号化 • 情報記号列と符号語を,どのように対応付けるか • 生成行列を使う • 通常の線形符号と同じで,巡回符号のメリットなし • 掛け算アプローチ • 符号語 = 情報記号列 × 生成多項式 • 理屈はわかりやすいが,組織符号にはならないかも (符号語から,情報記号列に戻すのが面倒) • 割り算アプローチ • 情報記号列をシフトし,生成多項式で割る • 剰余部分をキャンセルして,倍多項式に丸める • 理屈はわかりにくいが,常に組織符号となる
A(x) W(x) = A(x) x4 + B(x) x4 B(x) 被除数 剰余 除算器 G(x) 除数 商 D(x) 巡回符号:符号化 符号化の手順 1. 情報記号列を多項式表現する (以下では A(x) とする) 2. A(x)xpを G(x) で割り,剰余を B(x) とする 3. A(x)xp + B(x) を符号語(の多項式表現)と考える n = 7, k = 3, p = 7-3 = 4, G(x) = x4 + x3 + x2 + 1 のとき,011 を符号化する 1. A(x) = x + 1 2. A(x)x4 = x5 + x4 = x(x4 + x3 + x2 + 1) + (x3 + x) より,B(x) = x3 + x 3. A(x)x4 + B(x) = x5 + x4 + x3 + x,すなわち 0111010 が符号語
前スライドの符号化手順について A(x)xp + B(x) は,本当に符号語になっているか? ⇔ A(x)xp + B(x) は,生成多項式 G(x) で割り切れるか? Yes • B(x) は,A(x)xpを G(x) で割った余りになっている • 二進の世界では,足し算=引き算...「B(x) を足す=B(x) を引く」 • A(x)xp + B(x) = A(x)xp – B(x) ⇒ A(x)xpを G(x) で割った剰余を,「あらかじめ引いた」式 • A(x)xp + B(x) が G(x) で割り切れるのは,当然のこと
被除数 剰余 除算器 x4+x3+x2+1 除数 商 x4 巡回符号の例 G(x)=x4 + x3 + x2 + 1 C: 0000000, 1110100, 0011101, 1101001, 0111010, 1001110, 0100111, 1010011. 2進多項式の除算器は,シフトレジスタを使って簡単に実現可能 除算回路の複雑さ O(n) < 行列乗算回路の複雑さ O(n2) ⇒ 一般の線形符号より,装置化が容易で経済的
巡回符号における誤り検出 誤りを訂正せず,検出するだけならば,簡単な回路で実現可能 ベクトルが符号語 ⇔ 対応する多項式が G(x) で割り切れる • 受信系列を多項式表現し, • G(x) で割り切れれば誤りは発生していない • G(x) で割り切れないならば,誤りが発生 受信系列 被除数 剰余 剰余が0: 誤り無し 1: 誤り発生 除算器 生成多項式 除数 商 誤り検出回路は簡単に装置化できる ⇒ CRC (Cyclic Redunduncy Check) 方式
巡回符号における誤り訂正 誤りの訂正手段について,いくつかの方式が知られている • 代表的なものとして,誤りトラップ復号法[嵩61,他] • 特殊な巡回符号については,さらに効率よい方法もある • BCH (Bose-Chaudhuri-Hocquenghem) 符号 • Reed-Solomon 符号 に対する Berlekamp 法など • 多元符号…記号は 0 と 1 だけでない • パラメータ次第では,バイト単位での符号化も可能 • バースト誤りに強い • CD, DVD, 無線通信などで広く利用されている
通信路 入力記号 X 出力記号 Y 記号 A={a0, ..., ar–1}が, 確率 p = {p0, ..., pr–1} で発生 Yを知ることで,Xに関する あいまいさが減少する ⇒ 相互情報量 I(X; Y) シャノンの通信路符号化定理と通信路容量 • シャノンの情報源符号化定理(既出): • 情報源符号化の限界と可能性を示唆した定理 • シャノンの通信路符号化定理: • 通信路符号化の限界と可能性を示唆した定理 • I(X; Y) は,この通信路を介して伝達される情報量 • 通信路容量 C= I(X; Y) の最大値 = maxp{I(X; Y)} (第二回講義内容)
通信路符号化定理 • 符号化率R = (log2(符号語の個数)) / 符号語の長さ (n, k) 組織符号の場合,R = k / n シャノンの通信路符号化定理: 通信路容量(通信路の信頼度)が Cのとき, • R < Cで,復号誤り率が限りなく 0 に近い符号が存在する • R > Cならば,そのような符号は存在しない (“A Mathematical Theory of Communications,” 1948.) • 理想的な符号が「存在する」ことだけを示している • 具体的な符号の構成法は,示されていない
通信路符号化定理の残した課題 いかにして,シャノンの示した性能限界に近づくか? • 符号の性能を改善する(誤り訂正能力を上げる)には… 規模の大きい符号を利用することが不可欠 • 符号化率R = k/nを一定にして,符号長 nだけを変化させる • 長さ nの系列の総数は 2n • 符号語の数は 2k • 符号語の「密度」は 2k–n = (1/2(1–R))n • 密度は,nに関し指数的に減少 • 原理的には,符号語間の距離を大きく取れるはず • 具体的に,どうすれば良いかは明確でない
解決法の模索(1) 90年代中ごろまでのアプローチ: 単一技術ではなく,複数の技術の組合せにより問題に対処 • 連接符号化 • 誤り訂正符号を連接して使用 • 「Reed-Solomon符号 + 畳込み符号」の組合せが一般的 符号化1 符号化2 外部符号 (RS) 内部符号 (畳込み) 通信路 復号1 復号2
データビット 符号1の パリティ記号 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 符号2のパリティ記号 1 1 0 1 0 1 解決法の模索(2) • 積符号 • データビットを,符号1により符号化 • データビットと符号1のパリティ記号を,符号2により符号化 • 符号2の復号結果を,符号1の復号処理での受信語とする 符号2 の復号 符号1 の復号
0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 1 1 0 1 0 0 1 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 1 新時代への扉:積符号方式の問題 問題点:符号1の復号の際,受信情報そのものは使われない • 「受信情報」と「符号2の復号結果」の双方を比較活用すれば, より精度の高い誤り訂正ができるのではないか? • 符号1の復号結果を符号2の復号器にフィードバックし,再度復号させれば,さらに精度を向上できるのでは? 符号1と符号2が,互いに情報を出し合って助け合う仕組を作る 符号2 の復号 符号1 の復号
符号1の復号器 受信情報 符号2の復号器 復号結果 想定している復号の仕組 符号1と符号2が,互いに情報を出し合って助け合う仕組を作る • 各復号器での処理を繰り返し,精度を向上させていく • 精度確保のため,復号器の入出力とも,実数値(確率値)に • MAP (maximum a posteriori) 復号 • ある種の隠れマルコフモデルの推定問題 • ⇒ ターボ符号
情報記号 符号系列 符号1・符号化 インタリーブ 符号2・符号化 情報記号 パリティ記号1 パリティ記号2 符号系列 ターボ符号 1993年,Berrouらにより提案された符号化方式 • 1セットの情報記号に対し,2セットのパリティ記号を付与 (記号の並べ替え)
受信情報 復号結果 符号1・MAP復号 I–1 I 符号2・MAP復号 I インタリーバ I I–1 逆インタリーバ ターボ符号の復号 • 2つの復号器のあいだで,信頼度情報をやり取りする • 情報のやり取りを繰り返し,精度を向上させてゆく • 繰り返し回数は,比較的少なくても十分(10~20回程度)
ターボ符号の性能 • 符号長を十分長く設定すると,シャノン限界に近づく性能を発揮 (右図の場合,65536ビット長で1.0dB以下の損失) • 右図で示された領域より下では,エラーフロア現象が発生する C. Berrou et al.: Near Shannon Limit Error-Correcting Coding and Decoding: Turbo Codes, ICC 93, pp. 1064-1070, 1993.
ターボ符号と標準化 • 第3世代携帯電話で本格的採用 • W-CDMA, CDMA-2000 • 衛星通信 • インマルサット • NASA, Mars Reconnaissance Orbiter (05年8月打ち上げ) NASA/JPL http://www.jpl.nasa.gov/images/mro/mro-image-browse.jpg
LDPC符号の再発見 ターボ符号の教訓: • 従来の性能指標(最小ハミング距離)に拘る必要は無い • とくにS/N比が小さい場合,パラメータを大きくとることが有効 • 大規模でも扱いやすい符号があれば,有効性は高い LDPC符号 (Low Density Parity Check 符号) • 検査行列が非常に疎な行列 • ほとんどの要素が0で,ごく少数の要素だけ1である行列 • 1962年にGallagerが提案,長く忘れられていた • 1999年,MacKayらによる再発見
1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 0 0 1 H = p1 p3 p4 p6 0 の確率 q1 q3 q4 q6 1 の確率 (= 1 – pi) LDPC符号とその復号 • ごく普通の線形ブロック符号,ただし検査行列が非常に疎 • 信念伝播(belief propagation)アルゴリズムを用いることにより,ほぼ線形時間で復号を行うことが可能 ⇒符号長を長く設定しても,復号計算量が爆発することはない Tanner Graph p3 = p1 p4 p6 + q1 q4 p6 + q1 p4 q6 + p1 q4 q6
LDPC符号の特長 LDPC符号…検査行列が疎 ⇒ Tanner Graphが疎 • 比較的少ない繰り返し回数で,「最適に近い」推定が可能 ⇒ 効率的に,符号の性能を最大限発揮できる • 符号長を十分長く取れば,シャノン限界に迫る性能 • ターボ符号で発生する,エラーフロア現象が起こりにくい
LDPC符号の問題点 • 符号化アルゴリズムの計算量が「小さくない」 • 符号長に対して2乗オーダ(従来の線形符号と同じ) • 良い符号の構成方法に関する研究が,まだ発展途上 • 当初は,ランダムな行列構成が良いと考えられてきた • 研究の進展に伴い,数学的構成法の利点が明らかに • 符号化等を容易にする構造の確保 • エラーフロアの影響低減
LDPC符号と標準化 ターボ符号に比べると,まだこれから • 10GBASE-T (IEEE802.3an) • 無線LAN (IEEE 802.11n) • モバイル WiMAX (IEEE 802.16e) • デジタル衛星放送規格 DVB-S2
本日のまとめ • 巡回符号 • 線形符号の特殊なクラス • 割り算回路(シフトレジスタ)を使った実装が可能 • シャノンの通信路符号化定理 • 次世代型の誤り訂正符号 • ターボ符号 • LDPC符号
練習問題 • n = 7, k = 4, p = 7 – 4 = 3 とし,巡回符号を構成する. • G(x) = x3 + x2 + 1 が生成多項式に使えることを確かめよ • 0110 を符号化せよ • 0001100 は正しい符号語か,判定せよ