このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Binary-Input RS Encoder
バイナリ ベクトル データからのリード・ソロモン符号の作成

ライブラリ:
Communications Toolbox /
Error Detection and Correction /
Block
説明
Binary-Input RS Encoder ブロックは、リード・ソロモン符号を作成します。
この符号のシンボルは長さ M の 2 進シーケンスで、ガロア体の要素 GF(2M) に対応します。各シンボルの 1 番目のビットは、最上位のビットです。
M = 3、N = 23-1 = 7、および K = 2 であると仮定します。このときメッセージは、エントリを 0 から 7 の範囲の整数とする長さ 2 のベクトルです。対応する符号語は、エントリを 0 から 7 の範囲の整数とする長さ 7 のベクトルです。次の図は、符号語長 N=7、およびメッセージ語長 K=2 である場合の、このブロックで想定される入出力信号を示しています。N=2M–1 であることから、N=7 であるとき、シンボル長 M=3 です。
各入力メッセージ語は 2 つの 3 ビット整数を表す長さ 6 のバイナリ ベクトルです。対応する各出力符号語は 7 つの 3 ビット整数を表す長さ 21 のバイナリ ベクトルです。詳細については、RS ブロックの入力および出力信号長を参照してください。
端子
入力
In — メッセージ
バイナリ列ベクトル
ビット単位のメッセージ。次のいずれかとして指定します。
メッセージの短縮化を行わない場合は、(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)
出力
Out — リード・ソロモン符号語
バイナリ列ベクトル
リード・ソロモン符号語 (ビット単位)。(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)
詳細については、サポートされているデータ型を参照してください。
パラメーター
Codeword length N (symbols) — 符号語長
7
(既定値) | 整数
シンボル内の符号語長。整数として指定します。
詳細は、M および符号語長 N に関する制限事項とRS ブロックの入力および出力信号長を参照してください。
Message length K (symbols) — メッセージ語長
3
(既定値) | 整数
シンボル内のメッセージ語長。範囲 [1, N–2] の整数として指定します。ここで N は符号語長です。
Shortened message length S (symbols) — 短縮メッセージ語長
3
(既定値) | 整数
シンボル内の短縮メッセージ語長。S ≤ K となる整数として指定します。[Shortened message length S (symbols)] < [Message length K (symbols)] の場合、リード・ソロモン符号は短縮されます。
フルレングス (N, K) の符号で N および K の値を指定しても、復号化は (N–K+S, S) 符号に短縮されます。
依存関係
このパラメーターを有効にするには、[Specify shortened message length] を選択します。
Generator polynomial — 生成多項式
rsgenpoly(7, 3, [], [], 'double')
(既定値) | 多項式の文字ベクトル | バイナリ行ベクトル | バイナリ ガロア行ベクトル
降べきの順に並べた、値が 0 ~ 2M–1 の生成多項式。次のいずれかとして指定します。
多項式の文字ベクトル。詳細については、Communications Toolbox での多項式の表現を参照してください。
整数行ベクトル。降べきの順に並べた生成多項式の係数を表します。
整数ガロア行ベクトル。降べきの順に並べた生成多項式の係数を表します。
各係数は、原始多項式で定義されるガロア体の要素です。詳細については、生成多項式の指定を参照してください。
例: [1 3 1 2 3]
は、rsgenpoly(7,3)
と等価です。
依存関係
このパラメーターを有効にするには、[Specify generator polynomial] を選択します。
Primitive polynomial — 原始多項式
'X^3 + X + 1'
(既定値) | 多項式の文字ベクトル | バイナリ行ベクトル
降べきの順に並べた原始多項式。この多項式は M 次で、メッセージ語と符号語を形成する整数に対応する有限ガロア体 GF(2M) を定義します。原始多項式を次のいずれかとして指定します。
多項式の文字ベクトル。詳細については、Communications Toolbox での多項式の表現を参照してください。
バイナリ行ベクトル。生成多項式の係数を表します。
詳細については、M および符号語長 N に関する制限事項を参照してください。
例: 'X^3 + X + 1'
は、(7,3) 符号 ppoly = primpoly(3,'nodisplay'); int2bit(ppoly,ceil(log2(max(ppoly))))'
に使用される原始多項式です
依存関係
このパラメーターを有効にするには、[Specify primitive polynomial] を選択します。
Puncture vector — パンクチャ ベクトル
[ones(2,1); zeros(2,1)]
(既定値) | バイナリ列ベクトル
パンクチャ ベクトル。(N–K) 行 1 列のバイナリ列ベクトルとして指定します。1
を含む要素インデックスは、ブロックを変更せずに通過するデータ "シンボル" インデックスを表します。0
を含む要素インデックスは、データ ストリームからパンクチャされる、つまり削除されるデータ "シンボル" インデックスを表します。詳細については、パンクチャおよび消去を参照してください。
依存関係
このパラメーターを有効にするには、[Puncture code] を選択します。
出力データ型 — ブロックの出力型
Same as input
(既定値) | boolean
| double
ブロックの出力型。[Same as input]
、[boolean]
または [double]
として指定します。
詳細
RS ブロックの入力および出力信号長
リード・ソロモン符号は、メッセージ語長が K、または短縮メッセージ語長が S です。符号語長は N – K + S – P で、N は符号語のフルレングス、P は符号語あたりのパンクチャの数です。メッセージの短縮化を行わない場合は、K = S であるため、符号語長の式は N – P に短縮されます。復号化器がフレームごとに複数の符号語を処理する場合は、同じパンクチャ パターンがすべての符号語に適用されます。
この表では、リード・ソロモン符号化器および復号化器の入力および出力信号長の式を示します。
表記 y = NC × x は、y が x の整数倍であることを表します。
入力、消去、および出力ベクトル長 | ||
---|---|---|
RS ブロック コーダー | メッセージの短縮化の使用なし | メッセージの短縮化の使用あり |
Binary-Input RS Encoder | 入力長 (ビット): NC × K × M 出力長 (ビット): NC × (N–P) × M | 入力長 (ビット): NC × S × M 出力長 (ビット): NC × (N–K+S–P) × M |
Binary-Output RS Decoder | 入力長 (ビット): NC × (N–P) × M 消去長 (シンボル): NC × (N–P) 出力長 (ビット): NC × K × M | 入力長 (ビット): NC × (N–K+S–P) × M 消去長 (シンボル): NC × (N–K+S–P) 出力長 (ビット): NC × S × M |
N は符号語長です。
K はメッセージ語長です。
S は短縮メッセージ語長です。
NC は符号語 (およびメッセージ語) の数です。
P は符号語あたりのパンクチャの数で、パンクチャ ベクトルの 0 の数と等しくなります。
M は原始多項式の次数です。M ビットの各グループは、有限ガロア体
GF(2M)
に属する0
と2M–1
の間の整数を表します。
リード・ソロモン符号のデータ表現の詳細は、整数形式 (リード・ソロモンのみ)を参照してください。
M および符号語長 N に関する制限事項も参照してください。
M および符号語長 N に関する制限事項
[Specify primitive polynomial] を選択しない場合、符号語長 N の有効な値は 7 ~ 65535 です。この場合、ブロックは次数
M = ceil(log2(N+1))
の既定の原始多項式を使用します。primpoly(ceil(log2(N+1)))
を実行することにより、既定の原始多項式を表示することができます。[Specify primitive polynomial] を選択する場合、原始多項式の次数 M の有効な値は 3 ~ 16 です。この場合の N の有効な値は 7 ~ 2M–1 です。[Specify primitive polynomial] を選択すると、メッセージ語と符号語を形成する値に対応して、有限体 GF(2M) を定義する原始多項式を指定できます。
生成多項式の指定
リード・ソロモン符号の生成多項式を指定するには、[Specify generator polynomial] を選択して、[Generator polynomial] パラメーターを有効にします。0 から 2M-1 までの要素値をもつ整数行ベクトルを入力します。このベクトルは、係数が整数形式で表される GF(2M) の要素である多項式を降べきの順に表します。整数とバイナリ形式の詳細については、整数形式 (リード・ソロモンのみ)を参照してください。生成多項式は、次の因数分解形式で示される多項式と等しくなければなりません。
g(x) = (x+αb)(x+αb+1)(x+αb+2)...(x+αb+N-K-1)
α は入力メッセージが定義されるガロア体の原始元で、b は整数です。
[Specify generator polynomial] を選択しない場合、ブロックは、b= 1 に対応するリード・ソロモン符号化の既定の生成多項式を使用します。rsgenpoly
を実行することにより、既定の生成多項式を表示することができます。
既定の原始多項式を使用する ([Specify primitive polynomial] を選択しない) 場合、既定の生成多項式は
rsgenpoly(N,K)
で、ここではN = 2M-1
です。既定の原始多項式を使用しないで ([Specify primitive polynomial] を選択して) 原始多項式を
poly
として指定した場合、生成多項式はrsgenpoly(N,K,poly)
です。
メモ
生成多項式の次数は N − K で、ここで N は符号語長、K はメッセージ語長です。
パンクチャおよび消去
1
と 0
はパンクチャ ベクトルと消去ベクトルでは正反対の意味になります。
パンクチャ ベクトルでは、
1
は、データ シンボルがブロックを変更せずに通過することを意味します。0
は、データ シンボルがデータ ストリームからパンクチャ、つまり削除されることを意味します。
消去ベクトルでは、
1
は、データ シンボルが消去シンボルで置き換えられることを意味します。0
は、データ シンボルがブロックを変更せずに通過することを意味します。
これらの規則は符号化器と復号化器の両方に適用されます。詳細については、短縮、パンクチャ、および消去を参照してください。
サポートされているデータ型
端子 | サポートされているデータ型 |
---|---|
In |
|
Out |
|
ペア ブロック
アルゴリズム
このオブジェクトは、BCH と RS の誤りのみの復号化のアルゴリズムで説明されているアルゴリズム、入力および出力を実装しています。
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入
参考
ブロック
オブジェクト
関数
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)