1. 程式人生 > >【 ML 】 Gauss – Newton Iteration Procedure of TOA - Based Positioning Simulation

【 ML 】 Gauss – Newton Iteration Procedure of TOA - Based Positioning Simulation

 Gauss – Newton algorithms are:

       (1)

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:

                               (2)

Jacobian matrix is presented in 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));


使用Gauss-Newton演算法的定位示意圖如下:

可見,真實位置和估計出來的位置大致重合。這說明能定位的同時又有定位誤差,這是很正常的,我們需要關注的是誤差的大小,能否滿足我們的需求:

從上圖可以看出,信噪比為20dB時的均方根誤差為727m,信噪比為30dB時的均方根誤差為216m。

可見,這個誤差無論和ML方法中的牛頓——拉夫森方法以及和NLS方法中的三種方法相比,定位誤差都相差無幾。

相關程式碼就不太方便直接貼出來了,因為有些人是不懂感恩的,拿了你的分享還反咬你一口。