學(xué)號:20021210595? ? 姓名:楊嬋
轉(zhuǎn)載自:https://www.cnblogs.com/rubbninja/p/6118430.html
【嵌牛導(dǎo)讀】很多情況下大家都采用實(shí)際測量的數(shù)據(jù)進(jìn)行定位算法的性能分析和驗(yàn)證忱反,但是實(shí)際測量的工作量太大缩抡、數(shù)據(jù)不全面蜀撑、靈活性較小,采用仿真的方法獲取RSS數(shù)據(jù)是另一種可供選擇的方式。本文介紹射線跟蹤技術(shù)的基本原理壁却,以及如何得到用于定位仿真的RSS數(shù)據(jù)隔箍。在此基礎(chǔ)上得到位置指紋庫與一組測試數(shù)據(jù),用于以后定位算法的驗(yàn)證坎背。
【嵌牛鼻子】wifi替劈,室內(nèi)定位,位置指紋
【嵌牛提問】RSS數(shù)據(jù)如何模擬沼瘫?
【嵌牛正文】
對數(shù)距離損耗模型
在自由空間中抬纸,沒有任何障礙物,信號從發(fā)射源向四面八方呈球面形狀發(fā)射出去耿戚,各個方向上沒有任何區(qū)別湿故,因此信號的功率和距離的平方呈反比:P∝1d2P∝1d2。
RSS就是功率膜蛔,但是衰減的單位一般用dB來表示坛猪,那么就很容易理解RSS與距離的關(guān)系了,RSS衰減與距離的對數(shù)呈正比皂股,假設(shè)已知一個參考距離d0d0以及這個距離上的RSS為RSS(d0)RSS(d0)墅茉,那么,RSS(d)=RSS(d0)?10nlog(dd0)RSS(d)=RSS(d0)?10nlog?(dd0)呜呐。自由空間中n=2n=2就斤,這就是最常見的對數(shù)距離損耗模型(針對室內(nèi)的傳播模型還有分隔損耗、樓層間分隔損耗蘑辑、Ericsson多重斷點(diǎn)模型等)洋机。下圖中的黑線是一組在走廊中測量的實(shí)際數(shù)據(jù),紅線是對數(shù)距離損耗模型的擬合結(jié)果洋魂,可以看出模型可以反映總體趨勢绷旗,但和真實(shí)室內(nèi)環(huán)境下的情況還是有較大區(qū)別,注意黑線的波動不是因?yàn)樵肼暩笨常菍?shí)際的信號傳播環(huán)境造成的衔肢。走廊這種場景算是比較簡單的,如果在其他一下更復(fù)雜的場景下豁翎,有更多的信號遮擋角骤、反射等因素存在,RSS不僅和距離位置有關(guān)心剥,還和周圍的各種障礙物有關(guān)系邦尊,因此在更復(fù)雜一點(diǎn)的場景下硼控,可以用射線跟蹤技術(shù)來分析。
射線跟蹤技術(shù)
電磁波沿直線傳播胳赌,可以將其近似為射線進(jìn)行分析牢撼。對于一個固定的發(fā)射源,在自由空間中疑苫,利用對數(shù)距離衰減模型即可計算各個位置的RSS熏版,但是室內(nèi)環(huán)境很復(fù)雜,信號可以遇到墻壁發(fā)生反射捍掺,各個反射后的信號又可以與未經(jīng)反射的信號疊加撼短,實(shí)際中測量到的信號其實(shí)包括了各個反射、繞射挺勿、散射信號曲横。在射線跟蹤中,計算出發(fā)射點(diǎn)與接收點(diǎn)之間的多條傳播路徑不瓶,分別對各個路徑的信號進(jìn)行分析禾嫉,一般包括信號強(qiáng)度、相位在多次反射或繞射下的計算蚊丐,然后疊加得到接收點(diǎn)上的信號熙参。
舉個例子,下圖是一個假定的空曠的房間麦备,有一個發(fā)射源(AP)在房間左邊的角落孽椰,一個接收器在房間的中央,接收器收到這個AP的信號中包含了來自1條直射路徑與6條(墻壁)反射路徑的信號(多次反射的影響很小凛篙,可以忽略)黍匾,下圖右下角的曲線是某條直線上RSS隨距離的衰減,在這樣稍微復(fù)雜一點(diǎn)的環(huán)境中呛梆,RSS與距離的關(guān)系已經(jīng)不是平滑的對數(shù)衰減了锐涯。理論上我們可以計算出任意一點(diǎn)的的RSS,圖中有6個AP削彬,因此每個位置點(diǎn)可以分別計算出6個RSS全庸。
生成用于位置指紋法的仿真數(shù)據(jù)
下面介紹一些怎么得到在位置指紋法中進(jìn)行仿真所需的數(shù)據(jù)秀仲。
RSS仿真環(huán)境數(shù)據(jù)集:設(shè)置好房間尺寸和各個AP的位置等各種參數(shù)融痛,使用射線跟蹤計算每個位置的RSS,位置點(diǎn)的間隔設(shè)得小一點(diǎn)(0這里設(shè)為0.01m)神僵,計算一次射線跟蹤后把數(shù)據(jù)保存起來雁刷,以后所有的RSS數(shù)據(jù)都從這個“RSS仿真環(huán)境數(shù)據(jù)集”中或取。
一個典型的離線指紋庫:模擬數(shù)據(jù)采集的過程保礼,比如每個1m采集一次RSS數(shù)據(jù)沛励,數(shù)據(jù)都從上面的“RSS仿真環(huán)境中”獲取责语。也可以考慮其他的一些采集方式,或者為采集過程加入噪聲目派,設(shè)置采集樣本的個數(shù)等坤候。
在線定位測試數(shù)據(jù):模擬一個目標(biāo)在房間中運(yùn)動,獲得一條運(yùn)動軌跡企蹭,以及每個軌跡點(diǎn)上的RSS白筹,用來作為定位算法的測試數(shù)據(jù)。
這個系列的位置指紋法都使用生成的這些數(shù)據(jù)谅摄,用測試數(shù)據(jù)驗(yàn)證算法的性能徒河。
代碼和數(shù)據(jù)
代碼地址:https://github.com/jiangqideng/codeInBlogs/tree/master/IP_raytracing
main.m:主程序,在仿真環(huán)境中送漠,得到離線指紋庫顽照,以及在線階段的測試數(shù)據(jù),用于以后的定位測試闽寡。
get_rss_by_ray_tracing.m:簡化場景下(空曠房間)的射線跟蹤代兵。
generate_radio_map.m:生成“RSS仿真環(huán)境數(shù)據(jù)集”。
get_random_trace.m:生成一條隨機(jī)軌跡爷狈。
get_offline_data_random.m:模擬隨機(jī)數(shù)據(jù)采集奢人,生成位置指紋庫。
get_offline_data_uniform.m:模擬均勻數(shù)據(jù)采集淆院,生成位置指紋庫何乎。
get_online_data.m:模擬在線階段,生成測試數(shù)據(jù)土辩。
radio_map_20_15.mat:生成的“RSS仿真環(huán)境數(shù)據(jù)集”支救,199914996的數(shù)組,比如fingerprint(1000, 1000, 2)代表的是仿真環(huán)境中位置(100拷淘,100)上接收到的第2個AP的RSS各墨。
offline_data_rss.mat:離線數(shù)據(jù)RSS,每行為一個RSS向量
offline_data_location.mat:離線數(shù)據(jù)位置點(diǎn)启涯,每行為一個位置點(diǎn)x贬堵,y
online_data_trace.mat:生成測試數(shù)據(jù)的運(yùn)動軌跡,10000*2的數(shù)組结洼,比如trace(10, :)代表的是第10個時刻目標(biāo)的位置x和y黎做。
online_data_rss.mat:生成測試數(shù)據(jù)中與運(yùn)行軌跡對應(yīng)的RSS,10000*6的數(shù)組松忍,比如trace(10, :)代表的是第10個時刻時目標(biāo)測得的各個RSS蒸殿。
作者:[rubbninja](http://www.cnblogs.com/rubbninja/) 出處:[http://www.cnblogs.com/rubbninja/](http://www.cnblogs.com/rubbninja/) 關(guān)于作者:目前主要研究領(lǐng)域?yàn)闄C(jī)器學(xué)習(xí)與無線定位技術(shù),歡迎討論與指正! 版權(quán)聲明:本文版權(quán)歸作者和博客園共有宏所,轉(zhuǎn)載請注明出處酥艳。