Main Content

BCH Encoder

バイナリ ベクトル データからの BCH 符号の作成

  • BCH Encoder block

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

説明

BCH Encoder ブロックはメッセージ長 K とコードワード長 (N – パンクチャの数) をもつ BCH 符号を作成します。

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

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

端子

入力

すべて展開する

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

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

出力

すべて展開する

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

データ型: 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 を含む要素インデックスは、データ ストリームからパンクチャされる、つまり削除されるデータ シンボル インデックスを表します。詳細については、短縮、パンクチャ、および消去を参照してください。

メモ

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

依存関係

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

ブロックの特性

データ型

Boolean | double | integer | single

多次元信号

なし

可変サイズの信号

なし

詳細

すべて展開する

ヒント

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

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

アルゴリズム

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

参照

[1] 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 より前に導入

参考

ブロック

オブジェクト

関数

トピック