matlab練習程式(TOA演算法)

2022-06-08 17:09:13 字數 1070 閱讀 1335

toa全稱time of arrival,根據測量移動臺和基站之間的訊號到達時間,再轉換為距離從而進行定位的方法。

類似的技術還有tdoa和aoa,真實的應用場景就是gnss和uwb了。

定位原理可以用下圖表示:

如上圖三個基站可列三個方程,就能解出定位點,但一般基站通常更多,因此需要用到最小二乘的方法解方程組。

設ms座標為(x,y),bs座標為(xi,yi),則有方程組:

展開得:

到這裡就能用最小二乘來求解了。 

matlab**如下:

clear all;

close all;

clc;

num = 6; %可以認為是基站或衛星數,隨機做6個

loc = [20,30] %實際座標位置

sat = 100*rand(num,2); %基站或衛星二維座標

dist = loc - sat + 0.2*rand(num,2); %加20厘公尺測距誤差

dist = dist(:,1).^2 + dist(:,2).^2

;r = sat(:,1).^2 + sat(:,2).^2

;x = [-2*sat ones(length(sat),1

)];y = dist -r;

c = inv(x'

*x)*x

'*y;

c(1:2) %計算結果

結果如下:

設定的位置和最終計算得到的位置基本一致。

matlab練習程式(Bug2演算法)

bug演算法是一種避障演算法,思路就是想象從起始點有乙隻小蟲,不停延直線靠近目標,如果遇見障礙物,則沿著障礙物邊界移動,繞過障礙物後繼續沿直線靠近目標。從上面說的思想就可以認為該演算法由兩種路徑組成,一種直線路徑,一種障礙物環繞路徑。直線路徑可以認為是起點到終點的線段,不過該線段要去除掉和障礙物相交...

matlab練習程式(DBSCAN)

和kmeans相比,不需要事先知道資料的類數。以程式設計的角度來考慮,具體演算法流程如下 1.首先選擇乙個待處理資料。2.尋找和待處理資料距離在設定半徑內的資料。3.將找到的半徑內的資料放到乙個佇列中。4.拿佇列頭資料作為當前待處理資料並不斷執行第2步。5.直到遍歷完佇列中所有資料,將這些資料記為一...

matlab練習程式(c c 呼叫matlab)

就我目前了解的c 呼叫matlab有兩種方法。第一種是通過matlab引擎呼叫,也就是這裡用到的方法。第二種是用matlab將m檔案編譯為相應的h lib dll檔案再加以呼叫。使用engine所用到的h和lib檔案基本在d program files matlab r2010b extern裡面,...