張龍飛,金仁成,姚永倫
(大連理工大學 遼寧省微納米技術及系統(tǒng)重點實驗室,遼寧 大連 116024)
隨著網(wǎng)絡技術的快速發(fā)展,人們對室內(nèi)定位技術的需求也越來越高,基于信道狀態(tài)信息(Channel State Information,CSI)的室內(nèi)定位技術成為研究熱點,尤其是基于位置指紋的定位方法,該方法因其成本低廉、方法簡易的優(yōu)勢逐漸成為室內(nèi)定位的主流,它的定位過程包括兩個部分:離線訓練階段和在線定位階段。離線階段在室內(nèi)預先選好的參考點接收CSI數(shù)據(jù)包,提取出指紋信息,并建立指紋數(shù)據(jù)庫;在線階段將測試點的指紋信息與數(shù)據(jù)庫中的指紋信息進行匹配。常用的匹配算法有支持向量機(Support Vector Machine,SVM)[1]和神經(jīng)網(wǎng)絡[2]等方法,使用主成分分析(Principal Component Analysis,PCA)可以降低數(shù)據(jù)維度和去除高頻噪聲[3],減小定位計算復雜度。
黨小超等[4]首先使用粒子群優(yōu)化支持向量機(PSO_SVM)的算法提高室內(nèi)定位精度;劉旭明等[5]提出了遺傳算法優(yōu)化的支持向量機(GA_SVM)以提高室內(nèi)定位精度;秦軍利等[6]說明了蟻群優(yōu)化支持向量機(ACO_SVM)的應用場景,但未運用到室內(nèi)定位中。本文提出了一種基于蟻群優(yōu)化支持向量機的室內(nèi)定位算法。
CSI是基于正交頻分復用調(diào)制技術的無線信號在移動終端的信道響應表現(xiàn)形式。因為接收端有3根天線,并且每根天線有30個信道,所以每個CSI數(shù)據(jù)包是3×30的矩陣,如式(1)所示:
(1)
其中:Hxy為CSI的第x根天線的第y個子載波,包含著幅值和相位信息,如式(2)所示:
Hxy=‖Hxy‖ej∠Hxy.
(2)
其中:‖Hxy‖為Hxy的幅值;∠Hxy為Hxy的相位角。
由于硬件條件等影響,CSI的相位角會偏移,沒有矯正的相位信息是無法作為指紋的。YANG I 等[7]提出了線性變化的方法對雜亂的相位信息進行矯正,得到了真實相位,線性變換處理前、后的相位信息如圖1和圖2所示。
圖1 線性變換前CSI相位角
圖2 線性變換后CSI相位角
由此,可以得到數(shù)據(jù)包的幅值矩陣Hamp和相位角矩陣Hangle:
(3)
(4)
1.2.1 數(shù)據(jù)的預處理
實驗表明,CSI的數(shù)據(jù)特征越多,定位精度越高,為此,本文融合了Hamp和Hangle,先將它們由3×30的矩陣展開成1×90的矩陣,然后把兩個矩陣結合成一個1×180的矩陣Hs,如公式(5)所示:
Hs=[‖H11‖,…,‖H1N‖,‖H21‖,…,‖H2N‖,
‖H31‖,…,‖H3N‖,∠H11,…,∠H1N,
∠H21,…,∠H2N,∠H31,…,∠H3N].
(5)
按照這種方式,把所有的數(shù)據(jù)包都轉成式(5)格式,并把每10個數(shù)據(jù)包分成一組,求出對應子載波的幅值和相位的方差,結果如式(6)所示:
Hδ=[δ‖H11‖,…,δ‖H1N‖,δ‖H21‖,…δ‖H2N‖,
δ‖H31‖,…,δ‖H3N‖,δ∠H11,…,δ∠H1N,
δ∠H21,…,δ∠H2N,δ∠H31,…,δ∠H3N].
(6)
對應子載波方差的大小更能反映出受環(huán)境等因素影響而產(chǎn)生的波動性,其特征更具有分辨性,定位精度會更高。
1.2.2 改進的算法流程
根據(jù)SVM參數(shù)優(yōu)化[8]思想,我們把提出的改進算法命名為ACO_SVM_VAR,其目的是找出SVM中最優(yōu)的懲罰系數(shù)c和核函數(shù)參數(shù)g,使得定位誤差最小,算法流程如圖3所示。
圖3 ACO_SVM_VAR算法流程
我們在大連理工大學機械學院9樓的室內(nèi)進行實驗,實驗環(huán)境如圖4所示,該區(qū)域面積為70 m2,在定位區(qū)域中選取80個參考點,并選取10個測試點。接收端為聯(lián)想筆記本電腦,發(fā)送端為路由器。每個點處接收1 000個數(shù)據(jù)包進行分析。
圖4 實驗場景
為了直觀地對比出改進算法ACO_SVM_VAR的定位效果,將它的定位效果與ACO_SVM、GA_SVM和PSO_SVM算法進行了對比,10個測試點的定位如圖5所示。其中,實心圓點為測試點的真實坐標,叉形點、空心圓點、菱形點、方形點分別為ACO_SVM_VAR、ACO_SVM、PSO_SVM、GA_SVM算法計算出的測試點坐標。
圖5 各算法定位誤差對比
4種算法求得的c和g參數(shù)值如表1所示,并求出了它們的平均定位誤差。
表1 不同算法的定位誤差
由圖5可以看出:多數(shù)點的定位效果ACO_SVM_VAR優(yōu)于ACO_SVM、PSO_SVM和GA_SVM算法。由表1可知,ACO_SVM_VAR、ACO_SVM、PSO_SVM、GA_SVM算法的平均定位誤差分別為0.90 m、1.20 m、1.26 m、1.73 m,本文提出的算法定位精度分別比ACO_SVM、PSO_SVM和GA_SVM算法提升了25%、29%和48%。
對于所有實數(shù)x,累積分布函數(shù)定義如下:
F(x)=P(X≤x).
(7)
對離散變量,累積分布函數(shù)表示所有小于等于x的值出現(xiàn)的概率和。
定位誤差累積分布中的每個點代表定位誤差距離在x(m)內(nèi)其分布概率的大小,相同誤差距離時,分布概率越大,定位效果越好。對ACO_SVM_VAR、ACO_SVM、PSO_SVM和GA_SVM算法的定位誤差累積分布概率如圖6所示。從圖6中可以看出:ACO_SVM_VAR算法的定位誤差概率最快達到1,定位效果最好;ACO_SVM和PSO_SVM算法定位誤差概率交叉分布,效果十分接近,而GA_SVM算法定位誤差概率最慢達到1,定位效果最差。
圖6 不同算法的定位誤差累積分布概率對比
當定位誤差小于1 m時,ACO_SVM_VAR、ACO_SVM、PSO_SVM和GA_SVM算法的1 m內(nèi)誤差點數(shù)占總點數(shù)的比例分別為50%、50%、40%和40%。當定位誤差大于1 m時,ACO_SVM_VAR算法的定位誤差概率很快升到1,明顯好于其他算法。
本文創(chuàng)新地將ACO_SVM運用到室內(nèi)定位,并提出了改進的蟻群優(yōu)化的SVM室內(nèi)定位算法(ACO_SVM_VAR),結合了CSI的幅值和相位信息,該算法與ACO_SVM、PSO_SVM和GA_SVM算法相比,平均定位精度分別提升了25%、29%和48%,有效提升了室內(nèi)定位精度。