Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

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

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

出力引数

すべて展開する

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

データ型: 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 変調器 System object を作成してデータを変調します。

bpskMod = comm.BPSKModulator;
modData = bpskMod(data);

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

アルゴリズム

OSTBC 符号化器 System object では、5 つの異なる OSTBC 符号化アルゴリズムをサポートしています。SymbolRate および NumTransmitAntennas の選択に応じて、この System object は次の表に示すアルゴリズムの 1 つを実装します。

送信アンテナレートOSTBC コードワード行列
21

(s1s2s2*s1*)

31/2

(s1s20s2*s1*000s100s2*)

33/4

(s1s2s3s2*s1*0s3*0s1*0s3*s2*)

41/2

(s1s200s2*s1*0000s1s200s2*s1*)

43/4

(s1s2s30s2*s1*0s3s3*0s1*s20s3*s2*s1)

それぞれの行列において、行列の (l, i) エントリは、ブロックの l 番目のタイム スロットにある i 番目のアンテナからシンボルが送信されることを示しています。i の値は [1, N] の範囲内です。ここで、N は送信アンテナの数です。l の値は [1, L] の範囲内です。ここで、L はコードワードのブロック長です。

可変サイズの信号を処理する際、次のようになります。

  • 入力信号が列ベクトルの場合、最初の次元は変更できますが、2 番目の次元は 1 に固定しなければなりません。

  • 入力信号が行列の場合は、両方の次元を変更できます。

拡張機能

バージョン履歴

R2012a で導入

参考

オブジェクト

ブロック