チャネル符号化理論の目的は、迅速に送信し、多くの有効なコードワードを含み、多くのエラーを正 相互に排他的ではありませんが、これらの分野でのパフォーマンスはトレードオフです。 従って、異なったコードは異なった適用のために最適です。 このコードの必要な特性は、主に送信中に発生するエラーの確率に依存します。 典型的なCDでは、減損は主に塵か傷です。
Cdは、クロスインターリーブリーブリードソロモン符号化を使用して、データをディスク上に分散させます。
あまり良いコードではありませんが、単純な繰り返しコードは理解できる例として役立ちます。 データビットのブロック(音を表す)を取り、それを3回送信するとします。 受信機では、3回の繰り返しを少しずつ調べ、多数決を行います。 この上のねじれは、我々は単に順番にビットを送信しないということです。 私たちはそれらをインターリーブします。 データビットのブロックは、最初に4つの小さなブロックに分割されます。 次に、ブロックを循環させ、最初のビットから1ビットを送信し、次に2番目のビットなどを送信します。 これは、ディスクの表面上にデータを広げるために三回行われます。 単純な繰り返しコードの文脈では、これは効果的ではないように見えるかもしれません。 しかし、このインターリーブ技術を使用する場合、スクラッチまたはダストスポットの”バースト”エラーを修正するのに非常に効果的な、より強力なコードが知られています。
他のコードは、異なるアプリケーションに適しています。 深宇宙通信は、バースト的な性質よりも連続的な性質の受信機の熱雑音によって制限される。 同様に、狭帯域モデムは、電話網に存在するノイズによって制限され、連続的な外乱としてよりよくモデル化されます。 携帯電話は急速な衰退に応じてあります。 使用される高周波数は、受信機が数インチ移動しても信号の急速なフェージングを引き起こす可能性があります。 ここでも、フェージングと戦うために設計されたチャネルコードのクラスがあります。
線形コード編集
代数符号化理論という用語は、符号の性質が代数的な用語で表現され、さらに研究される符号化理論のサブフィールドを意味します。
代数的符号化理論は、基本的にコードの2つの主要なタイプに分かれています:
- 線形ブロックコード
- 畳み込みコード
それは、コードの次の3つの特性を分析します–主に:
- コードワードの長さ
- 有効なコードワードの総数
- 主にハミング距離を使用して、二つの有効なコードワード間の最小距離、時にはリー距離のような他の距離
線形ブロックcodesEdit
線形ブロックコードは、線形性のプロパティを持っている、すなわち任意の二つのコードワードの合計もコードワードであり、それらは適用されますブロック内のソースビットに、したがって名前線形ブロックコード。 線形ではないブロックコードがありますが、このプロパティがなければコードが良いものであることを証明することは困難です。
線形ブロックコードは、シンボルアルファベット(バイナリまたは三項など)とパラメータ(n,m,dmin)によって要約されます。
- nはコードワードの長さ、シンボル単位、
- mは一度にエンコードに使用されるソースシンボルの数、
- dminはコードの最小ハミング距離です。
線形ブロックコードには、
- 巡回コードのような多くのタイプがあります(例: リード-ソロモン符号
- 代数幾何学符号
- リード–ミュラー符号
- 完璧な符号
ブロック符号は球パッキング問題に結びついており、長年にわたって注目されている。 二次元では、視覚化するのは簡単です。 テーブルの上に平らなペニーの束を取り、それらを一緒にプッシュします。 結果は蜂の巣のような六角形パターンです。 しかし、ブロックコードは、容易に視覚化することができないより多くの次元に依存しています。 深宇宙通信で使用される強力な(24,12)Golayコードは24次元を使用します。 バイナリコードとして使用される場合(通常はそうです)、次元は上で定義されたコードワードの長さを参照します。
符号化の理論は、N次元球面モデルを使用します。 例えば、どのように多くのペニーは、卓上上の円に詰めることができるか、または3次元で、どのように多くのビー玉は、地球儀に詰めることができます。 その他の考慮事項コードの選択を入力します。 たとえば、長方形のボックスの制約に六角形のパッキングは、コーナーに空きスペースを残します。 寸法が大きくなるにつれて、空のスペースの割合は小さくなります。 しかしある特定の次元で、パッキングはすべてのスペースを使用し、これらのコードはいわゆる”完全な”コードである。 唯一の自明で有用な完全符号は、(2r-1,2r–1–r,3)を満たすパラメータを持つ距離3ハミング符号、および二進および三進ゴレイ符号である。
別のコードプロパティは、単一のコードワードが持つ可能性のある近傍の数です。もう一度、例としてペニーを考えてみましょう。 まず、長方形のグリッドにペニーを詰めます。 各ペニーは、隣人の近くに4つ(そして遠く離れているコーナーに4つ)を持つことになります。 六角形では、各ペニーは6近くの隣人を持つことになります。 次元を大きくすると、近傍の数は非常に急速に増加します。 その結果、受信機が隣人を選択させるためのノイズの方法の数(したがってエラー)も増加します。 これはブロックコードの基本的な制限であり、実際にはすべてのコードです。 単一のネイバーにエラーを引き起こすのは難しいかもしれませんが、ネイバーの数は十分に大きくなる可能性があるため、実際には総エラー確率が低下します。
線形ブロック符号の特性は、多くのアプリケーションで使用されています。 例えば、線形ブロック符号のシンドローム-コセット一意性は、最もよく知られているシェーピング符号の一つであるトレリスシェーピングで使用される。
畳み込みcodesEdit
畳み込みコードの背後にあるアイデアは、すべてのコードワードシンボルをさまざまな入力メッセージシンボルの重み付けされた合計にすることです。 これは、入力とインパルス応答がわかっているときに、LTIシステムでシステムの出力を見つけるために使用される畳み込みのようなものです。
したがって、一般に、たたみ込み符号器、レジスタの状態に対する入力ビットのたたみ込みであるシステムたたみ込み符号器の出力を見つけます。
基本的に、たたみ込み符号は、同等のブロック符号よりもノイズに対する保護を提供しません。 多くの場合、それらは一般に、等しいパワーのブロックコードよりも実装のより単純さを提供する。 エンコーダは通常、状態メモリといくつかのフィードバックロジック、通常はXORゲートを持つ単純な回路です。 デコーダは、ソフトウェアまたはファームウェアで実装することができます。
ビタビアルゴリズムは、畳み込み符号を復号化するために使用される最適なアルゴリズムです。 計算負荷を軽減するための単純化があります。 彼らは最も可能性の高いパスのみを検索することに依存しています。 最適ではありませんが、一般的に低ノイズ環境で良好な結果をもたらすことが判明しています。畳み込みコードは、音声バンドモデム(V.32、V.17、V.34)およびGSM携帯電話、衛星および軍事通信デバイスで使用されます。