AI-RAN: Nvidia Areial RAN - Sionna (4)
我們就從 Sionna RT (Ray Tracing) 開始吧,
Sionna 的安裝過程已經包成 pip 套件, 通常是不會遇到甚麼問題.
如果擔心和現有 python 環境衝突, 可以用 miniconda 之類的套件處理.
安裝好 Sionna 之後, 我們就按照其範例進行實作:
在開始介紹 Sionna RT 之前, 我想先列一下 3 項和 AODT 的差異:
- Sionna RT 對場景定義使用 XML 格式, AODT 使用 USD 格式
- Sionna RT 不包含 cuMAC 和 cuPHY
- Sionna 不包含即時的互動介面 (AODT 藉由 Omniverse 平台實作)
在 Sionna RT 的介紹範例中, 介紹了如何載入場景, 設置基地台與使用者,
並進行通道模擬, 取出模擬通道中的通道響應, 並搭配可視化界面呈現.
由於 Nvidia 技術文件其實寫得很好, 整體執行範例也不成問題,
所以, 我們在這邊就以整體執行流程的概念來說明, 我們列出整體流程如下:
- 載入場景(Scene)[block 1-12]
- 在範例中是以 Mitsuba XML 檔載入, Mitsuba 為 Ray-Tracing Model 的底層套件
- 可使用 Blender 搭配 OpenStreetMap 資料建立場景
- 場景的圖示化須設置攝影機位置, 並針對攝影機與場景的互動, 產生如下圖片
- 針對場景, 另一個重點是場景中物件的特性, 這邊可以看 SceneObject 的定義
- 透過 SceneObject 的設定, 可以設定場景中物體的電磁特性(如混凝土、玻璃等)
- 放置裝置(Transmitter & Receiver)[block 13]
- 定義發射器與接收器的位置與天線陣列
- scene.rx_array = PlanarArray(num_rows=1,
num_cols=1,
vertical_spacing=0.5,
horizontal_spacing=0.5,
pattern="dipole",
polarization="cross") - rx = Receiver(name="rx",
position=[45,90,1.5],
display_radius=2) - 射線追蹤(Ray Tracing)[block 14, 15]
- 考慮反射, 繞射與散射等物理現象, 計算從發射器到接收器的多條傳播路徑
- 設定參數如下, 包含了最大互動次數, 兩種反射效應, 與透射的設定
- paths = p_solver(scene=scene,
max_depth=5,
los=True,
specular_reflection=True,
diffuse_reflection=False,
refraction=True,
synthetic_array=False,
seed=41) - 模擬後可以產生如下的圖片:
- 生成通道響應(CIR/CFR)[block 16-20]
- 在上圖中, 我們可以看到一組 TX/RX 模擬的通道
- 這些通道產生後, 會被儲存成基頻通道響應的格式 (CIR)
- 透過套件工具的轉換, 可以進一步轉成 CFR 的頻率響應
- 無線圖譜 RadioMap [block 21, 22]
- 除了上述的功能外, Sionna 相較 AODT 有一個獨立的功能稱為 RadioMap
- RadioMap 可以產生區域的訊號強度模擬, 而非 TX-RX 成對的通道, 如下:
- 在此範例中, 提供較少 RadioMap 資訊, 不過有一個單獨的範例, 我們之後再說明
留言
張貼留言