このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
Binary-Output RS Decoder
バイナリ ベクトル データを復元するためのリード・ソロモン符号の復号化

ライブラリ:
Communications Toolbox /
Error Detection and Correction /
Block
説明
Binary-Output RS Decoder ブロックは、バイナリ リード・ソロモン符号語ベクトルからバイナリ メッセージ ベクトルを復元します。適切に復号化するには、このブロックにあるパラメーター値が対応する Binary-Input RS Encoder ブロックのパラメーター値と一致しなければなりません。
この符号のシンボルは長さ M の 2 進シーケンスで、ガロア体の要素 GF(2M) に対応します。各シンボルの 1 番目のビットは、最上位のビットです。
次の図は、符号語長 N=7、メッセージ語長 K=2 の場合の復号化器の入出力語長を示しています。N=2M–1 であることから、N=7 であるとき、シンボル長 M=3 です。
各入力符号語は 7 つの 3 ビット整数を表す長さ 21 のバイナリ ベクトルです。対応する各出力メッセージ語は 2 つの 3 ビット整数を表す長さ 6 のバイナリ ベクトルです。詳細については、RS ブロックの入力および出力信号長を参照してください。
このアイコンには、オプションの端子を含むすべての端子が表示されています。
端子
入力
In — リード・ソロモン符号語
バイナリ列ベクトル
リード・ソロモン符号語 (ビット単位)。(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)
Era — 消去ベクトル
バイナリ列ベクトル
消去ベクトル (シンボル単位)。(NC×(N – K + S – P)) 行 1 列のバイナリ列ベクトルとして指定します。NC は符号語の数、N は [Codeword length N (symbols)]、K は [Message length K (symbols)]、S は [Shortened message length S (symbols)]、P は符号語あたりのパンクチャ数、M はシンボルあたりのビット数です。
1 の消去値は、符号語の同じ位置で消去されたビットに対応します。0 の値は消去されていない値に対応します。詳細については、パンクチャおよび消去を参照してください。
依存関係
この端子を有効にするには、[Enable erasures input port] を選択します。
データ型: double
| Boolean
出力
Out — 復号化されたメッセージ
バイナリ列ベクトル
ビット単位の復号化されたメッセージ。次のいずれかとして返されます。
メッセージの短縮化を行わない場合は、(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)
Err — 復号化誤り
整数ベクトル
シンボル復号化誤り。NC 個の要素をもつ整数ベクトルとして返されます。ここで、NC は符号語の数です。この端子は、各符号語の復号化時に検出されたシンボル誤り数を示します。負の整数は、ブロックが指定された符号化スキームを使用して訂正できるよりも多くの誤りを検出したことを示します。
メモ
(N,K) リード・ソロモン符号は、各符号語で floor((N-K)/2)
までのシンボル誤り (ビット誤りではない) を訂正します。受信符号語に (N-K)/2 より多いシンボル誤りがある場合、復号化失敗が発生します。
依存関係
この端子を有効にするには、[Output number of corrected symbol errors] を選択します。
データ型: double
詳細については、サポートされているデータ型を参照してください。
パラメーター
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
を含む要素インデックスは、データ ストリームからパンクチャされる、つまり削除されるデータ "シンボル" インデックスを表します。詳細については、パンクチャおよび消去を参照してください。
依存関係
このパラメーターを有効にするには、[Punctured code] を選択します。
Enable erasures input port — Enable erasures input port
off (既定値) | on
このチェック ボックスをオンにすると、消去端子 [Era] が有効になります。詳細については、パンクチャおよび消去を参照してください。
Output number of corrected symbol errors — 訂正されたシンボル誤り数を出力する端子の有効化
off (既定値) | on
このチェック ボックスをオンにすると、追加の出力端子 [Err] が有効になります。この端子は入力符号語で訂正されたブロックのシンボル誤り数を示します。
出力データ型 — ブロックの出力型
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 |
|
Era |
|
Err |
|
ペア ブロック
アルゴリズム
このブロックは、Berlekamp-Massey 復号化アルゴリズムを使用します。このアルゴリズムについての詳細は、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 より前に導入
参考
ブロック
オブジェクト
関数
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)