このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
TPC Decoder
ターボ積符号 (TPC) 復号化器
ライブラリ:
Communications Toolbox /
Error Detection and Correction /
Block
説明
TPC Decoder ブロックは、Chase-Pyndiah アルゴリズムを使用して、積符号に対応する軟入力 LLR の 2 次元ターボ積符号 (TPC) 復号化を実行します。積符号は線形ブロック符号の 2 次元の連結です。線形ブロック符号は、2 つの誤りを訂正できるパリティ チェック符号、ハミング符号、または BCH 符号の可能性があります。拡張符号と短縮符号は、各次元で独立して適用することができます。2 次元 TPC 復号化の詳細については、ターボ積符号の復号化を参照してください。
有効な符号ペアと各符号ペアの誤り訂正能力の詳細については、コンポーネント符号ペアを参照してください。
例
端子
入力
In — 対数尤度比
列ベクトル
対数尤度比。列ベクトルとして指定します。
フルレングスの入力メッセージでは、列ベクトルの長さは、Number of rows in code, Nr と Number of columns in code, Nc の積です。
短縮形の入力メッセージでは、列ベクトルの長さは、(NR–KR+SR) および (NC–KC+SC) の積です。ここで、
NR は Number of rows in code, Nr の値です。
KR は Number of rows in message, Kr の値です。
SR は Number of rows in shortened message, Sr の値です。
NC は Number of columns in code, Nc の値です。
KC は Number of columns in message, Kc の値です。
SC は Number of columns in shortened message, Sc の値です。
データ型: double
| single
出力
Out — TPC 復号化されたメッセージ
列ベクトル
TPC 符号化されたメッセージ。バイナリ値の列ベクトルとして返されます。
フルレングスの入力メッセージでは、列ベクトルの長さは、Number of rows in message, Kr と Number of columns in message, Kc の積です。
短縮形の入力メッセージでは、列ベクトルの長さは、Number of rows in shortened message, Sr と Number of columns in shortened message, Sc の積です。
データ型: Boolean
Iter — 復号化の実際の反復回数
正の整数
復号化の実際の反復回数。正の整数として返されます。
依存関係
この端子を有効にするには、Output number of iterations executed を選択します。
データ型: double
パラメーター
Extended codes — TPC の行パラメーターの拡張符号インジケーター
on
(既定値) | off
Extended codes を選択すると、Number of rows in code, Nr と Number of rows in message, Kr の一覧には、拡張された個々の符号ペア (NR,KR) の有効な値が含まれます。
Extended codes をクリアすると、Number of rows in code, Nr と Number of rows in message, Kr の一覧には、拡張されていない個々の符号ペア (NR,KR) の有効な値が含まれます。
Number of rows in code, Nr — 積の符号行列の行数
16
(既定値) | 整数
積の符号行列 NR の行数。整数値の一覧は、Extended codes の設定によって異なります。
Number of rows in message, Kr — メッセージ行列の行数
11
(既定値) | 整数
メッセージ行列 KR の行数。整数値の一覧は、Extended codes および Number of rows in code, Nr の設定によって異なります。
Specify shortened message length — 行の短縮メッセージ長の指定
off
(既定値) | on
[Specify shortened message length] を選択して、Number of rows in shortened message, Sr の値を指定します。
Number of rows in shortened message, Sr — 短縮メッセージ行列の行数
9
(既定値) | 整数
短縮メッセージ行列 SR の行数。KR 以下の整数として指定します。このパラメーターを指定する場合は、フルレングスの NR および KR の値を入力して (NR,KR) 符号ペアを指定します。この符号ペアは、(NR–KR+SR,SR) 符号ペアに短縮されます。ここで、
NR は Number of rows in code, Nr の値です。
KR は Number of rows in message, Kr の値です。
SR は Number of rows in shortened message, Sr の値です。
依存関係
このパラメーターを有効にするには、Specify shortened message length を選択します。
Extended codes — TPC の列パラメーターの拡張符号インジケーター
on
(既定値) | off
Extended codes を選択すると、Number of columns in code, Nc と Number of columns in message, Kc の一覧には、拡張された個々の符号ペア (NC,KC) の有効な値が含まれます。
Extended codes をクリアすると、Number of columns in code, Nc と Number of columns in message, Kc の一覧には、拡張されていない個々の符号ペア (NC,KC) の有効な値が含まれます。
Number of columns in code, Nc — 積の符号行列の列数
32
(既定値) | 整数
積の符号行列 NC の列数。整数値の一覧は、Extended codes の設定によって異なります。
Number of columns in message, Kc — メッセージ行列の列数
26
(既定値) | 整数
メッセージ行列 KC の列数。整数値の一覧は、Extended codes および Number of columns in code, Nc の設定によって異なります。
Specify shortened message length — 列の短縮メッセージ長の指定
off
(既定値) | on
[Specify shortened message length] を選択して、Number of columns in shortened message, Sc の値を指定します。
Number of columns in shortened message, Sc — 短縮メッセージ行列の列数
22
(既定値) | 整数
短縮メッセージ行列 SC の列数。整数として指定します。このパラメーターを指定する場合は、フルレングスの NC および KC の値を入力して (NC,KC) 符号ペアを指定します。この符号ペアは、(NC–KC+SC, SC) 符号ペアに短縮されます。ここで、
NC は Number of columns in code, Nc の値です。
KC は Number of columns in message, Kc の値です。
SC は Number of columns in shortened message, Sc の値です。
依存関係
このパラメーターを有効にするには、Specify shortened message length を選択します。
Maximum number of iterations — 復号化反復の最大数
4
(既定値) | 正の整数
復号化の最大反復回数。正の整数を指定します。
Stop iterating when code converges — コンポーネント符号の計算されたシンドロームまたはパリティ チェックに基づいて復号化を停止
on
(既定値) | off
Maximum number of iterations の前にコンポーネント符号の計算されたシンドロームまたはパリティ チェックがゼロと評価された場合に復号化を終了するには、[Stop iterating when code converges] を選択します。
Output number of iterations executed — Output number of iterations executed
off
(既定値) | on
Iter
出力端子を追加して、実行された TPC 復号化の実際の反復回数を出力するには、このパラメーターを選択します。
シミュレーション実行方法 — 実行するシミュレーションのタイプ
コード生成
(既定値) | インタープリター型実行
実行するシミュレーションのタイプ。[コード生成]
または [インタープリター型実行]
として指定します。
コード生成
— 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink® は対象ブロックの C コードを生成します。このモデルは、モデルが変更されない限り以降のシミュレーションで C コードを再利用します。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、以降のシミュレーションの速度は[インタープリター型実行]
オプションを使用した場合よりも速くなります。インタープリター型実行
— MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、起動時間が短縮されますが、以降のシミュレーションの速度は[コード生成]
オプションを使用した場合よりも遅くなります。このモードで、ブロックのソース コードをデバッグできます。
詳細については、シミュレーション モード (Simulink)を参照してください。
ブロックの特性
データ型 |
|
多次元信号 |
|
可変サイズの信号 |
|
詳細
コンポーネント符号ペア
次の表に、行 (NR,KR) パラメーターおよび列 (NC,KC) パラメーターの、サポートされているコンポーネント符号のペアを示します。
NR と KR は、それぞれ積符号行列とメッセージ行列の行数を表します。
NC と KC は、それぞれ積符号行列とメッセージ行列の列数を表します。
各符号タイプ内で、任意の 2 つのコンポーネント符号のペアで 2 次元 TPC 符号を作成できます。この表には、各符号ペアの誤り訂正能力も含まれています。
コード タイプ | コンポーネント符号ペア (NR,KR) および (NC,KC) | 誤り訂正能力 (T) |
ハミング符号 | (255,247) | 1 |
(127,120) | 1 | |
(63,57) | 1 | |
(31,26) | 1 | |
(15,11) | 1 | |
(7,4) | 1 | |
拡張ハミング符号 | (256,247) | 1 |
(128,120) | 1 | |
(64,57) | 1 | |
(32,26) | 1 | |
(16,11) | 1 | |
(8,4) | 1 | |
BCH 符号 | (255,239) | 2 |
(127,113) | 2 | |
(63,51) | 2 | |
(31,21) | 2 | |
(15,7) | 2 | |
拡張 BCH 符号 | (256,239) | 2 |
(128,113) | 2 | |
(64,51) | 2 | |
(32,21) | 2 | |
(16,7) | 2 | |
パリティ チェック コード | (256,255) | - |
(128,127) | - | |
(64,63) | - | |
(32,31) | - | |
(16,15) | - | |
(8,7) | - | |
(4,3) | - |
ターボ積符号の復号化
ターボ積符号 (TPC) は、前方誤り訂正 (FEC) コードとして使用される連結コードの形式です。組織線形ブロック符号などの 2 つ以上のコンポーネント ブロック コードは、TPC を構築するために使用されます。TPC 復号化器は、反復軟入力、軟出力復号化を実行する Chase 復号化と Pyndiah アルゴリズムを使用して積符号のほぼ最適な復号化を実現します。詳細については、[1]および[2]を参照してください。この復号化器は、2 つの線形ブロック符号を使用して、[2]で説明されている反復軟入力、軟出力 2 次元積符号の復号化を実装します。復号化器は、入力信号として、デジタル復調から得られた軟ビット対数尤度比 (LLR) を予期しています。
TPC 復号化器は、フルレングスの符号または短縮符号のいずれかを受け入れます。
TPC 符号化されたフルレングスの入力メッセージは、指定された 2 次元 TPC 符号ペアを使用して復号化されます。行方向の復号化では (NC, KC) 符号ペアを使用し、列方向の復号化では (NR, KR) 符号ペアを使用します。入力ベクトル長は、NR × NC でなければなりません。2 次元 TPC 復号化を実行するために、メッセージとパリティ ビットで構成される入力 LLR の列ベクトルは、NR 行 NC 列の行列に調整されます。
TPC 復号化器は、反復軟入力、軟出力復号化を実行する Chase 復号化と Pyndiah アルゴリズムを使用して積符号のほぼ最適な復号化を実現します。Chase 復号化では、各列または各行で可能な一連のコードワードを作成します。Pyndiah アルゴリズムでは、次の復号化ステップで必要な軟情報を計算します。
反復軟入力、軟出力復号化
反復軟入力、軟出力復号化は、ブロック線図に示すように、反復ごとに 2 つの復号化ステップを実行します。
復号化の軟入力は、R(m) = R + α(m)W(m) です。
反復のループ カウンター i は、i = 1 から指定された反復数までインクリメントします。
m =
2
i –1
は、復号化ステップのインデックスです。R は、受信 LLR 行列です。
R(m) は、m 番目の復号化ステップの軟入力です。
W(m) は、m 番目の復号化ステップの入力外部情報です。
α(m) = [0,0.2,0.3,0.5,0.7,0.9,1,1, ...] で、α は復号化ステップのインデックスに基づいて適用される重み付けの係数です。高次の復号化ステップでは、α = 1 です。
β(m) = [0.2,0.4,0.6,0.8,1,1, ...] で、β は復号化ステップのインデックスに基づいて適用される信頼性の係数です。高次の復号化ステップでは、β = 1 です。
D は復号化されたメッセージ ビットを含みます。–1 を 0 に、+1 を 1 にマッピングしてからメッセージ ブロックを列ベクトルに形状変更することで、出力メッセージ ビットが D から求められます。
出力メッセージ ビットは、指定された反復回数が反復された後に求められるか、早期終了が有効になっている場合は符号の収束後に求められます。
TPC 復号化の早期終了
早期終了が有効になっている場合は、行方向および列方向の各復号化ステップで、軟入力の硬判定に対して符号の収束チェックが実行されます。早期終了は、行方向復号化または列方向復号化が収束した後にトリガーされる可能性があります。
すべての行またはすべての列で次の場合に、符号が収束します。
シンドロームが、符号 (ハミング符号、拡張ハミング符号、BCH 符号、または拡張 BCH 符号) でゼロと評価される。
パリティ チェックが、パリティ チェック コードでゼロと評価される。
報告される反復回数は、現在進行中の反復の値として評価されます。たとえば、3 回目の反復での行方向復号化の後に (2.5 回目の復号化ステップの後に) 符号の収束チェックが満たされた場合、返される反復回数は 3 になります。
TPC 符号化された短縮形の入力メッセージは、指定された 2 次元 TPC 符号ペアを使用して復号化されます。行方向の復号化では (NC – KC + SC, SC) 符号ペアを使用し、列方向の復号化では (NR – KR + SR, SR) 符号ペアを使用します。入力ベクトル長は、(NR – KR + SR) × (NC– KC + SC) でなければなりません。短縮メッセージの 2 次元 TPC 復号化を実行するために、短縮メッセージとパリティ ビットで構成される入力 LLR の列ベクトルは、(NR – KR + SR) 行 (NC – KC + SC) 列の行列に調整されます。
TPC 復号化器は、受信した短縮メッセージ LLR をフル レングスのコードと同様に処理しますが、次が異なります。
短縮形の受信コードワード内のビット位置は、-1 に設定されます。
Chase アルゴリズムは、最も信頼性の低いビットを選択している間、短縮形のビット位置を考慮しません。
参照
[1] Chase, D. "Class of Algorithms for Decoding Block Codes with Channel Measurement Information." IEEE Transactions on Information Theory, Volume 18, Number 1, January 1972, pp. 170–182.
[2] Pyndiah, R. M. "Near-Optimum Decoding of Product Codes: Block Turbo Codes." IEEE Transactions on Communications. Vol. 46, Number 8, August 1998, pp. 1003–1010.
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2018b で導入
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)