资源简介
室内定位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库文件和
评论
共有 条评论