基本的であるにも関わらず、用法がゆれている言葉達:
- 符号〈コード〉
- 記号〈シンボル〉
- ブロック
- 語〈ワード〉
- 符号長
- 列〈シーケンス | ストリング | ストリーム〉
- タプル、n-タプル
- q項〈q-ary〉
- a codeword of a code
- メッセージ
- パケット
- 情報
- データ
集合とその要素が曖昧にされがち:
- アルファベット Q と、その要素
- 直積空間 Qn と、その要素
- コード〈符号〉=部分空間 C⊆Qn と、その要素=符号語
なんて呼べばいいか分からない概念:
- Qn→Qm の線形変換
本来の意味からは離れてしまった言葉:
誤り訂正のオモチャの例:
- 文字列 例:ツクエ
- 文字 'ツ', 'ク', 'エ'
- さらに文字列の例: ツエク, クツエ、クエツ、エツク、エクツ
- 文字の集合 Q = {'ツ', 'ク', 'エ'}
- 長さ3の文字列の集合 = {ツツツ, ツツク, ... } 33 = 27個
- 語の集合と非語の集合(word nonword, sentence nonsentence)
- 誤り方は置換誤りだけと仮定 ラングドシャ → ランドグシャ, アニマル → アルマニ
- 「クツエ」から置換で得られる語が元の語
- 語と誤り語の区別ができるか?
- 非語は誤り語で間違いない。
- 語が誤り語になってしまう例。
- ミルク、ミクル、ルクミ、ルミク、クミル、クルミ、
- 距離にケメニー距離〈Kemeny distance〉
檜山の整理案:
集合 | 集合の要素 | 備考 |
---|---|---|
アルファベット Q | シンボル s∈Q | Qの基数はq |
タプル空間 Qn | q{項|元}・nタプル x∈Qn | nはタプルの長さ |
コード C ⊆ Qn | {コード}?語 c∈C | Cの次元をk |
線形符号では:
- Qは、q元体とする。
- タプル空間Qnは、体Q上のn次元ベクトル空間と考える。
- コードCは、親ベクトル空間Qnのk次元部分ベクトル空間。
- Qnの要素は、q{項|元}・n-タプルと呼ぶ。
- Cの要素は(長さnの)語と呼ぶ。
- Qn\Cの要素は(長さnの)非語〈nonword〉と呼ぶ。長さとCの次元を混同しない。
- Qnは距離空間とする。その距離はδ(-, -)で表す。
- Qnには、ベクトル空間としてのゼロベクトルがあるので、w(-) := δ(0, -) を({ベクトル | タプル}の)重さと言う。重さはノルムとは限らない、つうか、ノルムじゃない。
上記の C = (Qn, C) を線形コード〈符号〉と呼ぶ。線形コードのクラスをパラメータで分類する。
- L-Cq(n, k, d)
CがクラスL-Cq(n, k, d)に属する線形コードだとは:
- アルファベット Q = ベクトル空間のスカラー体 の基数〈要素数 | 濃度 | 位数〉が q
- タプルの長さ=親ベクトル空間の次元が n
- コードC(親ベクトル空間の部分空間)の次元がk
- Cの異なる要素間の最小距離がd
クラスは、構造達の外延だから、構造そのものがちゃんと定義されないとクラスも曖昧になる。
リード/ソロモン符号のクラスを次のように書く。
- RS-Cq(n, k)
リード/ソロモン符号では、dが n, k から決定されてしまう。
- d = n - k + 1 (qに依存しない)
スカラー体が {0, 1}、親ベクトル空間は、{0, 1}n なら、タプルは2項n-タプル=バイナリー・n-タプル。L-C2である符号を、バイナリー線形符号ともいう。バイナリー線形符号も構造のクラスの名前。
同義語や表記のゆれ:
- エンコード = エンコーディング = 符号化
- デコード = デコーディング = 脱符号化 = 復号化 = 復号
- コーディング = エンコーディング
- コーディング = (エンコーディング and/or デコーディング)
- コーディング = プログラム・ライティング
- コード = コーディング
- コード = コード語 = 語
- コード = 語空間 (語空間 ≠ タプル空間)
- コード = タプル空間(非語も含まれる)
- コード = プログラム・ソースコード
- ブロック = ブロック符号化(畳み込み符号化ではない)
- ブロック = タプル = ベクトル
- ブロック空間 = タプル空間 = ベクトル空間
- シンボル = アルファベットの要素 = 体の元 = スカラー
- シンボル = ビット (アルファベットが2元のとき)
- 体 = 有限体
- 体 = 素体 (単純体というべきだろうが、習慣で)
符号化と方式〈スキーム〉の分類
- 情報源符号化〈source coding〉
- 通信路符号化〈channel coding〉 通信路は記号的・代数的
- 伝送路符号化〈line coding〉 伝送路は物理的・幾何的
モジュレーション/デモジュレーション〈変調/復調〉は、伝送路符号化に入る。有限離散な構造を多様体(主にユークリッド空間)に写像するのがモジュレーターで、その像である離散集合はコンスタレーション。
別に暗号化と復号がある。暗号化は上のどの時点でも入る。
その他:
- binary linear code = linear binary code = L-C2(n, k, d) クラスのコード
- ternary linear code = linear ternary code = L-C3(n, k. d) クラスのコード
- binary = ニ元 = ニ項
- ternary = 三元 = 三項
- binary field = 二元体
- ternary field = 三元体
- BCH-C, RS-C には、 Berlekamp-Massey (BM) decoding algorithm がある。