デジタル通信-エラー制御コーディング
信号の主な問題はノイズまたはエラーであり、通信システムの信頼性を損ないます。 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。
巡回符号はエラー訂正に使用されます。これらは主に、ダブルエラーとバーストエラーを修正するために使用されます。
したがって、これらは受信機で検出されるいくつかのエラー訂正コードです。これらのコードは、エラーが発生するのを防ぎ、通信を妨害します。また、不要な受信機が信号を盗聴するのを防ぎます。これを実現するためのシグナリング手法のクラスがあり、次の章で説明します。