資源簡介
室內定位wknn代碼,基于指紋的室內定位。

代碼片段和文件信息
%W-KNN算法
%FP1為匹配指紋
%FP2為待匹配數據
function?[MinKX_es]?=?wknn(FP1FP2K)
N?=?length(FP1);
M?=?length(FP2);
X_es?=?zeros(2M);%X和Y坐標的指紋差值矩陣
sm?=?zeros(3N);%記錄指紋差值信息
MinK?=?zeros(3KM);%記錄指紋差值信息
for?i?=?1:M????%按順序完成每一個測試點的計算
????
????%sm?=?zeros(3N);
????for?j?=?1:N
????????for?k?=?1:7????%4個基站
????????????match(kj)?=?abs(FP2(ki)?-?FP1(kj));?%待匹配數據與各指紋之間的差值
????????end
????????sm(1j)?=?sum(match(:j));%求出4個指紋差值的和
????????sm(2j)?=?FP1(8j);%X坐標賦值
????????sm(3j)?=?FP1(9j);%Y坐標賦值
????end
????for?k?=?1?:?K
????????[min]?=?min(sm[]2);??%找出最小的K個差值?????????
????????MinK(1ki)?=?sm(1n(1));%找出最小的值并賦值
????????sm(1n(1))?=?1000;%消除該值,繼續尋找下一個最小的值
????????MinK(2ki)?=?sm(2n(1));%X坐標賦值
????????MinK(3ki)?=?sm(3n(1));%Y坐標賦值
????end
????DisFp?=?MinK(1:i);%將所有的差值賦值到DisFp矩陣上
????DisFp?=?1?./?(DisFp?./?DisFp(1))?;%求差值的倒數
????SumFp?=?sum(DisFp);%求差值的和
????Beta1?=?DisFp?./?SumFp?;????%相應指紋的權值
%?????SumFp?=?sum(MinK(1:i));
%?????for?k?=?1?:?K
%?????????Beta1(k)?=?MinK(1K-k+1i)?/?SumFp?;
%?????end
????for?k?=?1?:?K
????????X_es(1:2i)?=?X_es(1:2i)?+?Beta1(k)?.*?MinK(2:3ki)?;?%算出K個X和Y坐標加權平均
????end
????????
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????1344??2015-06-16?15:23??wknn.m
-----------?---------??----------?-----??----
?????????????????1344????????????????????1
- 上一篇:基于STM32F4的PWM程序
- 下一篇:DHT11庫文件和
評論
共有 條評論