上篇博文:Newton – Raphson Iteration Procedure of TOA - Based Positioning 仿真了NLS中的牛顿—拉夫森仿真的TOA定位。
这篇博文采用同样的体系仿真高斯—牛顿的TOA定位。
这些内容的根基在:NLS ALGORITHMS of TOA - Based Positioning
仿真条件和上篇博文一致。
首先给出一次实验定位示意图,信噪比为30dB。
肉眼可以分辨,还是存在定位误差的,难道需要我们继续提高信噪比吗?
信噪比为30dB已经足够大了,因此,如果误差不能接受,只有换方案了,或者换一种估计方法。这是后话。
下面接着讨论,讨论收敛情况吗?我想还是算了吧,从上篇博文中的牛顿——拉夫森方法中,我们已经看到收敛很快,我们的迭代次数不必太多,但取30是最保险的。
直接给出收敛图吧:
可见,收敛是完全没有问题的,但是收敛到哪里了很重要,对于目标的真实位置为(2,3),我们可见,x,y并没有收敛到真实值,这是很自然的,因为我们的定位本身就有误差嘛。
接着分析RMSE,也就是均方根误差。
先给出没有修理过的完整图:
这幅图看似有点离谱,信噪比在1左边时,均方根误差超级大,有的地方甚至大到了无穷,没办法画出来。而1的右边貌似误差为0。
别着急,这只是肉眼的错觉而已,由于RMSE轴的坐标太大了,以至于1右边的误差很小很难显示,我们对y轴换成对数显示来看看误差:
这就看清楚了,信噪比为20dB时候的定位误差不过是757m,信噪比为30dB的定位误差不过是250m,这不是和牛顿——拉夫森迭代算法的定位误差差不多吗?
信噪比小于1时候的定位误差超大,这点和牛顿——拉夫森不同,这说明了高斯——牛顿方法在信噪比比较小的时候比较敏感。
但是这里的定位误差可以看出,高斯——牛顿迭代算法在信噪比为20以后,定位误差貌似比牛顿——拉夫森小,效果更好。
当然,都是差不多的,不能这么苛刻。
从博文:NLS ALGORITHMS of TOA - Based Positioning中,我们知道高斯——牛顿方法需要的几个函数如下:
Gauss – Newton
For the Gauss – Newton method, the updating rule is
(10)
where is the Jacobian matrix of computed at and has the following expression:
(11)
可知,只需要一个雅克比矩阵,雅克比矩阵的matlab实现如下:
function G = jacob(X, x)
% Jacobian matrix computation
% --------------------------------
% G = jacobian(X, x)
% G = Jacobian matrix
% x = 2D position estimate
% X = matrix for receiver positions
%[dim,L] = size(X); % L is number of receivers; dim is dimension of space
f_TOA = sqrt(sum((ones(L,1)*x'-X').^2,2));
G = (ones(L,1)*x' - X')./(f_TOA*ones(1,dim));
还是很简单的。
太详细的细节就不给出了,我也很矛盾。