tpcenc
ターボ積符号 (TPC) 符号化器
説明
例
フルレングスの TPC 符号を使用した符号化
拡張されたハミング符号と拡張 BCH 符号で 2 次元ターボ積符号化 (TPC) を使用することでランダム ビット ベクトルを符号化します。
TPC 符号化用の (N,K) 符号ペアを指定します。
N = [32;64]; K = [21;57];
ランダム メッセージ ビットの列ベクトルを生成します。メッセージ ビットの目的の長さは、K
の要素の積です。
msg = randi([0 1],prod(K),1);
メッセージを TPC 符号化します。
code = tpcenc(msg,N,K);
符号化されたコードワードの長さが N
の要素の積であることを確認します。
size(code)
ans = 1×2
2048 1
prod(N)
ans = 2048
ターボ積符号化を使用した短縮メッセージの符号化
2 次元ターボ積符号化 (TPC) を使用してメッセージの短縮化を適用し、ランダム ビット ベクトルを符号化します。
TPC 符号化用の (N,K) 符号ペアと S を指定します。
N = [32;64]; K = [21;57]; S = [19;24];
ランダム メッセージ ビットの列ベクトルを生成します。短縮メッセージ ビットの目的の長さは、S
の要素の積です。
msg = randi([0 1],prod(S),1);
短縮メッセージを TPC 符号化します。
code = tpcenc(msg,N,K,S);
符号化されたコードワードの長さが (N-K+S
) の要素の積であることを確認します。
size(code)
ans = 1×2
930 1
prod(N-K+S)
ans = 930
入力引数
S
— 短縮メッセージ長
2 要素の整数ベクトル
短縮メッセージ長。2 要素の整数ベクトル [SR; SC] として指定します。短縮メッセージの場合、符号化するメッセージ ビットを含む入力列ベクトルは、SR 行 SC 列の行列に調整されます。SR は、行列の行数を表します。SC は、行列の列数を表します。SR および SC の詳細については、ターボ積符号の構築を参照してください。
このパラメーターを指定する場合は、(N(i)–K(i)+S(i), S(i)) 符号に短縮されたフルレングスの TPC 符号の N ベクトルと K ベクトルを指定します。
データ型: double
出力引数
詳細
コンポーネント符号
次の表に、行 (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 を構築するために使用されます。この符号化器は、2 つの線形ブロック符号を使用して、[1]で説明されている 2 次元積符号の符号化を実装します。
TPC 符号化器は、フルレングスのメッセージまたは短縮メッセージを受け入れます。
フルレングスの入力メッセージは、指定された 2 次元 TPC 符号ペアを使用して符号化されます。行方向の符号化では (NC, KC) 符号ペアを使用し、列方向の符号化では (NR, KR) 符号ペアを使用します。入力ベクトル長は、KR · KC でなければなりません。入力メッセージ ビットのベクトルは、KR 行 KC 列の行列に調整されます。
行方向の符号化では、行あたり KC ビットの (NC, KC) の体系的な線形ブロック符号化器を使用します。行方向の符号化の結果は、各行に追加されたパリティ ビットを含む KR 行 NC 列の行列になります。
次に、列方向の符号化では、各 NC 列で (NR,KR) の体系的な線形ブロック符号化器が使用されます。この 2 次元 TPC 符号化を初期の KR 行 KC 列の行列に適用すると、各行および各列に追加されたパリティ ビットを含む NR 行 NC 列の行列になります。
2 次元 TPC フル符号行列は、長さ NR · NC の列ベクトルに形状変更されて、TPC 符号化された出力として返されます。
短縮形の入力メッセージは、指定された 2 次元 TPC 符号ペアを使用して符号化されます。行方向の符号化では (NC,KC) 符号ペアを使用し、列方向の符号化では (NR,KR) 符号ペアを使用します。入力ベクトル長は、SR · SC でなければなりません。入力短縮メッセージ ビットのベクトルは、SR 行 SC 列の行列に調整されます。短縮メッセージ行列は、メッセージ行列の先頭にゼロをパディングすることで 2 次元の先頭に付加します。結果として得られる行列は、KR 行 KC 列の行列です。
行方向の符号化では、行あたり KC ビットの (NC, KC) の体系的な線形ブロック符号化器を使用します。行方向の符号化の結果は、各行に追加されたパリティ ビットを含む KR 行 NC 列の行列になります。
次に、列方向の符号化では、各 NC 列で (NR,KR) の体系的な線形ブロック符号化器が使用されます。
この 2 次元 TPC 符号化を初期の KR 行 KC 列の行列に適用し、出力からゼロ パディングされたビットを除外すると、(NR–KR+SR) 行 (NC–KC+SC) 列の行列になります。この行列には、各行および各列に追加されたパリティ ビットが含まれます。
2 次元 TPC 短縮形符号行列は、長さ (NR–KR+SR) · (NC–KC+SC) の列ベクトルに形状変更されて、TPC 符号化された出力として返されます。
参照
[1] Pyndiah, R. M. "Near-Optimum Decoding of Product Codes: Block Turbo Codes." IEEE Transactions on Communications. Volume 46, Number 8, August 1998, pp. 1003–1010.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
TPC パラメーター
N
、K
およびS
は定数値でなければなりません。これらの各パラメーターで使用される値が変化しない場合、式または変数で代入することができます。
バージョン履歴
R2018a で導入
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)