首页 > 其他分享 >室内定位

室内定位

时间:2023-06-09 16:01:04浏览次数:40  
标签:定位 CSI RNN 室内 矩阵 times 信道 mathbf

Centimeter-Level Indoor Localization using Channel State Information with Recurrent Neural Networks

本论文是基于RNN网络的CSI实现厘米级的室内定位。

摘要:

物联网技术和自动驾驶的现代技术对定位的要求越来越高。经典的定位技术主要适用于室外和场景,但是不能满足室内多路径案例的要求。同时信道状态信息(Channel State Infomation, CSI)作为一种对噪音和时间变换具有鲁棒性的特征。与接收强度指示器(RSSI)相比,具有更加准确的优点。为此,本文提出利用线性天线采集的实际CSI数据,利用神经网络方法估计厘米级室内定位。它利用信道响应的幅值或者相关矩阵作为输入,可以极大的减少数据量,抑制噪声。通过递归神经网络(RNN)和信噪比(SNR)信息,利用用户运动轨迹的一致性,进一步提高估计精度,特别是在小数据学习中。这些贡献有利于神经网络的效率,基于其他经典监督学习方法的结果。

室内定位的两个主要问题是:特征抽取和指纹匹配方法。 CSI对噪声和时变具有鲁棒性,它最近成为一种广泛的技术。

在指纹匹配方面,以往的工作使用K-nearest neighbors 和support-vector machine,这些方法存在过拟合问题,Random forest[随机森林],但是这种方法在输入是可能丢失中的信息与神经网络相比不够精确。

本文使用一个8*2的天线阵列,OFDM的传输链路是20Mhz的带宽使用1.25Ghz的载波频率有1024个子载波。采集的数据集包括信道响应、相关的位置地面真值信息和信噪比信息。采集的信道响应(channel response)维度是Ndat$\times\(16\)\times\(924;Ndat是测量点的数量,16是天线的数量,924是使用的子载波的数量。信噪比(SNR)的大小是Ndat\)\times$16. Ndat的位置是[x,y,z]但是z是一个常数。

特征提取:

子载波采样和平滑

协方差矩阵(用于估计到达的方向角):协方差矩阵在同一位置,方阵中的点表示矩阵的对角线

协方差矩阵\(Z_{M \times M}\),接收信号的自积是\(Y_{M \times T}\), \(Z=Y\times Y^H\),M 是天线胡亮,T表示时间步.

基于原理\(Y=H(\mathbf{AS})\)+\(n\)=\(\mathbf{A}H(\mathbf{S})\)+\(n\),\(\mathbf{A}_{M \times K}\)是K目标数量的方向角,\(H(\bullet)\) 是信道模型,\(\mathbf{S}_{K \times T}\)数字信号,n表示白噪声。

\(H(\mathbf{S})\)是 应该CSI的反向傅里转换。

网络流程图:

首先根据需要提取的特征,先将复振幅转换为实振幅,再通过多项式回归对数据进行平滑处理,再对较小的数据集进行降采样。

估计方法的共同原理是指纹匹配方法,这种系统的的基本原理是一对一的映射。本论文中使用CSI估计和协方差矩阵(CM)两种进行估计。协方差矩阵的对角线的值不同表示所有天线的功率是不一样的,一个标签必须与一个独特的特征相关联,即指纹,所以当一个新的特征出现时,我们可以通过参考这些具有最相似特征的邻居来估计标签。

定位估计方法:这里提出了random forest ,XGB, the DNN和RNN 4中方法。

根据给网络结构图:该论文结合的是将基于集成的神经网络应用于DNN和RNN,使用两种神经网络分别估计,基于决策的方法本身具有集成技术。

防止的过拟合方法:Early-stop:提前结束就是从训练集中截取一个验证数据集,用验证数据集对验证每一个epoch的错误率,当神经网络过拟合时,验证错误将从训练错误偏离并且升高,提前结束激活并停止训练。

Dropout也可以解决过拟合问题:为什么说可以解决过拟合的原因(1)取平均值的作用 (2)减少神经元之间复杂的供适应关系(3)Droupout类死于性别在生物进化过程中的角色。

该论文的性能评估:

5层的DNN网络结构,优化函数使用adam,损失函数使用均方差。RNN中的lstm的神经单元使用128个。将RNN和DNN进行集成基于中值作为最后的估计。

探究了小数据集的学习:

在Full CSI 、small CSI, Full CM 、small CM的比较发现的使用整个数据得到的错误率较低。

数据集:https://github.com/yujianyuanhaha/Positioning (好像已经不存在了)

基础知识补充:

CSI就是通信链路的信道属性。它描述了信号每条传输路径上的衰弱因子,即信道状态矩阵中的每一个元素。(包括信号散射,环境衰弱,距离衰减等。)

常见的两个信号指标:信道频率响应(CFR)和信道脉冲响应(CIR).

信道频率响应:信号在不同频率范围内,信号特性的响应,一般包括幅值/频率和相位/频率两种。

信号脉冲响应:信号经过不同时间(不同的传播路径导致传播所需的时间不同)到达接收方的信号能量值。CIR和CFR可以通过傅里叶变换。

信道冲击响应的公式:

\[h(\tau)=\sum_{i=1}^{N}a_{i}e^{-j\theta_{i}}\delta(\tau -\tau_{i}) \]

\(a_{i}\)表示第i条路经的幅值衰减,\(\theta_{i}\)表示第i条路径的相位偏移,\(\tau_{i}\)表示时间延迟

信道频率响应的公式:

\[H(k)=||H(k)||e^{j \ang H(k)} \]

\(H(k)\)表示信道状态信息的CSI。

\(||H(k)||\)第k个子载波的幅值。

$ \ang H(k)$第k个子载波的相位。

标签:定位,CSI,RNN,室内,矩阵,times,信道,mathbf
From: https://www.cnblogs.com/my-recode/p/12312405.html

相关文章

  • vue3+ TS pinyin uniapp 索引列表-(A-Z)按首字母排序 ,锚点定位
    获取一维数组地址列表<scriptlang="ts"setup>import{getLocationList}from"@/apis/activity";import{onLoad}from"@dcloudio/uni-app";import{pinyin}from"pinyin-pro"import{ref}from"vue";const......
  • selenium定位元素
    定位鼠标光标element=driver.find_element_by_css('div[class*="loadingWhiteBox"]')driver.execute_script("arguments[0].click();",element)element=driver.find_element_by_css('div[class*="loadingWhiteBox"]')w......
  • 无法定位程序输入点于动态链接库怎么办?电脑无法定位动态链接库什么意思?
    http://server.sosol.com.cn/server/2022/0801/23414.html一、重装软件当我们的电脑出现无法定位程序输入点于动态链接库的时候,可以先尝试把软件卸载,因为有可能是系统的软件没有及时更导致的,可以卸载了然后下载最新版的软件; 二、在看到该错误提示框后,记录下框里提示的那个.dl......
  • 关于定位Position 和 overflow:hidden 的理解
    01.CSS中的position属性,用来设置元素质在页面中的位置;通过该属性的设置,可以将元素放在任意自己想要的位置;Static:默认值,设不设都是一个样;Relative:相对定位;这个相对是相对于自己来讲,可以当成影子来理解,真身不动,影子按需要跑;Absolute:绝对定位,相对......
  • QA|重写了元素定位后报错xx object has no attribute 'find_element'|网页计算器自动
    代码如下:1#basepage.py23fromseleniumimportwebdriver456classBasePage():7"""8基类用作初始化封装常用操作9"""1011def__init__(self):12"""13初始化driver14......
  • 自定义上传图片,动态拼接html元素,node插入/替换指定位置旧元素
    <!DOCTYPEhtml><head>  <metaname="viewport"    content="width=device-width,initial-scale=0.5,maximum-scale=1.0,minimum-scale=0.5,user-scalable=yes">  <title>上传图片</title></head><bo......
  • 死锁编码与定位分析
    死锁编码与定位分析文章目录死锁编码与定位分析1.理论2.代码验证3.查找死锁故障1.理论死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相符待的现象,岩无外力干涉那它们都将无法推进下去。如果系统资源充足,过程的资源请求都能够得到满足,死锁出现的可能性就......
  • Java中为什么禁止把SimpleDateFormat定位为static变量以及如果非要使用static定位Simp
    场景Java中ExecutorService线程池的使用(Runnable和Callable多线程实现):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126242904Java中创建线程的方式以及线程池创建的方式、推荐使用ThreadPoolExecutor以及示例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/art......
  • java线上问题定位
    获取pidps-ef|grepjava pid下的线程资源占用情况top-Hppid将资源占用高这几个pid转为16进制下载当前的java线程栈查询16进制pid线程情况 java线程栈 jstack-lpid>/1.txt 导出堆快照jmap-dump:live,format=b,file=./heap.hprofpid 查看资源占用最大前30......
  • python操作Excel,读取表格内容,并根据需求将内容填充到表格指定位置
    在日常工作中经常会遇到需要将“表一,部门信息表”内容逐行填充到“表二,个人基本信息表”的情况。表一:表二:  实现方式如下:#!usr/bin/python#-*-coding:utf-8-*-importpandasaspdimportopenpyxlasopfromopenpyxlimportWorkbookfromopenpyxlimportl......