Main Content

bchgenpoly

BCH 符号の生成多項式

構文

genpoly = bchgenpoly(n,k)
genpoly = bchgenpoly(n,k,prim_poly)
genpoly = bchgenpoly(n,k,prim_poly,outputFormat)
[genpoly,t] = bchgenpoly(...)

説明

genpoly = bchgenpoly(n,k) は、BCH 符号の狭義の生成多項式を返します。このコードの符号語長は n、メッセージ長は k です。符号語長 n は、3 から 16 までのある整数 m に対し 2m-1 の形式でなければなりません。出力 genpoly は生成多項式の係数を降べきの順に並べたガロア行ベクトルです。狭義の生成多項式は LCM[m_1(x), m_2(x), ..., m_2t(x)] です。ここで各項は以下のとおりです。

  • LCM は最小公倍数を表します。

  • m_i(x) は αi に対する最小多項式を表します。α は体 GF(n+1) の既定の原始多項式の根です。

  • t は符号の誤り訂正能力を表します。

メモ

関数 bchgenpoly は、GF(n+1) の中間計算を行いますが、最終多項式はバイナリ係数をもちます。bchgenpoly からの出力は、GF(n+1) ではなく GF(2) のガロア ベクトルです。

genpoly = bchgenpoly(n,k,prim_poly) は、上記構文と基本的に同じですが、prim_poly が Alpha を根としてもつ GF(n+1) の原始多項式を指定する点が異なります。prim_poly は、多項式の文字ベクトルまたはバイナリ表現が原始多項式の係数を降べきの順に並べた整数のいずれかです。GF(n+1) の既定の原始多項式を使用するには、prim_poly[] に設定します。

genpoly = bchgenpoly(n,k,prim_poly,outputFormat) は前の構文と基本的に同じですが、outputFormat が出力データ型を指定する点が異なります。outputFormat のとり得る値は 'gf' または 'double' で、それぞれガロア体と double データ型に対応しています。outputFormat の既定の値は 'gf' です。

[genpoly,t] = bchgenpoly(...) は、コードの誤り訂正能力である t を返します。

すべて折りたたむ

異なる原始多項式に基づいて 2 つの BCH 生成多項式を作成します。

符号語 n とメッセージの長さ k を設定します。

n = 15;
k = 11;

生成多項式を作成し、誤り訂正能力 t を返します。

[genpoly,t] = bchgenpoly(15,11)
 
genpoly = GF(2) array. 
 
Array elements = 
 
   1   0   0   1   1
t = 1

文字ベクトルで表される異なった原始多項式を使用して、(15,11) BCH 符号の生成多項式を作成します。genpoly2 は、既定の原始多項式を使用する genpoly とは異なることに注意してください。

genpoly2 = bchgenpoly(15,11,'D^4 + D^3 + 1')
 
genpoly2 = GF(2) array. 
 
Array elements = 
 
   1   1   0   0   1

制限

n の最大許容値は 65535 です。

参考文献

[1] Peterson, W. Wesley, and E. J. Weldon, Jr., Error-Correcting Codes, 2nd ed., Cambridge, MA, MIT Press, 1972.

拡張機能

バージョン履歴

R2006a より前に導入