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


これは符号のファミリーと呼ばれ、は単調増加するコード。
コードファミリーCのレートは次のように定義されます。
コードファミリーCの相対距離は次のように定義される。
関係性を探るためにそしてブロック符号の下限値と上限値が既知である。
シングルトン境界とは、ブロック符号のレートと相対距離の合計が1よりはるかに大きくなることはない、というものである。
言い換えれば、すべてのブロックコードは次の不等式を満たす。リード・ソロモン符号は、等号で単一点境界を満たす符号の非自明な例である。
のために、。 言い換えると、。
一般的な場合、任意のに対して以下のプロトキン境界が成り立つ。距離dで:
距離がq進コードの場合、
、 どこ、 これはq項エントロピー関数です。
定義する。 させて任意の符号について、半径eのハミング球内の符号語の最大数とする。距離dの。
次に、ジョンソン・バウンドがあります 。、 もし
ブロック符号は、長年にわたり注目を集めてきた球体充填問題と関連しています。2次元の場合、視覚化は容易です。テーブルの上に平らに並べたペニー硬貨を互いに押し合わせると、蜂の巣のような六角形のパターンができます。しかし、ブロック符号はより多くの次元に依存しており、これは容易に視覚化できません。深宇宙通信で使用される強力なゴレイ符号は24次元を使用します。バイナリ符号として使用される(通常はバイナリ符号として使用されます)場合、次元は上記で定義された符号語の長さを指します。
符号化理論では、 N次元球体モデルが用いられます。例えば、テーブル上の円の中に何枚のペニー硬貨を詰め込めるか、あるいは3次元空間で、地球儀の中に何個のビー玉を詰め込めるか、といった具合です。符号の選択には、他にも考慮すべき点があります。例えば、長方形の箱の中に六角形を詰め込むと、角に空きスペースができます。次元が大きくなるにつれて、空きスペースの割合は小さくなります。しかし、ある特定の次元では、詰め込みによってすべてのスペースが利用され、このような符号は、いわゆる完全符号と呼ばれます。このような符号はごく少数しか存在しません。
もう 1 つの特性は、単一のコードワードが持つことができる隣接数です。[ 1 ] ここでも、例としてペニーを考えてみましょう。まず、ペニーを長方形のグリッドに詰めます。各ペニーには 4 つの近くの隣接 (および、より遠い角に 4 つ) があります。六角形では、各ペニーには 6 つの近くの隣接があります。それぞれ、3 次元と 4 次元では、最大充填はそれぞれ12 面と24 セルで、それぞれ 12 個と 24 個の隣接があります。次元を増やすと、近くの隣接の数は非常に急速に増加します。一般に、その値はキッシング数によって与えられます。
その結果、ノイズによって受信機が隣接局を選択する(つまりエラーが発生する)方法の数も増加します。これはブロック符号、そして実際にはすべての符号の根本的な限界です。単一の隣接局にエラーを引き起こすのは難しくなるかもしれませんが、隣接局の数が十分に多ければ、全体のエラー確率は実際に悪化します。[ 1 ]