搜尋

Generate Network Topology part II - Wrapped Around

接續Generate Network Topology part I - BS topology,我們這部分要來說明BS Wrapped around的程式,但說明程式前,先來簡述為甚麼要考慮Wrapped around。

圖(一)(a)為WiSE模擬器很常用的19個Nodes場景,圖(一)(b)為以Node 0為中心,考慮其他18個Nodes干擾,圖(一)(c)為以Node 4為中心,其他紅色線Nodes為干擾。比較圖(一)(b)(c),(b)考慮的干擾較多,(c)考慮較少的干擾,導致不公平的情況發生,為了使干擾更真實,WiSE模擬器加入了Wrapped around,如圖(二)。

圖(一)

圖(二)為以Node 4為中心,有考慮Wrapped around,相較於圖(一)(c),圖(二)多考慮了Node 7、8、9、17、18。

                                         

圖(二)Wrapped around

以上為簡單說明,想知道更多,可參考System Level模擬器之Wrapping Around方法

再來,我們開始進入程式部份,還是記得圖(三) CSpecNetworkTopologyGenerator Class架構嗎?之前我們已經介紹了

1. GenerateMacroCellTopology

2. GenerateInHOfficeMacroCellTopology

3. GenerateIndoorHotspotMacroCellTopology

這次接續介紹

1. FindNearestNodeForPixels

2. GetWrappingIndex

                  

圖(三) CSpecNetworkTopologyGenerator Class

讀者可以回到 Generate Network Topology part I - BS topology 觀看MacroCell、InHOfficeMacroCell、IndoorHotspotMacroCell程式的最後面都會出現FindNearestNodeForPixels的Function,這Function就是要考量Wrapped around效應,但這三個場景中(MacroCell、InHOfficeMacroCell、IndoorHotspotMacroCell),只有MacroCell考量Wrapped around效應,那我們就拿此當作例子來說明程式(Ring=2; Node=19)。

FindNearestNodeForPixels主要是將我們所考慮的地圖範圍(dROIXlength*dROIYlength),利用uMapResolution(單位:meter)平分為多個Pixel,如圖(四),然後去判斷每個Pixel最靠近哪個Node與Cell,如距離最短,此Pixel就歸於某個Node與Cell。

圖(四)

圖(五)為FindNearestNodeForPixelsPart I,這部分很簡單,跟MacroCell類似,只是BS所布建的範圍更大(uRing=2; nROIMaxCoverRing=4; nROIMaxCoverNode=61),主要原因為Wrapped around除了19 Nodes外,外圈還有其他的干擾Nodes。

圖(五) FindNearestNodeForPixelsPart I

從圖(五),第198行if為需做Wrapped around,第234則不需要,我們來看做Wrapped around的部分,矩陣mdNodeMap裡有61個基地台Index而這些Node的Index之後會用到。

dROIXLength  // X-axis length of Region of Interest (ROI), in meter

dROIYLength  // Y-axis length of Region of Interest (ROI), in meter

uMapResolution  // The resolution used for initial user creation and map creation

接續圖(五)FindNearestNodeForPixelsPart I後,進行圖(六)FindNearestNodeForPixelsPart II,這部分主要將每個Pixel分配給距離最近的Node與Cell。第235到241行為找出中心Node 0裡三個不同方向Cells六角形中心;而241到262則為將每個Pixel分配給離自己最近的Node與Cell,第253為使用三角公式量測距離,可搭配圖中三角型來看;量完距離後,第254行去判斷距離最近的,如距離最短,則將index與c填入進去 。

圖(六) FindNearestNodeForPixelsPart II

繼續接續圖(六)FindNearestNodeForPixelsPart II,進行圖(七)FindNearestNodeForPixelsPart III,這邊就是將個別19個Node(291行)的Wrapped around結果存到矩陣vuNeighborWrappingIndex。一樣,第286與331行分別為做Wrapped around與不做Wrapped around,我們來討論Wrapped around部分。

進入291行for迴圈時,代表將個別19個Node的Wrapped around結果存到矩陣vuNeighborWrappingIndex,每次進入291行for迴圈時,都以n為中心點位置,對n進行Wrapped around,300與317行k代表進入圖(八)GetWrappingIndex的uIndex,k進去後可以return裡面相對應的value,但並非所有k值都可以進入 GetWrappingIndex,進入前,必須先經過302與319的判斷式,判斷此目前dTempLocation位置是否跟 mdNodeMap一樣。圖(七)中我們有畫出n=0(紅色)、1(藍色)的例子,每個例子圖中左邊value為程式304與321的值(GetWrappingIndex return的結果),右邊則為index。

綜上,如完整跑完291行for迴圈,就會將個別Node的Wrapped around完成。

圖(七) FindNearestNodeForPixelsPart III

圖(八) GetWrappingIndex

建議搭配我的說明從頭到尾看一次程式,如有不清楚或想討論的,歡迎留言給我,謝謝,下次再跟大家分享如何灑UE!

留言

請先登入後再回覆文章