基于TDOA的Chan氏算法(解释一下代码的问题)
TDOA定位是啥自己找几个论文看看是啥就行,TDOA这玩意很适合超宽带定位,去找几篇博客或超宽带定位论文就能懂,这里不多说。
主要是对上传代码的解释。
先说下代码的运行先决条件:我使用的是MATLAB2018b。
我一共设置了4个参与定位的锚节点,很明显能发现4个锚节点的分布服从蜂窝,这样能使得算法性能最好,而且能发现主锚节点是啥,而且很明显还缺3个锚节点,后面有时间上传7个锚节点的。
我假设环境是LOS环境,4个基站全部位于LOS环境,也就是一般考虑多径效应这个误差。
标签节点我就是随便设置的,你只要设置在锚节点包围的范围中就行。而且我图方便,你可以自己拿回去改,改成标签节点的位置服从蒙卡罗特抽样都行,一般抽样个3000次啥的就差不多了,也可以服从均匀随机分布,或者直接自己选也行。
我感觉需要解释的代码如下:
ChanStandarddeviation = 1;
这里设置的是LOS系统噪声标准差,我是假设系统噪声服从高斯分布的,一般LOS环境下的系统误差也差不多服从高斯分布,Chan算法在处理服从高斯分布的噪声时的性能也最佳。
具体的值你可以改,但不能是0,要不Q矩阵会导致后面计算出现奇异值。也不要太大,因为不现实。一般也就0.15,0.5啥的就行。
Chandwwc = [0,0.2,0.4,0.6,0.8,1,1.2,1.4,1.6,1.8,2,2.2,2.4,2.6,2.8,3];
这是我图方便设置的后面画图的X轴的坐标,也就是定位误差。是CDF图的横坐标
if Chanrmse < Chandwwc(j0)
ChanCDFjs(j0) = ChanCDFjs(j0) + 1;
end
这个也是为了图方便,就是比较计算出来的值有没有大于我设定的误差阈值,也是CDF图的CDF值的计算一部分吧。
其他的我感觉也没啥问题的。Chan算法的核心就是WLS估计,你看不懂就去看看LS和WLS算法,是在不行就把采样循环去了,对照着Chan算法的计算公式一行一行看,差不多就懂了
代码链接:link.