導入シナリオ

導入シナリオは3GPP TR 38.913 V14.1.0 (2016-12) の Section 6.1.7で定義されている Urban coverage for massive connection(大規模なコネクション数に対応するための都市部でのカバレッジ)を用いる。導入シナリオの基本パラメータは下記の表のとおり。

属性値と仮定
キャリア周波数(Carrier Frequency)700MHz, 2100 MHz as an option
ISDを含んだネットワーク設営(Network deployment including ISD )Macro only, ISD = 1732m, 500m ※
デバイス側の設営(Device deployment)屋内と屋外の車載デバイス(Indoor, and outdoor in-car devices)
最大移動速度(Maximum mobility speed)ユーザの20%は屋外の社内(100km/h)または屋外で徒歩(3km/h)(20% of users are outdoor in cars (100km/h) or 20% of users are outdoors (3km/h))
ユーザの80%は屋内で徒歩(3km/h)(80% of users are indoor (3km/h))
セル全体に一様分布でユーザを配置する(Users dropped uniformly in entire cell)
サービスプロファイル(Service profile)ノン・フルバッファの小さなパケットを使う(Non-full buffer with small packets)
基地局側のアンテナ(BS antenna elements)2ポートまたは4ポートの受信ポート(8ポートはオプショナル)
ユーザ側デバイスのアンテナ(UE antenna elements)送信ポート1つ

※もろもろの指標や数式を定義している TR-38.900 を読むと、UMaのISDが500m, RMa のISDが1732m or 5000m, UMi-street-canyon のISDが200m となっている。RMaの説明に”The rural deployment scenario focuses on larger and continuous coverage. The key characteristics of this scenario are continuous wide area coverage supporting high speed vehicles. “と書かれているので、屋外ノードの移動スピードが100km/hなら1732mの場合も検証する、と思われる。

評価指標(Key Performance Indicators)

重要な評価指標(最大化を目指す指標)は下記の2つ

評価指標設定目標値
latency所要最大減衰量(Maximum Coupling Loss MaxCL)が164dBの状況下で測定した際に、20バイトのアプリケーション層のパケット(非圧縮IPヘッダを含めて物理層で105バイト)をアップリンク側に送信する10秒以上かからないようにする
UE battery lifeユーザ側デバイス(User Equipment)のバッテリライフはリチャージなしのユーザ側デバイスのバッテリライフで評価できる。 mMTCでのバッテリライフの極限カバレッジは、蓄えられたエネルギー容量を5Whとし、毎日 20バイトのダウンリンクでの転送に続く200バイトのアップリンクへの転送を164dBのMaxCLから実施するデータ転送を基準にする。10年以上、15年が望ましい。

トラフィックモデル

GSMA white paper(3GPP Low Power Wide Area Technologies
Mobile IoT = TRUSTED IoT)のANNEX A に記載されているトラフィックモデルを利用する。

  • 3GPP GERAN
    TR (3GPP TR 45.820 Cellular System Support for Ultra Low Complexity and Low Throughput Internet of Things)のモデルを使う。
モデルbytes, hoursdaily total bytes
Model 150 bytes, 2 hours(1200 bytes)
Model 2200 bytes, 2 hours(4800 bytes)
Model 350 bytes, 1 day(50 bytes)
Model 4200 bytes, 1 day(200 bytes)

p.37 に定型アプリケーションと細かいパターンが書かれている。
最初のエントリ (consumer – wearable) は typo あり(10*20 = 200 bytes が正しい)。

NS3 の設定メモ

  • 伝搬減衰モデル(Propagation Loss Model)は HybridBuildingsPropagationLossModelを使えば、ビルによる浸透減衰(O2I penetration)とLOS/NLOSの減衰(pathloss)を内部で合成してくれる。(ソースコード
    • 内部ではItuR1411, ItuR1238, OkumraHata を端末・基地局間の距離と高さと位置(屋内・屋外)および周波数の組み合わせを条件にして自動的に選択し、片方が屋内ならO2I penetration loss を合成してpathlossを算出する。(NS3のBuildingsPropagationModelのドキュメントへのリンク
    • 仕様にある「ITU TR-38.900 端末局から基地局間の電波伝搬特性は、以下の文献に示されている減衰モデルの一つ」は ItuR1411の中にTR-38.900 Table 7.4.2-1 の PL_{1}のpathloss計算式を含んでいるので、(なんとか)満たすことができる。
    • ただし、TR-38.900 Table 7.4.2-1 の PL_{1} のpathloss 計算式が選択されるかどうかは、シミュレーション環境のパラメータ設定に依存する。
    • (調査の結果、今回のシナリオ設定では、200m < d < 1000m の範囲ならituR1411NlosOver…を使うので、PL_{1} のpathloss計算式(Lbf: free space loss)、またはPL_{1} の計算式に2種類のdiffraction(回折)(Lrts と Lmsd)が加算されたものになる(Lrts + Lmsd > 0 なら Lbf + Lrts + Lmsd を返し、それ以外の場合は Lbf を返す)。d < 200m なら ituR1411Los での計算結果になる。)
    • (Lrts + Lmsd > 0 になるかならないかは条件式が非常に複雑なので、ちゃんと計算しないとわからない。事象の詳細を参照のこと。)
    • ビルによる浸透減衰の減衰値はNS3で実装されている値とTR 38.900との値は異なる。
  • フェージングに関して、ns3 の LTE model ではトレースデータセットを使っている。(NS3のドキュメント
    • ITU TR-38.900 Section 7.5 で書かれている Fast Fading の算出モデルとは違う
    • UE-eNB間距離(UT-BS間距離)の最小値は水平方向に 35m
  • TR-38.900 (および、TR-38.873) でのUMa シナリオに関する捕捉パラメータ一覧
パラメータ意味デフォルト値参照元ns3備考
セルレイアウトマクロサイトの数とサイトごとのセクタ数六角形グリッド、19 マクロサイト、サイトごとに 3 セクタ (ISD = 500m)TR-38.900 table 7.2-1 UMaTBD今回は1000m x 1000m の枠にはまる部分のみ
h_{BS}BS(eNB)の高さ25mTR-38.900 table 7.4.1-1TBD設定済み(みやん談)
h_{UT}UT(UE) の高さ。1.5m + 3(N-1)m (N:はフロア数で 4 =< N <= 8)で計算1.5mTR-38.900 table 7.4.1-1TBD設定済み(みやん談)
アンテナモデルBS(eNB)のアンテナモデルuniform rectangular panel arrayTR-38.900 section 7.3未実装
A_{E,V}(Θ^n)アンテナの垂直方向の radiation pattern30dBTR-38.900 table 7.3-1未実装
A_{E,H}(φ^n)アンテナの水平方向の radiation pattern30dBTR-38.900 table 7.3-1未実装
G_{E,max}アンテナのMaximum directional Gain8dBiTR-38.900 table 7.3-1未実装

※ AntennaModel では virtual double GetGainDb (Angles a) = 0; Parabolic…, Cosine…, ではそれぞれのアンテナの仕様に合わせた計算式が定義してある。Isotropic… は 0.0 を返す。

  • トポロジは 1000m x 1000m の枠で調整
  • 現状 WxLxH = 1000m x 1000m x 3m の大きなビルを作って、その中でUEをSetOutdoor か SetIndoor で計算するpathlossを決めている。
  • 400万ノード/km^2 を満たすことを優先したので、simplify した。
  • 上記のTR-25.816 Fig.21のような、まじめなUrban Macro 環境を作成するのは相当数の工数が必要。
  • 下図はトポロジにマクロサイトレイアウトをつけた図。

NS3の実装の細かい部分調査結果

TR 38.900 と NS3 の差異まとめ

モデルTR 38.900NS3TR 38.900のセクション備考
6GHz以上のチャネルモデル各種モデルの式が定義未調査7.1
シナリオUMi-street-canyon + UMa, Indoor-office, RMa, UMi-open square が定義シナリオの各種パラメータを設定する7.2mMTC は UMa only
Antennaa uniform rectangular panel arrayとradiation パターンが定義NS3では表現不可(みやん調べ)7.3ns3のantenna model
LOS/NLOS propagation lossLOSはbreak pointで式が変わる。(10m以上break point以下ならPL_{1}を、break point以上5km以下はPL_{2}を使う)
NLOSはPL_{UMa-LOS}とPL’_{UMa-NLOS}を比べて大きいほうを使う
ItuR1411NlosOver… がUMaのPL_{1} と同じ式(Lbfに格納)を内包している(Lrts + Lmsd > 0 なら loss = Lbf + Lrts + Lmsd、それ以外は loss = Lbf)7.4.1ソースコードモデルの説明文を読んだ感じだと、HybridBuildings…を使ってmMTCのシナリオを設定すると、ItuR1411Nlos…を選択してloss = Lbf を返すと思われる。(テストの際に要確認。条件を別途まとめておくこと。)
shadow fadingtable 7.4.1-1 に shadow fading std σ_{SF}が定義 (UMa LOSの場合:σ_{SF}=4, UMa NLOSの場合:σ_{SF}=6)double BuildingsPropagationLossModel::GetShadowing ()でσ_{SF} 相当の値を計算7.4NS3での解説
LOS probability計算式不明(シミュレーションシナリオでのmobilityノードの位置次第?)7.4.2
O2I buldings penetration loss計算式固定値7.4.3HybridBuildings… を使うと浸透減衰とLOS/NLOSの伝搬減衰を合算してpathlossを計算してくれる
Autocorrelation of shadow fadingR(Δx)の式が定義不明7.4.4src/propagation/examples にJakes Propagation Modelの場合のautocorrelation のデータをプロットする R コマンドが記載されているので NS3のどこかに内包されている?Rスクリプトが載っているJakes Propagation のexample code
Fast fading導出するための手順と計算式、パラメータが載っているLTEクラスで trace dataset を使う7.5LTEクラスでのFading modelのデザイン解説LTEクラスでのtrace datasetの使い方解説
その他の追加モデル7種類のモデルが定義未調査7.6
リンクレベル評価のためのチャネルモデル7種類のモデルが定義未調査7.7
チャネルキャリブレーションlarge scale calibration, full calibration, calibration of additional features が定義未調査7.7
Map-based hybrid channel modelチャネル生成のところが変わる未調査8METIS が大元を作成

HybridBuildings… のpropagation model の切り替え条件

a (tx)b (rx)a – b の距離 da の高さ a.z, b の高さ b.zloss モデルNS_LOG_INFO上のラベル
outdooroutdoord > 1000ma.z < rooftop && b.z < rooftopituR1411NlosOverRooftopbelow rooftop
outdooroutdoord > 1000m上記以外の場合OHabove rooftop
outdooroutdoor200m =< d <= 1000manyituR1411NlosOverRooftopstreet canyon
outdooroutdoord < 200manyituR1411Losstreet canyon
outdoorindoord > 1000ma.z < rooftop && b.z < rooftopituR1411NlosOverRooftopbelow rooftop
outdoorindoord > 1000m上記以外OH + EWL + HGabove rooftop
outdoorindoor200m < d < 1000manyituR1411NlosOverRooftop + EWL + HGITU1411 + BEL
outdoorindoord < 200manyituR1411Los + EWL + HGITU1411 + BEL
indoorindoor同じビルanyITUR1238 + IWLsame building
indoorindoor違うビルanyITUR1238 + 2*EWLdifferent building
indooroutdoord > 1000ma.z < rooftop && b.z < rooftopituR1411NlosOverRooftop + EWL + HGdown rooftop
indooroutdoord > 1000m上記以外OH + EWL + HGover rooftop
indooroutdoor200m =< d <= 1000manyituR1411NlosOverRooftopITUR1411 + EWL
indooroutdoord < 200manyituR1411Los + EWLITUR1411 + BEL + HG
  • BEL = EWL = ExternalWallLoss()
  • IWL = InternalWallLoss()
  • HG = Height Gain (model) = HeightLoss()
    OH = OkumuraHata : frequency <= 2.3e9 ならOkumuraHata, それ以外は kun2600Mhz を内部で選択する。

ituR1411NlosOverRooftop… のLossの切り替え条件

主な変数は下記の3つ

変数名称備考
Lbffree space lossTR 38.900 p.25, table 7.4.1-1 UMa LOS の PL_{1}の式と同じもの
Lrtsthe diffraction loss from rooftop to street
Lmsdthe reduction due to multiple screen diffraction past rows of building
  • Lrts + Lmsd <= 0 なら Lbf だけを pathlossの値として返す。
  • Lrts + Lmsd > 0 なら Lbf + Lrts + Lmsd を pathloss の値として返す。

Lbfの計算

  • free space path loss(自由空間伝番損失)
  • Lbf = 32.4 – 20log(d/1000) + 20log(f)
  • d : distance [m], f: frequency [MHz]

Lrts の計算

  • the diffraction loss from rooftop to street(屋根から道路までの回折損失)
  • Lrts はUTと屋根の高さの差 Δhm、道幅 w とstreet orientation (角度φ) による減衰Lori からなる計算式 -8.2 – 10log(w) + 10log(Δhm) + Lori により表現
  • Lori の値は角度φにより変化する。
φ の角度LrtsLori
0° =< φ < 35°-8.2 – 10log(w) + 10log(Δhm) + Lori-10 + 0.354φ
35° =< φ < 55°-8.2 – 10log(w) + 10log(Δhm) + Lori2.5 + 0.075(φ – 35)
55° =< φ < 90°-8.2 – 10log(w) + 10log(Δhm) + Lori4.0 – 0.114(φ – 55)

Lmsdの計算

  • the reduction due to multiple screen diffraction past rows of building(間にあった建物の列を通過した際に発生したマルチスクリーン回折損失による減衰)
  • settled field distance: d_{s} = (λ_{d})^{2} / (h_{BS} – h_{UT})^{2}
  • distance over which the building extend : l
  • height of the rooftop : h_{r}
  • height of the base station antenna : h_{BS}
  • height of the UT antenna : h_{UT}
  • Δhb = h_{BS} – h_{UT}
  • b : m_buildingSeparation
l > d_{s} の場合
  • Lmsd = Lbsh + ka + kd * log(d/1000) + kf * log(f) – 9log(b) で計算する。
  • Lbsh は上記のパラメータの条件により変化する。
h_{BS}, h_{r}fdkakdkfLbshLmsd備考
h_{BS} > h_{r}f > 2000 MHz71.418-8-18log(Δhb)-18log(h_{BS} – h_{UT}) + 71.4 + 18log(d/1000) -8log(f) – 9log(b)
h_{BS} > h_{r}f <= 2000 MHz5418-4 + 0.7(f/925 – 1)-18log(Δhb)-18log(h_{BS} – h_{UT}) + 71.4 + 18log(d/1000) -8log(f) – 9log(b)medium city 以下のサイズ
h_{BS} > h_{r}f <= 2000 MHz5418-4 + 1.5(f/925 – 1)-18log(Δhb)-18log(h_{BS} – h_{UT}) + 71.4 + 18log(d/1000) -8log(f) – 9log(b)large city サイズ (metropolitan centres)
h_{BS} <= h_{r}f > 2000 MHzd >= 500m54 – 0.8Δhb18 – 15(Δhb/h_{r})-800 + 54 – 0.8Δhb + (18 – 15(Δhb/h_{r}))*log(d/1000) – 8log(f) – 9log(b)
h_{BS} <= h_{r}f <= 2000 MHzd >= 500m54 – 0.8Δhb18 – 15(Δhb/h_{r})-4 + 0.7(f/925 – 1)00 + 54 – 0.8Δhb + (18 – 15(Δhb/h_{r}))*log(d/1000) + (-4 + 0.7(f/925 – 1))log(f) – 9log(b)medium city サイズ以下
h_{BS} <= h_{r}f <= 2000 MHzd >= 500m54 – 0.8Δhb18 – 15(Δhb/h_{r})-4 + 1.5(f/925 – 1)00 + 54 – 0.8Δhb + (18 – 15(Δhb/h_{r}))*log(d/1000) + (-4 + 1.5(f/925 – 1))log(f) – 9log(b)large city サイズ
h_{BS} <= h_{r}f > 2000 MHzd < 500m54 – 1.6Δhb18 – 15(Δhb/h_{r})-800 + 54 – 1.6Δhb + (18 – 15(Δhb/h_{r}))*log(d/1000) – 8log(f) – 9log(b)
h_{BS} <= h_{r}f <= 2000 MHzd < 500m54 – 0.8Δhb18 – 15(Δhb/h_{r})-4 + 0.7(f/925 – 1)00 + 54 – 1.6Δhb + (18 – 15(Δhb/h_{r}))*log(d/1000) + (-4 + 0.7(f/925 – 1))log(f) – 9log(b)medium city サイズ以下
h_{BS} <= h_{r}f <= 2000 MHzd < 500m54 – 1.6Δhb18 – 15(Δhb/h_{r})-4 + 1.5(f/925 – 1)00 + 54 – 1.6Δhb + (18 – 15(Δhb/h_{r}))*log(d/1000) + (-4 + 1.5(f/925 – 1))log(f) – 9log(b)large city サイズ
l < d_{s} の場合
  • Lmsd = -10log( (Qm)^{2} )
  • Θ = arctan((h_{BS} – h_{r})/b)
  • ρ = sqrt((h_{BS} – h_{r})^2 + b^2)
h_{BS}, h_{r}Qm
h_{BS} > h_{r}Qm = 2.35 * ( ((h_{BS} – h_{r})/d) * sqrt(b/λ) )^0.9
h_{BS} == h_{r}Qm = b/d
h_{BS} < h_{r}Qm = (b/2πd) * sqrt(λ/ρ) * ( (1/Θ) – ( 1/(2π + Θ) ) )

シミュレーションシナリオ

3GPP TR 38.900 Section 7.2 のシナリオから抜粋

UMi-street canyon and UMa

Urban Macro (UMa) と ストリートキャニオン(ビル街)の場合のUMi(Urban Micro)のシナリオ設定がTR-38.900のp.20に記載されている。

シナリオ設定と基本パラメータ

パラメータUMi – ストリートキャニオンUMa
セルのレイアウト六角形グリッド 19マイクロサイト、サイトごとに3セクター(ISD=200m)※ ISD: サイト間距離六角形グリッド 19マクロサイト、サイトごとに3セクター(ISD=500m)
BSアンテナの高さ(h_{BS})10m25m
UTの位置(Outdoor/Indoor)屋外と屋内の両方屋外と屋内との両方
UTの位置(LOS/NLOS)LOS と NLOS 両方LOS と NLOS 両方
UTの位置(高さ h_{UT})TR36.873での3D-UMiと同じTR36.873での3D-UMa と同じ
Indoor UT ratio80%80%
UTの移動(水平方向のみ)3 km/h3 km/h
BS – UT 間の距離の最小値(水平方向)10m35m
UTの分布(水平方向)Uniform(一様分布)Uniform(一様分布)

※ BS:基地局
※ UT:ユーザターミナル

  • TR36.873(ITUページのリンク)に書かれている3D-UMi, 3D-UMa の高さ設定の定義は、要約すると下記の通り
    • 3 m (WxLxH=120x50x3 (m) のフロアの高さ) x (階数 – 1 ) + 1.5 m (フロアの床からの基地局の高さ

(補足)TR 36.873 に記載されている各シナリオ名での基地局の位置の違い

シナリオ名(略称)シナリオ名基地局の位置
3D-UMiUrban Micro cell with high (outdoor/indoor) UE density周りのビルよりも低い位置に設置
3D-UMaUrban Macro cell with high (outdoor/indoor) UE density周りのビルの上に設置
3D-UMa-HUrban Macro cell with one high-rise per sector and 300m ISDセクターごとにある高いビルの上に一つずつ設置し、300mのISDを保つ
3D-InHIndoor Hotspot cell with high (indoor) UE density天井の下にマウント。スモールセルで屋内での高スループットのテスト環境時に設定。

屋内オフィスの詳細設定

TR-38.900のp.21に記載。WxLxH = 120m x 50m x 3m の長方形の部屋で、上の壁から15m, 左の壁から10m の位置にBSを一つ置き、そこからx軸・y軸方向に 20m ずつISDを保ちながら、合計12個を配置。(120m x 50m x 3m の部屋に合計12個基地局を設置する。)

パラメータopen officemixed office
レイアウト(部屋のサイズ WxLxH)120m x 50m x 3m120m x 50m x 3m
レイアウト(ISD)20m20m
BSアンテナの高さ h_{BS}3m (天井)3m (天井)
UTの位置(LOS/NLOS)LOSとNLOS両方LOSとNLOS両方
UTの位置(高さ h_{UT})1m1m
UTの移動(水平方向のみ)3 km/h3 km/h
BS – UT間距離の最小値0 m0 m
UT の分布uniform (一様分布)uniform (一様分布)

図にすると下記のような配置(TR-38.900の図 7.2.1より)。

アンテナモデル

TR-38.900 Section 7.3 より、BS antenna model は a uniform rectangular panel array を使う。下記の表は Table7.3-1 から数式部分をカットして値だけにしたもの。

パラメータ
垂直方向への出力パターン (vertical radiation)30 dB
水平方向への(horizontal radiation)30 dB
3Dアンテナ用の合成方法min と床関数を使った式
アンテナエレメントの指向性利得 (Maximum directional gain)8 dBi

※ min{A,B} : A, B のうち、小さいほうを選ぶという数式の表現
※ 床関数:実数 x の整数部分を表現するときに使うガウス記号の一つで、実数 x 以下の最大の整数を表現する. texだと\lfloor, \rfloor で囲む。floor(x) と表記する場合もある。wikipediaの解説

パスロス

TR-38.900 Section 7.4.1 にて定義。基本的には、各シナリオに対して数式(計算モデル)が定義されている。

  • TR-38.900では、シナリオごとにパスロスの計算方法が定義されている。シャドウフェージングの分布はlog-normal で、標準偏差も与えられている。
  • 掲載されている計算方法が NS3 のPropagation models に組み込まれている。
    • ITU-R P.1411(PDFへのリンク)に掲載されている数式がTR-38.900 に載っている数式の大元(のようだ)
    • TR-38.900, P.1411, ns3のソースコードを比較しながら解読した結果、ItuR1411NlosOverRooftopPropagationLossModel を使えばよいようだ。
    • ビルによる減衰(O2I building penetration model)を組み合わせる場合は、HybridBuildingPropagationLossModel の中に内蔵されているので、それを使えばよいようだ。

TR-38.900 での数式(UMaとUMi-Street-canyonの部分

  • UMa-LOS: 10m 以上 で d_{BP}^{‘} (ブレイクポイントまでの距離)以下なら PL_{1} の式を使う。d_{BP}^{‘} 以上で5km 以下の場合はPL_{2} の式を使う。
  • UMa-NLOS: 10m以上5km以下の場合、PL_{UMa-LOS} と PL_{UMa-NLOS}^{‘} を比較して、大きいほうを使う。
    • オプションとして単純化した式(Optional PL)も使える
  • UMi-LOS (street canyon) : 10m 以上 ブレイクポイント以下の場合、PL_{1}の式を使う。ブレイクポイント以上5km以下の場合、PL_{2}の式を使う。
  • UMi-NLOS (street canyon) : 10m 以上 5km 以下の場合、PL_{UMi-LOS}とPL_{UMi-NLOS}^{‘}を比較して、大きいほうを使う
    • オプションとして単純化した式(Optional PL)も使える
  • ITU-R P.1411 p.16 (24)式に The free-space loss is given by: 32.4 * 20log10(d/1000) + 20log(f) と書かれてある式が UMA-LOS のPL_{1}の式と一致
  • PropagationModelのドキュメントのほうにも実装している式が書いてあった。(リンク

ns3のItuR1411LosPropagationLossModelのパスロス取得部分

  • 対応する数式は ITU-R P.1411 p.8 Section 4.1.2 Site-specific model for LoS situation の UHF propagation 部分
  • UHF周波数帯で使えと書いてある。(定義は ITU-R P.341 )
itu-r-1411-los-propagation-loss-model.cc

    61 double
    62 ItuR1411LosPropagationLossModel::GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
    63 {
    64   NS_LOG_FUNCTION (this);
    65   double dist = a->GetDistanceFrom (b);
    66   double lossLow = 0.0;
    67   double lossUp = 0.0;
    68   NS_ASSERT_MSG (a->GetPosition ().z > 0 && b->GetPosition ().z > 0, "nodes' height must be greater than 0");
    69   double Lbp = std::fabs (20 * std::log10 ((m_lambda * m_lambda) / (8 * M_PI * a->GetPosition ().z * b->GetPosition ().z))); # ITU-R P.1411 Sec 4.1.2 fomula (5)
    70   double Rbp = (4 * a->GetPosition ().z * b->GetPosition ().z) / m_lambda; #ITU-R P.1411 Sec 4.1.2 fomula (3)
    71   NS_LOG_LOGIC (this << " Lbp " << Lbp << " Rbp " << Rbp << " lambda " << m_lambda);
    72   if (dist <= Rbp)
    73     {
    74       lossLow = Lbp + 20 * std::log10 (dist / Rbp); #ITU-R P.1411 Sec 4.1.2 fomula (4)
    75       lossUp = Lbp + 20 + 25 * std::log10 (dist / Rbp); #ITU-R P.1411 Sec 4.1.2 fomula (4)
    76     }
    77   else
    78     {
    79       lossLow = Lbp + 40 * std::log10 (dist / Rbp); #ITU-R P.1411 Sec 4.1.2 fomula (2)
    80       lossUp = Lbp + 20 + 40 * std::log10 (dist / Rbp);#ITU-R P.1411 Sec 4.1.2 fomula (2)
    81     }
    82 
    83   double loss = (lossUp + lossLow) / 2;
    84 
    85   return loss;
    86 }
    87 
    88 
    89 void
    90 ItuR1411LosPropagationLossModel::SetFrequency (double freq)
    91 {
    92   NS_ASSERT (freq > 0.0);
    93   m_lambda = 299792458.0 / freq;
    94 }
    95

ns3のItuR1411NlosOverRooftopPropagationLossModelのパスロス取得部分

itu-r-1411-nlos-over-rooftop-propagation-loss-model.cc

   101 double
   102 ItuR1411NlosOverRooftopPropagationLossModel::GetLoss (Ptr<MobilityModel> a, Ptr<MobilityModel> b) const
   103 {
   104   NS_LOG_FUNCTION (this << a << b);
   105   double Lori = 0.0;
   106   double fmhz = m_frequency / 1e6;
   107 
   108   NS_ASSERT_MSG (((m_streetsOrientation >= 0) && (m_streetsOrientation <= 90)),
   109                  " Street Orientation must be in [0,90]");
   110   if (m_streetsOrientation < 35)
   111     {
   112       Lori = -10.0 + 0.354 * m_streetsOrientation; # ITU-R P.1411 p.16 Section 4.2.2.1 (26)
   113     }
   114   else if ((m_streetsOrientation >= 35)&&(m_streetsOrientation < 55))
   115     {
   116       Lori = 2.5 + 0.075 * (m_streetsOrientation - 35); # ITU-R P.1411 p.16 Section 4.2.2.1 (26)
   117     }
   118   else // m_streetsOrientation >= 55
   119     {
   120       Lori = 2.5 + 0.075 * (m_streetsOrientation - 55); # ITU-R P.1411 p.16 Section 4.2.2.1 (26)
   121     }
   122 
   123   double distance = a->GetDistanceFrom (b);
   124   double hb = (a->GetPosition ().z > b->GetPosition ().z ? a->GetPosition ().z : b->GetPosition ().z);
   125   double hm = (a->GetPosition ().z < b->GetPosition ().z ? a->GetPosition ().z : b->GetPosition ().z);
   126   NS_ASSERT_MSG (hm > 0 && hb > 0, "nodes' height must be greater then 0");
   127   double Dhb = hb - m_rooftopHeight;
   128   double ds = (m_lambda * distance * distance) / (Dhb * Dhb);
   129   double Lmsd = 0.0;
   130   NS_LOG_LOGIC (this << " build " << m_buildingsExtend << " ds " << ds << " roof " << m_rooftopHeight << " hb " << hb << " lambda " << m_lambda);
   131   if (ds < m_buildingsExtend)
   132     { # ITU-R P.1411 p.18 Section 4.2.2.1 (38),(39),(40),(41)
   133       double Lbsh = 0.0;
   134       double ka = 0.0;
   135       double kd = 0.0;
   136       double kf = 0.0;
   137       if (hb > m_rooftopHeight)
   138         {
   139           Lbsh = -18 * std::log10 (1 + Dhb);
   140           ka = (fmhz > 2000 ? 71.4 : 54.0);
   141           kd = 18.0;
   142         }
   143       else 
   144         {
   145           Lbsh = 0;
   146           kd = 18.0 - 15 * Dhb / a->GetPosition ().z;
   147           if (distance < 500)
   148             {
   149               ka = 54.0 - 1.6 * Dhb * distance / 1000;
   150             }
   151           else
   152             {
   153               ka = 54.0 - 0.8 * Dhb;
   154             }
   155         }
   156       if (fmhz > 2000)
   157         {
   158           kf = -8;
   159         }
   160       else if ((m_environment == UrbanEnvironment)&&(m_citySize == LargeCity))
   161         {
   162           kf = -4 + 0.7 * (fmhz / 925.0 - 1);
   163         }
   164       else
   165         {
   166           kf = -4 + 1.5 * (fmhz / 925.0 - 1);
   167         }
   168 
   169       Lmsd = Lbsh + ka + kd * std::log10 (distance / 1000.0) + kf * std::log10 (fmhz) - 9.0 * std::log10 (m_buildingSeparation); # ITU-R P.1411 p.17 Section 4.2.2.1 (37)
   170     }
   171   else
   172     { # ITU-R P.1411 p.18 Section 4.2.2.1 (42),(43)
   173       double theta = std::atan (Dhb / m_buildingSeparation);# ITU-R P.1411 p.18 Section 4.2.2.1 (44)
   174       double rho = std::sqrt (Dhb * Dhb + m_buildingSeparation * m_buildingSeparation);# ITU-R P.1411 p.18 Section 4.2.2.1 (45)
   175       double Qm = 0.0;
   176       if ((hb > m_rooftopHeight - 1.0) && (hb < m_rooftopHeight + 1.0))
   177         { 
   178           Qm = m_buildingSeparation / distance;
   179         }
   180       else if (hb > m_rooftopHeight)
   181         {
   182           Qm = 2.35 * pow (Dhb / distance * std::sqrt (m_buildingSeparation / m_lambda), 0.9);
   183         }
   184       else
   185         {
   186           Qm = m_buildingSeparation / (2 * M_PI * distance) * std::sqrt (m_lambda / rho) * (1 / theta - (1 / (2 * M_PI + theta)));
   187         }
   188       Lmsd = -10 * std::log10 (Qm * Qm);
   189     }
   190   double Lbf = 32.4 + 20 * std::log10 (distance / 1000) + 20 * std::log10 (fmhz); 
   191   double Dhm = m_rooftopHeight - hm;
   192   double Lrts = -8.2 - 10 * std::log10 (m_streetsWidth) + 10 * std::log10 (fmhz) + 20 * std::log10 (Dhm) + Lori; # ITU-R P.1411 p.16 Section 4.2.2.1 (25)
   193   NS_LOG_LOGIC (this << " Lbf " << Lbf << " Lrts " << Lrts << " Dhm" << Dhm << " Lmsd "  << Lmsd);
   194   double loss = 0.0;
   195   if (Lrts + Lmsd > 0)
   196     { # ITU-R P.1411 p.16 Section 4.2.2.1 (23)
   197       loss = Lbf + Lrts + Lmsd;
   198     }
   199   else
   200     {
   201       loss = Lbf;
   202     }
   203   return loss;
   204 }
   205 
   206 
   207 void
   208 ItuR1411NlosOverRooftopPropagationLossModel::SetFrequency (double freq)
   209 {
   210   m_frequency = freq;
   211   m_lambda = 299792458.0 / freq;
   212 }

LOS (Line of Sight) probability

TR-38.900 Section 7.4.2 にシナリオごとにLOSの発生確率の数式が定義されている。(ここでは割愛)

O2I building penetration model

TR 38.900 p.28 section 7.4.3 table 7.4.3-1 の減衰値
MaterialPenetration loss [dB]
Standard multi-pane glassL_{glass} = 2 + 0.2f
IRR glassL_{IRRglass} = 23 + 0.3f
ConcreteL_{concrete} = 5 + 4f
WoodL_{wood} = 4.85 + 0.12f
Note: f is in GHz
NS3 の減衰値

COST231をもとにしている)( 原文へのリンク

MaterialPenetration loss [dB]
Wood4 dB
Concrete with windows (not metallized)7 dB
Concrete without windows15 dB (spans between 10 and 20 in COST231)
Stone blocks12 dB

Autocorrelation of shadow fading

  • TR-38.900 Section 7.4.4に記載
  • ITU-R Recommendation P.1816 に掲載されている、正規化 autocorrelation 関数 R(Δx) = e^{-|Δx|/d_{cor}}を使う。
    • Δx : 水平方向の距離d_c{cor} : correlation length
  • ns3 の src/propagation/examples にJakes Propagation Modelの場合の autocorrelation のデータをプロットする R コマンドが載っている。

 Fast fading

TR-38.900 Section 7.5 に Fast Fading を適用するプロシージャーとステップが記載されている。下図はプロシージャーを図示したもの(TR-38.900 Section 7.5, Fig.7.5.1 より)。

3GPP TR 38.900 Section 6.1 に記載されているチャネルモデル

モデル名特徴
METIS Channel Models5Gの要求事項(広周波数レンジ、高帯域、大規模MIMO、3-D、精密な偏光モデル)に沿ったモデル。2GHzから60GHzまでの帯域でチャネル測定ができる。異なるチャネルモデル手法(マップベース、確率論モデル、ハイブリッドモデル)を提供できる。確率論モデルを使う場合、METISチャネルモデルでは屋外の街区(outdoor square)、屋内のカフェテリア、屋内ショッピングモールシナリオにフォーカスしている。
MiWEBA Channel Modelsシャドウイング(短区間変動)、スペクトルの一貫性、環境の変動、球波動関数(spherical wave modelling)、デュアルモビリティドップラーモデル( dual mobility Doppler model)、拡散反射(diffuse reflection)と鏡面反射(specular reflection)の間の比率、偏波(polarization)などにチャレンジしている。疑似決定性チャネルモデル(Quasi-deterministi channel model)として提案されている。60GHzでのチャネル測定が可能。大学キャンパス、高層ビル群の間の路(street canyon(wikipedia))ホテルのロビー、バックホール(backhaul)、D2Dシナリオにフォーカスしている。
ITU-R M Channel Modelsミリ波での拡散減衰と大気減衰を扱う。アンテナアレー技術とセミコンダクター技術を取り入れている。高いデータレートサービス用の密度の高い都市部の環境(dense urban environment for high data rate service)への導入シナリオにフォーカスしている:屋内ショッピングモール、屋内の企業、家、街区や街路(square and street) 、街でのモビリティ。
COST2100 and COST IC1004 Channel Models位置ベースの確率論的チャネルモデルで、MIMOチャネルの確率的なプロパティを時間、周波数、空間を超えて再生成する。一種のクラスタレベルモデルにあたり、そこでは、大規模なパラメータの統計値が各チャネルインスタンスのセットごとに常に保証されている。
NYU WIRELESS Channel Models28/38/60/73 GHzに関し屋外・屋内双方で計測した多数の都市部での伝搬計測結果をもとに作られており、計測は今でも続いている。現行の3GPPでの6Ghz以下のチャネルモデルから少しの変更や拡張で済む、次の3エリアでの5Gミリ波チャネルのモデルとして提案されている:1) LOS/NLOS/blockage モデル(a squared exponential term)、2)広帯域パワーディレイプロファイル(時間のクラスターとスペクトルローブから成り、現存する3GPP SSCM モデルの簡単な拡張に使う)、3) 物理学ベースのパスロスモデル(現存の3GPPパスロスモデルの方程式を使うが、”floating”の最適化パラメータを決定論的な 1 m “close-in” である自遊空間伝搬減衰の参照値?(free space reference term)に置き換え、異なるパーティー、シナリオ、周波数のどれでも使える標準的で安定したパスロスの代表値を提供する。)
802.11 ad/ay Channel Models会議室、小寝室、リビングルームを含む、60 GHz帯の屋内チャネルでレイトレース法(ray-tracing methodology)を使うチャネルモデル。クラスタ内パラメータは輻射伝搬遅延量?(ray excess delay)と輻射電力分布?(ray power distribution)の観点から提案されている。遮蔽確率と遮蔽による希薄化の観点から人体遮蔽モデルも提案されている。