TPC Encoder
ターボ積符号 (TPC) 符号化器

ライブラリ:
Communications Toolbox /
Error Detection and Correction /
Block
説明
TPC Encoder ブロックは、入力メッセージの 2 次元ターボ積符号 (TPC) エンコードを実行します。積符号は線形ブロック符号の 2 次元の連結です。線形ブロック符号は、2 つの誤りを訂正できるパリティ チェック符号、ハミング符号、または BCH 符号の可能性があります。拡張符号と短縮符号は、各次元で独立して適用することができます。2 次元 TPC 符号化の詳細については、ターボ積符号の構築を参照してください。
有効な符号ペアと各符号ペアの誤り訂正能力の詳細については、コンポーネント符号ペアを参照してください。
例
TPC 符号化および復号化された伝送信号のエラー レートの計算を実行します。
ランダムな信号は、TPC 符号化、QPSK 変調、AWGN チャネル経由でのフィルター処理、および QPSK 復調が行われます。バイポーラ マッピングは、負から正にマッピングが変換され、信号は TPC 復号化されます。エラー レートの計算は、元のメッセージを復元したメッセージと比較します。
モデル例を開きその内容を調べる
いくつかの設定は、互いに揃えて、メッセージの符号化と復号化を同期させなければなりません。最初に、符号化率を決定し、TPC Encoder
と TPC Decoder
の 2 次元の [N,K] ペアを整列させます。この例では、既定の設定に [Nr,Kr] = [15,11] および [Nc,Kc] = [32,26] が使用されます。
Bernoulli Binary Generator
ブロックによって使用されたフレームあたりのサンプル数とサンプル時間は、メッセージ長のパラメーター Number of rows in message, Kr
と Number of columns in message, Kc
に基づいて決定されます。
フレームあたりのサンプル数 = (Kr*Kc) = 286
サンプル時間 = 1/(Kr*Kc) = 0.0035。
SNR 設定が符号化率、変調次数、および Eb/N0 に基づいて計算されているホワイト ガウス ノイズ。
変調次数、M = 2
Eb/N0 = -11
rate = (Kr*Kc)/((Nr-Kr)*(Nc-Kc)) = 14.3
snr = 10*log10(M*rate*10^(ebn0/10)) = 3.5637
QPSK Demodulator Baseband
ブロックで使用されたノイズ変数は SNR に基づいて計算されます。
ノイズ分散 = 1/10^(snr/10) = 1/10^(3.5637/10) = 0.4402
モデルを実行し、エラー レートの計算を観察します。結果は、ランダムな入力データを使用するための実行状況によって異なります。
Bit error rate: 0.00042
その他の調査
モデルを自分で実行するには、表示されているボタンを使用するか、MATLAB® コマンド プロンプトで open slex_tpc_err_rate_calc
と入力することによって例を開きます。モデルを変更して S/N 比を変更してみることを考えます。TPC Decoder
、Bernoulli Binary Generator
、AWGN Channel
、および QPSK Demodulator Baseband
で必ず設定を揃えるために TPC Encoder
設定を調整する場合。
端子
入力
符号化する入力メッセージ ビット。列ベクトルとして指定します。
フルレングスの入力メッセージでは、列ベクトルの長さは、メッセージの行数、Kr と メッセージの列数、Kc の積でなければなりません。
短縮形の入力メッセージでは、列ベクトルの長さは、短縮メッセージの行数、Sr と 短縮メッセージの列数、Sc の積でなければなりません。
データ型: single
| double
| int8
| int16
| int32
| uint8
| uint16
| uint32
| Boolean
出力
TPC 符号化されたメッセージ。入力信号と同じデータ型の列ベクトルとして返されます。
短縮形の入力メッセージでは、列ベクトルの長さは、(NR–KR+SR) および (NC–KC+SC) の積です。ここで、
NR は 符号の行数、Nr の値です。
KR は メッセージの行数、Kr の値です。
SR は 短縮メッセージの行数、Sr の値です。
NC は 符号の列数、Nc の値です。
KC は メッセージの列数、Kc の値です。
SC は 短縮メッセージの列数、Sc の値です。
パラメーター
ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。
行の TPC パラメーター
拡張符号 を選択すると、符号の行数、Nr と メッセージの行数、Kr の一覧には、拡張された個々の符号ペア (NR,KR) の有効な値が含まれます。
拡張符号 をクリアすると、符号の行数、Nr と メッセージの行数、Kr の一覧には、拡張されていない個々の符号ペア (NR,KR) の有効な値が含まれます。
積の符号行列 NR の行数。整数値の一覧は、拡張符号 の設定によって異なります。
[Specify shortened message length] を選択して、短縮メッセージの行数、Sr の値を指定します。
短縮メッセージ行列 SR の行数。KR 以下の整数として指定します。このパラメーターを指定する場合は、フルレングスの NR および KR の値を入力して (NR,KR) 符号ペアを指定します。この符号ペアは、(NR–KR+SR,SR) 符号ペアに短縮されます。ここで、
NR は 符号の行数、Nr の値です。
KR は メッセージの行数、Kr の値です。
SR は 短縮メッセージの行数、Sr の値です。
依存関係
このパラメーターを有効にするには、短縮メッセージ長の指定 を選択します。
列の TPC パラメーター
拡張符号 を選択すると、符号の列数、Nc と メッセージの列数、Kc の一覧には、拡張された個々の符号ペア (NC,KC) の有効な値が含まれます。
拡張符号 をクリアすると、符号の列数、Nc と メッセージの列数、Kc の一覧には、拡張されていない個々の符号ペア (NC,KC) の有効な値が含まれます。
積の符号行列 NC の列数。整数値の一覧は、拡張符号 の設定によって異なります。
[Specify shortened message length] を選択して、短縮メッセージの列数、Sc の値を指定します。
短縮メッセージ行列 SC の列数。整数として指定します。このパラメーターを指定する場合は、フルレングスの NC および KC の値を入力して (NC,KC) 符号ペアを指定します。この符号ペアは、(NC–KC+SC, SC) 符号ペアに短縮されます。ここで、
NC は 符号の列数、Nc の値です。
KC は メッセージの列数、Kc の値です。
SC は 短縮メッセージの列数、Sc の値です。
依存関係
このパラメーターを有効にするには、短縮メッセージ長の指定 を選択します。
実行するシミュレーションのタイプ。[コード生成]
または [インタープリター型実行]
として指定します。
コード生成
— 生成された 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 を構築するために使用されます。この符号化器は、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. Vol. 46, Number 8, August 1998, pp. 1003–1010.
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2018b で導入
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)