http://www.cnblogs.com/LBSer/p/3295642.html

LBS定位技术从方法上可分成三类:基于三角关系的定位技术、基于场景分析的定位技术、基于临近关系的定位技术(唐毅和杨博雄,2003)。

本博文首先对基于三角关系的定位技术进行了介绍,并对其中的应用最广泛的代表GPS进行阐述。
 

一、基于三角关系的定位方法

 
   该技术的基本原理很简单,可以抽象成如下问题:已知A、B、C三个点的坐标,以及该三点至D点的距离(分别是d0,d1,d2),求D点的坐标。可以列出以下公式(式1),三个方程三个未知数,能求出唯一解。这种定位技术根据测量得出的数据,利用几何三角关系计算被测物体的位置,它是最主要的,也是应有最广的一种定位技术。
 
 

二、GPS

 
  GPS(全球定位系统)的空间部分使用24颗高度约2.02万千米的卫星组成卫星星座。卫星分布在六个中距离近圆形轨道面上(每轨道面四颗),轨道倾角为55度。卫星的分布使得在全球的任何地方,任何时间都可观测到四颗以上的卫星。
 

(1)为什么至少使用4颗卫星?

 
   GPS定位的基本原理即前面提到的三角关系法。接收机接收各个卫星Si发送的消息Mi,消息Mi不仅包含着卫星Si的空间坐标,还包括卫星发送消息的时间Ti。接收机在接收Mi后就可根据本地接收机的时间与卫星发送消息时间之差来计算距离di:di = c*T;其中c是光速,T是时间差。然而,由于各种原因,包括大气、建筑物,时钟误差等等因素,光速c以及时间差T是具有误差的,di的结果很不准确,因此在计算时候需要加个误差项进行修正,并且假设各个卫星的误差项一样(式2)
 
 
   除了空间位置三个参数,现在又多出了误差项,共有4个参数需要求解,至少需要4个卫星才能解算(如式3所示)。
 

(2)当卫星数目大于4个的时候怎么办?

 

在野外开阔地区,可接收的卫星数目一般大于4颗,这时可以采用两种方法提高精度:1)挑选信号较强,并且并能保持良好定位解算精度的几何图形的4颗卫星数据进行计算,采用式3解方程即可算出结果;2)所有卫星数据都参与计算,使用最小二乘法进行求解。由于第二种方法能显著减小系统误差,因此被广泛使用。

一般的接收机在计算位置坐标时采用的是牛顿迭代法来求解非线性方程组,该法在计算时需要首先提供个初始坐标,然后在此基础上反复迭代计算,直到满足规定的限差为止。

(3)为什么GPS第一次定位慢?

 
     GPS接收机(如手机或导航仪等)初次定位一般比较,主要有两个原因:
a) 重新搜星
    GPS接收机需要根据卫星的信号频率来捕捉卫星信号,和大家收听收音机一样,需要知道某台的频率,然后调到那个频率才能收听。直观上,由于GPS卫星数目(24颗)以及各个卫星的信号频率是已知的,因此只需要按照给定的频率穷举搜索即可,即每次以某一频率搜索信号,最多搜索24次。然而,由于多普勒效应的存在(多普勒效应指的是:当一个信号源与观察者有相对运动时,观察者观察到的信号源的频率会发生变化),GPS信号和地球的运动造成地面观察到的GPS信号的频率大概有正负5KHz的误差,因此需要对正负5KHz区间内的频率进行穷举匹配,相对于原来对24个频率点进行穷举而言,这种对24个频率区间内的各个频率进行穷举匹配显然极为耗时。
      GPS接收机在首次搜索到卫星时,一般会将搜索到的卫星信号频率等信息进行保存,称之为“星历”。当GPS连续使用时候,此时星历一般不会变化,因此无需进行搜星操作,速度会大大提高。一段星历最多覆盖300KM的范围,若在A地点确定星历后,关机后GPS导航被移动超过300公里后,GPS导航位置处于另一段星历之下,此时GPS导航会重新搜星,以确定星历。
b)初始位置不准确

前面讲过,GPS接收机计算时一般使用的是牛顿迭代法,该法需要给定初始位置,初始位置越精确,迭代收敛越快!由于是第一次启动,初始位置是上一次开机时保存的最后一次定位的坐标,往往与现在所处的真实位置偏差较大,由此使得计算的迭代次数显著增多,计算较慢。

当连续使用GPS时可以发现定位速度明显变快,因为此时初始位置与实际位置较为接近(初始位置为上次定位的位置),计算能很快收敛,一般只需迭代两三次。

(4)如何提高GPS定位速度?

 
目前手机定位采用的最普遍的技术是A-GPS(辅助全球卫星定位系统)。A-GPS定位包括以下几个流程:
a) 手机从基站获取到当前所在的小区位置(初始位置值);
b)手机通过基站或网络将当前小区位置传送给网络中的AGPS位置服务器(走流量),APGS位置服务器根据当前小区位置查询该区域当前可用的卫星信息(包括卫星信号的多普勒频偏,初始位置值),并返回给手机;
c)手机根据从AGPS服务器得到的卫星信号的多普勒频移信息,只需要对很少的几个频率点或频率区间进行搜索,搜星速度大大加快;此外由于基站也给出了初始位置值,该位置与实际位置相差不会太大,因此计算的迭代次数较少。
 
     除gps定位之外,目前常使用的就是基于wifi或基站的定位,具体原理可参考:基于朴素贝叶斯的定位算法

参考文献

唐毅, 杨博雄. 电信工程技术与标准化, 58-62, 2003

LBS定位技术的更多相关文章

  1. 3G中的A-GPS移动定位技术

    位置业务(LBS,Location Based Service)是指移动网络通过特定的定位技术来获取移动终端的位置信息,从而为终端用户提供附加服务的一种增值业务,可广泛应用于紧急救援.导航追踪.运输调 ...

  2. 【读书笔记】iOS-微定位技术

    在大型商场,医院或是大楼里,你是否曾经有过找不到想去的地方的经历呢?这种情况下采用传统的定位方法就有些力不从心了.首先这些地方不能采用GPS定们,而Wifi和蜂窝式移动电话基站定位误差比较大.这种情况 ...

  3. LTE时代的定位技术:OTDOA,LPP,SUPL2.0

    LTE时代的定位技术:OTDOA,LPP,SUPL2.0 移动定位技术的发展历程 如今智能手机已经在整个社会普及,数量众多的手机应用成为了人们生活当中不可或缺的一部分.越来越多的手机应用都用到了手机定 ...

  4. 位置指纹(LF)定位技术简介-室内定位

        信号的多径传播对环境具有依赖性,呈现出非常强的特殊性.对于每个位置而言,该位置上信道的多径结构是惟一的,终端发射的无线电渡经过反射和折射,产生与周围环境密切相关的特定模式的多径信号,这样的多径 ...

  5. Android那些事儿之LBS定位,实践测试lbs

    最近一朋友让我了解下安卓LBS获取位置信息,于是动手实践了一把.搜了一圈发现有篇博文可以参考:Android那些事儿之LBS定位,但是原文作者没有提供源码下载,于是动手实现了,现记录下来备忘,代码附在 ...

  6. 【转载】HRTF音频3D定位技术综述

    1. 序 您一定有过这样的经验:在一个炎热的夏夜,讨厌的蚊子在你的耳边飞舞.此时,没有比除掉这个祸害更急所的了,对吧?做到这一点,不必睁大了眼去找蚊子,只需依靠敏锐的听力,一样可以确定蚊子的方位,在漆 ...

  7. 盒子模型,定位技术,负边距,html5 新增标签

    盒子模型 /*[margin 外边距] margin属性最多四个 1.只写一个值,四个方向的margin均为这个值 2.写两个值:上,右两个方向,下默认=上,右 默认=左 3.写三个值:上.右.下三个 ...

  8. 基于 WiFi ( Wireless Fidelity) 的室内定位技术

    系统的拓扑结构 基于信号强度的定位技术(RSSI, Received Signal Strength Indication) 无线信号的信号强度随着传播距离的增加而衰减,接收方与发送方离得越近, 则接 ...

  9. HTC Vive的定位技术

    Lighthouse空间定位,chaperone系统避免实际障碍物 HTC vive所用的Lighthouse技术属于激光定位技术,Oculus Rift以及索尼PlayStation VR所用的定位 ...

随机推荐

  1. alert/confirm/prompt 处理

    webdriver 中处理JavaScript 所生成的alert.confirm 以及prompt 是很简单的.具体思路是使用switch_to_alert()方法定位到alert/confirm/ ...

  2. PHPMyadmin 配置文件详解(配置)

    PHPMyadmin配置文件config.inc.php内容如下,在需要设置的地方增加了相关注释. 非常适合对数据库操作命令不熟悉的数据库管理者,下面我就说下怎么安装该工具: 1.先到网上下载phpm ...

  3. c语言中enum类型的用法

    11.10 枚举类型 在实际问题中,有些变量的取值被限定在一个有限的范围内.例如,一个星期内只有七天,一年只有十二个月,一个班每周有六门课程等等.如果把这些量说明为整型,字符型或其它类型显然是不妥当的 ...

  4. PHP各种缓存

    缓存类型PHP缓存包括PHP变异缓存和PHP数据缓存两种:PHP编译缓存:        PHP数据缓存:    对数据库数据进行缓存    对PHP模板数据缓存 js数据缓存

  5. eclipse编码格式设置教程、如何为eclipse设置编码格式?

    如果要使插件开发应用能有更好的国际化支持,能够最大程度的支持中文输出,则最好使 Java文件使用UTF-8编码.然而,EcliPSe工 作空间(workspace)的缺省字符编码是操作系统缺省的编码, ...

  6. mormot THttpApiServer使用例子

    mormot THttpApiServer使用例子 THttpApiServer封装了WINDOWS的HTTPS.SYS. unit Unit1; interface uses Winapi.Wind ...

  7. [Linux]服务管理:rpm包, 源码包

    --------------------------------------------------------------------------------------------------- ...

  8. VB6.0 获取Excel文件工作表Sheet的名称

    获取Excel文件工作表Sheet的名称 '产生Excel文档 Dim xlapp, xlbook As Object Dim sSheetName As String Set xlapp = Cre ...

  9. Java—继承、封装、抽象、多态

    类.对象和包 1) 面向对象编程(Object Oriented Programming ,简称 OOP):20世纪70年代以后开始流行. 2) 结构化编程与面向对象编程的区别: A. 在结构化编程中 ...

  10. stringgrid事件大全

    3.StringGrid之Event事件 property LiveBinding   //把对象之间的属性绑定起来(XE2新增功能) property OnApplyStyleLookup: TNo ...