このページは前リリースの情報です。該当の英語のページはこのリリースで削除されています。

OSTBC を用いた適応 MIMO システム

この例では、多入力多出力 (MIMO) チャネルでの適応直交空間時間ブロック符号 (OSTBC) 送受信システムについて示します。このシステムは可変数の送信アンテナと受信アンテナを使用します。どのフレームでも、システムは 1 ~ 4 個の送信または受信アンテナで動作します。送信アンテナ数と受信アンテナ数は適応可能で、手動で変更することも、ターゲットと実際のシステム全体のフレーム誤り率との差に基づいて、適応アルゴリズムに従って変更することもできます。

この例では、Simulink® での可変サイズ信号の生成などの機能と、System object をもつ MATLAB® Function ブロックの Simulink モデルの一部としての使用について紹介します。このモデルから C コードを生成できます。

はじめに

OSTBC [ 1 ]、[ 2 ] は MIMO 無線通信において効果的な手法です。この手法は完全な空間ダイバーシティ数を利用して、シンボル単位で最尤 (ML) 復号化を行います。OSTBC Combiner ブロックの受信機側で、システムが送信するシンボルの軟情報を提供し、この情報は外符号の復号化や復調に利用することができます。

例の構造

次の図は、モデル例 commadaptivemimo.slx を示しています。

モデルは以下のタスクを行います。

ランダム データの生成

Bernoulli Binary Generator ブロックは、このシミュレーション用の情報源を作成します。このブロックはランダムなビットのフレームを生成します。Frame length パラメーターは出力フレームの長さを決定します。

QPSK 変調

QPSK Modulator ブロックは Bernoulli Binary Generator ブロックから四相 PSK コンスタレーションへのメッセージ データを変調します。出力は変調信号のベースバンド表現で、2 つの入力ビットが 1 つの変調されたシンボルになるため、出力サイズは Bernoulli Binary Generator ブロックの出力サイズの半分になります。

直交空間時間ブロック符号 (OSTBC) 符号化器

OSTBC Encoder ブロックは、2 個の送信アンテナには Alamouti コード [ 1 ] を使用し、3 個または 4 個の送信アンテナには他の生成された複素直交符号 [ 2 ] を使用して、QPSK Modulator ブロックからの情報シンボルを符号化します。送信アンテナ数をこのブロックの入力として与えます。このブロックの出力は (Ns 行 Nt 列) の可変サイズの行列で、列数 (Nt) は送信アンテナ数に対応し、行数 (Ns) は 1 フレーム内で各送信アンテナで送信される直交符号サンプルの数に対応します。このブロックは、comm.OSTBCEncoder System object を使用して、選択した送信アンテナに対して符号化アルゴリズムを実装する MATLAB Function ブロックです。

適応 MIMO チャネル

MIMO Fading Channel ブロックは、Nt 個の送信アンテナから Nr 個の受信アンテナへの周波数フラットなレイリー フェージング MIMO チャネルをシミュレートします。このブロックは、送信アンテナおよび受信アンテナの選択により空間的に独立した 4x4 MIMO チャネルとして構成されます。Sample rate (Hz) パラメーターは、フレーム長、符号化率およびモデル サンプル時間に基づいて計算し、2e6/3 に設定されます。Maximum Doppler shift (Hz) パラメーターは 100 に設定されます。このブロックはこのプロパティ値を使用して、MIMO チャネルを準静的なフェージング チャネルのように動作させます。つまり、1 つのコード ブロックの送信中は相対的に一定で、複数のブロックに沿って変化します。

このブロックの最初の入力は (Ns 行 Nt 列) の可変サイズの行列で、列数 (Nt) は選択した送信アンテナ数に対応し、行数 (Ns) はフレーム内で各送信アンテナで送信される直交符号サンプルの数に対応します。このブロックの 2 番目と 3 番目の入力は (1 行 4 列) の固定サイズ バイナリ行ベクトルで、最初の Nt 個の送信アンテナと Nr 個の受信アンテナがそれぞれ現在のフレーム伝送に選択されることを示します。このブロックの最初の出力は (Ns 行 Nr 列) の可変サイズのチャネル出力行列です。このブロックの 2 番目の出力は (Ns x 1 x 4 x 4) の可変サイズ チャネル ゲイン配列です。これらの選択されていない送信アンテナと受信アンテナのペアに NaN 値が使用されます。

受信機のノイズ

AWGN Channel ブロックは、受信機側でホワイト ガウス ノイズを加えます。comm.AWGNChannel System object を使用して、可変サイズの信号をサポートします。このブロックの最初の入力は、MIMO Channel ブロックからの最初の出力です。このブロックの 2 番目の入力は、送信アンテナの数 (Nt) と Signal to noise ratio (SNR) の値から計算されたノイズ分散です。ここでは MIMO チャネルの正規化が考慮されています。

直交空間時間ブロック符号 (OSTBC) コンバイナー

OSTBC Combiner ブロックは受信した信号 rxSig をそのチャネル状態情報 (CSI) の chEst と組み合わせ、変調されたシンボルの推定値を出力します。入力信号 rxSig は (Ns 行 Nr 列) の可変サイズ行列、入力信号 chEst は (Ns x 1x 4 x 4) の可変サイズ配列です。この例では、CSI は受信機側で完全に既知であると仮定します。このブロックは、comm.OSTBCCombiner System object を使用して、選択した送受信アンテナに対して組み合わせアルゴリズムを実装する MATLAB Function ブロックです。

QPSK 復調

QPSK Demodulator ブロックは、復元された変調信号である OSTBC Combiner の出力を、直交位相シフト キーイング法を使用して復調します。入力は変調信号のベースバンド表現で、1 つの入力シンボルが 2 つの出力ビットを生成するため、入力サイズは Bernoulli Binary Generator ブロックの入力サイズの半分になります。

フレーム誤り率 (FER) の計算

Frame Error Rate (FER) Calculation サブシステムは復号化されたビットをフレームごとに元のソース ビットと比較し、誤りを検出し、シミュレーション中に FER を動的に更新します。このサブシステムの出力は、FER、観測された誤りのあるフレームの数、および処理したフレームの数を含む 3 要素ベクトルです。このベクトルは Error Rate Calculation ブロックから生成され、複数の SNR 値のシミュレーションを容易にするために MATLAB ワークスペース変数 FER_Data として保存されます。

モデルは Stop simulation パラメーターをチェックし、シミュレーションの実行時間を制御します。シミュレーションは、誤りのあるフレーム数の目標数 (Maximum number of errors パラメーターで指定)、または全フレーム数の最大数 (Maximum number of frames パラメーターで指定) のどちらかを検出すると停止します。

適応アルゴリズム

このモデルの下部にある、Adaptation Control Panel という名前のブロックを使用すると、送信アンテナ数または受信アンテナ数の変化が MIMO システム全体のパフォーマンスに与える影響を試すことができます。

第 1 の例: 手動設定

モデルの下部にある 2 つの 'switch' ブロックを使用し、対応する 'Constant' ブロックの送信アンテナ数 (Nt) または受信アンテナ数 (Nr) を手動で設定できます。(Nt) と (Nr) は範囲が 1-4 のスカラー数であることに注意してください。

第 2 の例: 適応アルゴリズム

また、2 つの 'switch' ブロックを使用してモデルの下部にある Adaptation Algorithm ブロックを有効にできます。この適応アルゴリズムは MATLAB Function ブロック実装で、Target frame error rate と、システム全体の実際のフレーム誤り率との差に基づいて、送信アンテナ数 (Nt) または受信アンテナ数 (Nr) を変更します。

可視化と表示

データをグラフィカルに表示するには、[Signal Visualization] アイコンをダブルクリックして表示ウィンドウを開きます。このサブシステムは、送信アンテナ数または受信アンテナ数の変化がシステム全体のフレーム誤り率に与える影響を可視化する図を生成します。

表示ウィンドウ内のプロットは以下のものを示します。

  • フレーム誤り率の時間変化

  • 現在のフレーム内の送信アンテナ数または受信アンテナ数

  • OSTBC Combiner の前後における受信信号の散布図。OSTBC Combiner の出力のプロットは、QPSK コンスタレーションによって信号が復元されることを示しています。

色の凡例モデルではさまざまな役割のブロックを区別しやすくするために、階層の最上位レベルを色で識別します。

  • 水色のカラー コードは、Communications Toolbox™ のブロック、または Communications Toolbox™ のブロックで構成されるサブシステムを表します。

  • 明るい緑色のカラー コードは、信号の経路、測定および表示に関係するブロックを表します。

  • 青色のカラー コードは、モデルのさまざまなパラメーターの設定に使用できるブロックを表します。

  • 紫色のカラー コードは、System object をもつ MATLAB Function ブロックを使用するブロックを表します。これらのブロックの動作を特徴付ける System object の構成を調査、編集または変更することができます。

その他の調査

このモデルを読み込む場合は、MATLAB ワークスペースに 'adaptivemimo' という変数を作成します。この変数は 5 つのフィールドをもつ MATLAB 構造体です。これらのフィールド (FrameLen、SNR、TargetFER、MaxNumErrs、MaxNumFrames) を変更することで、パラメーター設定がシミュレーション実行時間と数値結果に与える影響を調べることができます。これら 5 つのフィールドはこのモデルで使用されるパラメーター (Frame lengthSignal to noise ratio (SNR)Target frame error rateMaximum number of errors および Maximum number of frames) にそれぞれ対応しています。これら 5 つのパラメーターに異なる値を設定するには、モデルの上部にある Model Parameters という名前のサブシステムをダブルクリックして、ダイアログ ボックスにパラメーター値を直接入力します。

参考文献

  1. S. M. Alamouti, "A simple transmit diversity technique for wireless communications," IEEE Journal on Selected Areas in Communications, vol. 16, no. 8, pp. 1451-1458, Oct. 1998.

  2. V. Tarokh, H. Jafarkhami, and A. R. Calderbank, "Space-time block codes from orthogonal designs," IEEE Transactions on Information Theory, vol. 45, no. 5, pp. 1456-1467, Jul. 1999.