符号理論において、ブロック符号は、データをブロック単位で符号化する大規模かつ重要な誤り訂正符号のファミリーです。ブロック符号の例は膨大にあり、その多くは幅広い実用的応用を有しています。ブロック符号の抽象的な定義は概念的に有用です。なぜなら、符号理論家、数学者、そしてコンピュータ科学者が、あらゆるブロック符号の限界を統一的に研究することを可能にするからです。こうした限界は、多くの場合、ブロック符号のレートや誤り検出・訂正能力など、ブロック符号の様々なパラメータを相互に関連付ける境界の形をとります。
ブロック符号の例としては、リード・ソロモン符号、ハミング符号、アダマール符号、エクスパンダー符号、ゴレイ符号、リード・ミュラー符号、極座標符号などが挙げられます。これらの符号も線形符号のクラスに属し、線形ブロック符号と呼ばれます。より具体的には、これらの符号はブール多項式を用いて生成できるため、代数ブロック符号または巡回ブロック符号と呼ばれます。
代数ブロックコードは通常、代数デコーダーを使用して ハードデコードされます。
ブロック符号という用語は、入力データのビットブロックに作用して出力データのビットを生成する誤り訂正符号を指す場合もあります。したがって、ブロック符号器はメモリを持たないデバイスです。この定義では、ターボ符号、終端畳み込み符号、その他の反復復号可能符号(ターボのような符号)などの符号もブロック符号と見なされます。非終端畳み込み符号化器は非ブロック(フレームなし)符号の例であり、メモリを持ち、ツリー符号に分類されます。
この記事では「代数ブロック符号」について扱います。
ブロックコードとそのパラメータ
誤り訂正符号は、チャネルノイズの影響を受ける信頼性の低い通信チャネルを介してデジタルデータを確実に送信するために使用されます。送信者がブロック符号を使用して非常に長い可能性のあるデータストリームを送信する場合、送信者はストリームを固定サイズの断片に分割します。このような各断片はメッセージと呼ばれ、ブロック符号によって指定された手順により、各メッセージが個別にコードワード(ブロック符号のコンテキストではブロックとも呼ばれます)にエンコードされます。次に、送信者はすべてのブロックを受信者に送信します。受信者は、何らかのデコードメカニズムを使用して、破損している可能性のある受信ブロックから元のメッセージを(うまくいけば)復元できます。全体的な送信のパフォーマンスと成功は、チャネルとブロック符号のパラメータに依存します。
正式には、ブロックコードは単射写像 である。
- 。
ここで、は有限かつ空でない集合であり、およびは整数です。これら3つのパラメータ、およびコードに関連するその他のパラメータの意味と重要性については、以下で説明します。
アルファベットΣ
符号化されるデータストリームは、あるアルファベット上の文字列としてモデル化されます。アルファベットのサイズは、しばしば と表記されます。 の場合、ブロック符号はバイナリブロック符号と呼ばれます。多くの応用において、 を素数 のべき乗とみなし、有限体と同一視することは有用です。
メッセージ長k
メッセージはの要素、つまり長さ の文字列です。したがって、この数値はメッセージ長、またはブロックコードの 次元と呼ばれます。
ブロック長n
ブロック符号のブロック長は 、ブロック内のシンボルの数です。したがって、の要素は長さ の文字列であり、受信側が受信する可能性のあるブロックに対応します。そのため、これらは受信語とも呼ばれます。あるメッセージ に対して の場合、 はの符号語と呼ばれます。
レートR
ブロック コードのレートはそのメッセージ長とブロック長の比率として定義されます。
- 。
レートが大きいということは、送信されるブロックあたりの実際のメッセージ量が多いことを意味します。この意味で、レートは伝送速度を測り、量はブロックコードによるエンコードによって発生するオーバーヘッドを測ります。一般にデータはロスレス圧縮できないため、レートがこれを超えることはないというのは、情報理論上の単純な事実です。形式的には、これはコードが単射写像であるという事実から導き出されます。
距離d
ブロック符号の距離または最小距離dは、任意の2つの異なる符号語が異なる位置の最小数であり、相対距離は分数 である。正式には、受信語 に対して、との間のハミング距離、つまりと が異なる位置の数を表すものとする。この場合、符号の最小距離は次のように定義される 。
- 。
あらゆるコードは単射でなければならないため、2つのコードワードは少なくとも1つの位置で一致しないため、あらゆるコードの距離は少なくとも となります。さらに、この距離は線形ブロックコードの 最小重みに等しくなります。これは以下の理由によるものです。
- 。
距離が大きいほど、より多くのエラー訂正および検出が可能になります。たとえば、送信されたコードワードのシンボルを変更する可能性があり、シンボルを消去または追加することは決してないエラーのみを考慮する場合、エラーの数は、送信されたコードワードと受信されたワードが異なる位置の数です。距離 のコードでは、コードワードの位置を変更しても別のコードワードが偶然に生成されることは決してないため、受信機は最大で までの伝送エラーを検出できます。さらに、 以上の伝送エラーが発生しない場合、受信機は受信したワードをコードワードに一意に復号化できます。これは、すべての受信ワードが距離 に最大で 1 つのコードワードを持つためです。以上の伝送エラーが発生した場合、複数のコードワードが考えられるため、受信機は一般に受信したワードを一意に復号化できません。受信機がこの状況に対処する 1 つの方法は、リスト復号化を使用することです。リスト復号化では、復号化器は特定の半径内のすべてのコードワードのリストを出力します。
一般的な表記法
この表記法は、サイズ のアルファベット上のブロック符号を記述するものであり、ブロック長、メッセージ長、距離 を持ちます。ブロック符号が線形ブロック符号である場合、表記法中の角括弧はその事実を表すために使用されます。 を持つバイナリ符号の場合、添え字は省略されることがあります。最大距離の分離可能符号の場合、距離は常に ですが、正確な距離が不明であったり、証明や明示が困難であったり、必要なかったりする場合があります。そのような場合、-要素は省略されることがあります。
非ブロック符号の場合など、長さ の符号語を含む符号に対してこの表記法が使用されることがあります。長さ のメッセージを含むブロック符号の場合、この数値は になります。
例
前述のように、実際にはブロック符号である誤り訂正符号は数多く存在します。最初の誤り訂正符号は、1950年にリチャード・W・ハミングによって開発されたハミング(7,4)符号です。この符号は、4ビットのメッセージに3つのパリティビットを追加することで、7ビットのコードワードに変換します。したがって、この符号はブロック符号です。また、線形符号でもあり、距離は3です。上記の略記法では、ハミング(7,4)符号は符号であることを意味します。
リード・ソロモン符号は、 およびが素数べきである符号の族です。ランク符号は、および である符号の族です。アダマール符号は、およびである符号の族です。
エラー検出および訂正特性
符号語は次元空間内の点とみなすことができ、符号はの部分集合です。符号が 距離 を持つということは、を中心とし半径 を持つハミング球内に他の符号語が存在しないことを意味します。ハミング球は、から へのハミング距離がを超えない次元語の集合として定義されます。同様に、(最小)距離 を持つ には、以下の特性があります。
- は誤りを検出できる:ハミング球において、符号語は半径 でそれ自身を中心とする唯一の符号語であるため、 の誤りパターン以下では、ある符号語を別の符号語に変化させることはできない。受信側が受信ベクトルが の符号語ではないことを検出すると、誤りが検出される(ただし、誤りが訂正される保証はない)。
- は誤りを訂正できます。あるコードワードは、半径 を持つハミング球内の唯一のコードワードであるため、それぞれ異なるコードワードを中心とし、半径 を持つ2つのハミング球は互いに重なりません。したがって、受信語 に最も近いコードワードを見つけることを誤り訂正と考えると、エラー数が を超えない限り、半径 を持つハミング球内のコードワードは1つだけであり、すべてのエラーを訂正できます。
- 複数のエラーがある場合にデコードするには、リスト デコードまたは最大尤度デコードを使用できます。
- 消失訂正が可能です。消失とは、消去されたシンボルの位置が既知であることを意味します。訂正はパッシング復号化によって実現できます。パッシングでは、消去された位置にシンボルが埋め込まれ、誤り訂正が行われます。誤りの数が を超えないパッシングが1回あるため、消失訂正が可能になります。
ブロックコードの下限と上限


- x軸の明るいオレンジ: 単純な保護されていないコード
- y軸のオレンジ:単純な繰り返しコード
- データセットd =3 の濃いオレンジ: 古典的な完全ハミング符号
- 濃い赤と大きい:唯一の完全な2進ゴレイコード
コードファミリー
はコードの族と呼ばれ、は単調増加するコードです。
コード族Cのレートは次のように定義される。
コード族Cの相対距離は次のように定義される。
との関係を調べるために、ブロック コードの下限と上限のセットが知られています。
ハミング境界
シングルトン境界
シングルトン境界とは、ブロックコードのレートと相対距離の合計が 1 より大きくなることはできないというものです。
- 。
言い換えれば、すべてのブロック符号は不等式を満たします。 リード・ソロモン符号は、等式を伴うシングルトン境界を満たす符号の非自明な例です。
プロトキン縛り
については、。言い換えれば、。
一般的なケースでは、距離dを持つ任意のものに対して次の Plotkin 境界が成り立ちます。
- もし
- もし
距離 の任意のq進コードの場合、
ギルバート・ヴァルシャモフ境界
ここで、 はq元エントロピー関数です。
ジョンソン行き
を定義します。距離dの任意のコードに対して、半径eのハミングボール内のコードワードの最大数を とします。
するとジョンソン境界が得られる 。
エリアス・バッサリゴ境界
球パッキングと格子
ブロック符号は、長年注目を集めてきた球面パッキング問題と関連しています。2次元では視覚化が容易です。テーブルの上にペニー硬貨を平らに並べ、押し付け合うと、蜂の巣のような六角形のパターンができます。しかし、ブロック符号はより多くの次元に依存しており、視覚化が容易ではありません。深宇宙通信で使用されている強力なゴレイ符号は24次元です。バイナリコードとして使用する場合(通常はバイナリコードとして使用されます)、次元は上記で定義したコードワードの長さを指します。
符号化理論では、 N次元球面モデルが用いられます。例えば、テーブル上または3次元の円の中にペニー硬貨を何枚詰め込めるか、地球儀の中にビー玉を何個詰め込めるかなどです。コードの選択には、他にも考慮すべき要素があります。例えば、長方形の箱という制約の中に六角形を詰め込むと、角に空きスペースが残ります。寸法が大きくなるにつれて、空きスペースの割合は小さくなります。しかし、ある寸法では、詰め込みによってすべてのスペースが使用され、このようなコードはいわゆる完全コードと呼ばれます。このようなコードはごくわずかです。
もう一つの特性は、一つのコードワードが持つことのできる近傍の数である。[ 1 ] 再び、ペニー硬貨を例に考えてみよう。まず、ペニー硬貨を長方形のグリッドに詰める。各ペニー硬貨には 4 つの近傍硬貨が(さらに遠い角にも 4 つ)ある。六角形では、各ペニー硬貨には 6 つの近傍硬貨がある。3 次元と 4 次元では、最大の詰め込みはそれぞれ12 面と24 セルで、それぞれ 12 と 24 の近傍硬貨を持つ。次元を増やすと、近傍硬貨の数は急激に増加する。一般に、その値はキッシング数で与えられる。
その結果、ノイズによって受信機が隣接ノードを選択(つまりエラー)する方法の数も増加します。これはブロック符号、そしてあらゆる符号の根本的な限界です。単一の隣接ノードにエラーを引き起こすことは困難かもしれませんが、隣接ノードの数が十分に大きくなると、全体のエラー確率は実際に悪化します。[ 1 ]
参照
参考文献
- ^ a b c Christian SchlegelとLance Pérez (2004).トレリスとターボ符号化. Wiley-IEEE. p. 73. ISBN 978-0-471-22755-7。
- JH van Lint ( 1992).符号理論入門. GTM . 第86巻 (第2版). Springer-Verlag. p. 31. ISBN 3-540-54894-7。
- FJマクウィリアムズ、NJAスローン(1977年)『誤り訂正符号の理論』ノースホランド社、 35ページ、ISBN 0-444-85193-3。
- W. Huffman; V. Pless (2003). 『誤り訂正符号の基礎』ケンブリッジ大学出版局. ISBN 978-0-521-78280-7。
- S. Lin; DJ Jr. Costello (1983). 『誤り制御符号化:基礎と応用』 Prentice-Hall. ISBN 0-13-283796-X。
外部リンク
- チャラン・ラングトン(2001)「符号化の概念とブロック符号化」