メインコンテンツ

comm.OSTBCEncoder

直交空間時間ブロック符号を使用した入力の符号化

説明

comm.OSTBCEncoderSystem object™ は、直交空間時間ブロック符号 (OSTBC) を使って入力シンボル シーケンスを符号化します。この System object は入力シンボルをブロック単位でマップし、出力のコードワード行列を時間領域で結合します。詳細については、入力から出力までの次元を参照してください。

OSTBC を使って入力シンボル シーケンスを符号化するには、以下の手順に従います。

  1. comm.OSTBCEncoder オブジェクトを作成し、そのプロパティを設定します。

  2. 関数と同様に、引数を指定してオブジェクトを呼び出します。

System object の機能の詳細については、System object とはを参照してください。

作成

説明

ostbcenc = comm.OSTBCEncoder は OSTBC 符号化器 System object ostbcenc を作成します。このオブジェクトは入力シンボルをブロック単位でマップし、出力のコードワード行列を時間領域で結合します。

ostbcenc = comm.OSTBCEncoder(N) は、NumTransmitAntennas プロパティが N に設定された OSTBC 符号化器オブジェクトを作成します。

ostbcenc = comm.OSTBCEncoder(___,Name=Value) は、前述の任意の構文を使用して OSTBC 符号化器オブジェクトを作成し、名前と値の引数を 1 つ以上使用してプロパティを設定します。たとえば、SymbolRate=1/2 は、符号のシンボル レートを 1/2 に設定します。

プロパティ

すべて展開する

特に指定がない限り、プロパティは "調整不可能" です。つまり、オブジェクトの呼び出し後に値を変更することはできません。オブジェクトは呼び出すとロックされ、ロックを解除するには関数 release を使用します。

プロパティが "調整可能" の場合、その値をいつでも変更できます。

プロパティ値の変更の詳細については、System object を使用した MATLAB でのシステム設計を参照してください。

送信アンテナの数。23、または 4 として指定します。

データ型: double

符号のシンボル レート。3/4 または 1/2 として指定します。

依存関係

このプロパティを有効にするには、NumTransmitAntennas プロパティを 2 より大きい値に設定します。NumTransmitAntennas2 に設定すると、シンボル レートは 1 になります。

データ型: double

固定小数点プロパティ

固定小数点数値がオーバーフローするときのアクション。"Wrap" または "Saturate" として指定します。このプロパティでオーバーフロー時に取るべき動作を指定します。オーバーフローは、固定小数点計算結果の大きさが、その結果を格納するデータ型とスケーリングの範囲に収まらない場合に発生します。

使用法

説明

Y = ostbcenc(X) は、OSTBC 符号化を入力データ X に適用し、OSTBC で符号化されたデータ Y を返します。

入力引数

すべて展開する

入力データ。複素数値の列ベクトルとして指定するか、double、single、または 2 のべき乗でバイアスが 0 の符号付き固定小数点のデータ型の行列として指定します。入力行列のサイズは FT 列です。ここで、F は符号化の計算が無関係である追加の次元 (通常は周波数領域) です。F は正の整数として指定します。追加の次元を指定しない場合、入力を T1 列の列ベクトルとして指定します。X の時間領域長 T は各コードワード行列にあるシンボル数の倍数でなければなりません。特に、NumTransmitAntennas プロパティを 2、または SymbolRate プロパティを 1/2 に設定した場合、T は 2 の倍数でなければならず、SymbolRate プロパティを 3/4 に設定した場合、T3 の倍数でなければなりません。

このオブジェクトは可変サイズの入力を受け入れます。オブジェクトがロックされると、各入力チャネルのサイズは変更できますが、チャネルの数は変更できません。詳細については、Variable-Size Signal Support with System Objectsを参照してください。

データ型: single | double | fi
複素数のサポート: あり

出力引数

すべて展開する

出力データ。行列または 3 次元配列として返されます。サイズが T1 列である時間領域または空間領域の入力の場合、符号化された出力データ Y は (T/SymbolRate) 行 NumTransmitAntennas 列の行列です。入力行列のサイズが FT 列の場合、出力は F×(T/SymbolRateNumTransmitAntennas の配列です。

データ型: double | single | fi

オブジェクト関数

オブジェクト関数を使用するには、System object を最初の入力引数として指定します。たとえば、obj という名前の System object のシステム リソースを解放するには、次の構文を使用します。

release(obj)

すべて展開する

stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
cloneSystem object の複製
isLockedSystem object が使用中かどうかの判定
resetSystem object の内部状態のリセット

すべて折りたたむ

ランダムなバイナリ データを生成し、BPSK 変調スキームを使用し変調して、変調されたデータを OSTBC により符号化します。

8 行 1 列のランダムなバイナリ データのベクトルを生成します。

data = randi([0 1],8,1);

データを BPSK 変調します。

M = 2; % BPSK 
modData = pskmod(data,M);

OSTBC 符号化器オブジェクトを作成して変調信号を符号化します。既定の送信アンテナ数は 2 なので、encData が 8 行 2 列の行列であることがわかります。

ostbcEnc = comm.OSTBCEncoder;
encData = ostbcEnc(modData)
encData = 8×2 complex

  -1.0000 + 0.0000i  -1.0000 + 0.0000i
   1.0000 + 0.0000i  -1.0000 - 0.0000i
   1.0000 + 0.0000i  -1.0000 + 0.0000i
   1.0000 + 0.0000i   1.0000 + 0.0000i
  -1.0000 + 0.0000i   1.0000 + 0.0000i
  -1.0000 + 0.0000i  -1.0000 - 0.0000i
   1.0000 + 0.0000i  -1.0000 + 0.0000i
   1.0000 + 0.0000i   1.0000 + 0.0000i

詳細

すべて展開する

アルゴリズム

すべて展開する

拡張機能

すべて展開する

バージョン履歴

R2012a で導入

参考

オブジェクト

ブロック