Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

comm.Ray

伝播光線コンテナー オブジェクト

説明

comm.Ray オブジェクトは伝播光線のプロパティ用のコンテナー オブジェクトです。オブジェクトには、空間内のある点から別の点に伝播する無線波に関する幾何学的な電磁情報が含まれます。

作成

通常は、関数raytraceを使用して comm.Ray オブジェクトを作成します。

説明

ray = comm.Ray は伝播光線のプロパティを初期化するコンテナー オブジェクトを作成します。

ray = comm.Ray(Name,Value) は、1 つ以上の名前と値のペアの引数を使用してプロパティを設定します。各プロパティ名を引用符で囲みます。たとえば、comm.Ray('CoordinateSystem','Geographic','TransmitterLocation',[40.730610,-73.935242,0]) は地理座標系とニューヨーク市に配置された送信機を指定します。

プロパティ

すべて展開する

伝播パスの指定方法。次のいずれかの値に指定します。

  • 'Locations' — ウェイポイントの間の光線オブジェクト パスは、TransmitterLocation プロパティ、ReceiverLocation プロパティ、および必要に応じて ReflectorLocations プロパティによる (x, y, z) 座標点として伝えられます。

  • 'Delay and angles' — ウェイポイントの間の光線オブジェクト パスは PropagationDelay プロパティ、AngleOfDeparture プロパティ、および AngleOfArrival プロパティによって伝えられます。

データ型: char | string

座標系。'Cartesian' または 'Geographic' として指定します。CoordinateSystem プロパティを 'Geographic' に設定した場合、座標系は WGS-84 地球楕円体モデルを基準にして定義され、オブジェクトは送信機および受信機でのローカルの East-North-Up (ENU) 座標系を基準にして角度を定義します。

依存関係

このプロパティを有効にするには、PathSpecification プロパティを 'Locations' に設定します。

データ型: char | string

メートル単位で表す直交座標系スケール。正のスカラーとして指定します。

依存関係

このプロパティを有効にするには、PathSpecification プロパティを 'Locations' に、CoordinateSystem プロパティを 'Cartesian' に設定します。

データ型: double

送信機の位置。座標の 3 要素の数値列ベクトルとして次のいずれかの形式で指定します。

  • [x; y; z] — この形式は、CoordinateSystem プロパティを 'Cartesian' に設定する場合に適用されます。オブジェクトは x、y、および z の範囲検証を実行しません。

  • [latitude; longitude; height] — この形式は、CoordinateSystem プロパティを 'Geographic' に設定する場合に適用されます。latitude は範囲 [–90, 90] 内になければなりません。オブジェクトは longitude の範囲検証を実行しません。

依存関係

このプロパティを有効にするには、PathSpecification プロパティを 'Locations' に設定します。

データ型: double

受信機の位置。座標の 3 要素の数値列ベクトルとして次のいずれかの形式で指定します。

  • [x; y; z] — この形式は、CoordinateSystem プロパティを 'Cartesian' に設定する場合に適用されます。オブジェクトは x、y、および z の範囲検証を実行しません。

  • [latitude; longitude; height] — この形式は、CoordinateSystem プロパティを 'Geographic' に設定する場合に適用されます。latitude は範囲 [–90, 90] 内になければなりません。オブジェクトは longitude の範囲検証を実行しません。

依存関係

このプロパティを有効にするには、PathSpecification プロパティを 'Locations' に設定します。

データ型: double

見通し線。光線が見通し内光線であるかどうかを示す 1 (true) または 0 (false) の logical 値として指定します。

依存関係

このプロパティを有効にするには、PathSpecification プロパティを 'Locations' に設定します。

データ型: logical

反射体の位置。光線の反射点の座標が含まれる 3 行 N 列の数値行列として指定します。N は光線の反射点の数であり、NumReflections プロパティで設定されます。各列は、送信機から受信機までの伝播パスに沿った 1 つの反射点の座標位置を表しています。列の順序はパスに沿った点の順序と同じです。列 (反射点の座標) は次のいずれかの形式です。

  • [x; y; z] — CoordinateSystem プロパティが 'Cartesian' に設定されている場合。オブジェクトは x、y、および z の範囲検証を実行しません。

  • [latitude; longitude; height] — CoordinateSystem プロパティが 'Geographic' に設定されている場合。latitude は範囲 [–90, 90] 内になければなりません。オブジェクトは longitude の範囲検証を実行しません。

依存関係

このプロパティを有効にするには、PathSpecification プロパティを 'Locations' に、LineOfSight プロパティを 0 (false) に設定します。

.

データ型: double

秒単位の伝播遅延。非負のスカラーとして指定します。既定値は、見通し内光線の TransmitterLocation プロパティと ReceiverLocation プロパティの既定値を使用して計算されます。

  • PathSpecification プロパティを 'Locations' に設定した場合、このプロパティは読み取り専用になり、値は TransmitterLocationReceiverLocation、および必要に応じて ReflectionLocations から導出されます。

  • PathSpecification プロパティを 'Delay and angles' に設定した場合、このプロパティは構成可能です。

データ型: double

このプロパティは読み取り専用です。

メートル単位の伝播距離。非負のスカラーとして指定します。既定値は、見通し内光線の TransmitterLocation プロパティと ReceiverLocation プロパティの既定値を使用して計算されます。

  • PathSpecification プロパティを 'Locations' に設定した場合、値は TransmitterLocationReceiverLocation、および必要に応じて ReflectionLocations から導出されます。

  • PathSpecification プロパティを 'Delay and angles' に設定した場合、値は PropagationDelay から導出されます。

データ型: double

送信機での光線の発射角 (度単位)。[az; el] 形式の数値ベクトルとして指定します。方位角 az は正の x 軸から反時計回りに測定され、範囲 [–180, 180] 内でなければなりません。仰角 el は X-Y 平面から測定され、範囲 [–90, 90] 内でなければなりません。既定値は、見通し内光線の TransmitterLocation プロパティと ReceiverLocation プロパティの既定値を使用して計算されます。

  • PathSpecification プロパティを 'Delay and angles' に設定した場合、このプロパティは構成可能です。

  • PathSpecification プロパティを 'Locations' に設定した場合、このプロパティは読み取り専用になり、値は TransmitterLocationReceiverLocation、および必要に応じて ReflectionLocations から導出されます。

  • CoordinateSystem'Geographic' に設定されている場合、角度は送信機でのローカルの East-North-Up (ENU) 座標系を基準にして定義されます。

データ型: double

受信機での光線の到来角 (度単位)。[az; el] 形式の数値ベクトルとして指定します。方位角 az は正の x 軸から反時計回りに測定され、範囲 [–180, 180] 内でなければなりません。仰角 el は X-Y 平面から測定され、範囲 [–90, 90] 内でなければなりません。既定値は、見通し内光線の TransmitterLocation プロパティと ReceiverLocation プロパティの既定値を使用して計算されます。

  • PathSpecification プロパティを 'Delay and angles' に設定した場合、このプロパティは構成可能です。

  • PathSpecification プロパティを 'Locations' に設定した場合、このプロパティは読み取り専用になり、値は TransmitterLocationReceiverLocation、および必要に応じて ReflectionLocations から導出されます。

  • CoordinateSystem'Geographic' に設定されている場合、角度は受信機でのローカルの East-North-Up (ENU) 座標系を基準にして定義されます。

データ型: double

このプロパティは読み取り専用です。

送信機から受信機までの光線オブジェクトの反射点数。非負の整数として指定します。値は LineOfSight、および必要に応じて ReflectionLocations から導出されます。

依存関係

このプロパティを有効にするには、PathSpecification プロパティを 'Locations' に設定します。

データ型: double

信号周波数 (Hz 単位)。正のスカラーとして指定します。

データ型: double

パス損失のソース。'Free space model' または 'Custom' として指定します。

データ型: char | string

パス損失 (dB 単位)。非負のスカラーとして指定します。既定値は、見通し内光線の TransmitterLocation プロパティと ReceiverLocation プロパティの既定値を使用して計算されます。

  • PathLossSource プロパティを 'Free space model' に設定した場合、PathLoss プロパティは読み取り専用で、自由空間伝播モデルを使用して PropagationDistance プロパティと Frequency プロパティから導出されます。

  • PathLossSource プロパティを 'Custom' に設定した場合、幾何学的特性に関係なく PathLoss プロパティを設定できます。

データ型: double

位相シフト (ラジアン単位)。数値スカラーとして指定します。既定値は、見通し内光線の TransmitterLocation プロパティと ReceiverLocation プロパティの既定値を使用して計算されます。

  • PathLossSource プロパティを 'Free space model' に設定した場合、PhaseShift プロパティは読み取り専用で、自由空間伝播モデルを使用して PropagationDistance プロパティと Frequency プロパティから導出されます。

  • PathLossSource プロパティを 'Custom' に設定した場合、幾何学的特性に関係なく PhaseShift プロパティを設定できます。

データ型: double

オブジェクト関数

plot (rays)光線をサイト ビューアー マップにプロットします。

すべて折りたたむ

香港の 2 サイト間でレイトレーシングを実行し、comm.Ray オブジェクトを含む cell 配列を生成します。comm.Ray オブジェクトには、送信機サイトから受信機サイトへの無線波伝播パスに関する幾何学的な電磁情報が含まれます。

サイト ビューアー マップを作成し、香港の建物データを読み込みます。osm ファイルの詳細については、[1] を参照してください。

viewer = siteviewer('Buildings','hongkong.osm');

送信機サイトと受信機サイトを指定します。

tx = txsite('Latitude',22.2789,'Longitude',114.1625, ...
    'AntennaHeight',10,'TransmitterPower',5, ...
    'TransmitterFrequency',28e9);
rx = rxsite('Latitude',22.2799,'Longitude',114.1617, ...
    'AntennaHeight',1);

サイト間でレイトレーシングを実行し、cell 配列に comm.Ray オブジェクトを生成します。指定された送信機サイトと受信機サイトでは、レイトレーシングを実行することで 1 つの行ベクトルに 3 つの光線オブジェクトが含まれる 1 行 1 列の cell 配列になります。

rays = raytrace(tx,rx,'Type','pathloss','ColorLimits',[100 250])
rays = 1×1 cell array
    {1×3 comm.Ray}

最初の comm.Ray オブジェクトのプロパティを表示します。LineOfSight プロパティの値は 1 で、NumReflections プロパティの値は 0 です。この組み合わせは、光線が見通し内パスを定義することを示しています。

rays{1}(1)
ans = 
  Ray with properties:

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 1
              Frequency: 2.8000e+10
         PathLossSource: 'Custom'
               PathLoss: 104.2656
             PhaseShift: 4.6390

   Read-only properties:
       PropagationDelay: 4.6442e-07
    PropagationDistance: 139.2294
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
         NumReflections: 0

2 番目と 3 番目の comm.Ray オブジェクトのプロパティを表示します。LineOfSight プロパティの値は 0 で、NumReflections プロパティの値は 0 より大きくなります。この組み合わせは、光線が反射パスを定義することを示しています。

rays{1}(2)
ans = 
  Ray with properties:

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
    ReflectionLocations: [3×1 double]
              Frequency: 2.8000e+10
         PathLossSource: 'Custom'
               PathLoss: 106.2545
             PhaseShift: 0.3951

   Read-only properties:
       PropagationDelay: 4.6490e-07
    PropagationDistance: 139.3720
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
         NumReflections: 1

rays{1}(3)
ans = 
  Ray with properties:

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
    ReflectionLocations: [3×1 double]
              Frequency: 2.8000e+10
         PathLossSource: 'Custom'
               PathLoss: 120.0733
             PhaseShift: 0.3965

   Read-only properties:
       PropagationDelay: 1.1327e-06
    PropagationDistance: 339.5692
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
         NumReflections: 1

レイトレーシング結果を可視化します。

plot(rays{1});

付録

[1] osm ファイルは、クラウドソーシングによる世界中の地図データへのアクセスを提供する https://www.openstreetmap.org からダウンロードされたものです。このデータは Open Data Commons Open Database License (ODbL) https://opendatacommons.org/licenses/odbl/ によりライセンスされています。

comm.Ray オブジェクトのレイトレーシング結果を返して、サイト ビューアー マップの再起動後に光線伝播パスをプロットします。

サイト ビューアー マップを作成し、シカゴの建物データを読み込みます。osm ファイルの詳細については、[1] を参照してください。

viewer = siteviewer('Buildings','chicago.osm');

ある建物の上に送信機サイト、別の建物の上に受信機サイトを作成して表示します。

tx = txsite('Latitude',41.8800,'Longitude',-87.6295, ...
    'TransmitterFrequency',2.5e9);
show(tx);
rx = rxsite('Latitude',41.881352,'Longitude',-87.629771, ...
    'AntennaHeight',30);
show(rx);

レイトレーシングを実行して、光線オブジェクトの結果を返します。定義された構成の場合、レイトレーシングによって 1 つの光線オブジェクトが含まれる cell 配列が返されます。光線オブジェクトのプロパティを表示します。次に、サイト ビューアー マップを閉じます。

rays = raytrace(tx,rx)
rays = 1×1 cell array
    {1×1 comm.Ray}

rays{1}
ans = 
  Ray with properties:

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
    ReflectionLocations: [3×1 double]
              Frequency: 2.5000e+09
         PathLossSource: 'Custom'
               PathLoss: 94.0915
             PhaseShift: 1.2939

   Read-only properties:
       PropagationDelay: 5.7088e-07
    PropagationDistance: 171.1462
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
         NumReflections: 1

close(viewer);

レイトレーシングを再実行することなく光線をプロットできます。同じ建物をもつ別のサイト ビューアー マップを作成します。送信機サイトと受信機サイトを表示します。以前に返された光線オブジェクトの cell 配列を使用して、送信機サイトと受信機サイト間に反射光線をプロットします。プロット関数では、一度に 1 つの光線オブジェクトのパスをプロットできます。

siteviewer('Buildings','chicago.osm');
show(tx);
show(rx);
plot(rays{1},'Type','power', ...
    'TransmitterSite',tx,'ReceiverSite',rx);

付録

[1] osm ファイルは、クラウドソーシングによる世界中の地図データへのアクセスを提供する https://www.openstreetmap.org からダウンロードされたものです。このデータは Open Data Commons Open Database License (ODbL) https://opendatacommons.org/licenses/odbl/ によりライセンスされています。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

R2020a で導入