Integer-Input RS Encoder
リード・ソロモン符号の整数ベクトル データからの作成
ライブラリ:
Communications Toolbox /
Error Detection and Correction /
Block
説明
Integer-Input RS Encoder ブロックはリード・ソロモン符号を作成します。
コードのシンボルは 0 と 2M-1 の間の整数で、有限体 GF(2M) の要素を示します。M の既定値は log2(N+1) 以上で最も小さい整数、すなわち ceil(log2(N+1))
です。原始多項式の指定に後述されているように、GF(2M) の原始多項式を指定することにより、M の既定値を変更できます。M と N に関する制限事項については、M とコードワード長 N の制限を参照してください。
入力と出力は、メッセージとコードワードをそれぞれ示す整数値信号です。詳細については、RS ブロックの入力および出力信号長を参照してください。
(N,K) リード・ソロモン符号は、各コードワードで floor((N-K)/2)
までのシンボル誤り (ビット誤りではない) を訂正します。
M = 3、N = 23-1 = 7、および K = 5 であると仮定します。このときメッセージは、エントリを 0 から 7 の範囲の整数とする長さ 5 のベクトルです。対応するコードワードは、エントリを 0 から 7 の範囲の整数とする長さ 7 のベクトルです。次の図は、[Codeword length N] を 7
、[Message length K] を 5
に設定し、既定の原始多項式および生成多項式を使用した場合の、このブロックに使用できる入出力信号を示しています。
端子
入力
In — メッセージ
整数列ベクトル
メッセージ。次のいずれかを指定します。
メッセージの短縮化を行わない場合は、(NC×K) 行 1 列の整数列ベクトル。
メッセージの短縮化を行う場合は、(NC×S) 行 1 列の整数列ベクトル。
NC はメッセージ語の数、K は [Message length K]、S は [Shortened message length S] です。
メモ
復号化されたメッセージ語の数は、コードワードの数と等しくなります。
詳細については、RS ブロックの入力および出力信号長を参照してください。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
出力
Out — リード・ソロモン コードワード
整数列ベクトル
リード・ソロモン コードワード。(NC×(N – K + S – P) 行 1 列の整数列ベクトルとして返されます。NC はコードワードの数、N は [Codeword length N]、K は [Message length K]、S は [Shortened message length S]、P はコードワードあたりのパンクチャの数です。
詳細については、RS ブロックの入力および出力信号長を参照してください。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
詳細については、サポートされているデータ型を参照してください。
パラメーター
Codeword length N — コードワード長
7
(既定値) | 整数
コードワード長。整数で指定します。
詳細については、M とコードワード長 N の制限とRS ブロックの入力および出力信号長を参照してください。
Message length K — メッセージ語長
3
(既定値) | 整数
メッセージ語長。範囲 [1, N–2] の整数として指定します。ここで N はコードワード長です。
Shortened message length S — 短縮メッセージ語長
3
(既定値) | 整数
短縮メッセージ語長。S ≤ K となる整数として指定します。[Shortened message length S] < [Message length K] の場合、リード・ソロモン符号は短縮されます。
フルレングス (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 での多項式の表現を参照してください。
バイナリ行ベクトル。生成多項式の係数を表します。
詳細については、原始多項式の指定を参照してください。
例: '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]。
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
詳細
RS ブロックの入力および出力信号長
リード・ソロモン符号は、メッセージ語長が K、または短縮メッセージ語長が S です。コードワード長は N – K + S – P で、N はフル コードワード長、P はコードワードあたりのパンクチャの数です。メッセージの短縮化を行わない場合は、K = S であるため、コードワード長の式は N – P に短縮されます。復号化器がフレームごとに複数のコードワードを処理する場合は、同じパンクチャ パターンがすべてのコードワードに適用されます。
この表では、リード・ソロモン符号化器および復号化器の入力および出力信号長の式を示します。
表記 y = NC × x は、y が x の整数倍であることを表します。
入力、消去、および出力ベクトル長 | ||
---|---|---|
RS ブロック コーダー | メッセージの短縮化の使用なし | メッセージの短縮化の使用あり |
Integer-Input RS Encoder | 入力長 (シンボル): NC × K 出力長 (シンボル): NC × (N–P) | 入力長 (シンボル): NC × S 出力長 (シンボル): NC × (N–K+S–P) |
Integer-Output RS Decoder | 入力長 (シンボル): NC × (N–P) 消去長 (シンボル): NC × (N–P) 出力長 (シンボル): NC × K | 入力長 (シンボル): NC × (N–K+S–P) 消去長 (シンボル): NC × (N–K+S–P) 出力長 (シンボル): NC × S |
N はコードワード長です。
K はメッセージ語長です。
S は短縮メッセージ語長です。
NC はコードワード (およびメッセージ語) の数です。
P はパンクチャの数で、パンクチャ ベクトルの 0 の数と等しくなります。
M は原始多項式の次数です。M ビットの各グループは、有限ガロア体
GF(2M)
に属する0
と2M–1
の間の整数を表します。
リード・ソロモン符号のデータ表現の詳細については、整数形式 (リード・ソロモンのみ)を参照してください。
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) を定義する原始多項式を指定できます。
原始多項式の指定
メッセージとコードワードを形成する整数に対応して、有限体 GF(2M) を定義する原始多項式を指定できます。これを行うには、まず [Specify primitive polynomial] を選択します。次に、[Primitive polynomial] テキスト ボックスに、降べきの順に GF(2M) 上の原始多項式を示すバイナリ行ベクトルを入力します。たとえば、多項式 x3+x+1 を指定するには、ベクトル [1 0 1 1]
を入力します。
[Specify primitive polynomial] を選択しない場合、ブロックは、次数 M = ceil(log2(N+1)) の既定の原始多項式を使用します。MATLAB® プロンプトで primpoly(ceil(log2(N+1)))
と入力することにより、既定の多項式を表示することができます。
生成多項式の指定
リード・ソロモン符号の生成多項式を指定するには、[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)