基于接收信号强度(RSS)的室内定位/无线传感器网络定位——极大似然估计ML/最小二乘估计WLS_rss定位特点-程序员宅基地

技术标签: RSS定位  室内定位  室内定位/导航  传感器网络  ML  

基于接收信号强度(RSS)的室内定位/无线传感器网络定位——极大似然估计ML/最小二乘估计WLS

原创不易,路过的各位大佬请点个赞

针对AOA,TOA,TDOA,RSS等室内定位、导航的探讨、技术支持、==代码(有偿)==欢迎联系,也可以站内私信,也可以基于其它算法,ML只是一个例子来讲解室内定位
WX: ZB823618313

1. 室内定位/无线传感器网络定位技术

近年来,随着无线通信、集成电路、传感器以及微电系统等技术的飞速发展和日益成熟,被誉为全球未来三大高科技产业之一的无线传感器网络(WSN,Wireless Sensor Network)引起了全世界范围的广泛关注。随着物联网概念的提出,作为其关键技术的传感器技术成为人们研究核心,随着无线传感器网络的应用逐渐深入到人们生活的方方面面,其核心支撑的节点定位技术也得到不断的改进、推广。

1.1. 室内定位/无线传感器网络定位分类

无线传感器网络定位中,存在两类情况:对网络内检测节点的自定位、对未知目标源的盲定位。

节点的自定位:
通过节点自身携带的GPS定位设备等设备获得自身的精确定位,通过自定位系统获得的自身定位的节点称为信标节点也叫做锚节点。

节点的盲定位:
根据信标节点,通过某种定位机制确定未知目标源的位置。节点的盲定位可分为两类:有源定位和无源定位。

有源定位:
网络中监测节点利用有源设备(雷达、激光、声纳等)向被定位目标发射用于定位的各种信号,然后接收被监测目标的返回信号,通过一系列测量、处理得到目标源位置的过程。
优点: 全天候、高精度
缺点: 无隐蔽性、易受电子干扰

无源定位:
网络中监测节点在定位过程中不向被定位目标发射信号(电磁或其他用于定位的信号),监测节点与被监测设备间无协作通讯,监测节点仅通过对目标上发射的电磁信号的搜索、测量、处理而得到目标的位置及参数信息,从而实现定位追踪。
优点: 反侦察、抗干扰、可进行目标识别(弥补有源雷达的不足)
目前主要研究的定位算法为“被动”无源定位。
被动: 监测网络对被监测目标无法进行控制,无法按照自身定位需求添加软硬件支持。

1.2. 室内定位/无线传感器网络定位特点

基于无线传感器网络的信号无源定位与跟踪具有如下特点:

无源定位,直接定位的一方不向目标信号发送信号
多站协同,监测节点需在多次测量、空间移动,或多站间有信息交互协作
运算量大,获取目标位置所需计算量高于其他信息的处理
定位精度、系统内参和定位节点的个数及布局相关

1.3. 室内定位/无线传感器网络定位技术分类

基于距离的定位算法通过测量不同节点到目标信号间的距离或角度信息,利用最大似然估计定位法、三角测量定位法、三边测量定位法估计未知目标节点的位置。

常用定位技术:

  • 到达角度技术(AOA)
  • 达到时间技术(TOA)
  • 到达时间差技术(TDOA)
  • 接收信号能量技术(RSSI)(终于轮到了最熟悉的定位技术)

1.4. 室内定位/无线传感器网络定位技术比较

技术名称 定位精度 LOS/NLOS 定位信息 优点 缺点
AOA 中、高 LOS 角度 只需要两个接收器。 不需要同步时间 需要天线阵列、价格昂贵
TOA LOS 距离 精度高 需要三个接收器、发射源和目标均时间同步
TDOA LOS 距离差 精度高,仅需要同步发射源的始终 LOS假设
RSS both 信号强度 简单、成本低 三个节点、精度低

2. RSS定位介绍

2.1 RSS定位原理

核心思想:与TOA类似,在RSSI中,多个基本节点通过三角定位协作定位目标节点(见下图)。然而,不是在锚节点上测量TOA,而是使用RSS进行估计。在这种方法中,接收信号的强度表示信号传播的距离。对于共面情况,假设传输强度和信道(或信号传播的环境)特征已知,需要三个基本节点和三个RSS测量。

RSS定位可以NLOS(非视距)环境下定位、而且成本极低,不需要额外的设备

2.2 RSS拓扑图

定位原理:RSS定位法即根据接收信号的强度来实现定位。RSS测量是个关于距离(目标到传感器节点)的衰减函数,因此可以借助TOA的原理进行定位。与TOA不同的是,TOA可以直接得到距离。定位过程中,通过设备测量三个不同参考点的信号强度,依据物理学模型计算出三个距离值,那么采用和TOA类似的几何求解方法,即可以得到定位点。该方法至少通用需要三个基站,才能计算目标的位置,其定位示意图如图所示。
在这里插入图片描述

2.3 RSS定位测量

RSS是传感器接收到的平均功率,其中功率来自发射源。通常假设接收功率遵循指数衰减模型,该模型是发射功率、路径损耗常数和源与传感器之间距离的函数。这种定位方案比使用TOA、TDOA或TSOA测量的方案简单,因为不需要源和/或传感器之间的同步。一旦我们能够从RSS测量中获得距离,就可以像TOA的情况一样,使用至少三个接收机来确定源位置。

RSS测量模型制定如下。假设源发射功率为 P t P_t Pt,在没有干扰的情况下,第 i i i个传感器接收到的平均功率为 P i P_i Pi,模型为

P i = K i P t d i − α = K i P 0 ∣ ∣ x − x i ∣ ∣ − α ,   i = 1 , 2 , ⋯   , N P_i=K_iP_td_i^{-\alpha}=K_iP_0||\mathbf{x}-\mathbf{x}_i||^{-\alpha},~i=1,2,\cdots,N Pi=KiPtdiα=KiP0xxiα, i=1,2,,N
其中 K i K_i Ki是影响接收功率的所有其他因素,包括天线高度和天线增益,而 α \alpha α是路径损耗指数。基于不同的信号传播环境, α \alpha α从2到5。一般在无遮挡空间(free space)中, α = 2 \alpha=2 α=2

现场试验表明,RSS扰动呈对数正态分布。因此,RSS对数正态路径损失模型可表示为
r R S S , i = P 0 − 10 α log ⁡ d i d 0 + n i ,   i = 1 , 2 , ⋯   , N r_{RSS,i}=P_0 - 10\alpha\log\frac{d_i}{d_0}+n_i,~i=1,2,\cdots,N rRSS,i=P010αlogd0di+ni, i=1,2,,N

其中 d i = ( x − x i ) 2 + ( y − y i ) 2 d_i=\sqrt{(x-x_i)^2+(y-y_i)^2} di=(xxi)2+(yyi)2
x = [ x , y ] ′ \mathbf{x}=[x,y]' x=[x,y]为发射源的位置,即被定位的参数, y i = [ x i , y i ] ′ \mathbf{y}_i=[x_i,y_i]' yi=[xi,yi]为第i个锚节点的位置,假设存在N个锚节点构成传感器网络,则 i = 1 , 2 , ⋯   , N i=1,2,\cdots,N i=1,2,,N n i n_i ni 为测量噪声,来源于RSS的干扰。

3. RSS定位算法概述

主要算法: 基于AOA技术的室内定位可以分为两大类方法:参数估计算法和滤波方法。

1-参数估计算法主要解决非移动目标(如传感器节点、发射源等)的定位问题,主要包括:
ML最大似然估计
LS最小二乘估计
WLS加权最小二乘估计
NLS非线性最小二乘估计
凸规划
**注意:**这类方法也可以解决移动目标的室内外定位问题。

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2- 滤波方法主要解决移动目标(如智能小车、移动机器人、移动终端等)的室内外定位问题,主要包括:
扩展卡尔曼滤波EKF
无迹卡尔曼滤波UKF
容积卡尔曼滤波CKF
求积卡尔曼滤波QKF
中心差分卡尔曼滤波CDKF
Divided difference filter DDF
高斯混合滤波GSF
强跟踪滤波STF
粒子滤波PF
… …

4. ML最大似然估计RSS定位

4.1. 问题描述

考虑N个传感器网络,RSS对数正太阴影衰减(路径衰减)模型可表示为
r R S S , i = P 0 − 10 α log ⁡ d i d 0 + n i ,   i = 1 , 2 , ⋯   , N r_{RSS,i}=P_0 - 10\alpha\log\frac{d_i}{d_0}+n_i,~i=1,2,\cdots,N rRSS,i=P010αlogd0di+ni, i=1,2,,N

其中 d i = ( x − x i ) 2 + ( y − y i ) 2 d_i=\sqrt{(x-x_i)^2+(y-y_i)^2} di=(xxi)2+(yyi)2
x = [ x , y ] ′ \mathbf{x}=[x,y]' x=[x,y]为发射源的位置,即被定位的参数, y i = [ x i , y i ] ′ \mathbf{y}_i=[x_i,y_i]' yi=[xi,yi]为第i个锚节点的位置,假设存在N个锚节点构成传感器网络,则 i = 1 , 2 , ⋯   , N i=1,2,\cdots,N i=1,2,,N n i n_i ni 为测量噪声,来源于RSS的干扰。

4.2. ML估计

基于N个锚节点的RSS测量,构造似然函数:

P ( r R S S ∣ x ) = ∏ i = 1 N 1 2 π σ i e − ( r R S S , i − h ( x ) ) 2 2 σ i 2 P(\mathbf{r_{RSS}}|\mathbf{x})=\prod_{i=1}^N\frac{1}{\sqrt{2\pi}\sigma_i}e^{-\frac{(r_{RSS,i}-h(\mathbf{x}))^2}{2\sigma_i^2}} P(rRSSx)=i=1N2π σi1e2σi2(rRSS,ih(x))2
其中
h ( x ) = P 0 − 10 α log ⁡ ∣ ∣ x − x i ∣ ∣ d 0 h(\mathbf{x})=P_0 - 10\alpha\log\frac{||\mathbf{x}-\mathbf{x}_i||}{d_0} h(x)=P010αlogd0xxi
取对数、得到对数似然函数:
L ( x ) = c + ∑ i = 1 N − 1 2 σ i 2 ( r R S S , i − h ( x ) ) 2 L(\mathbf{x})=c+ \sum_{i=1}^N-\frac{1}{2\sigma_i^2}(r_{RSS,i}-h(\mathbf{x}))^2 L(x)=c+i=1N2σi21(rRSS,ih(x))2
其中 c c c为常数。

则发射源的最大似然估计为:
x ^ = arg ⁡ max ⁡ L ( x ) = arg ⁡ min ⁡ ∑ i = 1 N 1 2 σ i 2 ( r R S S , i − h ( x ) ) 2 \begin{aligned} \hat{\mathbf{x}}&=\arg \max L(\mathbf{x})\\ &=\arg \min \sum_{i=1}^N\frac{1}{2\sigma_i^2}(r_{RSS,i}-h(\mathbf{x}))^2 \end{aligned} x^=argmaxL(x)=argmini=1N2σi21(rRSS,ih(x))2

5. 仿真结果 1

5.1. 仿真场景(目标在传感器凸包外)

考虑如下传感器网络拓扑结构,一个目标节点在传感器网络节点的凸包外面。

在这里插入图片描述

定位结果:

TDOA定位结果:
4.6807
-0.4673

5.2. 定位误差RMSE(随着扰动增大)

随着RSS测量噪声标准差增大,计算定位精度

在这里插入图片描述

RSS定位结果:

Target_position_ML =

    4.6807    3.3259    3.3647    4.5194    2.8333    2.4684    8.5720    2.5546    7.5276
   -0.4673    0.2277   -0.8136   -0.3219    1.1827    0.7298   -0.5827    0.3165    1.4475

5.3. 定位误差RMSE(随着传感器节点增多)

随着传感器节点增多,计算定位精度

在这里插入图片描述

RSS定位结果:

Target_position_ML =

   0         0   17.8782    3.8167    1.8567    8.8670    1.2396    1.7261
   0         0    3.4926   -2.1692   -0.4536   -0.5194   -0.6874   -0.1439

由于目标节点在传感器网络的凸包外面,因此定位精度相对较低
反之,如果目标节点在传感器凸包内,则定位精度会大幅提高。

原创不易,路过的各位大佬请点个赞

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44044161/article/details/124962861

智能推荐

Leetcode 第338,342,344,345,367,389,392,404,405,409题(Java解法)-程序员宅基地

文章浏览阅读194次。Java解leetcode,助力面试之简单10道题(五)第338题 比特位计数解题思路代码第342题 4的幂解题思路代码第344题 反转字符串解题思路代码第345题 反转字符串中的元音字母解题思路代码第367题 有效的完全平方数解题思路代码第389题 找不同解题思路代码第392题 判断子序列解题思路代码第404题 左叶子之和解题思路代码第405题 数字转换为十六进制数解题思路代码第409题 最长回文串解题思路代码第338题 比特位计数示例 1:输入输出[3,2,3]3示例

C++ 学习笔记(对双端队列进行封装,实现数据生产者消费者)-程序员宅基地

文章浏览阅读698次。#pragma once #include <deque>#include <condition_variable>template <typename T>class MsgList { public: void add(const T& msg) { std::unique_lock<std::mutex> lock(mutex); queue.

python水表识别图像识别深度学习 CNN_水表 深度学习 识别-程序员宅基地

文章浏览阅读551次,点赞8次,收藏8次。重点:项目和文档是本人近期原创所作!程序可以将水表图片里面的数据进行深度学习,提取相关信息训练,lw1.3万字重复15%,可以直接上交那种!具体和看下面的目录。python水表识别,图像识别深度学习 CNN,Opencv,Keras。_水表 深度学习 识别

【DataSet】遥感图像方面的人工智能数据集_群智感知 图像数据集-程序员宅基地

文章浏览阅读288次。遥感图像方面的人工智能数据集数据集类别常用数据集目标检测数据集DSTL 卫星图像数据集;RSOD-Dataset 数据集;NWPUVHR-10地理遥感数据集图像分割数据集Inria AerialImage Labeling Dataset 遥感图像数据集遥感图像分类数据集UCMerced Land-Use Data Set 土地遥感数据集_群智感知 图像数据集

python使用镜像安装opencv_opencv_python安装镜像-程序员宅基地

文章浏览阅读2.9k次,点赞3次,收藏11次。如何在pycharm中安装opencv_opencv_python安装镜像

手把手教你IDEA创建SSM项目结构_idea创建ssm web项目-程序员宅基地

文章浏览阅读595次,点赞2次,收藏8次。我的小站SSM项目需要用来管理依赖,所以我们需要先配置好,配置很容易,我就不演示了。首先,我们新建项目,勾选,选择模板,然后创建。这里耐心等待下载完成。可以看到,这里没用相关的文件夹。我们直接在文件夹上右键新建文件夹,下面会显示一个,直接创建就可以。此时,我们按照规范来,创建一个包。项目结构多种多样,比如三层架构啥的,按照你的需求来。我这里就稍微演示一下。这里这些结构都是可以自己按照规范命名,结构也有很多,分层架构方法也有很多,这里权当借鉴一下。我这里整合了一份依赖,如需使用可按照自己需求和对于版本进_idea创建ssm web项目

随便推点

Python编程基础:第六节 math包的基础使用Math Functions_ps math function-程序员宅基地

文章浏览阅读565次。第六节 math包的基础使用前言实践前言我们通常会对数值型变量进行计算,这里我们给出一些常用的函数用于辅助你的计算过程。常用的数学计算函数均在math包。实践首先我们导入math包,并定义一个浮点型变量pi将其赋值为3.14:import mathpi = 3.14如果我们需要计算浮点型变量四舍五入后的计算结果,用函数round()即可:print(round(pi))>>> 3如果我们需要向上取整,那就需要函数math.ceil():print(math.cei_ps math function

canal异常 Could not find first log file name in binary log index file_canal could not find first log file name in binary-程序员宅基地

文章浏览阅读4.4k次,点赞3次,收藏2次。Could not find first log file name in binary log index file问题解决解决过程问题最近在使用canal来监测数据库的变化,处理变动的数据。由于有一段时间没有用了,这次启动在日志文件中看到这个异常 Could not find first log file name in binary log index file,详细信息如下:2020-12-16 19:14:42.053 [destination = tradeAndRefund , addr_canal could not find first log file name in binary log index file

【练习】生成10个1到20之间的不重复的随机数并降序输出-程序员宅基地

文章浏览阅读960次。分析:1.创建一个Random对象;2.创建一个hashset的集合对象;3.循环生成10个1-20的随机数4.输出。package edu.xalead;import java.util.*;public class Test { public static void main(String[] args) { Random r...

linux系统扩展名大全,Linux系统文件扩展名学习-程序员宅基地

文章浏览阅读3.2k次。Linux系统下的扩展名并不能标识该文件是属于哪一种类型的文件。文件是否可以执行等都跟文件的扩展名无关。因为文件script没有执行权限,所以也就无法执行,sh-3.2# touch ./scriptsh-3.2# ls -lh ./script-rw-r--r-- 1 root root 0 Dec 28 06:15 ./scriptsh-3.2#sh-3.2# ./scriptsh: /scr..._linux的扩展名

WPF TabControl 滚动选项卡_wpf 使用tabcontrol如何给切换的页面增加滚动条-程序员宅基地

文章浏览阅读1.3k次,点赞27次,收藏19次。我原本以为是很简单的事情,但是没想到实际做起来还是有很多的基础知识点的。我们平常写TabControl的时候,可能都很习惯了直接写TabControl+TabItem。但是TabControl负责了什么布局,TabItem负责了什么布局,我们都不知道。在《深入浅出WPF》中,我们可以看到TabControl属于ItemsControl我们去看看控件模板样式副本。WPF的xaml的优点是每个控件都是单独的逻辑,耦合低。缺点是写起来麻烦,每次改动约等于重新写一个新的。通过增加自己的工作量来降低了耦合我们可以看_wpf 使用tabcontrol如何给切换的页面增加滚动条

Apache Jmeter常用插件下载及安装及软硬件性能指标_jmeter插件下载-程序员宅基地

文章浏览阅读2.1k次,点赞24次,收藏47次。Apache Jmeter常用插件下载及安装_jmeter插件下载

推荐文章

热门文章

相关标签