說明完Generate Network Topology part I 與part II後,我們就擺好Macro Cell的基地台位置,並考慮Wrapped around。接續要來說明如何灑UE,
再來複習一次圖(一)CSpecNetworkTopologyGenerator Class架構,先前我們已經介紹了:
1. GenerateMacroCellTopology
2. GenerateInHOfficeMacroCellTopology
3. GenerateIndoorHotspotMacroCellTopology
4. FindNearestNodeForPixels
5. GetWrappingIndex
這次接續介紹:
GenerateUELocation
圖(一) CSpecNetworkTopologyGenerator Class
GenerateUELocation包含Macro Cell與Small Cell,這次文章先介紹Macro Cell,後續再來介紹Small Cell。
圖(二)
圖(二)為灑UE的大概念,此例子為1個Node裡面包含3個Cells,UE灑的方式為在紅色正方形範圍內,隨機灑UE,UE的位置需符合一些條件才能判斷此UE灑成功(紅色橢圓),例如:UE不能靠基地台太近或者必須灑在範圍內都是一些技術文件所規定的條件。以下將說明如何灑Macro Cell(Outdoor與Indoor)UE的程式。
圖(三) GenerateUELocation Macro (Outdoor)
圖(三)為Outdoor的部分,程式最外面是一個for Node的迴圈(畫面沒辦法全部截取),之後進入722行第二層for UENumPerMacroCell*UECout,我們以10*3為例子,10表示每個Macro Cell可以灑10個UEs,而3表示每個Node裡面有3個Cells,所以以19個Nodes為例,總共要灑570個UEs。
724到754的do-while為灑UE,755到760為把灑成功的UE資訊填進去。
在do-while中,bFlag為判斷條件,如bFlag為true表示UE違背一些判斷條件(例如:730與731行UE離基地台太近或者UE不在目前灑的Node範圍內、第738行UE沒灑在座標正值範圍內、740行UE不在目前灑的Cell範圍內、747目前灑的Cell內已經灑滿UENumPerMacroCell的數量)將導致UE灑沒成功,必須重新灑,如成功則跳出do-while,進入755到760把灑成功的UE資訊填進去。
圖(四) GenerateUELocation Macro (Indoor)
圖(四)為Indoor的部分,還記得Indoor在擺放基地台時有分Indoor Office(1個Node裡分為3個Cells)與Indoor Hotspot(1個Node 1個Cell),766為就是在判上述條件。Indoor與Outdoor灑法相似,do-while為灑UE,如成功則填入UE資訊(bFlag=false),失敗則重灑(bFlag=true)。
圖(五) GenerateUELocation Macro(Indoor probability)
圖(五)為持續填入灑成功的UE資訊,並判斷在Outdoor的UE中,判斷有哪些是在Indoor裡面。
這裡稍為說明一下841到845的意義,以我們生活中例子來說,dRatation,就像我們拿著手機,轉動不同方向,而dTravelDirection為使用者所站立的方向。
其中dRatation[0]、dRatation[1]、dRatation[2]分別代表Bearing與Downtilt以及Slant。圖(六)為參考38901 Figure 7.1.3-1。
圖(六) Orienting the LCS (blue) with respect to the GCS (gray) by a sequence of 3 rotations: α, β, γ.
發揮空間想像力一下,dRatation[0]為圖(六)抓住z軸旋轉,角度為α;dRatation[1]抓住y軸旋轉,角度為β;;dRatation[2]抓住x軸旋轉,角度為γ。
847到874行為判斷在Outdoor的UE中,有哪些是在Indoor裡面,850的DetermineIndoorState為判斷UE是否在Indoor內,如在Indoor內,則程式繼續執行855行看UE是在幾層樓的建築物,856行為固定幾層樓後,判斷此UE哪樓層,舉個例子:假設855行選定5層樓的建築,則856行就可以從1到5樓選擇。
以上為灑Macro Cell UE的部分,再見,下次再跟大家分享如何灑Small Cell的BS與UE!