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

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

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

評論