Class of error-correcting code
符号理論 において 、 線形符号とは、任意の 符号語 の 線形結合 が符号語となる誤り訂正符号である。線形符号は伝統的にブロック符号と畳み込み符号に分類される が 、 ターボ 符号 は これら 2 種類 のハイブリッドとみなすこともできる。 [1] 線形符号は、他の符号よりも効率的な符号化・復号アルゴリズムを可能にする( シンドローム復号を 参照)。 [ 要出典 ]
線形コードは前方誤り訂正 に使用され、 通信チャネル でシンボル( ビットなど )を送信する方法で適用されます。 これにより、通信でエラーが発生した場合、メッセージブロックの受信者が一部のエラーを訂正または検出できます。線形ブロックコードのコードワードは、送信される元の値よりも多くのシンボルを使用してエンコードされたシンボルのブロックです。 [2]長さ n の線形コードは、 n 個のシンボルを含むブロックを送信します 。たとえば、[7,4,3] ハミングコードは、7 ビットのコードワードを使用して 4 ビットのメッセージを表す線形 バイナリコード です 。2 つの異なるコードワードは、少なくとも 3 ビットが異なります。結果として、コードワードごとに最大 2 つのエラーを検出でき、1 つのエラーを訂正できます。 [3] このコードには、2 4 = 16 のコードワードが含まれます。
定義とパラメータ
長さn 、次元 k の 線形符号 は 、 q 個の元を持つ 有限 体 の ベクトル 空間 Cの 次元 k の 線形部分空間 です 。このような符号は q 元符号と呼ばれます。q = 2 または q = 3の場合 、符号はそれぞれ 2元符号 、 3元符号 として記述されます。C のベクトルは 符号語 と呼ばれます 。 符号の サイズは符号語の数であり、 q k に 等しくなります。
F
q
n
{\displaystyle \mathbb {F} _{q}^{n}}
F
q
{\displaystyle \mathbb {F} _{q}}
符号語の重み は 、その符号語に含まれる非ゼロ要素の数であり、 2つの符号語間の 距離は、それらの間の ハミング距離 、つまり、それらの符号語が異なる要素の数です。線形符号の距離 dは、その非ゼロ符号語の最小重み、あるいは異なる符号語間の最小距離です。長さ n 、次元 k 、距離 d の線形符号は、[ n , k , d ] 符号(より正確には、 符号)
と呼ばれます。
[
n
,
k
,
d
]
q
{\displaystyle [n,k,d]_{q}}
標準基底 を与える理由は、各座標が「ノイズの多い通信路」( 2元対称通信路 )を介して伝送される「ビット」を表し、伝送エラーの確率がわずかであるためです。他の基底を用いると、このモデルは使用できず、ハミング計量は、私たちが期待する伝送エラーの数を測定できません。
F
q
n
{\displaystyle \mathbb {F} _{q}^{n}}
ジェネレータとチェックマトリックス
の 線形部分空間 として 、コード C 全体(非常に大きくなる場合もある)は、コードワード 集合 ( 線形代数 における 基底として知られる)の スパン として表すことができます。これらの基底コードワードは、コード Cの 生成行列 として知られる行列 G の行に並べられることがよくあります 。G がブロック行列形式 (ただし は 単位行列、 P は何らかの行列)を持つ場合、G は 標準形式 であるといいます 。
F
q
n
{\displaystyle \mathbb {F} _{q}^{n}}
k
{\displaystyle k}
G
=
[
I
k
∣
P
]
{\displaystyle {\boldsymbol {G}}=[I_{k}\mid P]}
I
k
{\displaystyle I_{k}}
k
×
k
{\displaystyle k\times k}
k
×
(
n
−
k
)
{\displaystyle k\times (n-k)}
核 が C である 線形関数を表す 行列 Hは、 C の 検査行列 (またはパリティ検査行列) と呼ばれます。同様に、 Hは 零空間が C で ある行列です 。Cが標準形の生成行列Gを持つ符号である場合 、 は C の 検査行列です 。H によって生成される符号はCの 双対符号 と呼ばれます。Gが 行列であり、Hが行列であること は検証できます 。
ϕ
:
F
q
n
→
F
q
n
−
k
{\displaystyle \phi :\mathbb {F} _{q}^{n}\to \mathbb {F} _{q}^{n-k}}
G
=
[
I
k
∣
P
]
{\displaystyle {\boldsymbol {G}}=[I_{k}\mid P]}
H
=
[
−
P
T
∣
I
n
−
k
]
{\displaystyle {\boldsymbol {H}}=[-P^{T}\mid I_{n-k}]}
k
×
n
{\displaystyle k\times n}
(
n
−
k
)
×
n
{\displaystyle (n-k)\times n}
線形性は、符号語 c 0 と他の符号語 c ≠ c 0 との間の最小 ハミング距離 d が c 0 に依存しないことを保証する。これは、 C 内の2つの符号語の 差 c − c 0 もまた符号語(すなわち、 部分空間 Cの 要素)であるという性質と、 d ( c , c 0 ) = d ( c − c 0 , 0 )という性質から 導かれる。これらの性質は、
min
c
∈
C
,
c
≠
c
0
d
(
c
,
c
0
)
=
min
c
∈
C
,
c
≠
c
0
d
(
c
−
c
0
,
0
)
=
min
c
∈
C
,
c
≠
0
d
(
c
,
0
)
=
d
.
{\displaystyle \min _{c\in C,\ c\neq c_{0}}d(c,c_{0})=\min _{c\in C,\ c\neq c_{0}}d(c-c_{0},0)=\min _{c\in C,\ c\neq 0}d(c,0)=d.}
言い換えれば、線形符号の符号語間の最小距離を求めるには、非ゼロ符号語に注目するだけで十分です。重みが最小の非ゼロ符号語は、ゼロ符号語との距離が最小となり、それによって符号の最小距離が決まります。
線形コード C の距離 d は 、検査行列 H の線形従属列の最小数にも等しくなります。
証明: は と等価である ため 、 は の列 です 。 を持つ項目を削除します。 を 持つ項目 は 線形従属です。したがって、 は少なくとも線形従属列の最小数です。一方、 は列インデックス セット である線形従属列の最小セットを考えます。ここで、 の場合 となる ベクトルを考えます。 である ためであること に注意してください 。したがって、 が得られ 、これは における線形従属列の最小数です 。したがって、主張された特性は証明されました。
H
⋅
c
T
=
0
{\displaystyle {\boldsymbol {H}}\cdot {\boldsymbol {c}}^{T}={\boldsymbol {0}}}
∑
i
=
1
n
(
c
i
⋅
H
i
)
=
0
{\displaystyle \sum _{i=1}^{n}(c_{i}\cdot {\boldsymbol {H_{i}}})={\boldsymbol {0}}}
H
i
{\displaystyle {\boldsymbol {H_{i}}}}
i
t
h
{\displaystyle i^{th}}
H
{\displaystyle {\boldsymbol {H}}}
c
i
=
0
{\displaystyle c_{i}=0}
H
i
{\displaystyle {\boldsymbol {H_{i}}}}
c
i
≠
0
{\displaystyle c_{i}\neq 0}
d
{\displaystyle d}
{
H
j
∣
j
∈
S
}
{\displaystyle \{{\boldsymbol {H_{j}}}\mid j\in S\}}
S
{\displaystyle S}
∑
i
=
1
n
(
c
i
⋅
H
i
)
=
∑
j
∈
S
(
c
j
⋅
H
j
)
+
∑
j
∉
S
(
c
j
⋅
H
j
)
=
0
{\displaystyle \sum _{i=1}^{n}(c_{i}\cdot {\boldsymbol {H_{i}}})=\sum _{j\in S}(c_{j}\cdot {\boldsymbol {H_{j}}})+\sum _{j\notin S}(c_{j}\cdot {\boldsymbol {H_{j}}})={\boldsymbol {0}}}
c
′
{\displaystyle {\boldsymbol {c'}}}
c
j
′
=
0
{\displaystyle c_{j}'=0}
j
∉
S
{\displaystyle j\notin S}
c
′
∈
C
{\displaystyle {\boldsymbol {c'}}\in C}
H
⋅
c
′
T
=
0
{\displaystyle {\boldsymbol {H}}\cdot {\boldsymbol {c'}}^{T}={\boldsymbol {0}}}
d
≤
w
t
(
c
′
)
{\displaystyle d\leq wt({\boldsymbol {c'}})}
H
{\displaystyle {\boldsymbol {H}}}
例: ハミング符号
ハミング符号は 、誤り訂正を目的として開発された最初の線形符号であり、 デジタル通信システムで広く利用されています。任意の正の整数 に対して 、ハミング符号が存在します 。 であるため 、このハミング符号は1ビットの誤りを訂正できます。
r
≥
2
{\displaystyle r\geq 2}
[
2
r
−
1
,
2
r
−
r
−
1
,
3
]
2
{\displaystyle [2^{r}-1,2^{r}-r-1,3]_{2}}
d
=
3
{\displaystyle d=3}
例: 次の生成行列とパリティ検査行列を持つ線形ブロック コードは ハミング コードです。
[
7
,
4
,
3
]
2
{\displaystyle [7,4,3]_{2}}
G
=
(
1
0
0
0
1
1
0
0
1
0
0
0
1
1
0
0
1
0
1
1
1
0
0
0
1
1
0
1
)
,
{\displaystyle {\boldsymbol {G}}={\begin{pmatrix}1&0&0&0&1&1&0\\0&1&0&0&0&1&1\\0&0&1&0&1&1&1\\0&0&0&1&1&0&1\end{pmatrix}},}
H
=
(
1
0
1
1
1
0
0
1
1
1
0
0
1
0
0
1
1
1
0
0
1
)
{\displaystyle {\boldsymbol {H}}={\begin{pmatrix}1&0&1&1&1&0&0\\1&1&\ 1&0&0&1&0\\0&1&1&1&0&0&1\end{pmatrix}}}
例: アダマール符号
アダマール符号 は線形符号であり 、多くの誤りを訂正できます。アダマール符号は列ごとに構成できます。 列とは、整数 の2進表現のビットです (次の例を参照)。アダマール符号は最小距離を持つ ため、 誤りを訂正できます。
[
2
r
,
r
,
2
r
−
1
]
2
{\displaystyle [2^{r},r,2^{r-1}]_{2}}
i
t
h
{\displaystyle i^{th}}
i
{\displaystyle i}
2
r
−
1
{\displaystyle 2^{r-1}}
2
r
−
2
−
1
{\displaystyle 2^{r-2}-1}
例: 次の生成行列を持つ線形ブロック コードは、 アダマール コード
です 。
[
8
,
3
,
4
]
2
{\displaystyle [8,3,4]_{2}}
G
H
a
d
=
(
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
)
{\displaystyle {\boldsymbol {G}}_{\mathrm {Had} }={\begin{pmatrix}0&0&0&0&1&\ 1&1&1\\0&0&1&1&0&0&1&1\\0&1&0&1&0&1&0&1\end{pmatrix}}}
アダマール符号は リード・ミュラー符号 の特殊なケースです 。 から最初の列(すべてゼロの列)を取り除くと、ハミング符号の 双対符号 である 単体符号 が得られます 。
G
H
a
d
{\displaystyle {\boldsymbol {G}}_{\mathrm {Had} }}
[
7
,
3
,
4
]
2
{\displaystyle [7,3,4]_{2}}
最近傍アルゴリズム
パラメータdは、符号の誤り訂正能力と密接に関係しています。以下の構成/アルゴリズムは、このことを示しています(最近傍復号アルゴリズムと呼ばれます)。
入力: 受信したベクトル v
F
q
n
.
{\displaystyle \mathbb {F} _{q}^{n}.}
出力:に 最も近い 内の コードワード (存在する場合)。
w
{\displaystyle w}
C
{\displaystyle C}
v
{\displaystyle v}
から始めて 、次の 2 つの手順を繰り返します。
t
=
0
{\displaystyle t=0}
受信した単語 の周りの (ハミング)半径 の球の元を列挙します( と表記) 。
t
{\displaystyle t}
v
{\displaystyle v}
B
t
(
v
)
{\displaystyle B_{t}(v)}
の各 について 、 に 含まれるかどうかを確認します 。 含まれる場合、 を解として返します。
w
{\displaystyle w}
B
t
(
v
)
{\displaystyle B_{t}(v)}
w
{\displaystyle w}
C
{\displaystyle C}
w
{\displaystyle w}
増分します 。 列挙が完了し、解決策が見つからなかった場合にのみ失敗します。
t
{\displaystyle t}
t
>
(
d
−
1
)
/
2
{\displaystyle t>(d-1)/2}
の各に対して に 最大で 1 つのコードワードが存在する場合 、 線形 は -誤り訂正可能であると言え ます 。
C
{\displaystyle C}
t
{\displaystyle t}
B
t
(
v
)
{\displaystyle B_{t}(v)}
v
{\displaystyle v}
F
q
n
{\displaystyle \mathbb {F} _{q}^{n}}
一般的な表記法
一般的に、符号は 文字 Cで表記されることが多く、長さ n 、 階数 k の符号 (つまり、 基底に n 個の符号語があり、 生成行列 に k行がある符号)は、一般的に ( n , k ) 符号と呼ばれます。線形ブロック符号は、しばしば [ n , k , d ] 符号 と表記されます。ここで、 d は 任意の 2 つの符号語間の最小ハミング距離を表します。
([ n , k , d ]表記は、 長さ n 、サイズ M (つまり、 M 個のコードワードを持つ)、最小ハミング距離 dの 非線形 コードを表すために使用される( n , M , d )表記と混同しないでください。)
シングルトン境界
補題 ( シングルトン境界 ):すべての線形[ n 、 k 、 d ]コードCは次式を満たします 。
k
+
d
≤
n
+
1
{\displaystyle k+d\leq n+1}
パラメータがk + d = n + 1 を満たす 符号 Cは、 最大距離分離可能符号 、または MDS と呼ばれます。このような符号が存在する場合、それはある意味で最良の符号と言えます。
C 1 と C 2 が長さ n の2つの符号であり 、 対称群 S n に 順列 pが存在し、 C 1 に( c 1 ,..., c n ) が存在する 場合と C 2に ( c p (1) ,..., c p ( n ) ) が存在する場合に限り、 C 1 と C 2は 順列同値 である といえる。より一般的には、C 1を C 2 に同型に 送信する 単項式行列 が存在する場合、 C 1 と C 2 は 同値で ある といえる 。
n
×
n
{\displaystyle n\times n}
M
:
F
q
n
→
F
q
n
{\displaystyle M\colon \mathbb {F} _{q}^{n}\to \mathbb {F} _{q}^{n}}
補題 : 任意の線形コードは、標準形式のコードと置換等価である。
ボニソリの定理
コードは、 定数 d が存在し、コードの異なるコードワードの任意の2つの間の距離が dに等しい場合にのみ、 等距離 であると定義されます。 [4] 1984年にArrigo Bonisoliは有限体上の線形1重みコードの構造を決定し、すべての等距離線形コードは 双対 ハミングコード のシーケンスであることを証明しました 。 [5]
例
線形コードの例としては次のようなものがあります。
一般化
非体アルファベット上の ハミング空間も考察されており、特に 有限環 上、特に Z 4 上の ガロア環が注目されている。これにより、ベクトル空間の代わりに モジュール が、線形符号の代わりに環線形符号( 部分モジュール で識別される)が生成される 。この場合に使用される典型的なメトリックは リー距離 である。 ハミング距離を持つ (すなわちGF(2 2 m ))とリー距離を持つ(GR(4,m)とも表記される)の間には グレイ等長変換が 存在する。その主な魅力は、 上の線形ではないいくつかの「良い」符号と、 からの環線形符号の像との間の対応を確立することである 。 [6] [7] [8]
Z
2
2
m
{\displaystyle \mathbb {Z} _{2}^{2m}}
Z
4
m
{\displaystyle \mathbb {Z} _{4}^{m}}
Z
2
2
m
{\displaystyle \mathbb {Z} _{2}^{2m}}
Z
4
m
{\displaystyle \mathbb {Z} _{4}^{m}}
一部の著者は、このような環上の符号を単に線形符号とも呼んでいる。 [9]
参照
参考文献
^ William E. RyanとShu Lin (2009). Channel Codes: Classical and Modern . Cambridge University Press. p. 4. ISBN 978-0-521-84868-8 。
^ MacKay, David, JC (2003). 情報理論、推論、学習アルゴリズム (PDF) . Cambridge University Press . p. 9. Bibcode :2003itil.book.....M. ISBN 9780521642989 線形 ブロック符号では 、追加 ビットは元のビットの線形関数であり、これらの追加ビットは パリティチェックビット と呼ばれる 。
N
−
K
{\displaystyle N-K}
K
{\displaystyle K}
{{cite book }}: CS1 maint: multiple names: authors list (link )
^ Thomas M. CoverとJoy A. Thomas (1991). 『情報理論の要素』John Wiley & Sons, Inc. pp. 210–211. ISBN 978-0-471-06259-2 。
^ エツィオン、トゥヴィ;ラヴィブ、ネタネル (2013)。 「グラスマン語における等距離コード」。 arXiv : 1308.6231 [math.CO]。
^ Bonisoli, A. (1984). 「すべての等距離線形符号は双対ハミング符号の列である」. Ars Combinatoria . 18 : 181–186 .
^ Marcus Greferath (2009). 「環線形符号理論入門」. Massimiliano Sala, Teo Mora, Ludovic Perret, Shojiro Sakata, Carlo Traverso (編). Gröbner Bases, Coding, and Cryptography . Springer Science & Business Media. ISBN 978-3-540-93806-4 。
^ 「数学百科事典」 www.encyclopediaofmath.org .
^ JH van Lint (1999). 符号理論入門 (第3版). Springer. 第8章 ℤ4以上の 符号 . ISBN 978-3-540-64133-9 。
^ ST Dougherty、J.-L. Kim、P. Sole (2015). 「符号理論における未解決問題」。Steven Dougherty、Alberto Facchini、Andre Gerard Leroy、Edmund Puczylowski、Patrick Sole (編) 『非可換環とその応用 』 アメリカ数学会、p. 80. ISBN 978-1-4704-1032-2 。
参考文献
JF Humphreys; MY Prest (2004). Numbers, Groups and Codes (第2版). Cambridge University Press. ISBN 978-0-511-19420-7 。 第 5 章では、線形符号の主題について (この記事よりも) より穏やかな入門が行われます。
外部リンク
q-aryコード生成プログラム
コード テーブル: さまざまなタイプのコードのパラメーターの境界、 IAKS、Fakultät für Informatik、Universität Karlsruhe (TH)] 。オンラインの最適なバイナリ コードの最新テーブルには、非バイナリ コードも含まれています。
Z4 コードのデータベース オンライン、最適な Z4 コードの最新データベース。