系統的拓撲結構
基於信號強度的定位技術(RSSI, Received Signal Strength Indication)
無線信號的信號強度隨着傳播距離的增加而衰減,接收方與發送方離得越近, 則接收方的信號強度就越強;接收方離發送方越遠,則接收到的信號強度就越弱。 根據移動終端測量接收到的信號強度和已知的無線信號衰落模型,可以估算出收發方之間的距離,根據多個估算的距離值,可以計算出移動終端的位置。在室內環境下,AP(Access Point)的信號覆蓋范圍一般在 100 米的范圍以內,無線信號在傳輸過程中,接收信號的功率強度與傳輸距離存在着某種變化關系,找出特定環境中的變化關系,就可以應用於定位技術。目前基本的無線信號傳播模型主要有兩種:確定性模型 和 經驗模型。
確定性模型又稱射線光學或射線跟蹤模型,即將高頻無線信號看作向不同方向發出光線,再依靠對室內環境信息的詳細建模,對每一根射線進行跟蹤來建立無線信號傳播模型。當無線信號在自由空間傳播時,其路徑可認為是連接收發信機的一條射線,可用 Ferris 公式計算自由空間的電波傳播損耗:
PL = – Gr – Gt + 20log(4πR/λ) = Gr + Gt + 22 + 20log(R/λ)
式中 Gr 和 Gt 分別代表接收天線和發射天線增益(dB),R 是收發信機之間的距離,單位為米,λ 是波長。 當 λ = 12.3 cm 時 (f = 2.44GHz) 可得出:
PL(2.44) = – Gr – Gt + 40.2 + 20log(R)(3.2)
經驗模型是基於某一特定環境下的實際測量結果。在實際中發射機和接收機在特定環境中置於不同的距離和位置,測量其功率損耗,通過收集大量的數據導出功率損耗曲線及其函數。平均值結果顯示其功率衰落要遠大於自由空間的傳播公式所得出的結果。在自由空間模型中,功率衰落同收發信機的距離的平方成反比。室內 傳播經驗公式顯示在室內環境中的功率衰落同距離的 3 或 4 次方成反比。這是因為通過不同路徑到達接收天線的電磁波產生的多徑效應對主信號產生嚴重干擾的結果。
用 最小均差法 算出傳播損耗的近似值。
PL(indoor-2.4GHz) = 40 + 31log(R) + 8 ;R 即為系統在室內環境中傳播的最大距離。
從室內無線信號傳播的特點分析,經驗模型更適合室內定位系統的建模。我們采用 如式 (1) 所示模型對無線信號的路徑損耗平均值進行預測:
其中,nA 為由環境決定的路徑損耗指數,對同一樓層的不同區域根據實際測量采用不同值;WAF 為需由實驗測定的牆壁衰減因子,需對不同牆體進行實際測量;df 為發射天線周圍可等效為自由空間的范圍,通常為2米;d0 = 1m 為參考點距離, 此時 PL(dO) ≈ 40dB。
定位環境中由於空氣的流動,溫度的變化,人員走動等原因,空間中每一個點測得的信號強度會隨時發生變化,同時收發天線的方向也能夠影響該點的信號強度,移動終端測得的信號強度值的隨機性比較大,對移動終端的信號強度采用的不同處理方法會影響定位誤差。為了達到減小定位誤差增加定位精確度的目的,我們采用概率模型的方法。在定位系統中建立概率模型。
首先,實驗表明實際無線通信中同一個信號源,在同一空間的同一位置的無線信號強度被認為是服從高斯分布的。無線信號在空間傳播的理想情況是,信號強度與空間傳播距離存在函數關系。但是由於實際環境中存在反射和散射等現象,造成了多徑衰落,其他使用該頻段的設備相互干擾等,使得相同信號源的無線信號在同一空間的同一位置上,其信號強度會隨着時間變化發生變化並不是一個確定值,具有一定的隨機性,但是服從高斯分布。
其次,使用基於信號強度的定位方法,定位服務器必須保存定位環境中不同信號源在不同點的信號強度的分布情況,想要保存每一個點的信號強度的分布情況是不可能的,而定位環境中信號源在各個點的信號強度是服從高斯分布的,可以通過保存信號強度的高斯分布平均值與標准差,來保存信號源在每個點信號強度的高 斯分布的特征並且盡可能的減少要保存的數據量。
再次,不同信號源的無線信號在空間同一位置的信號強度獨立存在,即一個信號源的無線信號存在與否和信號強弱均不會影響其它信號源的無線信號在該點的信號強度。這樣各個信號源的信號強度在空間同一位置的強弱被認為是概率學中的獨立事件,不同信號源之間的無線信號強度不會相互影響。由於不同的信號源的無線信號在空間分布相互獨立,並且信號源在空間給定位置的信號強度服從高斯分布,則可以使用聯合概率分布來描述多個接入點在空間無線信號的分布情況。
最后,進行實時定位時,移動終端需要將收集到的各個不同信號源在該點的信號強度等定位數據,發送給定位服務器,定位服務器利用已經保存的定位環境中特定點的信號強度的高斯分布的平均值和標准差,根據在當前點實時測得的對應信號源的信號強度,去計算覆蓋當前點的所有信號源的聯合高斯分布概率。這個概率值 越大,表示移動終端當前位置越靠近定位服務器已經保存的點。 由於定位空間的連續性和定位服務器存儲空間的有限性,將定位環境內所有點的信號強度的高斯分布特征保存下來是不可能的。所以在定位環境中根據環境的特點選取一些特定的稱為訓練點,並將這些訓練點的信號強度的高斯分布特征保存下來,使這些點成為定位移動終端的基准點,所有的定位結果都是以訓練點作為參考點來產生的。
對於每一個室內環境的無線局域網,首先構建無線信號強度分布圖,即構建信號強度經驗值數據庫。室內平面圖,AP 位置,AP 發射功率等均已確定,在移動終端可能出現的概率較大的地方分不同方向(天線具有一定的方向性),多次采集信號強度,以此作為構建經驗值數據庫的數據。采集的數據格式如下:
(position_x, position_y, RSSI, MAC) (2)
其中,position_X,position_y 是當前位置坐標,RSSI 是當前位置所收到的信號強度,MAC 是該 AP 點的 MAC 地址,用來區分不同的 AP 點。 完成采集以后,對采集的值數據進行預處理,目標數據格式如下:
(position_x,position_y,RSSI_AVG,RSSI_DEV,MAC) (3)
其中,position_x,position_y 是當前位置坐標,RSSI_AVG 是該 AP 的 RSSI 均值,RSSI_DEV 是該 AP 的 RSSI 的標准偏差,MAC 是該 AP 點的 MAC地址。 為了保存訓練點的信號強度高斯分前i的特征,同時考慮到對這些數據的修改與更新的方便,使用數據庫來保存這些數據。由於實時定位時定位服務器需要接入點 MAC 地址等信息,所以保存訓練點信號強度的數據庫的表的結構定義為如下:
系統軟件總體設計
系統軟件分為服務器端軟件和客戶端軟件。
服務端軟件按功能主要分為:定位模塊,系統管理模塊,定位顯示模塊三大模塊。
客戶端軟件按主要功能分為:數據采集模塊和數據發送模塊。
客戶端定位數據消息格式
客戶端發送給定位服務器的消息主要包括在當前點有無線信號的接入點的總數和這些接入點的 MAC 地址以及這些接入點的信號強度。
定位信息的鏈表結構
接受定位數據模塊使用鏈表來保存定位信息,鏈表的長度由客戶端發送消息中第一個字段確定,鏈表節點保存的信息包括接入點的 MAC地址、對應接入點的信號強度值和下一個節點的位置。
1 typedef struct Info{ 2 char MAC[13]; 3 float RSSI; 4 struct Info *next; 5 }LS_info
計算定位結果模塊
以定位信息鏈表的頭結點作為參數,根據定位鏈表中的信息使用 ODBC 從數據庫中取出相應的值,計算出當前點與每個訓練點的接近概率。選出接近概率最大的三個訓練點,將這三個點的坐標求算術平均值得到定位結果。計算定位結果模塊偽碼如下:
1 輸入參數:定位消息鏈表頭指針 2 輸出參數:指向定位結果的指針 3 4 BEGIN 5 6 循環標量 i 初始化為1; 7 獲取定位數據庫中訓練點總數 TP_Num; 8 9 WHILE( i <= TP_Num){ 10 11 循環變量 j 初始化為 0; 12 將鏈表頭指針賦值給局部指針變量; 13 臨時總的接近概率 temp_prob 初始化為 1; 14 獲取鏈表長度 Li_Len; 15 16 WHILE( j < Li_Len){ 17 18 根據局部指針讀取定位信息鏈表中的MAC地址和信號強度值; 19 根據MAC地址和循環標量 i 從數據庫取出對應的信號強度平均值和標准差; 20 計算當前接入點高斯分布概率 prob; 21 temp_prob = temp_prob * prob; 22 局部指針指向鏈表的下一個節點; 23 j++; 24 } 25 26 比較 temp_prob 與 最大概率保存數組中最小值的大小; 27 如果 temp_prob 較大,則用 temp_prob 替換數組中的最小值,並保存該訓練點的相關信息; 28 i++; 29 } 30 31 將最大概率數組對應的訓練點的坐標就是平均值的定位結果 32 將定位結果寫入定位日志; 33 返回定位結果; 34 35 END
服務端數據庫設計
1、用戶表
字段 | 類型 | 描述 |
ID | number | 用戶ID號 |
Name | text | 登錄系統的用戶名 |
Pwd | text | 登錄系統的密碼 |
Role_Code | char | 用戶權限(Admin/User) |
2、移動設備表
字段 | 類型 | 描述 |
ID | Number | 設備 ID 號 |
Name | text | 設備名 |
Des | text | 設備描述 |
3、AP 表
字段 | 類型 | 描述 |
ID | Number | AP ID 號 |
Name | Text | AP 名 |
Des | Text | AP 描述 |
Ssid | Tetx | AP SSID 描述 |
Mac | Text | AP MAC 描述 |
4、定位數據表
字段 | 類型 | 描述 |
id | Number | 主鍵 |
x | Number | 某一點的 x 坐標 |
y | Number | 某一點的 y 坐標 |
dire | Char | 某一點朝向 |
num_ap | Number | AP 編號 |
rssi_avg | Number | 該 AP 在某一點某方向的信號強度平均值 |
rssi_dev | Number | 該 AP 在某一點某方向的信號強度標准偏差 |
ssid | Char | 該 AP 的 SSID |
mac_addr | Char | 該 AP 的 MAC 地址 |
add_info | Char | 備注 |
【參考文獻】
1、《2010.基於WiFi技術的定位系統的設計與實現》
2、《一種基於WiFi的室內定位系統設計與實現》
【附錄】