Main Content

BCH Decoder

BCH 符号の復号化によるバイナリ ベクトル データの復元

  • BCH Decoder block

ライブラリ:
Communications Toolbox / Error Detection and Correction / Block

説明

BCH Decoder ブロックは、バイナリ BCH コードワード ベクトルからバイナリ メッセージ ベクトルを復元します。適切に復号化するには、このブロックの [Codeword length, N] および [Message length, K] パラメーター値が対応する BCH Encoder ブロックのパラメーターと一致しなければなりません。N と K のフルレングスの値は、有効な狭義の BCH 符号を生成しなければなりません。

符号化器がフレームごとに複数のコードワードを処理する場合は、同じパンクチャ パターンがすべてのコードワードに適用されます。入力および出力信号長は、BCH ブロックの入力および出力信号長にリストされています。

有効な N 値、有効な (N,K) ペア、および与えられた BCH 符号の誤り訂正能力に関する情報については、ヒントを参照してください。

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

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

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

端子

入力

すべて展開する

符号化されたメッセージ。バイナリ列ベクトルとして指定します。符号化されたメッセージは、メッセージ長 K とコードワード長 (N – パンクチャの数) をもつ BCH 符号です。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean

消去ベクトル。In と同じ長さのバイナリ列ベクトルとして指定します。1 の消去値は、コードワードの同じ位置で消去されたビットに対応します。0 の値は消去されていない値に対応します。

依存関係

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

データ型: double | Boolean

出力

すべて展開する

復号化されたメッセージ。[Message length, K] の整数倍の要素、符号が短縮形の場合は [Shortened message length, S] 個の要素をもつバイナリ列ベクトル入力信号として返されます。入力要素の各グループは、復号化する 1 コードワードを表します。入力および出力信号長は、BCH ブロックの入力および出力信号長の表にリストされています。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean

復号化誤り。コードワードの復号化中に検出された誤り数を示す整数ベクトルとして返されます。負の整数は、ブロックが符号化スキームを使用して訂正できるよりも多くの誤りを検出したことを示します。

依存関係

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

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean

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

パラメーター

すべて展開する

コードワード長。形式 N = 2M–1 の整数として指定します。ここで M は 3 ~ 16 の整数です。詳細については、ヒントを参照してください。

メッセージ長。整数で指定します。(N, K) ペアは、狭義の BCH 符号を生成しなければなりません。

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

依存関係

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

生成多項式。次のいずれかとして指定します。

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

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

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

例: 'X^10 + X^8 + X^5 + X^4 + X^2 + X + 1' は、bchgenpoly(15,5) と等価です。

依存関係

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

降べきの順に並べた原始多項式。有限ガロア体 GF(2) を定義する、M 次多項式で、次のいずれかとして指定します。

例: 'X^4 + X + 1' は、(15,5) 符号 ppoly = primpoly(4,'nodisplay'); int2bit(ppoly,ceil(log2(max(ppoly))))' に使用される原始多項式です

依存関係

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

生成多項式チェックを無効にする場合に、このパラメーターを選択します。

モデルを初期化するたびに、このブロックは多項式のチェックを実行します。このチェックにより、X N + 1 が指定された生成多項式で割り切れることが確認されます。ここで N は、フル コードワード長を表します。大きいコードの場合、このチェック ボックスをオフにすると、シミュレーション プロセスが高速化されます。

ヒント

この機能を無効にする前に、常に 1 回以上チェックを実行してください。

依存関係

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

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

依存関係

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

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

この端子によって、コードワード入力の 1/M 倍の長さのバイナリ列ベクトルを入力できます。

1 の消去値はビットパックされたコードワード内の同じ位置にある消去されたシンボルに対応します。0 の値は消去されないシンボルに対応します。詳細については、パンクチャおよび消去を参照してください。

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

ブロックの特性

データ型

Boolean | double | integer | single

多次元信号

なし

可変サイズの信号

なし

詳細

すべて展開する

ヒント

  • 有効な (N,K) ペアと誤り訂正能力の対応する値の一覧を生成するには、bchnumerr(N) を実行します。

  • 有効な値は N = 2M–1 です。ここで、M は 3 ~ 16 の整数です。N の最大許容値は 65,535 です。

アルゴリズム

このブロックは、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 より前に導入

参考

ブロック

オブジェクト

関数

トピック