基于Nanoloc的TOA指紋算法定位研究
指紋算法及其實現
本文引用地址:http://www.104case.com/article/164392.htm指紋定位的核心思想是建立無線信號的分布數據庫,通過匹配算法實現實時定位。這種方法預先采集待定位環境中的無線信號,能夠有效避免無線信號本身及環境影響等因素引起的誤差,對存在障礙物的情況有很強的適應能力。
我們使用的系統平臺包括移動節點、固定節點以及控制節點。定位流程可以分為四個步驟:
(1)建庫過程:在定位區域內選定參考點位置,通過移動節點采集測量值,經過一系列的數據處理,建立該區域內的位置距離數據庫;
(2)信號采集過程:控制節點接收移動節點發送的實時信號,經處理之后,發送到數據處理端;
(3)定位過程:利用匹配算法,在數據庫中尋找一系列與采集到的測量值最接近的定位參考點;
(4)修正過程:對上一步中的指紋點集合,進行誤差分析,從中選擇最合適的k個定位參考點,使用加權算法,完成定位。

建庫過程
建庫過程分為以下幾個步驟:(1)在待定位區域中,根據環境不同選擇指紋位置,并放定閱讀器位置;(2)在環境中取一個移動節點作為信號采集點,依次置于選定的指紋位置,所有閱讀器采集其位置信息;(3)對采集到的距離信息,去除最大值和最小值之后,取平均,建立數據庫。
定位過程
本文使用的匹配算法采用最近鄰居法。該算法將不同閱讀器測得的目標距離值作為向量,計算待定位節點與數據庫中指紋點的歐幾里得距離。選擇其中距離最小的若干參考點組成定位參考點集合N。假定某指紋節點在數據庫中的測量距離向量為(di1,di2,...dn),待定位節點的測量距離向量為(d1,d2,...,dn)。則歐幾里得距離為

將待定位節點的測量向量與數據庫中的所有指紋點向量分別進行上述計算,求得與各指紋節點的歐幾里得距離,選擇閾值,將歐幾里得距離小于閾值的指紋節點作為定位參考點集合N。
修正過程
選擇動態閾值
將閾值設定為一個初值,歐幾里得距離小于該閾值的指紋點位置置1,否則置0,這樣置1的指紋點就組成了一張模糊地圖。程序中判斷滿足此要求的指紋點個數k,如果k值位于3和6之間,則滿足要求;如果k值小于3,則閾值自動加1,直到k值大于3為止;如果k值大于6,則閾值自動減一,直到k值小于6。經此調整,使N中指紋點個數k值在一個理想的范圍內變化。

評論