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 ブロックの入力および出力信号長を参照してください。
例
リード・ソロモン (RS) 符号化と 2-FSK 変調を整数値信号に適用し、変調後の信号を AWGN チャネルに渡します。2-FSK 復調とバイナリ出力の RS 復号化を適用した後の信号のビット エラー レート (BER) を計算します。
cm_binary_input_rs_encoder_output_decoder
モデルには次のものが含まれています。
Random Integer Generatorブロック — 整数値信号を生成する
Data Type Conversion (Simulink)ブロック — データ型をエラー レートの計算に必要な型に変換する
Binary-Input RS Encoderブロック — 信号を RS 符号化する
M-FSK Modulator Basebandブロック — 信号を 2-FSK 変調する
AWGN Channelブロック — 信号にガウス ホワイト ノイズを付加する
M-FSK Demodulator Basebandブロック — 信号を 2-FSK 復調する
Binary-Output RS Decoderブロック — 信号を RS 復号化する
2 つの別個のError Rate Calculationブロック — RS 復号化前後の信号の誤り統計を計算する
復号化後および符号化後の誤り統計を比較し、受信信号に対する RS 符号化の誤り訂正の効果を示します。
For an AWGN channel with SNR = -2 dB, the computed error rates are: Decoded Encoded ________ _______ BER 0.000375 0.00235 Number of errors 18 141 Number of bits transmitted 48000 60000
端子
入力
ビット単位のメッセージ。次のいずれかとして指定します。
メッセージの短縮化を行わない場合は、(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)
出力
リード・ソロモン コードワード (ビット単位)。(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)
詳細については、サポートされているデータ型を参照してください。
パラメーター
ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。
シンボル内のコードワード長。整数として指定します。
詳細については、M およびコードワード長 N に関する制限事項とRS ブロックの入力および出力信号長を参照してください。
シンボル内のメッセージ語長。範囲 [1, N–2] の整数として指定します。ここで N はコードワード長です。
シンボル内の短縮メッセージ語長。S ≤ K となる整数として指定します。[Shortened message length S (symbols)] < [Message length K (symbols)] の場合、リード・ソロモン符号は短縮されます。
フルレングス (N, K) の符号で N および K の値を指定しても、復号化は (N–K+S, S) 符号に短縮されます。
依存関係
このパラメーターを有効にするには、[Specify shortened message length] を選択します。
降べきの順に並べた、値が 0 ~ 2M–1 の生成多項式。次のいずれかとして指定します。
多項式の文字ベクトル。詳細については、Communications Toolbox での多項式の表現を参照してください。
整数行ベクトル。降べきの順に並べた生成多項式の係数を表します。
整数ガロア行ベクトル。降べきの順に並べた生成多項式の係数を表します。
各係数は、原始多項式で定義されるガロア体の要素です。詳細については、生成多項式の指定を参照してください。
例: [1 3 1 2 3]
は、rsgenpoly(7,3)
と等価です。
依存関係
このパラメーターを有効にするには、[Specify generator polynomial] を選択します。
降べきの順に並べた原始多項式。この多項式は 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] を選択します。
パンクチャ ベクトル。(N–K) 行 1 列のバイナリ列ベクトルとして指定します。1
を含む要素インデックスは、ブロックを変更せずに通過するデータ "シンボル" インデックスを表します。0
を含む要素インデックスは、データ ストリームからパンクチャされる、つまり削除されるデータ "シンボル" インデックスを表します。詳細については、パンクチャおよび消去を参照してください。
依存関係
このパラメーターを有効にするには、[Puncture code] を選択します。
ブロックの出力型。[Same as input]
、[boolean]
または [double]
として指定します。
詳細
リード・ソロモン符号は、メッセージ語長が 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 に関する制限事項も参照してください。
[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 Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)