このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
raypl
説明
[
は、RF 伝播光線 pl
,phase
] = raypl(ray
)ray
の dB 単位のパス損失 pl
とラジアン単位の位相シフト phase
を返します。この関数は、伝播パス、反射材料、およびアンテナの偏波から導出される自由空間損失と反射損失を使用して、パス損失と位相シフトを計算します。
既定では、raypl
はアンテナが偏波していないと仮定します。アンテナを偏波させるには、名前と値の引数 TransmitterPolarization
および ReceiverPolarization
を指定します。
パス損失の計算に関する詳細については、パス損失の計算を参照してください。
[
は、名前と値の引数を使用してオプションを指定します。たとえば、pl
,phase
] = raypl(ray
,Name=Value
)ReflectionMaterials="brick"
は反射材料としてレンガを指定します。
例
反射材料と周波数の変更によるパス損失の再評価
光線の反射材料と周波数を変更してから、パス損失と位相シフトを再評価します。
香港の建物を指定してサイト ビューアーを起動します。OpenStreetMap® ファイルの詳細については、[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);
レイ トレーシング伝播モデルを作成します。MATLAB® は、RayTracing
オブジェクトを使用してこのモデルを表現します。イメージ手法を使用して最大 2
回の表面反射を伴うパスを検出するように、モデルを構成します。その後、レイ トレーシング解析を実行します。
pm = propagationModel("raytracing", ... Method="image", ... MaxNumReflections=2); rays = raytrace(tx,rx,pm);
2 つのパス反射を含む最初の光線を検出します。次に、ray オブジェクトのプロパティを表示します。
idx = find([rays{1}.NumInteractions] == 2,1); ray = rays{1}(idx)
ray = Ray with properties: PathSpecification: 'Locations' CoordinateSystem: 'Geographic' TransmitterLocation: [3×1 double] ReceiverLocation: [3×1 double] LineOfSight: 0 Interactions: [1×2 struct] Frequency: 2.8000e+10 PathLossSource: 'Custom' PathLoss: 121.8592 PhaseShift: 4.5669 Read-only properties: PropagationDelay: 8.3060e-07 PropagationDistance: 249.0068 AngleOfDeparture: [2×1 double] AngleOfArrival: [2×1 double] NumInteractions: 2
サイト ビューアーで光線を表示します。
plot(ray)
このモデルは、既定で、地形の材料としてコンクリートを使用し、建物の材料として OpenStreetMap ファイルから取得した材料を使用します。OpenStreetMap ファイルで材料が指定されていない場合、モデルはコンクリートを使用します。この場合、光線が当たる材料はコンクリートになります。相互作用する材料を調べるには、ray オブジェクトの Interactions
プロパティのクエリを実行します。
ray.Interactions.MaterialName
ans = "concrete"
ans = "concrete"
異なる材料のパス損失を計算するには、関数 raypl
を使用します。この例では、最初の反射で金属を使用し、2 番目の反射でガラスを使用します。
[ray.PathLoss,ray.PhaseShift] = raypl(ray,ReflectionMaterials=["metal","glass"]); ray
ray = Ray with properties: PathSpecification: 'Locations' CoordinateSystem: 'Geographic' TransmitterLocation: [3×1 double] ReceiverLocation: [3×1 double] LineOfSight: 0 Interactions: [1×2 struct] Frequency: 2.8000e+10 PathLossSource: 'Custom' PathLoss: 114.9541 PhaseShift: 4.5669 Read-only properties: PropagationDelay: 8.3060e-07 PropagationDistance: 249.0068 AngleOfDeparture: [2×1 double] AngleOfArrival: [2×1 double] NumInteractions: 2
再計算した光線を表示します。パス損失が変化したため、色がわずかに変化しています。
plot(ray)
光線の周波数を変更します。次に、パス損失と位相シフトを再計算します。光線を再度表示し、色の変化を確認します。
ray.Frequency = 2e9; [ray.PathLoss,ray.PhaseShift] = raypl(ray,ReflectionMaterials=["metal","glass"]); plot(ray)
付録
[1] OpenStreetMap ファイルは、クラウドソーシングによる世界中の地図データへのアクセスを提供する https://www.openstreetmap.org からダウンロードされたものです。このデータは Open Data Commons Open Database License (ODbL) https://opendatacommons.org/licenses/odbl/ によりライセンスされています。
入力引数
ray
— RF 伝播光線
comm.Ray
オブジェクト
RF 伝播光線。comm.Ray
オブジェクトとして指定します。このオブジェクトの PathSpecification
プロパティは "Locations"
でなければなりません。光線の Interactions
プロパティの相互作用のタイプは、すべて "Reflection"
でなければなりません。
データ型: comm.Ray
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名で、Value
は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
例: raypl(ray,TransmitterPolarization="H",ReceiverPolarization="H")
は、ray
の送信アンテナと受信アンテナの水平偏波を指定します。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name
を引用符で囲みます。
例: raypl(ray,"TransmitterPolarization","H","ReceiverPolarization","H")
は、ray
の送信アンテナと受信アンテナの水平偏波を指定します。
ReflectionMaterials
— 反射材料
"concrete"
(既定値) | string スカラー | 1 行 NR 列の string ベクトル | 文字ベクトル | 文字ベクトルの 1 行 NR 列の cell 配列 | 2 行 1 列の数値ベクトル | 2 行 NR 列の数値行列
見通し外 (NLOS) 光線の反射材料。string スカラー、1 行 NR 列の string ベクトル、文字ベクトル、文字ベクトルの 1 行 NR 列の cell 配列、2 行 1 列の数値ベクトル、または 2 行 NR 列の数値行列として指定します。NR は、ray
に格納された反射数です。
反射材料を 1 つ指定した場合、すべての反射にその反射材料が適用されます。反射材料を複数指定した場合、ray
内の該当する反射点に各材料が適用されます。
事前定義された反射材料を使用するには、string スカラー、文字ベクトル、string ベクトル、または文字ベクトルからなる cell 配列として
ReflectionMaterials
を指定します。次のいずれかのオプションとして各反射材料を指定します。"concrete"
— コンクリート"plasterboard"
— 石こうボード"ceiling-board"
— 天井板"chipboard"
— チップボード"floorboard"
— 床板"brick"
— れんが"wood"
— 木材"glass"
— ガラス"metal"
— 金属"marble"
— 大理石 (R2024a 以降)"plywood"
— 合板 (R2024a 以降)"water"
— 水"vegetation"
— 植生"loam"
— 壌土"perfect-reflector"
— 完全導体
カスタムの反射材料を使用するには、2 行 1 列の数値ベクトルまたは 2 行 NR 列の数値行列を指定します。各列の形式は
[rp; cv]
です。ここで、rp
は比誘電率、cv
は導電率です。
詳細については、一般的な材料に対する ITU 比誘電率と伝導率の値を参照してください。
例: ReflectionMaterials=["concrete","water"]
は、2 つの反射を含む光線で、最初の反射点ではコンクリートの電気特性を使用し、2 番目の反射点では水の電気特性を使用するように指定します。
データ型: string
| char
| double
TransmitterPolarization
— 送信アンテナの偏波タイプ
"none"
(既定値) | "V"
| "H"
| "LHCP"
| "RHCP"
| 正規化された 2 行 1 列のジョーンズ ベクトル
送信アンテナの偏波タイプ。次のいずれかの値として指定します。
"none"
— 偏波なし"V"
— 垂直 (θ) 方向の直線偏波"H"
— 水平 (φ) 方向の直線偏波"LHCP"
— 左旋円偏波"RHCP"
— 右旋円偏波[H;V]
の形式の正規化された 2 行 1 列のジョーンズ ベクトル (偏波行列とも呼ばれます)。ここで、H
は水平成分、V
は垂直成分です。
偏波タイプとジョーンズ ベクトルの詳細については、ジョーンズ ベクトル表記法を参照してください。
例: TransmitterPolarization="RHCP"
は、送信アンテナに対して右旋円偏波を指定します。
データ型: double
| char
| string
ReceiverPolarization
— 受信アンテナの偏波タイプ
"none"
(既定値) | "V"
| "H"
| "LHCP"
| "RHCP"
| 正規化された 2 行 1 列のジョーンズ ベクトル
受信アンテナの偏波タイプ。次のいずれかの値として指定します。
"none"
— 偏波なし"V"
— 垂直 (θ) 方向の直線偏波"H"
— 水平 (φ) 方向の直線偏波"LHCP"
— 左旋円偏波"RHCP"
— 右旋円偏波[H;V]
の形式の正規化された 2 行 1 列のジョーンズ ベクトル (偏波行列とも呼ばれます)。ここで、H
は水平成分、V
は垂直成分です。
偏波タイプとジョーンズ ベクトルの詳細については、ジョーンズ ベクトル表記法を参照してください。
例: ReceiverPolarization=[1;0]
は、ジョーンズ ベクトル表記法を使用して、受信アンテナの水平偏波を指定します。
データ型: double
| char
| string
TransmitterAxes
— 送信アンテナ座標軸の方向
3 行 3 列の単位行列 (既定値) | 3 行 3 列のユニタリ行列
送信アンテナ座標軸の方向。送信機のローカル座標系 (LCS) からグローバル座標系 (GCS) への回転を示す 3 行 3 列のユニタリ行列として指定します。comm.Ray
の CoordinateSystem
プロパティが "Geographic"
に設定されている場合、GCS の向きは送信機のローカル East-North-Up (ENU) 座標系の向きとなります。詳細については、座標系の方向を参照してください。
例: TransmitterAxes=eye(3)
は、送信機座標軸のローカル座標系がグローバル座標系と一致するように指定します。これは既定の方向です。
データ型: double
ReceiverAxes
— 受信アンテナ座標軸の方向
3 行 3 列の単位行列 (既定値) | 3 行 3 列のユニタリ行列
受信アンテナ座標軸の方向。受信機のローカル座標系 (LCS) からグローバル座標系 (GCS) への回転を示す 3 行 3 列のユニタリ行列として指定します。comm.Ray
の CoordinateSystem
プロパティが "Geographic"
に設定されている場合、GCS の向きは受信機のローカル East-North-Up (ENU) 座標系の向きとなります。詳細については、座標系の方向を参照してください。
例: ReceiverAxes=[0 -1 0; 1 0 0; 0 0 1]
は、グローバル座標系を基準にしたローカル受信機座標系の z 軸を軸とする 90°の回転を指定します。
データ型: double
出力引数
pl
— パス損失 (dB 単位)
非負のスカラー
パス損失 (dB 単位)。非負のスカラーとして返されます。
データ型: double
phase
— 位相シフト (ラジアン単位)
スカラー
位相シフト (ラジアン単位)。範囲 [–π, π] ラジアンのスカラーとして返されます。この引数は e-iωt の時間表記規則を使用します。
データ型: double
詳細
一般的な材料に対する ITU 比誘電率と伝導率の値
国際電気通信連合勧告 (ITU-R) P.2040-3 [2]および ITU-R P.527-5 ~ ITU-R P.527-6 [3]には、一般的な材料の実数の比誘電率と伝導率、ならびに複素比誘電率を計算するために使用されるメソッド、方程式、および値が記載されています。
ITU-R P.2040 で指定される建物の材料に対して計算される値の詳細については、
buildingMaterialPermittivity
を参照してください。ITU-R P.527 で指定される地形材料に対して計算される値の詳細については、
earthSurfacePermittivity
を参照してください。
座標系の方向
次の図は、送信機および受信機のグローバル座標系 (GCS) とローカル座標系における電磁界の方向を示しています。
comm.Ray
の CoordinateSystem
プロパティが "Geographic"
に設定されている場合、GCS の向きはオブザーバーのローカル East-North-Up (ENU) 座標系の向きとなります。パス損失の計算では、送信機と受信機の ENU 座標間での地球の曲率による誤差が考慮されます。
パス損失の計算
関数 raypl
で使用されるレイ トレーシング モデルは、伝播パスにおける信号の水平偏波と垂直偏波を追跡して反射損失を計算します。合計電力損失は、自由空間損失と反射損失の和です。
次の図は、送信機サイト tx から受信機サイト rx への反射パスを示しています。
このモデルは、次の手順で偏波と反射損失を決定します。
伝播行列 P を計算し、3 次元空間における光線の伝播を追跡します。この行列は反復積です。ここで、i は反射点の数です。
入射電磁界のグローバル座標を反射面のローカル座標に変換して各反射の Pi を計算し、その結果に反射係数行列を乗算し、座標を変換して元のグローバル座標系に戻します[1]。Pi および P0 の方程式は次のとおりです。
ここで、
s、p、および k は、入射面 (入射光線、および反射面の表面法線によって決定される面) の基本要素です。s と p は、それぞれ入射面に垂直な成分と平行な成分です。
kin および kout は、それぞれ入射光線と反射光線のグローバル座標における向きです。
sin および sout は、それぞれ入射光線と反射光線の水平偏波のグローバル座標における向きです。
pin および pout は、それぞれ入射光線と反射光線の垂直偏波のグローバル座標における向きです。
RH および RV は、それぞれ水平偏波と垂直偏波のフレネル反射係数です。α は光線の入射角で、εr は材料の複素比誘電率です。
伝播行列 P を、2 行 2 列の偏波行列 R に投影します。このモデルは、グローバル座標となるように送信機と受信機の座標系を回転させます。
ここで、
Hrx および Vrx は、それぞれ受信機の水平偏波 (Eθ) と垂直偏波 (Eϕ) のグローバル座標における向きです。
Hin および Vin は、それぞれ伝播された水平偏波と垂直偏波のグローバル座標における向きです。
Vtx は、送信機から発射される光線の公称垂直偏波のグローバル座標における向きです。
ktx は、送信機から発射される光線のグローバル座標における向きです。
2 行 1 列のジョーンズ偏波ベクトル Jtx と Jrx をそれぞれ使用して、送信機と受信機における電界の正規化された水平偏波と垂直偏波を指定します。送信機と受信機のいずれかが偏波なしである場合、このモデルは と仮定します。
R、Jtx、および Jrx を結合し、偏波と反射損失 IL を計算します。
ジョーンズ ベクトル表記法
ジョーンズ ベクトル表記法では、関数 raypl は "ジョーンズ微積分" を使用して信号の偏波を記述します。
ジョーンズ ベクトルの直交成分は、Eθ および Eφ に対して定義されます。次の表に、さまざまなアンテナの偏波に対応するジョーンズ ベクトルを示します。
アンテナの偏波タイプ | 対応するジョーンズ ベクトル |
---|---|
θ 方向の直線偏波 |
|
φ 方向の直線偏波 |
|
左旋円偏波 (LHCP) |
|
右旋円偏波 (RHCP) |
|
参照
[1] Chipman, Russell A., Garam Young, and Wai Sze Tiffany Lam. "Fresnel Equations." In Polarized Light and Optical Systems. Optical Sciences and Applications of Light. Boca Raton: Taylor & Francis, CRC Press, 2019.
[2] International Telecommunications Union Radiocommunication Sector. Effects of Building Materials and Structures on Radiowave Propagation Above About 100MHz. Recommendation P.2040. ITU-R, approved August 23, 2023. https://www.itu.int/rec/R-REC-P.2040/en.
[3] International Telecommunications Union Radiocommunication Sector. Electrical Characteristics of the Surface of the Earth. Recommendation P.527. ITU-R, approved September 27, 2021. https://www.itu.int/rec/R-REC-P.527/en.
拡張機能
C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。
使用上の注意および制限:
複数の反射性材料を指定する場合は、各値を cell 配列内の文字ベクトル (char
データ型) として定義する必要があります。
バージョン履歴
R2020a で導入R2024a: 最新の ITU 勧告を使用した材料のモデル化
関数 raypl
は、ITU-R P.2040-3 および ITU-R P.527-5 ~ ITU-R P.527-6 に記載されているメソッドと方程式を使用して材料をモデル化します。
以前のリリースでは、関数は ITU-R P.2040-1 を使用していました。これらの変更の結果、関数 raypl
は、R2024a では以前のリリースとは異なる値を返す可能性があります。
R2024a: 大理石材および合板材の指定
反射材料として大理石または合板を指定するには、名前と値の引数 ReflectionMaterials
を使用し、入力として "marble"
または "plywood"
を指定します。
R2022b: SBR 法を使用したレイ トレーシング モデルは正確な幾何学的精度でパスを検出
関数 raytrace
、および Shooting and Bounce Rays (SBR) 法によるレイ トレーシング モデルを使用して伝播パスを検出する場合、MATLAB® は、単精度浮動小数点の計算を使用して、各パスの幾何学的精度が正確になるように結果を修正します。以前のリリースでは、パスの幾何学的精度が近似的でした。
そのため、関数 raytrace
によって返される光線を関数 raypl
への入力として使用する場合、関数 raypl
は以前のリリースとは異なる結果を返す可能性があります。
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)