メインコンテンツ

comm.OSTBCEncoder

R2026b

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

説明

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 でのシステム設計を参照してください。

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

データ型: double

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

依存関係

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

データ型: double

固定小数点プロパティ

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

使用法

説明

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

例

入力引数

すべて展開する

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

このオブジェクトは可変サイズの入力を受け入れます。オブジェクトがロックされた後は、シミュレーション中に信号のフレーム サイズ (行数) を変更できますが、チャネル数 (列数) は一定のままでなければなりません。詳細については、Variable-Size Signals in Codeを参照してください。

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

出力引数

すべて展開する

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

データ型: 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 で導入

参考

オブジェクト

ブロック