1. 程式人生 > >【 MATLAB 】 LLS algorithm Simulation of TOA - Based Positioning

【 MATLAB 】 LLS algorithm Simulation of TOA - Based Positioning

博文:【 LLS 】Linear Approaches of TOA - Based Positioning

講解了LLS的TOA定位演算法的原理,這裡給出MATLAB模擬。

模擬的條件與之前講解非線性演算法之牛頓——拉夫森演算法時候的模擬條件一致。從下面的定位示意圖中也能看出來,測量站的位置以及個數,以及目標位置。

測量站的位置:x1 = [0,0];x2 = [0,10];x3 = [10,0];x4 = [10,10];

目標的真實位置:x=[2,3].

信噪比正常定義,設定為30dB,從下圖的定位示意圖中可以看出,基本可以定位,因為估計出來的目標位置與目標真實位置基本重合,但存在一定的誤差。這就要求我們去分析誤差,看看什麼樣的誤差我們能夠接受,對應的信噪比是多少?

從下圖的定位誤差分析圖中可以看出,信噪比為20dB時候的定位誤差達到了1km之多,信噪比為30dB時候的定位誤差為328m,這與之前的非線性方法相比,定位誤差就大了一些,當然我們也能理解,畢竟做了一些線性近似嘛。



定位示意圖程式碼和誤差分析程式碼略。

下面只給出lls演算法的程式碼:

當然,這些程式中都可以主動呼叫lls演算法,可以將lls演算法寫成一個函式,供呼叫:

function x = lls(X,r)
% LLS algorithm
% --------------------------------
% x = lls(X,r);
% x = 2D position estimate
% X = receiver position matrix
% r = TOA measurement vector
% 
L = size(X,2); % number of receivers
A = [-2*X' ones(L,1)];
b = r.^2-sum(X'.^2,2);
p = pinv(A'*A)*A'*b;
x= [p(1) ; p(2)];


為什麼這麼寫,原理參見開頭推薦的博文。