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. IOC和AOP使用扩展 多种方式实现依赖注入

    多种方式实现依赖注入 1.Spring 使用setter访问器实现对属性的赋值, 2.Spring 构造constructor方法赋值, 3.接口注入 4.Spring P命名空间注入直接量 sett ...

  2. Factory Method(工厂方法)-对象创建型模式

    1.意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类.Factory Method使一个类的实例化延迟到其子类. 2.动机 框架使用抽象类定义和维护对象之间的关系.这些对象的创建通常也由框架 ...

  3. HashTable、HashSet和Dictionary的区别

    今天又去面试了,结果依然很悲催,平时太过于关注表面上的东西,有些实质却不太清楚,遇到HashTable和Dictionary相关的知识,记录下来,希望对后来人有所帮助,以及对自己以后复习可以参考. 1 ...

  4. Vmware /CentOS访问Windows中的文件

    1.将该文件设为共享文件夹 2.确定你的windows IP地址,用户名及密码 3.CentOS终端输入以下内容:   [root@*** mnt]# mkdir winD   [root@*** m ...

  5. WebStorm常用设置和常用快捷键

    今天下载了最新版本的WebStorm 7.反正又要重新设置一番了,干脆写下来记录到博客里面,免得以后每次忘了还要到处搜索比较麻烦. 加速 禁用多余的插件,关掉没必要的代码检查项.webstorm慢的原 ...

  6. 2015/09/09夜晚js继续学习

    单词:标量(scalar)数组(array)元素(element)填充(populating)下标(index) 向数组中添加元素的操作称之填充.在填充数组时,不仅需要给出新元素的值,还需要给新元素在 ...

  7. c++垃圾回收代码练习 引用计数

    学习实践垃圾回收的一个小代码 采用引用计数 每次多一个指针指向这个分配内存的地址时候 则引用计数加1 当计数为0 则释放内存 他的难点在于指针之间的复制 所有权交换 计数的变化 #include &l ...

  8. shell 脚本注意事项

    设脚本名为test.sh 第一行应该为#! /bin/bash 1.运行和调试的结果是不一样的 调试 sh -x test.sh  这时在计算两个数的和sum=$[$a+$b]时得到sum=3+4,而 ...

  9. [原]iOS自带社会化分享框架——Social.framework

    http://m.blog.csdn.net/blog/u012189584/43236379 Social.framework支持的分享平台(打开手机上的“设置”即可看到)(如Twitter.fac ...

  10. vb.net下载代码

    '后台 Partial Public Class Download2 Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender ...