メインコンテンツ

TPC Encoder

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

  • TPC Encoder block

ライブラリ:
Communications Toolbox / Error Detection and Correction / Block

説明

TPC Encoder ブロックは、入力メッセージの 2 次元ターボ積符号 (TPC) エンコードを実行します。積符号は線形ブロック符号の 2 次元の連結です。線形ブロック符号は、2 つの誤りを訂正できるパリティ チェック符号、ハミング符号、または BCH 符号の可能性があります。拡張符号と短縮符号は、各次元で独立して適用することができます。2 次元 TPC 符号化の詳細については、ターボ積符号の構築を参照してください。

有効な符号ペアと各符号ペアの誤り訂正能力の詳細については、コンポーネント符号ペアを参照してください。

すべて展開する

TPC 符号化および復号化された伝送信号のエラー レートの計算を実行します。

ランダムな信号は、TPC 符号化、QPSK 変調、AWGN チャネル経由でのフィルター処理、および QPSK 復調が行われます。バイポーラ マッピングは、負から正にマッピングが変換され、信号は TPC 復号化されます。エラー レートの計算は、元のメッセージを復元したメッセージと比較します。

モデル例を開きその内容を調べる

いくつかの設定は、互いに揃えて、メッセージの符号化と復号化を同期させなければなりません。最初に、符号化率を決定し、TPC EncoderTPC Decoder の 2 次元の [N,K] ペアを整列させます。この例では、既定の設定に [Nr,Kr] = [15,11] および [Nc,Kc] = [32,26] が使用されます。

Bernoulli Binary Generator ブロックによって使用されたフレームあたりのサンプル数とサンプル時間は、メッセージ長のパラメーター Number of rows in message, KrNumber 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 DecoderBernoulli Binary GeneratorAWGN Channel、および QPSK Demodulator Baseband で必ず設定を揃えるために TPC Encoder 設定を調整する場合。

端子

入力

すべて展開する

符号化する入力メッセージ ビット。列ベクトルとして指定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | Boolean

出力

すべて展開する

TPC 符号化されたメッセージ。入力信号と同じデータ型の列ベクトルとして返されます。

パラメーター

すべて展開する

ブロック パラメーターを対話的に編集するには、プロパティ インスペクターを使用します。Simulink® ツールストリップの [シミュレーション] タブの [準備] ギャラリーで [プロパティ インスペクター] を選択します。

行の TPC パラメーター

積の符号行列 NR の行数。整数値の一覧は、拡張符号 の設定によって異なります。

メッセージ行列 KR の行数。整数値の一覧は、拡張符号 および 符号の行数、Nr の設定によって異なります。

[Specify shortened message length] を選択して、短縮メッセージの行数、Sr の値を指定します。

短縮メッセージ行列 SR の行数。KR 以下の整数として指定します。このパラメーターを指定する場合は、フルレングスの NR および KR の値を入力して (NR,KR) 符号ペアを指定します。この符号ペアは、(NRKR+SR,SR) 符号ペアに短縮されます。ここで、

依存関係

このパラメーターを有効にするには、短縮メッセージ長の指定 を選択します。

列の TPC パラメーター

積の符号行列 NC の列数。整数値の一覧は、拡張符号 の設定によって異なります。

メッセージ行列 KC の列数。整数値の一覧は、拡張符号 および 符号の列数、Nc の設定によって異なります。

[Specify shortened message length] を選択して、短縮メッセージの列数、Sc の値を指定します。

短縮メッセージ行列 SC の列数。整数として指定します。このパラメーターを指定する場合は、フルレングスの NC および KC の値を入力して (NC,KC) 符号ペアを指定します。この符号ペアは、(NCKC+SC, SC) 符号ペアに短縮されます。ここで、

依存関係

このパラメーターを有効にするには、短縮メッセージ長の指定 を選択します。

実行するシミュレーションのタイプ。[コード生成] または [インタープリター型実行] として指定します。

  • コード生成 — 生成された C コードを使用してモデルをシミュレートします。シミュレーションの初回実行時、Simulink は対象ブロックの C コードを生成します。このモデルは、モデルが変更されない限り以降のシミュレーションで C コードを再利用します。このオプションを使用すると、シミュレーションの起動時間は長くなりますが、以降のシミュレーションの速度は [インタープリター型実行] オプションを使用した場合よりも速くなります。

  • インタープリター型実行 — MATLAB® インタープリターを使用してモデルをシミュレートします。このオプションを使用すると、起動時間が短縮されますが、以降のシミュレーションの速度は [コード生成] オプションを使用した場合よりも遅くなります。このモードで、ブロックのソース コードをデバッグできます。

詳細については、インタープリター型実行とコード生成 (Simulink)を参照してください。

ブロックの特性

データ型

Boolean | double | integer | single

多次元信号

なし

可変サイズの信号

なし

詳細

すべて展開する

参照

[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 で導入

参考

ブロック

関数