Main Content

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

comm.WINNER2Channel

WINNER II フェージング チャネルによる入力信号のフィルター処理

必要なダウンロード: comm.WINNER2Channel を使用するには、最初に WINNER II Channel Model for Communications Toolbox アドオンをダウンロードします。

説明

comm.WINNER2Channel System object™ は、WINNER II フェージング チャネルによる入力信号をフィルター処理します。オブジェクトは、WINNER II チャネル モデル[1]によって定義され提供される基本モデルを利用します。

WINNER II フェージング チャネルを通して入力信号をフィルター処理するには、次のようにします。

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

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

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

作成

説明

winchannel = comm.WINNER2Channel は、WINNER II フェージング チャネル System object を作成し、単一または複数のリンクをモデル化します。winchannel は、WINNER II 空間チャネル モデル (SCM) を使用して、チャネル係数を生成します。また、各リンクのフェージング チャネルを通じて、実数または複素数の入力信号のフィルター処理も行います。

winchannel = comm.WINNER2Channel(Name,Value) は、名前と値の引数を 1 つ以上使用してプロパティを指定します。たとえば、'NormalizeChannelOutputs','false' は、チャネル出力を正規化しないよう指定します。

winchannel = comm.WINNER2Channel(cfgModel) は、ModelConfig プロパティを cfgModel に設定します。

winchannel = comm.WINNER2Channel(cfgModel,cfgLayout) は、LayoutConfig プロパティを cfgLayout に設定します。

プロパティ

すべて展開する

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

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

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

WINNER II モデルのパラメーターの構成。構造体として指定します。関数 winner2.wimparset を使用して既定のモデル コンフィギュレーションの構造体を作成することも、手動で作成することもできます。Winner II チャネル モデルのパラメーターの構成には、以下のフィールドが含まれます。

時間サンプルの数。スカラーとして指定します。

メモ

入力信号 (NS) 内のサンプル数が NumTimeSamples と一致しなかった場合、NumTimeSamples は NS と一致するように更新されます。

データ型: double

特定のシナリオに対して事前定義されたパス遅延とパワーを使用するオプション。'no' または 'yes' として指定します。

特定のシナリオに対して事前定義されたパスの発射角 (AoD) と到来角 (AoA) を使用するオプション。'no' または 'yes' として指定します。

リンクごとの最も強力な 2 つのクラスターをそれぞれ 3 つのサブクラスターに分割するオプション。'yes' または 'no' として指定します。

偏波共用アレイを使用するオプション。'yes' または 'no' として指定します。

手動で定義された伝播条件を使用するオプション。'yes' または 'no' として指定します。PropagConditionVector フィールドの手動で定義された伝播条件 (LOS または NLOS) の使用を強制するには、このフィールドを 'yes' に設定します。事前定義した LOS 確率から伝播条件を引き出すには、このフィールドを 'no' に設定します。

搬送波周波数 (Hz)。スカラーで指定します。

データ型: double

等間隔時間サンプリングを強制するオプション。'no' または 'yes' として指定します。

半波長あたりの時間サンプルの数。スカラーとして指定します。

データ型: double

サンプリング間隔。入力信号のサンプル時間を秒単位で示すスカラーとして指定します。DelaySamplingInterval は、パス遅延を丸めるサンプリング グリッドを定義します。

  • 0 秒の値は、パス遅延が丸められていないことを示しています。チャネルのフィルター処理を実行すると、オブジェクトは DelaySamplingInterval0 に設定して元のパス遅延を取得します。

  • DelaySamplingInterval の非ゼロの値はすべて無視されます。具体的には、DelaySamplingInterval 値の倍数に丸められておらず非ゼロの値のパスが遅延します。

データ型: double

シャドウ フェージングを使用するオプション。'no' または 'yes' として指定します。

パス損失モデルを使用するオプション。'no' または 'yes' として指定します。

パス損失モデル。有効な関数名を表す文字ベクトルとして指定します。パス損失モデルは、WINNER II チャネルアドオンの内部関数 pathloss を使用してパス損失をモデル化します。

依存関係

このプロパティを有効にするには、PathLossModelUsed フィールドを 'yes' に設定します。

データ型: char

壁の材料。'CR_light''CR_heavy''RR_light'、または 'RR_heavy' として指定します。このフィールドは、A1 シナリオの NLOS パス損失計算用の壁の材料を示します。

依存関係

このプロパティを有効にするには、PathLossModelUsed フィールドを 'yes' に設定します。

データ型: char

乱数発生器のシード。スカラーまたは空のかっことして指定します。空のかっこ [] は、グローバル乱数ストリームの使用を示します。

データ型: double

データ型: struct

WINNER II レイアウト パラメーターの構成。構造体として指定します。関数 winner2.layoutparset を使用して既定のレイアウト構成の構造体を作成することも、手動で作成することもできます。Winner II チャネル レイアウトのパラメーターの構成には、以下のフィールドが含まれます。

アクティブな局。アクティブな局のアンテナ アレイを表す構造体の行ベクトルとして指定します。Stationsarrays 入力から作成されます。行の順序によって、最初に基地局 (BS) セクター、次に移動局 (MS) が指定されます。BS セクターと MS の位置は、ランダムに割り当てられます。BS セクターには速度はありません。各 MS には、ランダムに割り当てられた方向で約 1.42 m/s の速度があります。

データ型: struct

セクター数。各 BS 内のセクター数を表すベクトルとして指定します。

データ型: double

BS と MS のペアリング。2 行 NL 列の行列として指定します。NL はモデル化するリンクの数を指定します。BS と MS の行の順序については、Stations フィールドを参照してください。

データ型: double

空間のシナリオ。シナリオ番号の 1 行 NL 列のベクトルとして指定します。既定は 1 で、これはシナリオ A1 を指定します。

このシナリオ番号は {1=A1, 2=A2, 3=B1, 4=B2, 5=B3, 6=B4, 10=C1, 11=C2, 12=C3, 13=C4, 14=D1, 15=D2a} としてマッピングします。

詳細については、『WINNER II Channel Models[1]』の第 2.3 節を参照してください。

伝播条件。1 行 NL 列のベクトルとして指定します。リンクごとに、LOS を 1、NLOS を 0 として指定します。

データ型: double

道幅。道の平均幅 (メートル) を指定する同一の値の 1 行 NL 列のベクトルとして指定します。B1 シナリオと B2 シナリオのパス損失モデルには StreetWidth を使用します。シナリオ番号のマッピングについては、ScenarioVector フィールドを参照してください。

依存関係

このプロパティを有効にするには、PathLossModelUsed フィールドを 'yes' に設定します。

データ型: double

BS から最後の LOS 点までの距離。1 行 NL 列のベクトルとして指定します。B1 シナリオと B2 シナリオのパス損失モデルには Dist1 フィールドを使用します。NaN の既定値は、距離がパス損失関数でランダムに決定されることを示します。シナリオ番号のマッピングについては、ScenarioVector フィールドを参照してください。

詳細については、『WINNER II Channel Models[1]』の図 4-3 を参照してください。

依存関係

このプロパティを有効にするには、PathLossModelUsed フィールドを 'yes' に設定します。

データ型: double

屋内の BS または MS が配置されている階数。1 行 NL 列のベクトルとして指定します。NumFloors フィールドは、A2 シナリオと B4 シナリオのパス損失モデルにのみ使用します。シナリオ番号のマッピングについては、ScenarioVector フィールドを参照してください。

依存関係

このプロパティを有効にするには、PathLossModelUsed フィールドを 'yes' に設定します。

データ型: double

BS と MS の間の透過する階数。1 行 NL 列のベクトルとして指定します。A1 シナリオの NLOS パス損失モデルには NumPenetratedFloors フィールドを使用します。シナリオ番号のマッピングについては、ScenarioVector フィールドを参照してください。

詳細については、『WINNER II Channel Models[1]』の表 4-4 を参照してください。

依存関係

このプロパティを有効にするには、PathLossModelUsed フィールドを 'yes' に設定します。

データ型: double

データ型: struct

チャネル出力を正規化するオプション。'true' または 'false' として指定します。各リンクの MS で受信アンテナの数によってチャネル出力を正規化するには、このプロパティを 'true' に設定します。

詳細については、チャネル パワーを参照してください。

データ型: char | string

使用法

説明

outsignal = winchannel(insignal) は、WINNER II フェージング チャネルを通して入力信号をフィルター処理し、結果の信号を返します。

[outsignal,pathgains] = winchannel(insignal) は、潜在的なフェージング処理のチャネル パス ゲインも返します。

入力引数

すべて展開する

入力信号。NL 行 1 列の cell 配列または NS 行 NT 列の行列として指定します。NL は、winchannel オブジェクトの LayoutConfig プロパティで指定されるリンク数です。insignal 引数の i 番目の要素は、NS 行 NT(i) 列のデータ型 double の行列でなければなりません。

  • NS は生成されるサンプルの数です。これは insignal 引数のすべての要素で同じ値でなければなりません。

  • NT は、winchannel オブジェクトの LayoutConfig プロパティで指定される i 番目のリンクの BS の送信アンテナの数です。

出力引数

すべて展開する

出力信号。NL 行 1 列の cell 配列として返されます。チャネルにリンクが 1 つしかない場合、またはすべてのリンクに同じ数の送信アンテナがある場合、insignal 引数は NS 行 NT 列の行列でなければならず、outsignal 引数の i 番目の要素は NS 行 NR(i) 列の行列です。NR(i) は、winchannel オブジェクトの LayoutConfig プロパティで指定される i 番目のリンクの MS の受信アンテナの数です。

チャネル パス ゲイン。NL 行 1 列の cell 配列として返されます。

pathgains 引数の i 番目の要素は、データ型 double の複素数値から成る NR(i)×NT(i)×NP(i)×NS の配列です。NP(i) は、winchannel オブジェクトの LayoutConfig プロパティで指定される i 番目のリンクのパスの数です。

NR、NT、および NP はリンク固有です。NS はすべてのリンクに対して同じです。

オブジェクト関数

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

release(obj)

すべて展開する

stepSystem object のアルゴリズムの実行
releaseリソースを解放し、System object のプロパティ値と入力特性の変更を可能にします。
resetSystem object の内部状態のリセット

メモ

オブジェクト関数 reset を使用するとき、オブジェクトの ModelConfig.RandomSeed プロパティが空の場合、reset はフィルターのみをリセットします。それ以外の場合、reset はフィルターをリセットし、乱数ストリームを ModelConfig.RandomSeed フィールドの値に再初期化します。

すべて折りたたむ

1 つの BS に 2 つの MS が接続されたシステムをシミュレートします。一方の MS は BS から 8 メートル離れており、もう一方は BS から 20 メートル離れています。2 つのリンクを通してインパルス信号を送信します。MS での受信信号のスペクトルは周波数選択性を示します。

再現できるように乱数発生器のシードを指定します。

rng(100);

フレーム長とサンプル レートを初期化します。

frmLen = 1024;

winner II チャネル レイアウトのパラメーターを構成します。

BSAA = winner2.AntennaArray("UCA",8,0.02);   % UCA-8 antenna array for BS
MSAA1 = winner2.AntennaArray("ULA",2,0.01);  % ULA-2 antenna array for MS
MSAA2 = winner2.AntennaArray("ULA",4,0.005); % ULA-4 antenna array for MS
MSIdx = [2 3]; 
BSIdx = {1};
NL = 2;
maxRange = 100;
rndSeed = 101;
cfgLayout = winner2.layoutparset(MSIdx,BSIdx,NL, ...
   [BSAA,MSAA1,MSAA2],maxRange,rndSeed);

BS と MS の位置を調整します。

cfgLayout.Stations(1).Pos(1:2) = [10, 10];
cfgLayout.Stations(2).Pos(1:2) = [18, 10];  % 8 meters away from BS
cfgLayout.Stations(3).Pos(1:2) = [22, 26];  % 20 meters away from BS

両方のリンクに NLOS を指定します。

cfgLayout.Pairing = [1 1; 2 3];
cfgLayout.PropagConditionVector = [0 0];

winner II チャネル モデルのパラメーターを構成します。

cfgModel = winner2.wimparset;
cfgModel.NumTimeSamples = frmLen;     % Frame length
cfgModel.IntraClusterDsUsed = "no";   % No cluster splitting
cfgModel.SampleDensity = 2e5;         % For lower sample rate
cfgModel.PathLossModelUsed = "yes";   % Turn on path loss
cfgModel.ShadowingModelUsed = "yes";  % Turn on shadowing

WINNER II フェージング チャネル System object を作成します。

winChannel = comm.WINNER2Channel(cfgModel,cfgLayout);

システム情報を取得します。

chanInfo = info(winChannel)
chanInfo = struct with fields:
               NumLinks: 2
          NumBSElements: [8 8]
          NumMSElements: [2 4]
               NumPaths: [16 16]
             SampleRate: [1.0000e+07 1.0000e+07]
     ChannelFilterDelay: [7 7]
    NumSamplesProcessed: 0

送信機の数とシステムのサンプル レートを取得します。

numTx = chanInfo.NumBSElements(1);
Rs = chanInfo.SampleRate(1);

スペクトル アナライザー System object を作成します。

sa = spectrumAnalyzer( ...
    SampleRate=Rs, ...
    YLimits=[-170, -100], ...
    ShowLegend=true, ...
    ChannelNames=["MS 1 (8 meters away)","MS 2 (20 meters away)"]);

2 つのリンクを通してインパルス信号を渡し、2 つの MS における受信信号のスペクトルを表示します。

for i = 1:10
    x = [ones(1,numTx); 
    zeros(frmLen-1,numTx)];
    y = winChannel(x);
    sa([y{1}(:,1),y{2}(:,1)]);
end
release(sa)

詳細

すべて展開する

参照

[1] Kyosti, Pekka, Juha Meinila, et al. WINNER II Channel Models. D1.1.2 V1.2. IST-4–027756 WINNER II, September 2007.

バージョン履歴

R2016b で導入