当前位置: 代码迷 >> 综合 >> 【 NLS 】Gauss-Netwon algorithm Iteration Procedure of TOA - Based Positioning
  详细解决方案

【 NLS 】Gauss-Netwon algorithm Iteration Procedure of TOA - Based Positioning

热度:75   发布时间:2023-12-12 21:26:56.0

上篇博文: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  \bold { G(f_{TOA}(\hat {x}^k) ) } is the Jacobian matrix of \bold{ f_{TOA}(\hat{x}^k)} computed at \bold{\hat{x}^k}  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));

还是很简单的。


太详细的细节就不给出了,我也很矛盾。

 

  相关解决方案