最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

Binary-Output RS Decoder

バイナリ ベクトル データを復元するためのリード・ソロモン符号の復号化

  • ライブラリ:
  • Communications Toolbox / Error Detection and Correction / ブロック

説明

Binary-Output RS Decoder ブロックは、バイナリ リード・ソロモン符号語ベクトルからバイナリ メッセージ ベクトルを復元します。適切に復号化するには、このブロックにあるパラメーター値が対応する Binary-Input RS Encoder ブロックのパラメーター値と一致しなければなりません。

この符号のシンボルは長さ M の 2 進シーケンスで、ガロア体の要素 GF(2M) に対応します。各シンボルの 1 番目のビットは、最上位のビットです。

次の図は、符号語長 N=7、メッセージ語長 K=2 の場合の復号化器の入出力語長を示しています。N=2M–1 であることから、N=7 であるとき、シンボル長 M=3 です。

各入力符号語は 7 つの 3 ビット整数を表す長さ 21 のバイナリ ベクトルです。対応する各出力メッセージ語は 2 つの 3 ビット整数を表す長さ 6 のバイナリ ベクトルです。詳細については、RS ブロックの入力および出力信号長を参照してください。

このアイコンには、オプションの端子を含むすべての端子が表示されています。

端子

入力

すべて展開する

リード・ソロモン符号語 (ビット単位)。(NC×(N – K + S – P)×M) 行 1 列のバイナリ列ベクトルとして指定します。NC は符号語の数、N は [Codeword length N (symbols)]、K は [Message length K (symbols)]、S は [Shortened message length S (symbols)]、P は符号語あたりのパンクチャ数、M はシンボルあたりのビット数です。

詳細については、RS ブロックの入力および出力信号長を参照してください。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | boolean | ufix(1)

消去ベクトル (シンボル単位)。(NC×(N – K + S – P)) 行 1 列のバイナリ列ベクトルとして指定します。NC は符号語の数、N は [Codeword length N (symbols)]、K は [Message length K (symbols)]、S は [Shortened message length S (symbols)]、P は符号語あたりのパンクチャ数、M はシンボルあたりのビット数です。

1 の消去値は、符号語の同じ位置で消去されたビットに対応します。0 の値は消去されていない値に対応します。詳細については、パンクチャおよび消去を参照してください。

依存関係

この端子を有効にするには、[Enable erasures input port] を選択します。

データ型: double | boolean

出力

すべて展開する

ビット単位の復号化されたメッセージ。次のいずれかとして返されます。

  • 短縮されたメッセージがない場合は、(NC×K×M) 行 1 列のバイナリ列ベクトル。

  • 短縮されたメッセージがある場合は、(NC×S×M) 行 1 列のバイナリ列ベクトル。

NC はメッセージ語の数、K は [Message length K (symbols)]、M はシンボルあたりのビット数、S は [Shortened message length S (symbols)] です。

メモ

復号化されたメッセージ語の数は、符号語の数と等しくなります。

詳細については、RS ブロックの入力および出力信号長を参照してください。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | boolean | ufix(1)

シンボル復号化誤り。NC 個の要素をもつ整数ベクトルとして返されます。ここで、NC は符号語の数です。この端子は、各符号語の復号化時に検出されたシンボル誤り数を示します。負の整数は、ブロックが指定された符号化スキームを使用して訂正できるよりも多くの誤りを検出したことを示します。

メモ

(N,K) リード・ソロモン符号は、各符号語で floor((N-K)/2) までのシンボル誤り (ビット誤りではない) を訂正します。受信符号語に (N-K)/2 より多いシンボル誤りがある場合、復号化失敗が発生します。

依存関係

この端子を有効にするには、[Output number of corrected symbol errors] を選択します。

データ型: double

詳細については、サポートされているデータ型を参照してください。

パラメーター

すべて展開する

シンボル内の符号語長。整数として指定します。

詳細は、M と符号語長 N の制限RS ブロックの入力および出力信号長を参照してください。

シンボル内のメッセージ語長。範囲 [1, N–2] の整数として指定します。ここで N は符号語長です。

シンボル内の短縮メッセージ語長。S ≤ K となる整数として指定します。[Shortened message length S (symbols)] < [Message length K (symbols)] の場合、リード・ソロモン符号は短縮されます。

フルレングス (N, K) の符号で N および K の値を指定しても、復号化は (N–K+S, S) 符号に短縮されます。

依存関係

このパラメーターを有効にするには、[Specify shortened message length] を選択します。

降べきの順に並べた、値が 0 ~ 2M–1 の生成多項式。次のいずれかとして指定します。

  • 多項式の文字ベクトル。詳細については、多項式の文字表現を参照してください。

  • 整数行ベクトル。降べきの順に並べた生成多項式の係数を表します。

  • 整数ガロア行ベクトル。降べきの順に並べた生成多項式の係数を表します。

各係数は、原始多項式で定義されるガロア体の要素です。詳細については、生成多項式の指定を参照してください。

例: [1 3 1 2 3] は、rsgenpoly(7,3) と等価です。

依存関係

このパラメーターを有効にするには、[Specify generator polynomial] を選択します。

降べきの順に並べた原始多項式。この多項式は M 次で、メッセージ語と符号語を形成する整数に対応する有限ガロア体 GF(2M) を定義します。原始多項式を次のいずれかとして指定します。

  • 多項式の文字ベクトル。詳細については、多項式の文字表現を参照してください。

  • バイナリ行ベクトル。生成多項式の係数を表します。

詳細については、M と符号語長 N の制限を参照してください。

例: 'X^3 + X + 1' は、(7,3) 符号 de2bi(primpoly(3,'nodisplay'),'left-msb') に使用される原始多項式です。

依存関係

このパラメーターを有効にするには、[Specify primitive polynomial] を選択します。

パンクチャ ベクトル。(N–K) 行 1 列のバイナリ列ベクトルとして指定します。1 を含む要素インデックスは、ブロックを変更せずに通過するデータ "シンボル" インデックスを表します。0 を含む要素インデックスは、データ ストリームからパンクチャされる、つまり削除されるデータ "シンボル" インデックスを表します。詳細については、パンクチャおよび消去を参照してください。

依存関係

このパラメーターを有効にするには、[Punctured code] を選択します。

このチェック ボックスをオンにすると、消去端子 [Era] が有効になります。詳細については、パンクチャおよび消去を参照してください。

このチェック ボックスをオンにすると、追加の出力端子 [Err] が有効になります。この端子は入力符号語で訂正されたブロックのシンボル誤り数を示します。

ブロックの出力型。[Same as input][boolean] または [double] として指定します。

ブロックの特性

データ型

boolean | double | fixed point[a] | 整数 | single

多次元信号

no

可変サイズの信号

no

[a] ufix(1) のみ。

詳細

すべて展開する

アルゴリズム

このブロックは、Berlekamp-Massey 復号化アルゴリズムを使用します。このアルゴリズムについての詳細は、BCH と RS の誤りのみの復号化のアルゴリズムを参照してください。

参照

[1] Wicker, Stephen B. Error Control Systems for Digital Communication and Storage. Upper Saddle River, NJ: Prentice Hall, 1995.

[2] Berlekamp, Elwyn R. Algebraic Coding Theory. New York: McGraw-Hill, 1968.

[3] Clark, George C., Jr., and J. Bibb Cain. Error-Correction Coding for Digital Communications. New York: Plenum Press, 1981.

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

R2006a より前に導入