当前位置: 首页 > news >正文

各种定位方式

手机常见的wifi定位方式有:

  • 卫星定位
  • 移动基站定位
  • Wifi辅助定位
  • AGPS定位
    ***

    1:卫星定位

常见的定位方式有GPS,北斗,伽利略和Glonass,虽然这些系统提供的服务有所区别,但是其背后的定位原理都是相同的,现在以最常见的GPS定位为例来介绍卫星定位。

GPS(Global Positioning System)即全球定位系统,是由美国建立一个卫星导航定位系统,利用该系统可以进行高精度的时间传递和高精度的精明定位。

1.1:GPS系统构成

GPS系统包括三大部分:空间部分-GPS卫星星座;地面部分-地面监控部分;用户设备部分-GPS信号接收器。
(好像是不同的卫星和手机交互信息,然后根据时间差和距离差计算当前手机端位置。)

1.1.1GPS工作卫星及其星座

21颗工作卫星和3颗在轨备用卫星组成GPS卫星星座。24颗卫星距地高度为20200km,运行周期为11小时58分钟(恒星时间为12小时)。
均匀分布在6个轨道平面内,轨道倾角为55度,各个轨道平面之间相距60度,每个轨道平面内各颗卫星之间相差90度。卫星通过天顶时,卫星可见时间为5个小时,在地球表面上任何地点任何时刻,在高度角15度以上,平均可同时观测到6颗卫星,最多可达9颗卫星。
为了解算测站的三维坐标,必须观测4颗GPS卫星,称为定位星座。

1.1.2地面监控系统

对于导航定位而言,GPS卫星十一动态已知点。星的位置是根据卫星发射的星历--描述卫星运动及其轨道的参数算得的。每个GPS卫星所播发的星历是由地面监控系统提供的。卫星上各种设备是否运行正常,以及是否按照预定轨道运行,都要通过地面设备进行监测和控制。地面监控系统的另一个重要作用是保持各颗卫星的时间,求出钟差,然后由地面注入占发给卫星,卫星再由导航电文发给用户设备。
GPS工作卫星的地面监控系统包括一个主控站、三个注入站和五个监测站。主控站的作用是根据各监控站对GPS的观测数据,计算出卫星的星历和卫星钟的改正参数等,并将这些数据通过注入站注入到卫星中去;同时,它还对卫星进行控制,向卫星发布指令,当工作卫星出现故障时,调度备用卫星,替代失效的工作卫星工作;另外,主控站也具有监控站的功能;监控站主要任务是为主控站提供卫星的观测数据;注入站任务是将主控站发来的导航电文注入到相应卫星的存储器。

1.1.3GPS信号接收机

能够捕获到按一定卫星高度截止角所选择的待测卫星的信号,并跟踪这些卫星的运行,对所接收到的GPS信号进行变换、放大和处理,以便测量出GPS信号从卫星到接收机天线的传播时间,解译出GPS卫星所发送的导航电文,实时地计算出测站的三维位置,甚至三维速度和时间。

1.2GPS定位原理

当GPS卫星正常工作时,会不断地用1和0二进制码元组成的伪随机码(简称伪码)发射导航电文。导航电文包括卫星星历、工作状况、时钟改正、电离层时延修正、大气折射修正等信息。GPS导航系统卫星部分的作用就是不断地发射导航电文。然而,由于用户接受机使用的时钟与卫星星载时钟不可能总是同步,所以除了用户的三维坐标x、y、z外,还要引进一个变量 t 即卫星与接收机之间的时间差作为未知数,然后用4个方程将这4个未知数解出来。所GPS定位方式,不需要sim卡,不需要连接网络,只要在户外,基本上随时随地都可以准确定位。其他类型卫星定位方式与GPS差不多,不再讲述。以如果想知道接收机所处的位置,至少要能接收到4个卫星的信号。

2.基站定位

2.1相关概念

因为处在相同频率范围的信号会相互干扰,为防止相邻基站相互干扰,相邻的基站会选择不同的信道(不同频率范围的信号)与移动设备通信。如上图是一个蜂窝移动基站的示意图,其任意相邻的两个基站都具有不同的通信频段。基站不是孤立存在的,其覆盖区域相互交接,组成一张巨大的移动通信网络。移动设备在插入sim卡开机以后,会主动搜索周围的基站信息,与基站建立联系,而且在可以搜索到信号的区域,手机能搜索到的基站不止一个,只不过远近程度不同,再进行通信时会选取距离最近、信号最强的基站作为通信基站。其余的基站并不是没有用处了,当你的位置发生移动时,不同基站的信号强度会发生变化,如果基站A的信号不如基站B了,手机为了防止突然间中断链接,会先和基站B进行通信,协调好通信方式之后就会从A切换到B。这也就是为什么同样是待机一天,你在火车上比在家里耗电要多的原因,手机需要不停的搜索、连接基站。每次坐火车,我都会把手机调成飞行模式,看看电影、听听歌,依然可以维持很长时间。

2.2基站定位原理

移动电话测量不同基站的下行导频信号,得到不同基站下行导频的TOA(到达时刻)或 TDOA(到达时间差),根据该测量结果并结合基站的坐标,一般采用三角公式估计算法,就能够计算出移动电话的位置。实际的位置估计算法需要考虑多基站(3个或3个以上)定位的情况,因此算法要复杂很多。一般而言,移动台测量的基站数目越多,测量精度越高,定位性能改善越明显。

上面的介绍有点官方,不是很容易理解。直白的说,距离基站越远,信号越差,根据手机收到的信号强度可以大致估计距离基站的远近,当手机同时搜索到至少三个基站的信号时(现在的网络覆盖这是很轻松的一件事情),大致可以估计出距离基站的远近;基站在移动网络中是唯一确定的,其地理位置也是唯一的,也就可以得到三个基站(三个点)距离手机的距离,根据三点定位原理,只需要以基站为圆心,距离为半径多次画圆即可,这些圆的交点就是手机的位置。网传的微信三点定位原理也是这个样子。
由于基站定位时,信号很容易受到干扰,所以先天就决定了它定位的不准确性,精度大约在150米左右,基本无法开车导航。定位条件是必须在有基站信号的位置,手机处于sim卡注册状态(飞行模式下开wifi和拔出sim卡都不行),而且必须收到3个基站的信号,无论是否在室内。但是,定位速度超快,一旦有信号就可以定位,目前主要用途是没有GPS且没有wifi的情况下快速大体了解下你的位置。另外,如果你的手机里没有基站位置数据包,还需要联网才行。

3.WiFi定位

WiFi(也就是Wireless Access Point:AP,或者无线路由器)定位的方法有很多种,例如可以依据测信号强度来判定目标的距离,也可以依据信号角度来检测目标的方向和角度,依据相位,时间和时间差来初步判定目标距离AP的位置等等。

3.1WiFi定位原理

  • 每一个无线AP(路由器)都有一个全球唯一的MAC地址,并且一般来说无线AP在一段时间内不会移动;
  • 设备在开启Wi-Fi的情况下,无线路由器默认都会进行SSID广播(除非用户手动配置关闭该功能),在广播帧包含了该路由器的MAC地址;
  • 采集装置可以通过接收周围AP发送的广播信息获取周围AP的MAC信息和信号强度信息,将这些信息上传到服务器,经过服务器的计算,保存为“MAC-经纬度”的映射,当采集的信息足够多时候就在服务器上建立了一张巨大的WiFi信息网络;
  • 当一个设备处在这样的网络中时,可以将收集到的这些能够标示AP的数据发送到位置服务器,服务器检索出每一个AP的地理位置,并结合每个信号的强弱程度,计算出设备的地理位置并返回到用户设备,其计算方式和基站定位位置计算方式相似,也是利用三点定位或多点定位技术;
  • 位置服务商要不断更新、补充自己的数据库,以保证数据的准确性。当某些WiFi信息不在数据库中时,可以根据附近其他的WiFi位置信息推断出未知WiFi的位置信息,并上传服务器。
  • 由上面的介绍可知,WiFi定位在AP密集的地方有很好的效果,比如在GPS不能使用的室内,而且具有较快的反映速度,在不连上WiFi的情况下也可以定位,这就是有时候在不开数据服务时百度地图提示打开WiFi功能定位的原因。由于其依赖于WiFi,如果不想让人通过这种方式知道你的位置信息,直接关闭WLAN功能即可。

4.AGPS定位

AGPS(AssistedGPS:辅助全球卫星定位系统)是结合GSM/GPRS与传统卫星定位,利用基地台代送辅助卫星信息,以缩减GPS芯片获取卫星信号的延迟时间,受遮盖的室内也能借基地台讯号弥补,减轻GPS芯片对卫星的依赖度。AGPS利用手机基站的信号,辅以连接远程定位服务器的方式下载卫星星历 (英语:Almanac Data),再配合传统的GPS卫星接受器,让定位的速度更快。是一种结合网络基站信息和GPS信息对移动台进行定位的技术,既利用全球卫星定位系统GPS,又利用移动基站,解决了GPS覆盖的问题,可以在2代的G、C网络和3G网络中使用。

普通的GPS系统是由GPS卫星和GPS接受器组成,与普通的GPS不同,AGPS在系统中还有一个辅助定位服务器。在AGPS网络中,接收器可通过与辅助服务器的通信而获得定位辅助。由于AGPS接收器与辅助服务器间的任务是互为分工的,所以AGPS往往比普通的GPS系统有速度更快的定位能力、有更高的效率,可以很快捕捉到GPS信号,这样的首次捕获时间将大大减小,一般仅需几秒的时间(单纯GPS接收机首次捕获时间可能要2~3分钟时间),而精度也仅为几米,高于GPS的精度。 利用AGPS接收器不必再下载和解码来自GPS卫星的导航数据,因此可以有更多的时间和处理能力来跟踪GPS信号,这样能降低首次定位时间,增加灵敏度以及具有最大的可用性。

AGPS定位基本步骤

  • AGPS手机首先将本身的基站地址信息通过网络传输到定位服务器;
  • 定位服务器根据该手机的大概位置传输与该位置相关的GPS辅助信息(包含GPS的星历和方位俯仰角等)到手机;
  • 该手机的AGPS模块根据辅助信息(以提升GPS信号的第一锁定时间TTFF能力)接收GPS原始信号;
  • 手机在接收到GPS原始信号后解调信号,计算手机到卫星的伪距(伪距为受各种GPS误差影响的距离),并将有关信息通过网络传输到定位服务器;
  • 定位服务器根据传来的GPS伪距信息和来自其他定位设备(如差分GPS基准站等)的辅助信息完成对GPS信息的处理,并估算该手机的位置;
  • 定位服务器将该手机的位置通过网络传输到定位网关或应用平台(如手机上的GPS应用程序)。

    优缺点:

    AGPS的优势主要在其定位精度上。在室外等空旷地区,其精度在正常的GPS工作环境下,可达10米左右,堪称目前定位精度最高的一种定位技术。另一优点为:首次捕获GPS信号的时间一般仅需几秒,不像GPS的首次捕获时间可能要2~3分钟。虽然AGPS技术的定位精度很高、首次捕获GPS信号时间短,但是该技术也存在着一些缺点。首先,室内定位的问题目前仍然无法圆满解决。另外,AGPS的定位实现必须通过多次网络传输(最多可达六次单向传输),这对运营商来说是被认为大量的占用了空中资源,对消费者而言将产生不少的流量费用。而且AGPS手机比一般手机在耗电上有一定的额外负担,间接减短了手机的待机时间。除此之外,有时无法取得多个卫星传来的讯号,通常这是因为您的AGPS 话机天线接收器所在环境的限制。在这种情况下,AGPS 功能将不能很好地使用。

转载于:https://www.cnblogs.com/A-FM/p/7151823.html

相关文章:

  • JAVA个人小程序GUI篇-收银(标签、按钮、复选框、下拉标、文本域、表格······)...
  • [bzoj2957]楼房重建
  • 杨辉三角的几种方法
  • 标题四
  • 3种上传图片并实现预览的方法
  • 暑假小集训
  • [无线路由] “免费”斐讯K2路由器刷OpenWRT(实战MWAN多宽带网速叠加)
  • 静态变量
  • Java字节数组和16进制字符串的互相转化
  • 多进程与多线程的区别
  • java线程详细介绍
  • let 和 const 命令
  • 简单的请求-处理-响应
  • oracle 在已有表新增列内批量加数据
  • 值得追随
  • ES6指北【2】—— 箭头函数
  • ➹使用webpack配置多页面应用(MPA)
  • canvas绘制圆角头像
  • CSS 三角实现
  • extjs4学习之配置
  • Github访问慢解决办法
  • JavaScript的使用你知道几种?(上)
  • Linux快速复制或删除大量小文件
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • 从tcpdump抓包看TCP/IP协议
  • 对象引论
  • 回顾2016
  • 将回调地狱按在地上摩擦的Promise
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • ​【已解决】npm install​卡主不动的情况
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #在 README.md 中生成项目目录结构
  • (1)STL算法之遍历容器
  • (2)(2.10) LTM telemetry
  • (52)只出现一次的数字III
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (javascript)再说document.body.scrollTop的使用问题
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (九)信息融合方式简介
  • (利用IDEA+Maven)定制属于自己的jar包
  • (转)scrum常见工具列表
  • ***测试-HTTP方法
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .Net Core与存储过程(一)
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NetCore 如何动态路由
  • .Net小白的大学四年,内含面经
  • :“Failed to access IIS metabase”解决方法
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @Controller和@RestController的区别?
  • @ModelAttribute 注解