comm.Ray
RF 伝播光線の作成
説明
comm.Ray
オブジェクトは伝播光線のプロパティ用のコンテナー オブジェクトです。オブジェクトには、空間内のある点から別の点に伝播する無線波に関する幾何学的な電磁情報が含まれます。
作成
通常は、関数raytrace
を使用して comm.Ray
オブジェクトを作成します。
説明
は伝播光線のプロパティを初期化する光線オブジェクトを作成します。ray
= comm.Ray
は、1 つ以上の名前と値のペアの引数を使用してプロパティを設定します。各プロパティ名を引用符で囲みます。たとえば、ray
= comm.Ray(Name,Value
)comm.Ray('CoordinateSystem','Geographic','TransmitterLocation',[40.730610,-73.935242,0])
は地理座標系とニューヨーク市に配置された送信機を指定します。
プロパティ
PathSpecification
— 伝播パスの指定方法
'Locations'
(既定値) | 'Delay and angles'
伝播パスの指定方法。次のいずれかの値に指定します。
'Locations'
— ウェイポイントの間の光線オブジェクト パスは、TransmitterLocation
プロパティ、ReceiverLocation
プロパティ、および必要に応じてReflectorLocations
プロパティによる (x, y, z) 座標点として伝えられます。'Delay and angles'
— ウェイポイントの間の光線オブジェクト パスはPropagationDelay
プロパティ、AngleOfDeparture
プロパティ、およびAngleOfArrival
プロパティによって伝えられます。
データ型: char
| string
CoordinateSystem
— 座標系
'Cartesian'
(既定値) | 'Geographic'
座標系。'Cartesian'
または 'Geographic'
として指定します。CoordinateSystem
プロパティを 'Geographic'
に設定した場合、座標系は WGS-84 地球楕円体モデルを基準にして定義され、オブジェクトは送信機および受信機でのローカルの East-North-Up (ENU) 座標系を基準にして角度を定義します。
依存関係
このプロパティを有効にするには、PathSpecification
プロパティを 'Locations'
に設定します。
データ型: char
| string
SystemScale
— 直交座標系スケール
1
(既定値) | 正のスカラー
メートル単位で表す直交座標系スケール。正のスカラーとして指定します。
依存関係
このプロパティを有効にするには、PathSpecification
プロパティを 'Locations'
に、CoordinateSystem
プロパティを 'Cartesian'
に設定します。
データ型: double
TransmitterLocation
— 送信機の位置
[0;0;0]
(既定値) | 3 要素の数値列ベクトル
送信機の位置。座標の 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
ReceiverLocation
— 受信機の位置
[10;10;10]
(既定値) | 3 要素の数値列ベクトル
受信機の位置。座標の 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
LineOfSight
— 見通し線
true
または 1
(既定値) | false
または 0
見通し線。光線が見通し内光線であるかどうかを示す 1
(true
) または 0
(false
) の logical 値として指定します。
依存関係
このプロパティを有効にするには、PathSpecification
プロパティを 'Locations'
に設定します。
データ型: logical
Interactions
— 光線速度曲面の相互作用
1 行 NI 列の構造体
伝播パスに沿った光線速度曲面の相互作用。これらのフィールドを含む 1 行 NI 列の構造体として指定します。NI は相互作用の数です。
Type
— 光線速度曲面の相互作用のタイプ
'Reflection'
(既定値) | 'Diffraction'
光線速度曲面の相互作用のタイプ。'Reflection'
または 'Diffraction'
として指定します。
データ型: char
| string
Location
— 位置
[10;10;0]
(既定値) | 3 行 1 列の数値ベクトル
位置。光線上の相互作用点の座標を含む 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
PropagationDelay
— 伝播遅延
5.7775e-08
| 非負のスカラー
秒単位の伝播遅延。非負のスカラーとして指定します。既定値は、見通し内光線の TransmitterLocation
プロパティと ReceiverLocation
プロパティの既定値を使用して計算されます。
PathSpecification
プロパティを'Locations'
に設定した場合、このプロパティは読み取り専用になり、値はTransmitterLocation
、ReceiverLocation
、および必要に応じてInteractions
から導出されます。PathSpecification
プロパティを'Delay and angles'
に設定した場合、このプロパティは構成可能です。
データ型: double
PropagationDistance
— 伝播距離
17.3205
| 非負のスカラー
このプロパティは読み取り専用です。
メートル単位の伝播距離。非負のスカラーとして指定します。既定値は、見通し内光線の TransmitterLocation
プロパティと ReceiverLocation
プロパティの既定値を使用して計算されます。
PathSpecification
プロパティを'Locations'
に設定した場合、値はTransmitterLocation
、ReceiverLocation
、および必要に応じてInteractions
から導出されます。PathSpecification
プロパティを'Delay and angles'
に設定した場合、値はPropagationDelay
から導出されます。
データ型: double
AngleOfDeparture
— 発射角
[45; 35.2644]
| [az; el] 形式の数値ベクトル
送信機での光線の発射角 (度単位)。[az; el] 形式の数値ベクトルとして指定します。方位角 az は正の x 軸から反時計回りに測定され、範囲 [–180, 180] 内でなければなりません。仰角 el は X-Y 平面から測定され、範囲 [–90, 90] 内でなければなりません。既定値は、見通し内光線の TransmitterLocation
プロパティと ReceiverLocation
プロパティの既定値を使用して計算されます。
PathSpecification
プロパティを'Delay and angles'
に設定した場合、このプロパティは構成可能です。PathSpecification
プロパティを'Locations'
に設定した場合、このプロパティは読み取り専用になり、値はTransmitterLocation
、ReceiverLocation
、および必要に応じてInteractions
から導出されます。CoordinateSystem
が'Geographic'
に設定されている場合、角度は送信機でのローカルの East-North-Up (ENU) 座標系を基準にして定義されます。
データ型: double
AngleOfArrival
— 到来角
[-135; -35.2644]
| [az; el] 形式の数値ベクトル
受信機での光線の到来角 (度単位)。[az; el] 形式の数値ベクトルとして指定します。方位角 az は正の x 軸から反時計回りに測定され、範囲 [–180, 180] 内でなければなりません。仰角 el は X-Y 平面から測定され、範囲 [–90, 90] 内でなければなりません。既定値は、見通し内光線の TransmitterLocation
プロパティと ReceiverLocation
プロパティの既定値を使用して計算されます。
PathSpecification
プロパティを'Delay and angles'
に設定した場合、このプロパティは構成可能です。PathSpecification
プロパティを'Locations'
に設定した場合、このプロパティは読み取り専用になり、値はTransmitterLocation
、ReceiverLocation
、および必要に応じてInteractions
から導出されます。CoordinateSystem
が'Geographic'
に設定されている場合、角度は受信機でのローカルの East-North-Up (ENU) 座標系を基準にして定義されます。
データ型: double
NumInteractions
— 光線速度曲面の相互作用の数
0
(既定値) | 非負の整数
このプロパティは読み取り専用です。
送信機から受信機までの光線オブジェクトの光線速度曲面の相互作用の数。非負の整数として指定します。値は LineOfSight
、および必要に応じて Interactions
から導出されます。
依存関係
このプロパティを有効にするには、PathSpecification
プロパティを 'Locations'
に設定します。
データ型: double
Frequency
— 信号周波数
1.9e+09
(既定値) | 正のスカラー
信号周波数 (Hz 単位)。正のスカラーとして指定します。
データ型: double
PathLossSource
— パス損失のソース
'Free space model'
(既定値) | 'Custom'
パス損失のソース。'Free space model'
または 'Custom'
として指定します。
データ型: char
| string
PathLoss
— パス損失
62.7941
| 非負のスカラー
パス損失 (dB 単位)。非負のスカラーとして指定します。既定値は、見通し内光線の TransmitterLocation
プロパティと ReceiverLocation
プロパティの既定値を使用して計算されます。
PathLossSource
プロパティを'Free space model'
に設定した場合、PathLoss
プロパティは読み取り専用で、自由空間伝播モデルを使用してPropagationDistance
プロパティとFrequency
プロパティから導出されます。PathLossSource
プロパティを'Custom'
に設定した場合、幾何学的特性に関係なくPathLoss
プロパティを設定できます。
データ型: double
PhaseShift
— 位相シフト
4.8537
| 数値スカラー
位相シフト (ラジアン単位)。数値スカラーとして指定します。既定値は、見通し内光線の TransmitterLocation
プロパティと ReceiverLocation
プロパティの既定値を使用して計算されます。
PathLossSource
プロパティを'Free space model'
に設定した場合、PhaseShift
プロパティは読み取り専用で、自由空間伝播モデルを使用してPropagationDistance
プロパティとFrequency
プロパティから導出されます。PathLossSource
プロパティを'Custom'
に設定した場合、幾何学的特性に関係なくPhaseShift
プロパティを設定できます。
データ型: double
オブジェクト関数
plot
(rays) | サイト ビューアーでの RF 伝播光線の表示 |
例
香港の 2 サイト間でのレイトレーシングの実行
香港の 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×11 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.6360 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.1294 PhaseShift: 0.3952 Read-only properties: PropagationDelay: 4.6490e-07 PropagationDistance: 139.3720 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: 119.9462 PhaseShift: 0.3965 Read-only properties: PropagationDelay: 1.1327e-06 PropagationDistance: 339.5692 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: 92.7739 PhaseShift: 1.2933 Read-only properties: PropagationDelay: 5.7088e-07 PropagationDistance: 171.1462 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: 100.8574 PhaseShift: 2.9398 Read-only properties: PropagationDelay: 5.9259e-07 PropagationDistance: 177.6532 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: 106.3302 PhaseShift: 4.6994 Read-only properties: PropagationDelay: 6.3790e-07 PropagationDistance: 191.2374 AngleOfDeparture: [2×1 double] AngleOfArrival: [2×1 double] NumInteractions: 2
close(viewer)
レイトレーシングを再実行することなく光線をプロットできます。同じ建物をもつ別のサイト ビューアー マップを作成します。送信機サイトと受信機サイトを表示します。以前に返された光線オブジェクトの cell 配列を使用して、送信機サイトと受信機サイト間に反射光線をプロットします。プロット関数では、光線オブジェクトのパスをまとめてプロットするか、または個別にプロットできます。たとえば、2 番目の光線オブジェクトの光線のみをプロットするには、rays{1}(1,2)
と指定します。この図は、すべての光線オブジェクトのすべてのパスをプロットします。
siteviewer("Buildings","chicago.osm")
ans = siteviewer with properties: Name: 'Site Viewer' Position: [560 240 800 600] CoordinateSystem: "geographic" Basemap: 'satellite' Terrain: 'gmted2010' 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: ReflectionLocations
および NumReflections
プロパティは削除されました。
ReflectionLocations
および NumReflections
プロパティは削除されました。反射に対応するため、Interactions
プロパティで ReflectionLocations
プロパティを置き換え、NumInteractions
プロパティで NumReflections
プロパティを置き換えます。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)