1 简介
无线定位技术是近年来非常流行的研究课题。其基本原理是通过测量移动平台与固定位置节点之间的传输信号特征参数(如到达角、传输时间或时差、波场强度等)来估计移动平台的几何位置。无线传感器网络(WSN)它由检测网络中大量的微传感器节点组成,在跟踪和定位运动目标方面具有无与伦比的优势。基于到达时间差的无线传感器网络应用(TDOA)的定位方法对移动物体的定位,是应现代军事和民用的需求而发展起来的一门新兴技术。目前,许多国内外学者专注于无线传感器网络定位算法的研究,并取得了许多高质量的理论成果。无线定位算法在无线传感器网络移动物体定位的具体应用中具有广阔的应用前景。实现本文的基础chan实现近场和远场无线传感器定位的算法和克美拉罗界算法,比较两种算法误差。
2 部分代码
clc;
clear all
close all
BSN = 四、%基站数量
%目标位置
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]; % 参考基站坐标
%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(['远场chan算法一步定位误差=',num2str(chan_wucha11)])
disp(['远场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('远场TDOA定位')
legend基站1,基站2,基站3,基站4,目标真实位置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,目标真实位置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('远场-误差随噪声方差曲线图')
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 仿真结果
4 参考文献
[1]康婷. 无线传感器网络节点定位算法研究[D]. 东北师范大学.
[2]敖伟, 张扬. 基于Chan算法的无源雷达定位精度分析[J]. 电脑知识与技术:学术版, 2009, 5(4):3.
博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。
部分理论引用网络文献,若有侵权联系博主删除。