1. 程式人生 > >【 MATLAB】Subspace algorithm Simulation of TOA

【 MATLAB】Subspace algorithm Simulation of TOA

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

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

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

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

從下圖的定位誤差分析圖中可以看出,信噪比為20dB時候的定位誤差達到了1082m,信噪比為30dB時候的定位誤差為346m,這與之前的非線性方法相比,定位誤差一些,但與LLS不相上下。

子空間方法的函式:

function x = sub(X,r)
% Subspace algorithm
% --------------------------------
% x = sub(X,r);
% x = 2D position estimate
% X = matrix for receiver positions
% r = TOA measurement vector
% 
Y = X';
L = size(Y,1); % number of receivers
R = squareform(pdist(Y));
D = zeros(L);
for i=1:L
    for j=1:L
        D(i,j)=0.5*(r(i)^2+r(j)^2-R(i,j)^2);
    end
end
% [U,Lamda] = eig(D);
[U,S,V] = svd(D);
Un = U(:,3:end);
x = (Y'*(Un*Un')*ones(L,1))/(ones(L,1)'*(Un*Un')*ones(L,1));
x = x';

其他程式暫時略。