370 likes | 451 Views
前回の練習 問題. ハフマン符号を構成するプログラムを作成せよ さらに,拡大情報源に対して利用できるよう改良せよ 優先度付きキュー と呼ばれるデータ構造の典型的な用法 「データの登録」「優先度最大データの取り出し」の2種の操作 符号木を「データ」,確率を「優先度」とし, 「木 を二つ取出し ,一つに併合して再度登録 」を 繰返す. 7, 5, 3, 2. 3. 2. 7. 5. chapter 3: エラー から情報を守る. chapter 3 の目的. 通信路で発生する誤りを検出し,訂正する技術について学ぶ 現実の通信環境 ...
E N D
前回の練習問題 • ハフマン符号を構成するプログラムを作成せよ • さらに,拡大情報源に対して利用できるよう改良せよ 優先度付きキューと呼ばれるデータ構造の典型的な用法 • 「データの登録」「優先度最大データの取り出し」の2種の操作 • 符号木を「データ」,確率を「優先度」とし, 「木を二つ取出し,一つに併合して再度登録」を繰返す 7, 5, 3, 2 3 2 7 5
chapter 3の目的 通信路で発生する誤りを検出し,訂正する技術について学ぶ 現実の通信環境... • “送信情報 受信情報” の保証はない • “送信情報受信情報”... 誤り • 誤りを「減らす」ことはできても,完全に「なくす」ことは難しい • 無線通信 ... 送信電力の増加 ⇒ 消費電力の増加 • CD, DVD ... 記録密度の抑制 ⇒ データ容量の低下
通信路符号化 • 誤りの発生... 送信情報の一部が,途中で失われることに相当 • 途中で一部が失われても,必要十分な量の情報が届くよう, 余分な情報を事前に上乗せして送信すればよい = 冗長 な情報を付加する • やみくもに冗長な情報を付加すればよいというわけではない • 誤りの訂正に効果的な,適切な符号化方式が必要 ⇒ 通信路符号化
2つの符号化 • chapter 2 ... 情報源符号化 • 情報源からの出力に対する符号化 • コンパクトな情報表現を与える • chapter 3 ... 通信路符号化 • 通信路への入力に対する符号化 • 誤りに強い情報表現を与える どちらも「符号化」だが,目的とする方向性が異なる
符号化 復号 情報源符号化 暗号化 復号 情報保護 符号化 復号 通信路符号化 「符号化」の複層構造 送信者 受信者 アプリケーション 通信路
通信路のモデル 以下の議論では,デジタル通信路を仮定 • 入出力には,記号が用いられる • 1記号の入力に 対し,必ず1記号の出力が得られる • 遅延や消失は,モデルとしては考えない • 入力記号と出力記号の関係は,確率的に与えられる デジタル 通信路 入力 (送信側) 出力 (受信側) アナログ 通信路 変調器 復調器
2元対称通信路 • 2元対称通信路(binary symmetric channel,BSC) • 入力記号 =出力記号 = {0, 1} • 確率で,記号の 0 と 1が反転するような通信路 • p=ビット誤り率(通常は p < 0.5) 00000 を送信したとき... 00000が受信される確率 = 00001が受信される確率 = 00011が受信される確率 = ... 1 – p 0 0 p 入力 出力 p 1 1 1 – p
通信路符号化:準備 本講義では,以下のような通信路符号化方式を考える • 符号化器への入力: ビットのバイナリデータ • 符号化器の出力(符号語): ビットのバイナリデータ • データ = 系列 = ベクトル • 加減算はビット単位の2進演算 • 001 + 101 = 100 • XORと考えてもOK
符号化と復号 符号化: 任意の ビットから, ビットの符号語を計算する 符号化 復号 符号 = 符号語の集合 復号: (誤りを含む可能性のある)任意のビットから, 【誤り検出】誤りの有無を判定する 【誤り訂正】送信されたであろう符号語を推定する 復号が,符号化の逆操作になっていないことに注意
良い符号とは? • 符号はの部分集合 • には 個の系列 • には 個の系列(符号語) 全部で通りの符号が存在 • どの符号を選ぶのが良いか? • 誤り訂正能力が高いこと • 符号化,復号操作が容易に行えること 00 01 10 11 000 011 101 110 線形符号 (linear code) と呼ばれる符号が有利
この後の筋書き • 線形符号 • 定義と基本的な性質 • 線形符号の符号化 • 線形符号の復号 • ハミング符号 • 線形符号の性能評価 今回 次回 定義の前に,簡単な例を2つ紹介...
0000 0011 0101 0110 1001 1010 1100 1111 偶パリティ符号 偶パリティ符号(even parity code)の符号化操作: • 情報 に対し... • を計算する • を の符号語とする の場合 000 001 010 011 100 101 110 111 p = 0 + 1 + 1 = 0 符号 C
0000 0011 0101 0110 1001 1010 1100 1111 偶パリティ符号の特徴 • 符号長は • 符号化操作は, • もともと送りたかった情報記号の後に, • 検査記号(冗長記号)を付け足す 1010 情報記号 検査記号 • 符号語に含まれる1の個数は,かならず偶数 • 情報記号中に1が偶数個 ⇒ • 情報記号中に1が奇数個 ⇒ 符号 C (符号語の中に発生する奇数ビットの誤り検出が可能)
水平垂直パリティ検査符号 • 水平垂直パリティ検査符号の符号化: • 情報記号を長方形状に並べる • 水平方向および垂直方向に偶パリティ符号化を行う • 冗長記号を一次元に配列し,情報記号に付加する p1 = a1 + a2 + a3 p2 = a4 + a5 + a6 p3 = a7 + a8 + a9 q1 = a1 + a4 + a7 q2 = a2 + a5 + a8 q3 = a3 + a6 + a9 r = a1 + a2 + ... + a9 k = 9 の場合: (a1, a2, ..., a9) の符号化 a1 a2 a3 p1 a4 a5 a6 p2 a7 a8 a9 p3 q1 q2 q3 符号語は (a1, a2, ..., a9, p1, p2, p3, q1, q2, q3, r) r
符号化の例 特徴 • 水平垂直パリティ検査符号は,組織符号 • のとき,符号長は 011100101 を符号化すると,符号語は 0111001010100101 0 1 1 0 1 0 0 1 1 0 1 0 0 1 01 0111001010100101 情報記号 検査記号 (符号語の中に発生する1ビットの誤り訂正が可能)
0 1 1 偶 010110101 受信語 0 0 1 奇 011110101 1 0 1 偶 奇 偶 偶 誤りを訂正 誤り訂正の原理 受信した系列を,符号化のときと同じ順番で並べ直す: • 誤りナシ ⇒全ての行,列は偶数個の1を含む • 1ビット誤りが発生 • ⇒ 1が奇数個の行,列が,1個ずつ発生 • ⇒ その行と列の交差するところが誤り
線形符号について • 線形符号 • 定義と基本的な性質 • 線形符号の符号化 • 線形符号の復号 • ハミング符号 • 線形符号の性能評価
線形符号の定義 以下のように構成される符号を線形符号と呼ぶ: • 符号語=(ビットの情報記号)+(ビットの検査記号) • 検査記号は,情報記号の線形式により求められる 情報記号 検査記号(冗長記号) mod 2
線形符号の例 • 偶パリティ符号: mod 2 • 水平垂直パリティ検査符号: mod 2
線形符号の性質 0000000 符号 が線形符号であれば... • 定理1: • 証明: 検査記号は情報記号の線形式で定まるため, なら, よって • 定理2:任意の符号語に対し, • 証明: 次ページで...
定理2の証明(その1) まずは補題を示す • 補題:任意の線形関数 について, • 証明: とすると 左辺= ==右辺
定理2の証明(その2) • 定理2:任意の符号語に対し, • 証明: 番目の検査記号を与える線形式を とすると 前ページの補題を使用
線形符号の性質(一部再掲) 0000000 符号 が線形符号であれば... • 定理1: • 定理2:任意の符号語に対し, 定理2は,「必要十分条件」のカタチで証明できる... • 定理2+: が線形符号 iff任意の符号語に対し
00000 00101 01011 01110 10010 10111 11001 11100 00000 00000 00101 01011 01110 10010 10111 11001 11100 00101 00101 00000 01110 01011 10111 10010 11100 11001 01011 01011 01110 00000 00101 11001 11100 10010 10111 01110 01110 01011 00101 00000 11100 11001 10111 10010 10010 10010 10111 11001 11100 00000 00101 01011 01110 10111 10111 10010 11100 11001 00101 00000 01110 01011 11001 11001 11100 10010 10111 01011 01110 00000 00101 11100 11100 11001 10111 10010 01110 01011 00101 00000 線形符号の構成例 の場合:情報記号列は • 検査記号を適当に定義する. ⇒ 符号語は
このあとのストーリー • 線形符号の符号化 • 生成行列の導入 • 生成行列の性質 • 線形空間との関係
符号語の「中の仕組み」 • 符号語 =
生成行列 生成行列 単位行列 検査記号定義式の 係数行列の転置
生成行列の例 • 偶パリティ符号: • 水平垂直パリティ検査符号:
生成行列を用いた符号化 ビットデータ を符号化したいときは... • を,左側から生成行列 に乗じた結果 が符号語 水平垂直パリティ検査符号で を符号化... ⇒ 符号語は 011110101
x1 情報記号 x2 x3 x4 x1 x2 x3 x4 p1 p2 p3 p4 p5 符 号 語 論理回路による符号化器の実現 排他的論理和
このあとのストーリー • 線形符号の符号化 • 生成行列の導入 • 生成行列の性質 • 線形空間との関係
生成行列の行ベクトル • の第 行ベクトルは > ビット目だけが1 と したときの となっている の第行ベクトルは,に対応する符号語
線形空間としての線形符号 • 定理3: が線形符号ならば,は線形空間(ベクトル空間)を構成する • 定理4: 生成行列の行ベクトルは,線形空間の基底をなす とすると,任意の符号語 は以下のように書ける
情報記号 に対し, 25ページの例では... 符号語 00000 00101 01011 01110 10010 10111 11001 11100 = 0・10010 + 0・01011 + 0・00101 = 0・10010 + 0・01011 + 1・00101 = 0・10010 + 1・01011 + 0・00101 = 0・10010 + 1・01011 + 1・00101 = 1・10010 + 0・01011 + 0・00101 = 1・10010 + 0・01011 + 1・00101 = 1・10010 + 1・01011 + 0・00101 = 1・10010 + 1・01011 + 1・00101 G の行ベクトルが,基底となっていることがわかる
ここまでのまとめ:符号化と生成行列 • 線形符号は... • 検査記号が,情報記号の線形式で定義される符号 • 符号語集合がベクトル空間をなすような符号 • 生成行列 • 符号化操作を効率的に行うための道具 • 組み合わせ回路の実現等にも有用 • 行ベクトルが,符号の基底となっている
練習問題 情報記号に対し, とし,を符号語と定義する. • この符号の生成行列を求めよ • この符号の符号語をすべて列挙せよ • p.31 のような符号化器を示せ