【WSN节点定位】RSSI无线定位【含GUI Matlab源码 3822期】

本文介绍了利用RSSI信号在Matlab中的无线定位技术,包括基于高斯模型处理数据以提高精度和等边三角形定位算法以确保测量稳定性。同时探讨了传统模型和RSSI在实际环境中的挑战以及解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
在这里插入图片描述
🔊博主简介:985研究生,Matlab领域科研开发者;

🚅座右铭:行百里者,半于九十。

🏆代码获取方式:
优快云 Matlab武动乾坤—代码获取方式

更多Matlab信号处理仿真内容点击👇
Matlab信号处理(进阶版)

⛳️关注优快云 Matlab武动乾坤,更多资源等你来!!

⛄一、RSSI无线定位简介

1 引言
随着移动通信技术的飞速发展,利用蜂窝网络对移动台进行定位将逐渐成为蜂窝网络的一项重要的基本功能,美国联邦通信委员会(FCC)早在1996年就公布了E一911定位服务标准川。目前,国内的联通公司已经在某些城市试验开通了此项业务。因此,无线定位技术成为近年来的一个研究热点、利用用户的位置信息,不但能为移动用户提供安全保障,还可以增加移动通信系统性能、有效管理网络资源、调节系统容量、实现灵活收费、提供信息服务等、室内定位技术近几年发展比较迅速。
无线传感器节点定位服务在当今社会中正在扮演着越来越重要的角色,它逐渐取代了传统高额费用的定位系统,是一种全新的定位信息获取平台.定位难点在于硬件资源有限性、能源有限性与精度.目前无线定位根据采用的定位参量(或者位置线)不同可以分为基于测距算法(圆位置线定位)和无需测距算法(双曲线位置线定位)、测距和定位(椭圆位置线定位)、测角定位(直线位置线定位)和混合定位(混合位置线定位)几种类型。根据对定位参数的处理办法不同,无线电定位算法可分为基于集合结构的位置线交叉定位方法和统计定位定位方法;根据应用场合不同可以分为视距定位算法和非视距定位算法。基于测距算法通过测量节点间的距离或角度信息,使用三边测量、三角测量或最大似然估计定位法计算节点位置.无需测距定位算法则不需要距离和角度信息,算法根据网络连通性等信息来实现节点定位.

2 RSSI均值定位技术
理想环境下比较常用的定位算法为加权质心定位算法.实际应用中定位信息随机性较大,极容易受到外界干扰,故在定位算法的基础上,对RSSI信号强度指.a值的处理显得尤为重要.
基于RSSI的测距方法中,己知发射节点的发射信号强度,接收节点根据收到信号的强度,计算出信号的传播损耗,利用理论和经验模型将传输损耗转化为距离。RADAR就是一个基于RSSI的室内定位系统。由于传感器节点本身具有尤线通信能力,所以基于RSSI的测距尤击额外的硬件设备,是一种低功率、廉价的测距技术,但是因为尤线信号受反射、多径传播、非视距传播等问题影响,使得相同距离产生显著不同的传播损耗,是一种较粗糙的测距技术.

2.1.1传统模型分析RSSI
随机数模型表格是指当信标节点采集到一个RSSI值则马上进行定位计算.该模型优点在于定位实时、运算量小,适用于处理速率较低的硬件平台.该模型容易受到外界干扰。
统计均值模型是信标节点采集一组n个RSSI值,然后求这些数据的均值.该模型可以通过调节n来平衡实时性与精确性,当n很大时可以有效解决定位数据随机性,但计算量会相应增加.该模型在处理大扰动时效果不是很好。

2.1.2 高斯模型分析RSSI
RSSI是一种指小当前介质中电磁波能量大小的数值,单位为dm-m. RSSI值随距离增加而减小,信标节点可以通过RSSI值计算出未知节点与它的距离.电磁波能量尸与路径:的关系模型为
P=a(1/r)(1/r) ( 1 )
其中,a为待定系数,p为能量值,r为距离。
在实际应用环境中,由于多径、绕射、障碍物等因素,RSSI值与理论值有些差异,所以式(1)中的待定系数随不同应用环境会有所变化.在实际测量过程中RSSI有一个随机分量x o,即实际测量的数值在一个稳定值附近变动,本文得出了高
斯模型:
Po=P+X0 ( 2 )
其中,po服从高斯分布,即po~[m,℮],密度函数为

本文在每个距离点上采集20次RSSI值,并以这20个RSSI值中的最大值、最小值、平均值做出3条曲线,如图1所小.从图中可以看出曲线变化规律符合式(( 1),并民可以看出未知节点到信标节点的距离越近,RSSI的最大值和最小值相差越小,即距离与RSSI值的对应关系越好;从图2中可以看出,RSSI值的方差随着距离的增加而增加·当方差大到一定程度时,测得的数据随机偏差很大,RSSI值变得非常敏感,这个时候采集到的数据儿乎不可用.基于以上分析,本文提出RSSI敏感区与RSSI非敏感区的概念

高斯分布处理数据原则:一个信标节点在同一位置可能收到n个RSSI,其中必然存在着小概率事件.通过高斯模型选取高概率发生区的RSS I值,然后再取其儿何均值,这种做法减少了一些小概率、大干扰事件对整体测量的影响,增强了定位信息的准确性。
高斯模型解决了RSSI在实际测试中易受干扰、稳定性差等问题,提高了定位精度·但是高斯模型只能消除小概率短暂的扰动,而对室内定位墙壁对RSS I的能量反射等长时间干扰问题效果就会受到影响。

2 等边三角形定位算法
若末知节点在信标节点的敏感区内则只要RSSI值一次小小的随机变化就会造成测距结果的偏差.为了确保定位精度,本文提出等边三角形定位算法,保证了未知节点运动轨迹始终在信标节点的非敏感区内,从而在定位算法上使测量精度得到提高.

2. 1 三边测量法
节点定位算法很多,三边测量法[6]是最典型的一种.通过RSSI值得出未知节点到3个信标节点的距离,通过这3个距离值计算出未知节点的位置.
如图3所小,当信标节点p 1, p2, p3收到未知节点P发出的定位信号时,根据RSSI值,可以得到P1到P,P2到P,P3到P的距离d1i, d2, d3;分别以P1,p2,P3为圆心,d1,d2, d3为半径作圆,通过这3个圆可以定出未知节点。

2. 2 等边三角形定位算法模型
通常室内RSSI的敏感区出现在节点5m以外,故本文需要布置信标节点,使未知节点出现在信标节点非敏感区内,信标节点分布模型如图4

⛄二、部分源代码

function varargout = test(varargin)
% TEST MATLAB code for test.fig
% TEST, by itself, creates a new TEST or raises the existing
% singleton*.
%
% H = TEST returns the handle to a new TEST or the handle to
% the existing singleton*.
%
% TEST(‘CALLBACK’,hObject,eventData,handles,…) calls the local
% function named CALLBACK in TEST.M with the given input arguments.
%
% TEST(‘Property’,‘Value’,…) creates a new TEST or raises the
% existing singleton*. Starting from the left, property value pairs are
% applied to the GUI before test_OpeningFcn gets called. An
% unrecognized property name or invalid value makes property application
% stop. All inputs are passed to test_OpeningFcn via varargin.
%
% *See GUI Options on GUIDE’s Tools menu. Choose “GUI allows only one
% instance to run (singleton)”.
%
% See also: GUIDE, GUIDATA, GUIHANDLES

% Edit the above text to modify the response to help test

% Last Modified by GUIDE v2.5 26-Jun-2014 09:51:44

% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct(‘gui_Name’, mfilename, …
‘gui_Singleton’, gui_Singleton, …
‘gui_OpeningFcn’, @test_OpeningFcn, …
‘gui_OutputFcn’, @test_OutputFcn, …
‘gui_LayoutFcn’, [] , …
‘gui_Callback’, []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT

% — Executes just before test is made visible.
function test_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to test (see VARARGIN)

% Choose default command line output for test
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);

% UIWAIT makes test wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% — Outputs from this function are returned to the command line.
function varargout = test_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)

% Get default command line output from handles structure
varargout{1} = handles.output;

% — Executes on button press in pushbutton1.
function pushbutton1_Callback(hObject, eventdata, handles)
for t = 1:5
A = [0,0];
B = [5t,5tsqrt(3)];
C = [10
t,0];
nums = [A(1),A(2),B(1),B(2),C(1),C(2)];
p = min(nums);
q = max(nums);
L = sqrt((A(1)-C(1))2+(A(2)-C(2))2);
m = 10;
syms b c;
% [p,q] ȷֲ
% һ m 2 е п ڵȱ ڵ
numbox = p+(q-p)*rand(m,2);%rand (0, 1)֮ ȷֲ ɵ

%      ֵ,   ո  ݼ  㽫      ɵĵ      ڵȱ            ڵ          µľ   
n = 1;
for i = 1:m
    dA(i) = sqrt((numbox(i,1)-A(1))^2+(numbox(i,2)-A(2))^2);
    dB(i) = sqrt((numbox(i,1)-B(1))^2+(numbox(i,2)-B(2))^2);
    dC(i) = sqrt((numbox(i,1)-C(1))^2+(numbox(i,2)-C(2))^2);
    %  ȷʵ ڵȱ            ڵ        P_position    
    if (dA(i)<=L) & (dB(i)<=L) & (dC(i)<=L)
        P_position(n,1) = numbox(i,1);
        P_position(n,2) = numbox(i,2);
 
         b=P_position(n,1);
        c=P_position(n,2);
        n = n+1;
    end
end
%NΪ      ɵĵ      ڵȱ            ڵĵ (   Ե ) ĸ   
N = n-1
if N == 0
    disp('  ȡ           һ   ڵȱ         ,      mֵ       г   .')
    return
end

⛄三、运行结果

在这里插入图片描述

⛄四、matlab版本及参考文献

1 matlab版本
2014a

2 参考文献
[1]于泉,徐保国.无线传感器网络中改进的 DV-Hop 算法[J].计算机工程与应用. 2015

3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除

🍅 仿真咨询
1 各类智能优化算法改进及应用

生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化

2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断

3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知

4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化

5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配

6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化

7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化

8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置

9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长

10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值