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 および height の範囲検証を実行しません。height は、世界測地系 1984 (WGS84) で定義されている楕円体を基準としています。

依存関係

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

データ型: double

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

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

  • [latitude; longitude; height] — この形式は、CoordinateSystem プロパティを 'Geographic' に設定する場合に適用されます。latitude は範囲 [–90, 90] 内になければなりません。オブジェクトは longitude および height の範囲検証を実行しません。height は、世界測地系 1984 (WGS84) で定義されている楕円体を基準としています。

依存関係

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

データ型: double

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

依存関係

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

データ型: logical

伝播パスに沿った光線速度曲面の相互作用。これらのフィールドを含む 1 行 NI 列の構造体として指定します。NI は相互作用の数です。

光線速度曲面の相互作用のタイプ。'Reflection' または 'Diffraction' として指定します。

データ型: char | string

位置。光線上の相互作用点の座標を含む 3 行 1 列の数値ベクトルとして指定します。

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

  • CoordinateSystem プロパティが 'Geographic' に設定されている場合、形式は [latitude; longitude; height] です。latitudeは [–90, 90] の範囲になければなりません。オブジェクトは longitude および height の範囲検証を実行しません。height は、世界測地系 1984 (WGS84) で定義されている楕円体を基準としています。

データ型: double

依存関係

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

データ型: struct

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

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

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

データ型: double

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

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

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

  • 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、および必要に応じて Interactions から導出されます。

  • 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、および必要に応じて Interactions から導出されます。

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

データ型: double

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

送信機から受信機までの光線オブジェクトの光線速度曲面の相互作用の数。非負の整数として指定します。値は LineOfSight、および必要に応じて Interactions から導出されます。

依存関係

このプロパティを有効にするには、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)サイト ビューアーでの RF 伝播光線の表示

すべて折りたたむ

香港の 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);
show(tx);
show(rx);

最大 3 つの反射で SBR 法を使用するレイ トレーシング伝播モデルを指定します。

pm = propagationModel('raytracing', ...
    'Method','sbr', ...
    'MaxNumReflections',3);

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

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

最初の comm.Ray オブジェクトのプロパティを表示します。LineOfSight プロパティの値は 1 で、NumInteractions プロパティの値は 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.6406

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

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

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

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
           Interactions: [1×1 struct]
              Frequency: 2.8000e+10
         PathLossSource: 'Custom'
               PathLoss: 106.2236
             PhaseShift: 0.0788

   Read-only properties:
       PropagationDelay: 4.6492e-07
    PropagationDistance: 139.3787
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 1

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

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

   Read-only properties:
       PropagationDelay: 1.1327e-06
    PropagationDistance: 339.5744
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 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');

ある建物の上に送信機サイト、別の建物の上に受信機サイトを作成します。関数 los を使用して、送信機サイトと受信機サイト間の見通し線パスを表示します。

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

最大 2 つの反射のレイ トレーシングを実行します。定義された構成の場合、レイ トレーシングによって光線オブジェクトが含まれる cell 配列が返されます。サイト ビューアー マップを閉じます。

pm = propagationModel( ...
    'raytracing', ...
    'Method','sbr', ...
    'MaxNumReflections',2);
rays = raytrace(tx,rx,pm)
rays = 1×1 cell array
    {1×3 comm.Ray}

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

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
           Interactions: [1×1 struct]
              Frequency: 2.5000e+09
         PathLossSource: 'Custom'
               PathLoss: 94.1067
             PhaseShift: 1.1472

   Read-only properties:
       PropagationDelay: 5.7089e-07
    PropagationDistance: 171.1479
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 1

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

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
           Interactions: [1×2 struct]
              Frequency: 2.5000e+09
         PathLossSource: 'Custom'
               PathLoss: 101.8769
             PhaseShift: 2.8594

   Read-only properties:
       PropagationDelay: 5.9279e-07
    PropagationDistance: 177.7143
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 2

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

      PathSpecification: 'Locations'
       CoordinateSystem: 'Geographic'
    TransmitterLocation: [3×1 double]
       ReceiverLocation: [3×1 double]
            LineOfSight: 0
           Interactions: [1×2 struct]
              Frequency: 2.5000e+09
         PathLossSource: 'Custom'
               PathLoss: 99.1597
             PhaseShift: 4.6635

   Read-only properties:
       PropagationDelay: 6.3790e-07
    PropagationDistance: 191.2388
       AngleOfDeparture: [2×1 double]
         AngleOfArrival: [2×1 double]
        NumInteractions: 2

close(viewer);

レイトレーシングを再実行することなく光線をプロットできます。同じ建物をもつ別のサイト ビューアー マップを作成します。送信機サイトと受信機サイトを表示します。以前に返された光線オブジェクトの cell 配列を使用して、送信機サイトと受信機サイト間に反射光線をプロットします。プロット関数では、光線オブジェクトのパスをまとめてプロットするか、または個別にプロットできます。たとえば、2 番目の光線オブジェクトの光線のみをプロットするには、rays{1}(1,2) と指定します。この図は、すべての光線オブジェクトのすべてのパスをプロットします。

siteviewer('Buildings','chicago.osm');
los(tx,rx);
plot(rays{:},'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 で導入

すべて展開する

R2021b 以降はエラー