You are on page 1of 16

Information and Coding Theory, 2019 by Toyoaki Nishida

通信路符号化法 (1)

Copyright © 2019 Toyoaki Nishida All Rights Reserved.


限界距離復号法
◼ 符号𝐶の最小ハミング距離: 𝑑min = 𝑢≠𝑣,𝑢,𝑣∈𝐶
min 𝑑H (𝑢, 𝑣)

◼ 受信空間において,各符号語を中心として半径𝑡1 の球を作る.
𝛺2
𝛺1
𝑡1 𝑡2 + 1 𝑡1

𝑤1 𝑑min ≥ 2𝑡1 + 1 𝑤2

𝛺3

𝑤3 𝑡1 𝑑min ≥ 2𝑡1 + 1であれば,これ


らの球は重複することはない.

◼ これらの球を復号領域とすれば,この符号により, 𝑡1 個以下の誤りを訂正
でき, 𝑡1 + 𝑡2 個以下の誤りを検出できる.
通信路符号化の枠組み
誤り検出/訂正

シンドローム

𝑠
(𝑛, 𝑘)符号
シンドローム計算
𝑘個の情報ビット 𝑛 − 𝑘個の検査ビット
誤り訂正
受信語
通信路
𝑥 𝑐 𝑦

符号語𝑤 𝑛ビット
誤り

𝑒
単一パリティ検査
◼ 単一パリティ誤り検査符号:長さが𝑘 + 1で,1の個数が偶数であるような全て
の2元系列からなる符号長𝑛 = 𝑘 + 1, 符号語数 𝑀 = 2𝑘 の符号語の集まり.

◼ 𝑘 = 2のとき,𝐶 = {000, 011, 101, 110}

𝑥3
001

011

101
010
000 𝑥2

100
110
𝑥1
を符号語として使用
単一パリティ検査

◼ 0,1からなる長さ𝑘の系列𝑥1 ⋯ 𝑥𝑘 を2元通信路を介して送る.

◼ 𝑥1 , ⋯ , 𝑥𝑘 から𝑐 = 𝑥1 ⨁ ⋯ ⨁𝑥𝑘 なる𝑐を求める.


⨁は排他的論理和. 𝑥1 ⨁ ⋯ ⨁𝑥𝑘 ⨁𝑐 = 0が成り立つ.

◼ 𝑥1 ⋯ 𝑥𝑘 に𝑐を追加した𝑤 = 𝑥1 ⋯ 𝑥𝑘 𝑐を通信路符号として伝送する.
𝑤 = (𝑥1 , ⋯ , 𝑥𝑘 , 𝑐)と表記することもある.

◼ 符号語𝑤 = 𝑤1 ⋯ 𝑤𝑘 𝑐,誤りパターンを𝑒 = 𝑒1 ⋯ 𝑒𝑘 𝑒𝑘+1 ,


受信語𝑦 = 𝑦1 ⋯ 𝑦𝑘 𝑦𝑘+1 とすれば,
𝑦 = 𝑤⨁𝑒 = (𝑤1 ⨁𝑒1 , ⋯ , 𝑤𝑘 ⨁𝑒𝑘 , 𝑤𝑘+1 ⨁𝑒𝑘+1 )
単一パリティ検査

◼ 符号語を𝑤 = 𝑤1 ⋯ 𝑤𝑘 𝑐,
誤りパターンを𝑒 = 𝑒1 ⋯ 𝑒𝑘 𝑒𝑘+1 ,
受信語を𝑦 = 𝑦1 ⋯ 𝑦𝑘 𝑦𝑘+1 ,
シンドロームを𝑠 = 𝑦1 ⨁ ⋯ ⨁𝑦𝑘 ⨁𝑦𝑘+1
とすれば,
𝑦 = 𝑤⨁𝑒 = (𝑤1 ⨁𝑒1 , ⋯ , 𝑤𝑘 ⨁𝑒𝑘 , 𝑤𝑘+1 ⨁𝑒𝑘+1 )
𝑠 = 𝑤1 ⨁𝑒1 ⨁ ⋯ ⨁ 𝑤𝑘 ⨁𝑒𝑘 ⨁ 𝑤𝑘+1 ⨁𝑒𝑘+1
= 𝑤1 ⨁ ⋯ ⨁𝑤𝑘 ⨁𝑤𝑘+1 ⨁ 𝑒1 ⨁ ⋯ ⨁𝑒𝑘 ⨁𝑒𝑘+1
= 𝑒1 ⨁ ⋯ ⨁𝑒𝑘 ⨁𝑒𝑘+1

◼ 𝑠 = 0ならば誤りなし,𝑠 = 1ならば誤りありと,判定することにすれ
ば,奇数個の誤りが検出可能.
水平垂直パリティ検査符号

例: 3 × 4 = 12ビットの情報 (0,1,1,0,1,0,1,1,0,0,0,1)を送信する

【符号化】

情報ビット 検査ビット追加(パリティを用いる)
𝑥1 : 0 𝑥2 : 1 𝑥3 : 1 𝑥4 : 0 𝑤1 = 𝑥1 : 0 𝑤2 = 𝑥2 : 1 𝑤3 = 𝑥3 : 1 𝑤4 = 𝑥4 : 0 𝑤13 = 𝑐1 : 0

𝑥5 : 1 𝑥6 : 0 𝑥7 : 1 𝑥8 : 1 𝑤5 = 𝑥5 : 1 𝑤6 = 𝑥6 : 0 𝑤7 = 𝑥7 : 1 𝑤8 = 𝑥8 : 1 𝑤14 = 𝑐2 : 1

𝑥9 : 0 𝑥10 : 0 𝑥11 : 0 𝑥12 : 1 𝑤9 = 𝑥9 : 0 𝑤10 = 𝑥10 : 0 𝑤11 = 𝑥11 : 0 𝑤12 = 𝑥12 : 1 𝑤15 = 𝑐3 : 1
𝑤16 = 𝑐4 : 1 𝑤17 = 𝑐5 : 1 𝑤18 = 𝑐6 : 0 𝑤19 = 𝑐7 : 0 𝑤20 = 𝑐8 : 0

【復号】
受信語 シンドローム計算

𝑦1 𝑦2 𝑦3 𝑦4 𝑦13 𝑠1 = 𝑦1 + 𝑦2 + 𝑦3 + 𝑦4 + 𝑦13
𝑠2 = 𝑦5 + 𝑦6 + 𝑦7 + 𝑦8 + 𝑦14
𝑦5 𝑦6 𝑦7 𝑦8 𝑦14 𝑠3 = 𝑦9 + 𝑦10 + 𝑦11 + 𝑦12 + 𝑦15
𝑦9 𝑦10 𝑦11 y12 𝑦15 𝑠4 = 𝑦16 + 𝑦17 + 𝑦18 + 𝑦19 + 𝑦20
𝑦16 𝑦17 𝑦18 y19 𝑦20 𝑠5 = 𝑦1 + 𝑦5 + 𝑦9 + 𝑦16
𝑠6 = 𝑦2 + 𝑦6 + 𝑦10 + 𝑦17
𝑠7 = 𝑦3 + 𝑦7 + 𝑦11 + 𝑦18
𝑠8 = 𝑦4 + 𝑦8 + 𝑦12 + 𝑦19
𝑠9 = 𝑦13 + 𝑦14 + 𝑦15 + 𝑦20
水平垂直パリティ検査符号
𝑠 × 𝑡個の情報ビットに𝑠 + 𝑡 + 1個の検査ビットを加えて構成さ
れる((𝑠 + 1)(𝑡 + 1), 𝑠𝑡)符号

𝑠行
検査ビット

𝑡列

検査ビット 検査ビットの検査ビット

⇒ ((𝑠 + 1)(𝑡 + 1), 𝑠𝑡)符号


水平垂直パリティ検査符号
◼ 符号化:情報語(𝑥1 , ⋯ , 𝑥𝑠𝑡 )に対して
𝑡

෍ 𝑥 𝑘−1 𝑡+𝑖 1≤𝑘≤𝑠


𝑖=1
𝑡
𝑐𝑘 = ෍ 𝑥 𝑖−1 𝑡+𝑘−𝑠 (𝑠 + 1 ≤ 𝑘 ≤ 𝑠 + 𝑡)
𝑖=1
𝑠 𝑡

෍ 𝑐𝑖 = ෍ 𝑐𝑠+𝑖 𝑘 =𝑠+𝑡+1
𝑖=1 𝑖=1

となるように𝑐𝑘 (𝑘 = 1, ⋯ , 𝑠 + 𝑡 + 1)を求め,𝑤=(𝑥1 , ⋯ ,𝑥𝑠𝑡 ,𝑐1 , ⋯ ,𝑐𝑠+𝑡+1 )とする.

◼ 復号:通信路からの出力𝑦 = 𝑦1 , ⋯ ,𝑦𝑠𝑡 ,𝑦𝑠𝑡+1 , ⋯ ,𝑦𝑠𝑡+𝑠+𝑡+1 に対して


𝑡

𝑦𝑠𝑡+𝑘 + ෍ 𝑦 𝑘−1 𝑡+𝑖 (1 ≤ 𝑘 ≤ 𝑠)


𝑖=1
𝑡+1

෍ 𝑦𝑠 𝑡+1 +𝑖 (𝑘 = 𝑠 + 1)
𝑠𝑘 = 𝑖=1
𝑠

𝑦𝑠𝑡+𝑘−1 + ෍ 𝑦 𝑖−1 𝑡+𝑘−𝑠−1 (𝑠 + 2 ≤ 𝑘 ≤ 𝑠 + 𝑡 + 1)


𝑖=1
𝑠

𝑦𝑠𝑡+𝑠+𝑡+1 + ෍ 𝑦𝑠𝑡+𝑖 (𝑘 = 𝑠 + 𝑡 + 2)
𝑖=1

によってシンドロームを計算し,誤り訂正/検出を行う.
ハミング符号

(7, 4)ハミング符号の作り方の一例:

情報ビット 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 検査ビットを
𝑐1 = 𝑥1 + 𝑥2 + 𝑥3 + 𝑥4
ቐ𝑐2 = 𝑥1 + 𝑥2 + 𝑥3 + 𝑥4
𝑐3 = 𝑥1 + 𝑥2 + 𝑥3 + 𝑥4
によって計算し,
𝑤 = 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑐1 , 𝑐2 , 𝑐3
を符号語とする.
ハミング符号
検査方式

受信語 (1) 𝑦に対するシンドローム


𝑦 = 𝑦1 , 𝑦2 , 𝑦3 , 𝑦4 , 𝑦5 , 𝑦6 , 𝑦7 s1 = y1 + 𝑦2 + 𝑦3 + y4 + 𝑦5 + 𝑦6 + 𝑦7
ቐ𝑠2 = y1 + 𝑦2 + 𝑦3 + y4 + 𝑦5 + 𝑦6 + 𝑦7
𝑠3 = y1 + 𝑦2 + 𝑦3 + y4 + 𝑦5 + 𝑦6 + 𝑦7

(2) シンドロームから次のように誤り訂正
𝑒1 𝑒2 𝑒3 𝑒4 𝑒5 𝑒6 𝑒7 𝑠1 𝑠2 𝑠3
1 1 0 1
1 1 1 1
1 1 1 0
1 0 1 1
1 1 0 0
1 0 1 0
1 0 0 1
ハミング符号

𝑤 = 𝑥1 , 𝑥2 , 𝑥3 , 𝑥4 , 𝑥1 + 𝑥2 + 𝑥3 , 𝑥2 + 𝑥3 + 𝑥4 , 𝑥1 + 𝑥2 + 𝑥4

生成行列
1 0 0 0 1 0 1
0 1 0 0 1 1 1
𝐺=
0 0 1 0 1 1 0
0 0 0 1 0 1 1
を用いて𝑤 = 𝑥𝐺によって符号化する.
ハミング符号

𝑦 = 𝑥1 + 𝑒1 , 𝑥2 + 𝑒2 , 𝑥3 + 𝑒3 , 𝑥4 + 𝑒4 , 𝑥1 + 𝑥2 + 𝑥3 + 𝑒5 , 𝑥2 + 𝑥3 + 𝑥4 + 𝑒6 , 𝑥1 + 𝑥2 + 𝑥4 + 𝑒7

検査行列
1 1 1 0 1 0 0
𝐻= 0 1 1 1 0 1 0
1 1 0 1 0 0 1
を用いてシンドロームを算出する
1 0 1
1 1 1
1 1 0
𝑠 = 𝑦𝐻T = (𝑦1 , ⋯ , 𝑦7 ) 0 1 1
1 0 0
0 1 0
0 0 1
ハミング符号
単一誤りが訂正できるためには,検査行列の全ての列が互いに異なり,全零でなけれ
ばよい.(全零の列があると,そこで生じた誤りと,誤りなしの場合が区別できない.)

符号長 𝑛 = 2𝑚 − 1

情報ビット数 𝑘 = 2𝑚 − 1 − 𝑚

検査ビット数 𝑚 ⇒ 2𝑚 − 1, 2𝑚 − 1 − 𝑚 符号

𝐻= 𝑚行

検査ビット数

2𝑚 − 1 列

符号長…この長さの符号を送る
線形符号

◼ 定義:検査記号が情報記号の線形式で与えら
れる.
𝑐 = 𝑎1 𝑥1 + ⋯ + 𝑎𝑘 𝑥𝑘

◼ 2元符号𝐶が線形符号

𝐶の任意の2つの符号語の和が𝐶の符号語に
なっている.
まとめ

◼ 誤り検出や訂正を行うためにはシンドロームを用いる.
◼ 単一パリティ検査は最も単純な誤り検出符号.
◼ 水平垂直パリティ検査符号を用いると,1誤りが訂正で
きる.
◼ ハミング符号は水平垂直パリティ検査符号より効率の
よい単一誤り訂正符号である.
◼ 生成行列と検査行列による符号化とシンドローム計算

You might also like