デジタル通信-エラー制御コーディング

信号の主な問題はノイズまたはエラーであり、通信システムの信頼性を損ないます。 Error control codingエラーの発生を制御するために行われるコーディング手順です。これらの手法は、エラー検出とエラー訂正に役立ちます。

それらに適用される数学的原理に応じて、多くの異なるエラー訂正コードがあります。しかし、歴史的に、これらのコードは次のように分類されてきましたLinear block codes そして Convolution codes

線形ブロックコード

線形ブロックコードでは、パリティビットとメッセージビットの組み合わせは線形です。つまり、結果のコードワードは任意の2つのコードワードの線形結合になります。

を含むデータのいくつかのブロックを考えてみましょう k各ブロックのビット。これらのビットは、n各ブロックのビット。ここにn より大きい k。送信機は冗長ビットを追加します。(n-k)ビット。比率k/n それは code rate。それはによって示されますr との値 r です r < 1

ザ・ (n-k) ここに追加されたビットは parity bits。パリティビットは、エラー検出とエラー訂正、およびデータの検索に役立ちます。送信されるデータでは、コードワードの左端のビットがメッセージビットに対応し、コードワードの右端のビットがパリティビットに対応します。

体系的なコード

線形ブロックコードは、変更されるまで体系的なコードにすることができます。したがって、変更されていないブロックコードは、systematic code

以下はの表現です structure of code word、割り当てに応じて。

メッセージが変更されていない場合、それは体系的なコードと呼ばれます。つまり、データの暗号化によってデータが変更されてはなりません。

畳み込みコード

これまでのところ、線形コードでは、体系的な変更されていないコードが好ましいと説明してきました。ここでは、合計のデータn 送信された場合のビット、 k ビットはメッセージビットであり、 (n-k) ビットはパリティビットです。

エンコードの過程で、データ全体からパリティビットが差し引かれ、メッセージビットがエンコードされます。ここで、パリティビットが再び追加され、データ全体が再びエンコードされます。

次の図は、情報の送信に使用されるデータのブロックとデータのストリームの例を引用しています。

上記のプロセス全体は面倒であり、欠点があります。システムがビジー状態の場合、ここではバッファの割り当てが主な問題になります。

この欠点は、畳み込み符号で解消されます。データのストリーム全体にシンボルが割り当てられてから送信されます。データはビットストリームであるため、ストレージ用のバッファは必要ありません。

ハミングコード

コードワードの線形性は、2つのコードワードの合計もコードワードであるということです。ハミングコードは次のタイプですlinear error correcting 最大2ビットのエラーを検出できるコード、または未修正のエラーを検出せずに1ビットのエラーを修正できるコード。

ハミングコードを使用している間、追加のパリティビットはシングルビットエラーを識別するために使用されます。1ビットパターンから別のビットパターンに移行するには、データ内のいくつかのビットを変更する必要があります。このようなビット数は、次のように呼ぶことができます。Hamming distance。パリティの距離が2の場合、1ビットの反転を検出できます。しかし、これは修正できません。また、2ビットの反転は検出できません。

ただし、ハミングコードは、エラーの検出と訂正において前述の手順よりも優れた手順です。

BCHコード

BCHコードは発明者にちなんで名付けられています Bose、 Cハウダリと Hocquenghem。BCHコードの設計時には、修正するシンボルの数を制御できるため、複数ビットの修正が可能です。BCHコードは、エラー訂正コードの強力な手法です。

正の整数の場合 m ≥ 3 そして t < 2m-1BCHバイナリコードが存在します。以下は、そのようなコードのパラメーターです。

ブロック長 n = 2m-1

パリティチェックディジットの数 n - k ≤ mt

最小距離 dmin ≥ 2t + 1

このコードは次のように呼び出すことができます t-error-correcting BCH code

巡回符号

コードワードの循環特性は、コードワードの循環シフトもコードワードであるということです。巡回コードは、この巡回特性に従います。

線形コードの場合 C、すべてのコードワード、すなわち、 C = (C1, C2, ...... Cn)Cからはコンポーネントの周期的な右シフトがあり、コードワードになります。この右シフトはに等しいn-1周期的な左シフト。したがって、どのシフトでも不変です。したがって、線形コードC、どのシフトでも不変であるため、次のように呼び出すことができます。 Cyclic code

巡回符号はエラー訂正に使用されます。これらは主に、ダブルエラーとバーストエラーを修正するために使用されます。

したがって、これらは受信機で検出されるいくつかのエラー訂正コードです。これらのコードは、エラーが発生するのを防ぎ、通信を妨害します。また、不要な受信機が信号を盗聴するのを防ぎます。これを実現するためのシグナリング手法のクラスがあり、次の章で説明します。