Main Content

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

raytrace

RF 伝播光線の表示または計算

R2019b 以降

説明

関数raytraceは、'Map'プロパティで定義された表面のジオメトリでレイ トレーシングを使用して、伝播パスをプロットまたは計算します。プロットされた各伝播パスは、パスに沿った受信電力 (dBm) またはパス損失 (dB) に従って色分けされています。レイ トレーシング解析には地表反射が含まれますが、回折、屈折、散乱の効果は含まれません。この関数の動作周波数は 100 MHz ~ 100 GHz です。詳細については、伝播モデルの選択を参照してください。

raytrace(tx,rx)は、最大 2 回の反射で Shooting and Bounicng Rays (SBR) 法を使用して、送信機サイト (tx) から受信機サイト (rx) への伝播パスを現在のサイト ビューアーで表示します。

raytrace(tx,rx,propmodel)は、指定された伝播モデルに基づいて、送信機サイト (tx) から受信機サイト (rx) への伝播パスを表示します。パス損失を計算するために建物と地形の材料を入力するには、関数propagationModelを使用して'raytracing'伝播モデルを作成し、プロパティを設定して建物の材料を指定します。

raytrace(___,Name,Value)は、前の構文の入力引数に加えて、名前と値の引数を 1 つ以上使用してオプションを指定します。

rays= raytrace(___)は、raysの伝播パスを返します。

すべて折りたたむ

SBR 法でレイ トレーシング解析を使用して、シカゴでの反射伝播パスを表示します。

シカゴの建物を指定してサイト ビューアーを起動します。osm ファイルの詳細については、[1]を参照してください。

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

建物の上に送信機サイトを作成し、別の建物の近くに受信機サイトを作成します。

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

見通し内の障害物を表示します。

los(tx,rx)

最大 2 回の反射でレイ トレーシングを使用して、反射伝播パスを表示します。

raytrace(tx,rx)

付録

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

シカゴの建物を指定してサイト ビューアーを起動します。osm ファイルの詳細については、[1]を参照してください。

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

建物の上に送信機サイトを作成します。

tx = txsite("Latitude",41.8800,..."Longitude",-87.6295,..."TransmitterFrequency",2.5e9);

別の建物の近くに受信機サイトを作成します。

rx = rxsite("Latitude",41.881352,..."Longitude",-87.629771,..."AntennaHeight",30);

レイ トレーシング伝播モデルを使用して信号強度を計算します。既定では、レイ トレーシング モデルは SBR 法を使用し、見通し内の 2 回反射の解析を実行します。

pm = propagationModel("raytracing"); ssTwoReflections = sigstrength(rx,tx,pm)
ssTwoReflections = -54.3015

最大 2 回の反射で SBR の伝播パスをプロットします。

raytrace(tx,rx,pm)

最大 2 回の反射を解析して信号強度を計算します。ここで、受信電力の合計は、すべての伝播パスの累積電力です。

pm.MaxNumReflections = 5; ssFiveReflections = sigstrength(rx,tx,pm)
ssFiveReflections = -53.3889

既定のコンクリート材料を完全反射体に置き換えることにより、材料の影響を観察します。

pm.BuildingsMaterial ="perfect-reflector"; ssPerfect = sigstrength(rx,tx,pm)
ssPerfect = -39.6703

最大 5 回の反射で SBR の伝播パスをプロットします。

raytrace(tx,rx,pm)

付録

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

香港の材料反射と大気によるパス損失を計算します。最大 5 回の反射で Shooting and Bouncing Rays (SBR) 法を使用するようにレイ トレーシング モデルを構成します。

香港の建物を指定してサイト ビューアーを起動します。osm ファイルの詳細については、[1]を参照してください。

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

送信機サイトと受信機サイトを定義して、込み合った都市環境の小さいセル シナリオをモデル化します。

tx = txsite("Name","Small cell transmitter",..."Latitude",22.2789,..."Longitude",114.1625,..."AntennaHeight",10,..."TransmitterPower",5,..."TransmitterFrequency",28e9); rx = rxsite("Name","Small cell receiver",..."Latitude",22.2799,..."Longitude",114.1617,..."AntennaHeight",1);

最大 5 回の反射で完全反射のレイ トレーシング伝播モデルを作成します。レイ トレーシング手法を Shooting and Bouncing Rays (SBR) として指定します。

pm = propagationModel("raytracing",..."Method","sbr",..."AngularSeparation","low",..."MaxNumReflections",5,..."BuildingsMaterial","perfect-reflector",..."TerrainMaterial","perfect-reflector");

伝播パスを可視化し、対応するパス損失を計算します。

raytrace(tx,rx,pm,"Type","pathloss") raysPerfect = raytrace(tx,rx,pm,"Type","pathloss"); plPerfect = [raysPerfect{1}.PathLoss]
plPerfect =1×13104.2656 103.5720 112.0095 109.3152 111.2814 112.0011 112.4436 108.1516 111.2827 111.3898 117.7513 116.5894 117.7638

伝播モデルで建物と地形の材料タイプを設定して、材料の反射損失を構成した後、伝播パスを再計算して可視化します。最初の値は、見通し内伝播パスに対応しているため、変更されていません。

pm.BuildingsMaterial ="glass"; pm.TerrainMaterial ="concrete"; raytrace(tx,rx,pm,"Type","pathloss") raysMtrls = raytrace(tx,rx,pm,"Type","pathloss"); plMtrls = [raysMtrls{1}.PathLoss]
plMtrls =1×13104.2656 106.1294 119.2408 121.2477 122.4096 121.5561 126.9482 124.1615 122.8182 127.5476 139.0676 140.5833 153.3285

大気伝播モデルを追加し、大気損失を伴う伝播パスを再計算して可視化します。

pm = pm + propagationModel("rain") + propagationModel("gas"); raytrace(tx,rx,pm,"Type","pathloss") raysAtmospheric = raytrace(tx,rx,pm,"Type","pathloss"); plAtmospheric = [raysAtmospheric{1}.PathLoss]
plAtmospheric =1×13105.3245 107.1891 121.8260 123.1432 124.9966 124.1453 129.6661 126.0578 125.4086 130.2655 143.0507 144.5666 157.3145

付録

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

この例では、以下の方法を説明します。

  • モデルがメートルの単位を使用するための STL ファイルのスケーリング。

  • サイト ビューアーでのスケーリング モデルの表示。

  • レイ トレーシングを使用した、送信機から受信機までの伝播パスの計算と表示。

直交txsiteオブジェクトおよび直交rxsiteオブジェクトはメートル単位の位置座標を必要としますが、STL ファイルは他の単位を使用する場合があります。STL ファイルがメートルを使用していない場合は、サイト ビューアーにインポートする前にモデルをスケーリングしなければなりません。

triangulationオブジェクトとして STL ファイルを読み取ります。このファイルはテーブル 1 台と椅子が 4 脚ある小さい会議室をモデル化したものです。

TR = stlread("conferenceroom.stl");

座標をスケーリングし、新しいtriangulationオブジェクトを作成します。この例では、STL 単位からメートルへの変換係数が0.9であると仮定しています。

scale = 0.9; scaledPts = TR.Points * scale; TR_scaled = triangulation(TR.ConnectivityList,scaledPts);

サイト ビューアーを使用して、新しいtriangulationオブジェクトを表示します。または、関数stlwriteを使用して、新しいtriangulationオブジェクトを STL ファイルとして保存することもできます。

viewer = siteviewer("SceneModel",TR_scaled);

送信機サイトを壁の近くに,受信機サイトをテーブルの下に作成して表示します。直交座標を使用してメートル単位で位置を指定します。

tx = txsite("cartesian",..."AntennaPosition",[-1.25; -1.25; 1.9],..."TransmitterFrequency",2.8e9); show(tx,"ShowAntennaHeight",false) rx = rxsite("cartesian",..."AntennaPosition",[0.3; 0.2; 0.5]); show(rx,"ShowAntennaHeight",false)

パンするには左クリックします。ズームするには右クリックまたはスクロール ホイールを使用します。表示を回転させるには、中央ボタンをクリックしてドラッグするか、"Ctrl"を押しながら左クリックしてドラッグします。

直交座標のレイ トレーシング伝播モデルを作成します。レイ トレーシング手法を Shooting and Bouncing Rays (SBR) として指定します。最大2回の反射で光線を計算します。表面材料を木に設定します。

pm = propagationModel("raytracing",..."CoordinateSystem","cartesian",..."Method","sbr",..."MaxNumReflections",2,..."SurfaceMaterial","wood");

伝播パスを計算し、その結果をcomm.Rayオブジェクトとして返します。光線を抽出してプロットします。

r = raytrace(tx,rx,pm); r = r{1}; plot(r)

光線をクリックして、光線に関する情報を表示します。

入力引数

すべて折りたたむ

送信機サイト。txsiteオブジェクトまたはtxsiteオブジェクトの配列として指定します。受信機サイトが配列として指定されている場合、伝播パスは各送信機から各受信機サイトまでプロットされます。

受信機サイト。rxsiteオブジェクトまたはrxsiteオブジェクトの配列として指定します。送信機サイトが配列として指定されている場合、伝播パスは各送信機から各受信機サイトまでプロットされます。

伝播モデル。文字ベクトル、string、または関数propagationModelで作成されたレイ トレーシング伝播モデルとして指定します。既定は'raytracing'です。これは、最大反射数を2に設定した SBR 法を使用するレイ トレーシング伝播モデルです。

異なる反射数を計算するレイ トレーシング伝播モデルを指定するには、関数propagationModelを使用してRayTracingオブジェクトを作成し、MaxNumReflectionsプロパティを設定します。

名前と値の引数

オプションの引数のペアをName1=Value1,...,NameN=ValueNとして指定します。ここで、Nameは引数名で、Valueは対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Nameを引用符で囲みます。

例:'Type','power'

プロットする量のタイプ。dBm 単位の'Type''power'または dB 単位の'pathloss'で構成されるコンマ区切りのペアとして指定します。

'power'を指定すると、各パスはパスに沿った受信電力に従って色分けされます。'pathloss'を指定すると、各パスはパスに沿ったパス損失に従って色分けされます。

受信電力の計算には Friis の式が使用されます。

P r x = P t x + G t x + G r x L L t x L r x

ここで、

  • Prxは、パスに沿った受信電力。

  • Ptxは、tx.TransmitterPower で定義された送信電力。

  • Gtxは、発射角 (AoD) の方向での tx のアンテナ ゲイン。

  • Grxは、到達角度 (AoA) の方向での rx のアンテナ ゲイン。

  • Lは、パスに沿って計算されたパス損失。

  • Ltxは、tx.SystemLoss で定義された送信機のシステム損失。

  • Lrxは、rx.SystemLoss で定義された受信機のシステム損失。

データ型:char

レイトレーシング解析の伝播モデルのタイプ。'PropagationModel''raytracing'で構成されるコンマ区切りのペア、または関数propagationModelで作成されたレイ トレーシング伝播モデルとして指定します。'raytracing'を指定した場合、関数raytraceは、レイ トレーシング伝播モデル オブジェクト構成に対して最大 2 回の反射で SBR 法を使用して伝播パスを計算します。

代わりにイメージ手法を使用してレイ トレーシング解析を実行するには、関数propagationModelを使用して作成した伝播モデルを指定します。次のコードは、イメージ手法を使用する伝播モデルを作成する方法を示しています。

pm = propagationModel('raytracing','Method','image');

イメージ手法と SBR 法の違いについては、伝播モデルの選択を参照してください。

データ型:char

カラーマップの色の範囲。'ColorLimits'と [min max] 形式の 2 要素の数値行ベクトルで構成されるコンマ区切りのペアとして指定します。色の範囲の単位と既定値は、'Type'パラメーターの値によって異なります。

  • 'power'– 単位は dBm で、既定値は[-120 -5]です。

  • 'pathloss'– 単位は dB で、既定値は[45 160]です。

色の範囲は,カラーマップの最初と最後の色にマッピングされる値を示します。色の範囲の最小値より小さい値の伝播パスはプロットされません。

データ型:double

伝播パスの色付け用のカラーマップ。'Colormap'と、事前定義されたカラーマップ名または M 個の個々の色を定義する RGB (赤、青、緑) 3 成分の M 行 3 列の配列で構成されるコンマ区切りのペアとして指定します。

データ型:char|double

マップへの色の凡例の表示。'ShowLegend'trueまたはfalseから構成されるコンマ区切りのペアとして指定します。

データ型:logical

可視化または表面データのマップ。siteviewerオブジェクト、triangulationオブジェクト、string スカラー、文字ベクトルのいずれかとして指定します。有効な既定値は、座標系に応じて異なります。

座標系 有効なマップ値 既定のマップ値
"geographic"
  • siteviewerオブジェクトa.

  • 出力引数の指定がある関数が呼び出された場合の地形名。有効な地形名は、"none""gmted2010"、またはaddCustomTerrainを使用して追加したカスタム地形データの名前です。

  • 現在のsiteviewerオブジェクト。何も開いていない場合は新しいsiteviewerオブジェクト。

  • 出力の指定がある関数が呼び出された場合の"gmted2010"

"cartesian"
  • "none".

  • siteviewerオブジェクト。

  • STL ファイルの名前。

  • triangulationオブジェクト。

  • "none".

aAlignment of boundaries and region labels are a presentation of the feature provided by the data vendors and do not imply endorsement by MathWorks®.

データ型:char|string

出力引数

すべて折りたたむ

光線構成。M 行 N 列の cell 配列として返されます。ここで、M は送信機サイトの数、N は受信機サイトの数です。各 cell 要素は、対応する送信機サイトと受信機サイトの間で見つかったすべての光線を表すcomm.Rayオブジェクトの行ベクトルです。各行ベクトル内で、送信機と受信機の相互作用タイプが同じであるcomm.Rayオブジェクトがグループ化され、グループがアルファベット順に並べ替えられた後、反射数の昇順で並べ替えられます。各グループにおいて、光線は伝播距離の昇順で並べられます。

バージョン履歴

R2019b で導入

すべて展開する