江小平,劉 鍵,丁 昊
(中南民族大學 電子信息工程學院,武漢 430074)
室內位置服務(LBS)由于其社會價值和商業價值吸引了越來越多的關注.傳統的室內位置技術包括視頻監控、傳感器網絡、超聲波或聲音等[1],這些技術需要安裝特定裝置,成本高而且有一定盲區,存在明顯缺陷. 隨著通信網絡理論和技術的進步,包括Wi-Fi、藍牙、射頻識別(RFID)[2-4]、磁場等都被用于室內定位. 上述技術中,基于Wi-Fi的方法以其無線覆蓋范圍廣、應用普遍、成本較低而備受關注.目前根據被檢測目標是否攜帶設備參與定位過程與否,將Wi-Fi的定位分為有源和無源兩種[5]. 傳統的無源定位方式大多采用接收信號強度(RSSI)作為定位指紋來確定位置和距離.杜克大學Sen等[6]設計的PinLoc系統,在房間內創建多個定位指紋,通過被檢測者的RSSI和構建好的Wi-Fi指紋庫進行匹配. 選擇單個地點區域內4個不同位置的信道頻率響應(CFR)作為該地點的候選指紋,由于接收到的RSSI僅表示接收數據包多路信號混合,具有很低的分辨率,定位精度差. 2009年的IEEE802.11n標準中,通過正交頻分復用技術(OFDM)能得到WLAN網絡的CSI[7].CSI與RSSI相比抗干擾能力強,靜態時相對穩定,動態時通過2.4 GHz或5 GHz無線網絡詳細地描述了30個子載波幅度和相位信息,較為靈敏地反映了室內無線環境的變化情況. Xiao等[8]實現了一個基于CSI設備無關的室內運動檢測系統FIMD. FIMD提取CSI時間穩定性較好的特征,利用基于密度的DBSCAN系統分類算法對信道鏈路狀態進行分析,與基于RSSI的 RASID系統[9]相比,提高了識別準確率. Li等[10]提出一種新的定位方法,在離線階段,收集所選參考點的CSI原始數據作為其精確位置的標簽,然后在本地服務器上生成一個龐大的數據庫,使用數據庫實現數據預處理和加權訓練. 定位的平均誤差在1.57 m. 但是由于環境的復雜性和信號的時變性,這些方法在穩定性和精度方面仍有一定的提升空間[11].
本文設計了一種基于CSI的離散指紋的軌跡跟蹤方法. 與其他算法相比,同時利用CSI幅值和相位信息作為離散指紋特征值;考慮到子載波差異性,設計了基于子載波權重的定位算法保證CSI數據的可用性和定位的準確率. 系統的硬件設備是Wi-Fi路由器的發射器和裝有5300網卡的電腦的接收器.通過漢佩爾濾波器和巴特沃斯低通濾波器對數據進行處理,之后通過相位的矯正和協方差相關矩陣特征值法進行特征提取,最后利用基于子載波權重的主成分分析算法進行分類,創建指紋來進行無源定位和軌跡跟蹤.
Wi-Fi采用OFDM調制技術,獲取Wi-Fi信號每根天線的30個子載波的CSI信息.每路子載波兩兩正交,進行獨立的自適應多進制調制[12].在OFDM系統中經過多徑信道的接收信號為:
R=HX+N,
(1)
(1)式中R和X分別代表接收端和發送端的信號向量,H和N分別是信道矩陣和加性高斯白噪聲. 根據式(1)各個子載波的CSI可以估計為:
(2)

H(f)=[H(f1),H(f2),…,H(fn)].
(3)
在第N個子載波上,信道頻率響應表示為:
H(fN)=|H(fN)|ejsin( (4) (4)式中H(fN)為復數值,表示每個子載波的幅值和相位. 由于儀器、溫度和房間擺設等因素的影響,未經處理的CSI數據不能直接使用. 因此對原始數據去除異常值以保證數據的穩定性,同時濾波以減少噪聲對CSI的影響. 漢佩爾濾波器屬于基于決策的濾波器,能找出數據序列中的異常數據點,并以更有代表性的數值取代[13]. 接著采用巴特沃斯對幅值進行預處理,幅值處理前后的結果如圖1所示. 圖1 3個子載波的幅值預處理前后結果Fig.1 The results of 3 subcarrier amplitude preprocessing before and after pretreatment 因為商用網卡的精度較差和噪聲等因素的影響,從數據包中得到的CSI相位信息雜亂無章,所以要對相位進行處理.假設第n個子載波頻點fn,Wφfn為第n個子載波的真實相位,φfn為測量相位,N為每個子載波上的頻點數,γ為接收機時間偏移,?為隨機相位,X為測量誤差. 有: (5) 對兩個不同的φfn做差值運算結果如式(6): (6) (6)式中,Δ?和ΔX較小可以忽略,可簡化為: (7) (7)式可以化為: Δφfn=aΔfΔn+b,Δn=n-1, (8) 根據式(8),能化為y=ax+b的形式,采用線性回歸的算法,去擬合當前的一系列樣本(x,y). 線性回歸有多種算法,本文采用基于均方誤差規則下最小二乘法求得a和b,得到線性回歸方程,從而去除了收發功率不穩定和噪聲因素造成的相位誤差. 圖2是經過相位處理后的3個連續時刻的天線相位圖.三根天線的變化情況不同,對于同一根接收天線,30個子載波經過相位處理后由于多徑引起的相位跨度變化不大,相對比較穩定. 圖2 3個連續時刻的相位處理圖Fig.2 Phase processing diagram of 3 consecutive moments 式(3)是CSI的頻域狀態響應公式,對采集到的數據加窗處理,設滑動窗口大小為w,窗口內數據包為: H=[HN,HN+1,…,HN+w-1], (9) 其中HN為窗口內CSI的起始數據包,基于子載波的維度為30,所以矩陣H的維度為w×30.根據式(9)計算矩陣H中各列數據的相關性: 其中cov(Hm,Hn)是矩陣Hm、Hn的協方差,D(Hm)、D(Hn)分別是矩陣Hm、Hn的方差.滑動窗口內的矩陣相關性如下: 將得到的相關矩陣記為X,對相關矩陣X進行最大特征值處理如式(11): M=max(eig(cov(X))), (11) 以此類推,隨著窗口滑動,計算每個窗口的最大特征值. 圖3是3種不同情形下的特征提取結果.從圖中可以看出幅值的最大特征值呈現不同的聚類結果,靜態環境下得到的相位最大特征值波動的范圍明顯小于其他兩種情況. 圖3 室內不同場景的特征提取效果Fig.3 Feature extraction of different indoor scenes 從商用網卡收集到的CSI數據經過以上的處理,發現在單位時間(一個數據包)內,每根天線的30個子載波之間對于環境感知敏感度差異較大,并影響了指紋定位的精度和準確性. 在特征提取中選擇有代表性的CSI數據作為指紋信息,能更好地利用CSI子載波,增加準確性,減少誤差率. 分類算法設計流程如下. 1)計算自相關矩陣. 輸入的數據為data=N×n的矩陣(N代表的是數據包數目,n=90是3根天線的共90個子載波)對列向量求相關性,形成一個A矩陣. 2)特征向量. 對A矩陣求特征值,([V,S]=eig(A),矩陣A的全部特征值構成對角矩陣S,并求A的特征向量構成V的列向量),根據特征值對特征向量進行排序,并歸一化. 3)采用排序后的第一特征向量和第二特征向量作為主成分. 4)使用第一特征向量和第二特征向量投影數據到二維坐標軸上(P=data×V其中data是輸入的數據,V是形成的特征向量矩陣). 實驗室面積約9.6×8.1 m2,在房間內均勻布置9個指紋點,指紋點相距約110 cm(圖4). 一臺裝有Intel 5300無線網卡(三根天線)的臺式機作為接收機(MP),三根天線平行分布,每根天線相距5 cm,臺式機安裝了Ubuntu11.04系統,版本3.5.7的定制CSI-tool內核,一臺TP-LINK的AC1200雙頻無線路由(AP)作為發射機,在Ubuntu系統上通過CSI-tool工具收集CSI數據包,將得到的數據包進行實驗仿真.AP和MP的高度均為40 cm.無線AP基于802.11n協議,由于樓層中使用2.4 GHz Wi-Fi頻段的路由較多,為減少干擾,采用5 GHz的兩根天線固定信道發射無線信號.整個收發器組成一個2×3的MIMO系統. 圖4 實驗室環境和平面圖Fig.4 Laboratory environment and planar graph 實驗中在1~9的指紋點,人體的朝向和姿勢保持一致. 每個點人站立時的采集時間為120 s. 靜態環境作為指紋10. 圖5是10個指紋點的幅值和能量圖,包括指紋點1~9和靜態環境采集的數據作為指紋點10,每個指紋點400個數據量(用虛線隔開)形成的90個子載波的幅值數據.從圖中的幅值和能量看出了各指紋點由于位置的不同,幅值能量也各有差異.指紋點4、5、6由于在視距線(LOS)上,對CSI的感知較強,引起的能量變化的波動較大. 其他的點由于離LOS線距離遠,對環境變化所引起的幅值變化較小. 圖5 指紋點的幅值和能量圖Fig.5 The magnitude and energy diagram of fingerprint points 對聚類后的數據引入K近鄰法(KNN),取一半數據作為訓練樣本,其余作為測試樣本. 采用式(12)來計算指紋點數據的分類正確率: (12) 其中T1為每個點分類正確的數據,Q為每個點的總數據. 在相對空曠無遮擋的室內環境中實驗,減少了復雜環境中多徑效應的影響;同時排布的指紋點位置不同,指紋點的定位準確性也有差異. 表1是指紋數據點聚類后的分類結果,指紋8、指紋9由于靠近障礙物和墻壁,人體站立在這些位置時,對環境改變所引起的信號影響較小,分類效果稍差;指紋點1、2、3因為多徑影響較小,取得了預期的分類效果;指紋點4、5、6因為處于視距線上,CSI對環境的變化較為敏感,分類的正確率較高,總體上分類算法對9個指紋點的準確率較好. 本文設計的算法流程利用了不同子載波上的信息,起到了很好的分集定位效果,平均正確率在90%以上. 表1 不同指紋點數據的分類正確率Tab.1 Classification accuracy of different fingerprint point data 選取沿著指紋點4、5、6路徑所做的指紋軌跡進行跟蹤檢測(圖6),一個指紋點采集400個數據包(包括有人站立和無人環境). 當指紋點站人時,由于室內環境改變,會引起CSI幅值和相位的變化. 為了更好地觀察聚類的效果和軌跡的變化,把指紋點4、5、6采集的數據分為6部分(每部分包括200個數據包),每部分的數據包經過算法流程后形成的聚類效果如圖6所示,從圖中數據的分類點軌跡的變化,可以檢測出人體在室內指紋點的軌跡路線. 圖6 指紋點4、5、6的軌跡跟蹤Fig.6 Trajectory tracking of 4, 5, 6 fingerprint points 設計了一個完整的基于Wi-Fi的CSI離散指紋的軌跡跟蹤方案,不需攜帶任何特殊設備,成本較低,有利于普及.該系統采用了多種方法對幅值和相位數據進行處理,減少了環境所造成的數據誤差. 采用協方差矩陣特征值法同時結合CSI所具有的特性對PCA算法改進,通過室內指紋點的采集,證實了算法的可行性及分類的準確性.指紋點定位準確率在90%以上. 下一步將考慮增加指紋的密度,提高定位的準確性.同時對指紋點路徑進行跟蹤識別,會為未來深入研究多目標運動檢測和路徑跟蹤,實現跟蹤動態人員的目標和位置提供基礎.2 算法描述
2.1 幅值預處理

2.2 相位處理

2.3 特征提取

2.4 基于子載波權重的PCA算法
3 實驗設計
3.1 實驗方案




4 結語