【W(wǎng)SN定位】基于chan算法和克美拉羅界算法實(shí)現(xiàn)無線傳感器定位及誤差對比附matlab代碼
1 簡介
無線定位技術(shù)是近年來十分熱門的研究課題,它的基本原理是通過測量移動臺和各固定位置節(jié)點(diǎn)之間的傳播信號的特征參數(shù)(如到達(dá)角、傳播時間或時間差、電波場強(qiáng)等)來估算出移動臺的幾何位置。無線傳感器網(wǎng)絡(luò)(WSN)由檢測網(wǎng)絡(luò)內(nèi)大量微型傳感器節(jié)點(diǎn)組成,它在實(shí)現(xiàn)運(yùn)動目標(biāo)的跟蹤定位方面具有不可比擬的優(yōu)勢。無線傳感器網(wǎng)絡(luò)內(nèi)應(yīng)用基于到達(dá)時間差(TDOA)的定位方法對移動物體的定位,是應(yīng)現(xiàn)代軍事和民用的需求而發(fā)展起來的一門新興技術(shù)。?目前,國內(nèi)外很多學(xué)者專注于無線傳感器網(wǎng)絡(luò)定位算法研究,涌現(xiàn)出了許多高質(zhì)量的理論成果。無線定位算法在無線傳感器網(wǎng)絡(luò)移動物體定位的具體應(yīng)用中具有廣闊的應(yīng)用前景。?本文實(shí)現(xiàn)基于chan算法和克美拉羅界算法實(shí)現(xiàn)近場和遠(yuǎn)場無線傳感器定位,并對兩種算法誤差進(jìn)行對比。



2 部分代碼
clc;
clear all
close all
BSN = 4;%基站數(shù)量
%目標(biāo)位置
MSP(1,1) =250*rand(1);
MSP(1,2) = 250*rand(1);
% 算法開始:
X=500;
Y=500;
BS = ?[0, X, 0,X
? ?0, 0, ?Y,Y]; ? ? ? ? ?% 參考基站坐標(biāo)
%chan算法
T = 0:0.5:20;%噪聲
va = (-20:2:20)';
jishu=1;
for jishu=1:21
Noise= ? 10^(va(jishu)/10); ? % Variance of TDOA & FDOA
[EMSCI11,EMSCI12] = ChanAlgorithm(BSN, MSP,BS, Noise);
[EMSCI21,EMSCI22] = ChanAlgorithm_jin(BSN, MSP,BS, Noise);
chan_wucha3(jishu)= CRLB1(BSN,MSP,BS, Noise);
EMSC11(1, 1) = EMSCI11(1);
EMSC11(1, 2) = EMSCI11(2);
EMSC12(1, 1) = EMSCI12(1);
EMSC12(1, 2) = EMSCI12(2);
EMSC11(1, 1) = EMSCI21(1);
EMSC21(1, 2) = EMSCI21(2);
EMSC22(1, 1) = EMSCI22(1);
EMSC22(1, 2) = EMSCI22(2);
chan_wucha11(jishu)=sqrt((MSP(1) - EMSC11(1,1))^2 + (MSP(2) - EMSC11(1,2))^2);
chan_wucha12(jishu)=sqrt((MSP(1) - EMSC12(1,1))^2 + (MSP(2) - EMSC12(1,2))^2);
chan_wucha21(jishu)=sqrt((MSP(1) - EMSC21(1,1))^2 + (MSP(2) - EMSC21(1,2))^2);
chan_wucha22(jishu)=sqrt((MSP(1) - EMSC22(1,1))^2 + (MSP(2) - EMSC22(1,2))^2);
jishu=jishu+1;
end
disp(['遠(yuǎn)場chan算法一步定位誤差=',num2str(chan_wucha11)])
disp(['遠(yuǎn)場chan算法一步定位誤差=',num2str(chan_wucha12)])
disp(['近場chan算法一步定位誤差=',num2str(chan_wucha21)])
disp(['近場chan算法一步定位誤差=',num2str(chan_wucha22)])
disp(['克美拉羅界誤差=',num2str(chan_wucha3)])
figure(1)%畫出基站位置
plot(BS(1,1),BS(2,1),'rs','LineWidth',2,...
? ?'MarkerEdgeColor','k',...
? ?'MarkerFaceColor','r',...
? ?'MarkerSize',20);hold on
plot(BS(1,2),BS(2,2),'rs','LineWidth',2,...
? ?'MarkerEdgeColor','k',...
? ?'MarkerFaceColor','r',...
? ?'MarkerSize',20);
plot(BS(1,3),BS(2,3),'rs','LineWidth',2,...
? ?'MarkerEdgeColor','k',...
? ?'MarkerFaceColor','r',...
? ?'MarkerSize',20);
plot(BS(1,4),BS(2,4),'rs','LineWidth',2,...
? ?'MarkerEdgeColor','k',...
? ?'MarkerFaceColor','r',...
? ?'MarkerSize',20);
grid on
axis ([-10 1000 -10 1000]);
plot(MSP(1),MSP(2),'rp','MarkerSize',10);
plot(EMSC11(1, 1),EMSC11(1, 2),'co','MarkerSize',10);
plot(EMSC12(1, 1),EMSC12(1, 2),'m+','MarkerSize',10);
% plot(EMSC3(1, 1),EMSC3(1, 2),'ks','MarkerSize',10);
title('遠(yuǎn)場TDOA定位')
legend('基站1','基站2','基站3','基站4','目標(biāo)真實(shí)位置','CHAN算法第一步','CHAN算法第二步')
figure(2)%畫出基站位置
plot(BS(1,1),BS(2,1),'rs','LineWidth',2,...
? ?'MarkerEdgeColor','k',...
? ?'MarkerFaceColor','r',...
? ?'MarkerSize',20);hold on
plot(BS(1,2),BS(2,2),'rs','LineWidth',2,...
? ?'MarkerEdgeColor','k',...
? ?'MarkerFaceColor','r',...
? ?'MarkerSize',20);
plot(BS(1,3),BS(2,3),'rs','LineWidth',2,...
? ?'MarkerEdgeColor','k',...
? ?'MarkerFaceColor','r',...
? ?'MarkerSize',20);
plot(BS(1,4),BS(2,4),'rs','LineWidth',2,...
? ?'MarkerEdgeColor','k',...
? ?'MarkerFaceColor','r',...
? ?'MarkerSize',20);
grid on
axis ([-10 1000 -10 1000]);
plot(MSP(1),MSP(2),'rp','MarkerSize',10);
plot(EMSC21(1, 1),EMSC21(1, 2),'co','MarkerSize',10);
plot(EMSC22(1, 1),EMSC22(1, 2),'m+','MarkerSize',10);
% plot(EMSC3(1, 1),EMSC3(1, 2),'ks','MarkerSize',10);
title('近場-TDOA定位')
legend('基站1','基站2','基站3','基站4','目標(biāo)真實(shí)位置','CHAN算法第一步','CHAN算法第二步')
figure(3)
semilogy(va,chan_wucha11,'rs-');hold on
semilogy(va,chan_wucha12,'bo-');hold on
semilogy(va,chan_wucha3,'m*-');hold on
legend('CHAN算法第一步','CHAN算法第二步','克美拉羅界')
xlabel('10log(\sigma_d^2(m^2))');
ylabel('RMSE')
title('遠(yuǎn)場-誤差隨噪聲方差曲線圖')
figure(4)
semilogy(va,chan_wucha21,'rs-');hold on
semilogy(va,chan_wucha22,'bo-');hold on
semilogy(va,chan_wucha3,'m*-');hold on
legend('CHAN算法第一步','CHAN算法第二步','克美拉羅界')
xlabel('10log(\sigma_d^2(m^2))');
ylabel('RMSE')
title('近場-誤差隨噪聲方差曲線圖')
3 仿真結(jié)果




4 參考文獻(xiàn)
[1]康婷. 無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)定位算法研究[D]. 東北師范大學(xué).
[2]敖偉, 張揚(yáng). 基于Chan算法的無源雷達(dá)定位精度分析[J]. 電腦知識與技術(shù):學(xué)術(shù)版, 2009, 5(4):3.
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機(jī)、圖像處理、路徑規(guī)劃、無人機(jī)等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻(xiàn),若有侵權(quán)聯(lián)系博主刪除。
