ドキュメンテーション

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

BCH Decoder

BCH 符号を復号化してバイナリ ベクトル データを復元する

ライブラリ

Error Correction and Detection の Block サブライブラリ

説明

BCH Decorder ブロックは、バイナリ BCH 符号語ベクトルからバイナリ メッセージ ベクトルを復元します。適切に復号化するには、このブロックの最初の 2 つのパラメーター値が対応する BCH Encoder ブロックのパラメーターと一致しなければなりません。

N と K のフルレングスの値は、有効な狭義の BCH 符号を生成しなければなりません。

復号器がフレームごとに複数の符号語を処理する場合は、同じパンクチャ パターンがすべての符号語に適用されます。

所定の符号語長 N では、BCH 符号に対して特定のメッセージ長 K のみが有効です。フルレングスの BCH 符号の場合、N は 2M-1 の形にしなければならず、この場合 3M16 になります。

符号語長、メッセージ長、および誤り訂正能力間の関係を記述する既知の解析式はありません。511 までの N の値に対応する K のいくつかの有効な値のリストは、BCH Encoder のリファレンス ページの表を参照してください。

テキスト ボックスは、対応するチェック ボックスを選択すると表示され、それぞれ短縮メッセージ長、原始多項式および生成多項式が指定できます。

ブロックからエラー情報を出力するには、[Output number of corrected errors] を選択します。このオプションを選択すると 2 番目の出力端子が作成され、これによって符号語の復号化中に検出された誤り数が出力されます。負の整数は、ブロック符号化スキームを使用して訂正できるよりも多くの誤りを検出したことを示します。

復号化失敗の場合、復号器入力のメッセージ部が変更されずにそのまま復号器出力として返されます。

すべての入力および出力信号のサンプル時間は等しくなります。

各ブロックの端子でサポートされるデータ型については、このページのサポートされているデータ型の表を参照してください。

パンクチャド コード

このブロックは、[Punctured code] が選択されている場合にパンクチャをサポートします。この選択により [Puncture vector] パラメーターが有効になり、パンクチャ パターンを指定する 2 値ベクトルが取り込まれます。パンクチャ ベクトルでは 1 は、データ シンボルが無変更で通過することを示し、0 は、データ シンボルがデータ ストリームからパンクチャされる、あるいは削除されることを示します。この規則は符号器と復号器の両方に適用されます。詳細は、「短縮、パンクチャ、および消去」を参照してください。

    メモ:   10 はパンクチャ ベクトルと消去ベクトルでは正反対の意味になります。消去ベクトルの場合、1 はデータ シンボルが消去シンボルに置き換えられることを意味し、0 はデータ シンボルが変更されずに渡されることを意味します。この規則は符号器と復号器の両方に適用されます。

BCH および RS ブロックの入出力信号長

表記 y = c * x は、yx の整数倍であることを表します。

"パンクチャ数" の値は、パンクチャ ベクトルの 0 の数と等しくなります。

M は原始多項式の次数です。M ビットの各グループは、有限ガロア体 GF(2M) に属する 02M–1 の間の整数を表します。

短縮メッセージ長を指定

BCH Encoder

Integer-Input RS Encoder

BCH Decoder

Integer-Output RS Decoder

Binary-Input RS Encoder

Binary-Output RS Decoder

off

Input Length:

c * Message length

Output Length:

c * (Codeword length – number of punctures)

Input Length:

c * (Codeword length – number of punctures)

Output Length:

c * Message length

Erasures Length:

c * ( Codeword length – number of punctures)

Input Length:

c * (Message length * M)

Output Length:

c * (( Codeword length – number of punctures) * M)

Input Length:

c * ( (Codeword length – number of punctures) * M)

Output Length:

c * (Message length * M)

Erasures Length:

c * (Codeword length – number of punctures)

on

Input Length:

c * Shortened message length

Output Length:

c * (Codeword length - Message length + Shortened message length - number of punctures)

Input Length:

c * (Codeword length - Message length + Shortened message length - number of punctures)

Output Length:

c * Shortened message length

Erasures Length:

c * (Codeword length - Message length + Shortened message length - number of punctures)

Input Length:

c * (Shortened message length * M)

Output Length:

c * ( (Codeword length - Message length + Shortened message length - number of punctures) * M)

Input Length:

c * ((Codeword length - Message length + Shortened message length - number of punctures) * M)

Output Length:

c * (Shortened message length * M)

Erasures Length:

c * (Codeword length - Message length + Shortened message length - number of punctures)

ダイアログ ボックス

Codeword length, N

符号語長。

Message length, K

メッセージ長。

Specify shortened message length

このチェック ボックスをオンにすると、[Shortened message length, S] テキスト ボックスが有効になります。

Shortened message length, S

短縮メッセージ長。このパラメーターを指定する場合は、フルレングスの N および K の値を入力して (N–K+S,S) コードに短縮されている (N,K) コードを指定します。

Specify generator polynomial

このチェック ボックスをオンにすると、[Generator polynomial] テキスト ボックスが有効になります。

Generator polynomial

生成多項式を「文字列」または降べきの順のバイナリ係数で表す行ベクトル。

[Generator polynomial] の長さは NK+1 でなければなりません。

このフィールドは既定の設定では 'X^10 + X^8 + X^5 + X^4 + X^2 + X + 1' になりますが、これは bchgenpoly(15,5) と等価です。

このパラメーターは、[Specify generator polynomial] を選択する場合にのみ、表示されます。

Disable generator polynomial checking

モデルを初期化するたびに、このブロックは多項式のチェックを実行します。このチェックにより、X N + 1 がユーザー定義の生成多項式で割り切れることが確認されます。ここで N は、フル符号語長を表します。このチェック ボックスをオンにすると、多項式チェックが無効になります。大きいコードの場合、このチェック ボックスをオフにすると、シミュレーション プロセスが高速化されます。この機能を無効にする前に、必ず 1 回以上チェックを実行しなければなりません。

このチェック ボックスは、[Specify generator polynomial] を選択する場合にのみ、表示されます。

Specify primitive polynomial

このチェック ボックスをオンにすると、[Primitive polynomial] テキスト ボックスが有効になります。

Primitive polynomial

原始多項式の係数を降べきの順に並べたバイナリ係数を表す行ベクトルです。

このフィールドは既定の設定では、'X^4 + X + 1' になります。これは (15,5) 符号 de2bi(primpoly(4,'nodisplay'),'left-msb') に使用される原始多項式です。

このパラメーターは、[Specify primitive polynomial] を選択する場合にのみ、表示されます。

Puncture code

このチェック ボックスをオンにすると、[Puncture vector] テキスト ボックスが有効になります。

Puncture vector

このパラメーターは、[Puncture code] を選択する場合にのみ、表示されます。

長さ NK の列ベクトル。[Puncture vector] では、値 1 は、データ シンボルが無変更で通過することを示し、0 はデータ シンボルがデータ ストリームからパンクチャされる、あるいは削除されることを示します。

既定値は [ones(8,1); zeros(2,1)] です。

Enable erasures input port

このチェック ボックスをオンにすると、消去端子 Era が開きます。

この端子により、符号語入力と同じサイズのバイナリ列ベクトルを入力できます。

1 の消去値は、符号語の同じ位置で消去されたビットに対応します。0 の値は消去されていない値に対応します。

Output number of corrected errors

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

サポートされているデータ型

端子サポートされているデータ型
In
  • 倍精度浮動小数点

  • 単精度浮動小数点

  • boolean

  • 8、16、32 ビット符号付き整数

  • 8、16、32 ビット符号なし整数

Out
  • 倍精度浮動小数点

  • 単精度浮動小数点

  • boolean

  • 8、16、32 ビット符号付き整数

  • 8、16、32 ビット符号なし整数

Era
  • 倍精度浮動小数点

  • boolean

Err
  • 倍精度浮動小数点

  • 単精度浮動小数点

  • boolean

  • 8、16、32 ビット符号付き整数

  • 8、16、32 ビット符号なし整数

ペア ブロック

BCH Encoder

アルゴリズム

このオブジェクトは、「BCH と RS の誤りのみの復号化のアルゴリズム」で説明されているアルゴリズム、入力および出力を実装しています。

参照

[1] Wicker, Stephen B., Error Control Systems for Digital Communication and Storage, Upper Saddle River, N.J., 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.

R2006a より前に導入

この情報は役に立ちましたか?