云卸载的全球卫星定位的制作方法
【专利说明】云卸载的全球卫星定位
【背景技术】
[0001] 全球定位系统(GPS)通常由包括GPS接收器的设备以及多个GPS卫星构成。GPS接收 器被配置为对从GPS卫星广播的GPS信号进行接收和解码,以便于确定设备的位置。利用卫 星特定的编码来发送GPS卫星信号中的每个,所述卫星特定的编码能够由GPS接收器使用来 识别进行广播的GPS卫星。GPS接收器能够通过解码卫星信号、识别进行广播的GPS卫星、以 及在从被解码的信号中提取的数据上执行一系列的计算来对设备的位置进行运算。
[0002] 现今的很多设备包括GPS接收器并且支持提供基于位置的服务的应用程序。通常, GPS系统对30秒的范围中的GPS信号进行采样,以便于准确地解码GPS信号并且识别进行广 播的GPS卫星。不幸的是,对GPS进行采样是功率密集的过程并且现今在移动设备上可用的 许多基于位置的应用程序需要规则的或连续的位置感知。由此,尽管GPS接收器通常提供对 移动设备可用的最准确和可靠的位置信息,但是经常的情况是,其他来源是优选的。例如, 移动设备可以从包括GPS接收器、蜂窝塔(cell-tower)信号、FM无线信号、和/或WiFi签名在 内的各种来源中的一个来获取位置信息。
【发明内容】
[0003] 提供本概述以便以简化的形式引入一系列概念,这些概念在下文的【具体实施方式】 中进行进一步描述。本概述并不是要标识出要求保护的主题的关键特征或必要特征,也不 是要用于帮助确定要求保护的主题的范围。
[0004] 本文公开了包括全球定位系统(GPS)的移动设备的实现,所述全球定位系统能够 用于确定移动设备的位置。在一个示例中,移动设备利用服务器来帮助确定位置。例如,移 动设备包括GPS接收器和与服务器进行通信的通信接口。移动设备可以使用GPS接收器来对 GPS信号进行采样并且将样本提供给服务器以用于处理。在一个示例中,移动设备被配置为 对一个或多个若干毫秒的块中的GPS信号进行采样,并且服务器被配置为对块进行处理以 及确定移动设备的位置。
【附图说明】
[0005] 参照附图来描述【具体实施方式】。在附图中,附图标记最左侧的数字标识其中首次 出现该附图标记的图。在整个附图中使用相同的附图标记来指代类似的特征或部件。
[0006] 图1是根据一些实现的GPS系统的示例的图示视图。
[0007] 图2是根据一些实现的GPS系统的示例框架的框图。
[0008] 图3是根据一些实现的移动设备的示例框架的框图。
[0009] 图4是根据一些实现的用于估计移动设备的位置的示例过程的流程图。
[0010] 图5是根据一些实现的用于识别可见卫星的集合的示例过程的流程图。
[0011] 图6是根据一些实现的用于从可见卫星的集合中选择好的卫星的集合的示例过程 的流程图。
[0012] 图7是根据一些实现的用于估计移动设备的位置的示例过程的流程图。
【具体实施方式】
[0013] 公开的技术描述了用于确定与移动设备有关的位置的GPS系统的实现。在通常的 系统中,当GPS接收器被激活时,GPS接收器执行一系列功率密集的步骤来确定并且维护移 动设备的位置。首先,GPS接收器进入捕获阶段。在捕获阶段,GPS接收器对来自每个可见GPS 卫星的GPS信号进行采样和解码。GPS信号包括时间戳和星历数据(与进行发送的卫星的位 置和轨迹有关的数据)。其次,GPS接收器基于从被解码的GPS信号中提取的时间戳和星历数 据来执行一系列运算以确定初始位置。第三,GPS接收器进入跟踪阶段,以维护移动设备的 位置。
[0014] 为了对来自一个或多个GPS卫星的整个信号进行采样和解码,GPS接收器在一段间 隔内被打开,通常在30秒的范围中。GPS接收器在这样长的时间段中保持打开,部分地因为 GPS卫星被配置为以非常低的速率发送数据,通常在50比特每秒(bps)的范围中并且大约 32,000个样本被用于对包括在GPS信号中的数据进行重构。
[0015]接下来,GPS接收器试图识别移动设备视野中的所有GPS卫星(即,广播被接收的 GPS信号的GPS卫星)。这通过在GPS信号中检测一个或多个卫星特定的粗测距/捕获(C/A)码 的存在来完成。每个GPS接收器存储C/A码模板,该模板包括所有GPS卫星的C/A码。C/A码被 设计为彼此正交,以使得当将模板与GPS信号比较时,与可见GPS卫星相对应的C/A码产生信 号尖峰。由此,GPS接收器可以将C/A模板与接收的GPS信号进行比较以确定哪个GPS信号发 起了广播。
[0016] 然而,当将C/A码模板与GPS信号相比较时,GPS接收器对由卫星和GPS接收器二者 的运动导致的GPS信号中的多普勒频移(Doppler Shift)进行补偿。例如,上升的GPS卫星 (进入移动设备视野的卫星)以高达800米每秒(m/s)的速率朝着GPS接收器移动,产生4.2千 赫兹(kHz)的频移。同样地,下降的GPS卫星(离开移动设备视野的卫星)以高达800m/s的速 度远离GPS接收器移动,产生-4.2kHz的频移。GPS接收器需要对一定的错误容限(例如,在 500Hz内)内的多普勒频移进行补偿以使用C/A码模板来正确地识别出进行广播的GPS卫星。 因此,为了对除卫星的移动以外的GPS接收器的移动进行补偿,GPS接收器通常在完成对可 见GPS卫星的确定之前执行大量的多普勒频移运算以及相对应的C/A码比较。
[0017] 为了识别初始位置,GPS接收器还确定移动设备与可见GPS卫星中的每个之间的距 离,该距离被称为"伪距"(pseudorange)。可以使用GPS信号的传播延迟来计算伪距。传播延 迟被分解为两个部分,微秒部分和被称为"码相位"的亚微秒部分。微秒部分可以从分组帧 中解码并且码相位可以通过监视GPS信号中的C/A码的Ims重复来确定。
[0018] 一旦GPS接收器已经识别了可见卫星、解码了 GPS信号、并且计算了伪距,则GPS接 收器计算初始位置。在确定初始位置之后,GPS接收器切换到跟踪阶段以维护移动设备的位 置。在跟踪阶段期间,GPS接收器试图调整多普勒频率和传播延迟以对由卫星和移动设备随 时间的进一步运动所导致的移位进行补偿。通过执行跟踪,GPS接收器能够快速并且廉价地 (以相对低的功耗率)估计位置的变化。
[0019] 然而,如果GPS接收器没有连续地执行跟踪计算,则GPS接收器需要重新执行捕获 阶段,如上文讨论的,捕获阶段是功率密集和耗时的。因此,大多数GPS接收器被配置为总是 保持活动并且不由移动设备进行周期操作。
[0020] 图1是根据一些实现的GPS系统100的示例的图示视图。GPS系统100包括移动设备 102和GPS卫星104、106、108、110、以及112,移动设备可以从这些GPS卫星接收GPS信号114。 GPS系统100还包括服务器116和网络118。一般地,移动设备102通过网络118向服务器116发 送或从服务器116接收数据。移动设备102可以经由无线网络与网络118通信,所述无线网络 例如是无线局域网(WLAN)、诸如蓝牙?等的短距离无线网络、或诸如通过码分多址(CDMA) 系统等的通过蜂窝塔提供的移动网络。
[0021] 移动设备102可以是任何启用GPS的设备,例如,蜂窝电话、智能电话、导航设备、跟 踪传感器、GPS传感器、或包括GPS接收器的任何其他设备。在本示例中,移动设备102被示出 为智能电话。
[0022] GPS卫星104-112可以包括与GPS卫星导航(卫星-导航)系统相关联的卫星中的任 一个。此外,尽管被示出为五个卫星,但导航卫星104-112表示移动设备102可以从其接收 GPS信号的任何数量的导航卫星。如上文所讨论的,GPS卫星104-112可以通过卫星特定C/A 码被唯一地识别。一般地,GPS卫星104-112发送用于地理空间定位的GPS信号。GPS信号114 被编码并且包括用于计算位置的基于时间的信息。
[0023]移动设备102接收来自从移动设备102当前位置的移动设备102可见(在移动设备 102的视线内)的GPS卫星的GPS信号114。在一些情况中,由移动设备102接收的GPS信号114 可能被各种障碍衍射、反射、和/或减弱。
[0024] 移动设备102包括GPS接收器,该GPS接收器被配置为对来自卫星104-112的GPS信 号114进行采样以生成GPS信号样本。GPS信号样本包括对由移动设备102捕获的GPS信号114 的一个或多个连续的测量。样本内的每个单独的连续范围被称为"±夬",并且其至少具有Ims 的持续时间。如果样本内有一个以上的块,则块之间将具有某种合适的采样间隔。在一些示 例中,移动设备102可以被配置为在将信号数据120提供给服务器116之前对GPS信号样本进 行压缩、处理、或另外操纵。例如,移动设备102可以将原始GPS信号114、GPS信号114的压缩 版本或从GPS信号114获取的数据提供给服务器116,所述数据例如是可见卫星的ID和/或与 可见卫星相关联的码相位和多普勒频率。
[0025] 移动设备102经由网络118将GPS信号数据120提供给服务器116。在一些示例中,移 动设备102是不包括无线或移动通信接口的GPS传感器或GPS跟踪设备,并且由此,移动设备 102不能够实时地(当GPS信号被接收时)将GPS信号数据120提供给服务器116。在这
样的示 例中,移动设备102可以将GPS信号数据120存储为集成到移动设备102中的计算机可读存储 介质上的数据。该数据在稍后被上载到服务器116,以使得移动设备102的先前位置可以在 上载的时间被确定或重建。
[0026] 一旦服务器116接收来自移动设备102的GPS信号数据120,则服务器116确定移动 设备102的初始位置并且经由网络118将位置信息122返回给移动设备102。通过使用服务器 116来确定初始位置,移动设备102能够节省通常在功率密集的捕获阶段期间消耗的能量, 延长整体的电池寿命。
[0027]在该示例中,移动设备102将GPS信号数据120提供给服务器116作为原始GPS样本, 而没有在移动设备102上执行预处理。在可替换的示例中,移动设备102可以在将GPS信号数 据120提供给服务器116之前对GPS信号数据120进行解码、加密或压缩。
[0028]当服务器116接收GPS信号数据120时,服务器116在块上执行捕获以识别可见卫星 的集合,可见卫星例如是卫星104-112。在一个特定示例中,为了从这样的小的块中识别可 见卫星104-112,服务器116利用被称为稀疏信号恢复的技术。在该示例中,服务器116首先 将可见卫星的集合初始化为空集合(即,最初,服务器116还没有在从移动设备接收的块中 识别出C/A码模板中的任一个)。接下来,服务器116针对所有可能的卫星ID、码相位和多普 勒频率组合来搜索GPS信号114以选择具有由移动设备102采样的最强的GPS信号的卫星。例 如,服务器116可以以每个卫星的可能的码相位以及多普勒频率迭代使用C/A码模板,来识 别最强的GPS信号。
[0029] 一旦选择了卫星,服务器116将与所选择的卫星相关联的GPS信号从块中移除并且 将所选择的卫星添加到可见卫星的集合。例如,服务器116可以通过执行到由所选择的卫星 的C/A码模板确定的合适的信号子空间上的投影来将与所选择的卫星相关联的GPS信号从 初始块中移除。服务器116继续选择具有最强信号的卫星和移除与所选择的卫星相关联的 信号的过程直到满足停止条件(例如,识别出可以计算移动设备102的位置的足够的卫星)、 识别出所有可见卫星或剩余的信号不够强到可靠地识别进行广播的卫星为止。
[0030] 一旦确定了可见卫星的集合,服务器116将多个块上的可见卫星的集合进行相关。 由于块如此小(例如长度为2ms),非预期的无线干扰或其他噪声可能使由移动设备102收集 的GPS信号严重恶化并且导致卫星在单个的块中被不正确地检测。由此,通过收集具有各种 间隙的多个块并且对每个块中识别到的卫星进行比较,可以提高所确定的位置122的整体 准确性。
[0031] 因此,使用单个的块识别的可见卫星的集合中的每个卫星可能是好的(即,可见卫 星)、坏的(即,错误的识别)、或未知的(即,不能被分类为好的或坏的识别)。在一个示例中, 服务器116将针对GPS信号114的每个块的可见卫星的集合中的每个卫星设置为"未知"状 态。服务器116通过在所有块上对与每个卫星相关联的数据进行比较来确定好的和坏的卫 星。例如,在一个实现中,服务器116计算针对所有块上的每个卫星检测到的码相位的差,并 且如果该差小于第一阈值,则服务器将卫星识别为"好的",并且如果该差大于第二阈值,则 将卫星识别为"坏的"。其余的卫星以及仅在单个块中可见的任何卫星随后被标记为"未 知"。
[0032]使用好的卫星,可以估计位置122。例如,服务器116可以使用块被收集的时间、好 的卫星的ID、与好的卫星有关的星历数据(可以从NASA轨道数据库中获取的或者从GPS信号 114中解码的)以及伪距来计算移动设备102的位置。
[0033]尽管参照GPS进行了描述,但本文描述的技术中的任一个可以与他全球或区域卫 星导航系统相结合地来实现。在一些情况中,利用能够从两个或更多个不同卫星导航系统 接收信号的卫星-导航接收器来使用这些技术。作为示例,其他的全球和/或区域卫星导航 系统可以包括全球导航卫星系统(GL0NASS)、伽利略、北斗、Compass、印度区域导航卫星系 统(IRNSS)、或准天顶卫星定位系统(QZSS)、以及其它。
[0034]图2是根据一些实现的GPS系统200的示例框架的框图。GPS系统200包括移动设备 102、服务器116、美国地质勘探局(USGS)海拔API数据库202、以及NASA轨道数据库204。 [0035]移动设备102包括对GPS信号进行采样的一个或多个GPS接收器以及将GPS信号数 据120提供给服务器116并且继而接收位置信息122的一个或多个通信接口。服务器116包括 一个或多个处理器206、通信接口 208、计算机可读存储介质210。通信接口 208可以由处理器 206访问以通过网络(例如,图1的网络118)来将数据传送到移动设备102或从移动设备102 传送数据。
[0036] 计算机可读存储介质210中可以存储任何数量的程序模块、应用程序、或部件,作 为示例,包括位置过滤指令212、卫星识别指令214以及卫星分类指令216。位置过滤指令212 存储在计算机可读存储介质210中,并且可以由处理器206执行以使得服务器116基于好的 卫星的集合来确定移动设备102的位置。卫星识别指令214可以由处理器206执行以使得服 务器116根据GPS信号数据120识别可见卫星的集合。卫星分类指令216可以由处理器206执 行以使得服务器116从由卫星识别指令214确定的可见卫星的集合中识别好的卫星的集合。
[0037] 如在本文中使用的,"计算机可读介质"包括计算机存储介质和通信介质。计算机 存储介质包括以用于信息的存储的各种方法或技术实现的易失性和非易失性、可移动和不 可移动的介质,所述信息例如是计算机可读指令、数据结构、程序模块、或其他数据。计算机 存储介质包括但不限于随机存取存储器(RAM)、只读存储器(R0M)、电可擦除可编程ROM (EPROM)、闪速存储器或其他存储器技术;压缩盘ROM(CD-ROM)、数字多功能盘(DVD)或其他 光学存储;磁带盒、磁带、磁盘存储或其他磁性存储设备;或可以用于存储用于由计算设备 访问的信息的任何其他有形介质。
[0038] 相反,通信介质可以在诸如载波等的调制的数据信号中实现计算机可读指令、数 据结构、程序模块、或其他数据。如本文中定义的,计算机存储介质不包括通信介质。
[0039] USGS海拔API数据库202可以由服务器116经由通信接口 208访问,以使得服务器 116能够取回与由服务器116确定的位置有关的海拔数据。通常,服务器116将炜度和经度坐 标提供给USGS海拔API数据库202并且继而接收与该坐标有关的海拔数据。
[0040] NASA轨道数据库204也可以由服务器116经由通信接口 208访问并且用于取回与 GPS卫星104-112有关的历书和星历数据。历书数据与地球轨道中的卫星的粗轨道(coarse orbit)和状态有关。星历数据与卫星的位置和轨迹有关。
[00411 USGS海拔API数据库202和NASA轨道数据库204是服务器116可以从其中取回海拔、 历书、以及星历数据的各种数据库的两个示例。例如,美国地质勘查局计算GPS卫星的轨道、 位置、和轨迹,并且使该轨道、位置、和轨迹在网络上公开可用。
[0042] 在示例中,移动设备102经由通信接口 208中的至少一个将包括原始GPS信号的多 个块以及与GPS信号被采样时相对应的时间戳在内的GPS信号数据120提供给服务器116。在 一些情况中,GPS信号数据120从移动设备102中进行下载,并且在其他情况中,GPS信号数据 120经由无线或移动网络从移动设备102来进行接收。
[0043] 一旦GPS信号数据120被接收,则位置过滤指令212使得处理器206确定移动设备 102的位置。为了计算移动设备102的位置,服务器116需要确定GPS信号被采样的时间、进行 广播的(可见的)GPS卫星、与可见卫星有关的星历、以及伪距。
[0044] 在示例中,服务器116通过执行卫星识别指令214和卫星分类指令216来识别哪些 GPS卫星对移动设备102可见。当被执行时,卫星识别指令214在GPS信号数据120中接收的块 中的每个块上执行捕获以识别可见卫星的集合。在一个实现中,卫星识别指令214先针对每 个块将可见卫星的集合初始化为空集合,因为最初移动设备102还没有检测到C/A码模板中 的任一个。接下来,针对每个块,卫星识别指令214针对所有可能的卫星ID、码相位以及多普 勒频率组合来搜索GPS信号以选择具有由移动设备102采样的最强的信号的卫星。如上文描 述的,卫星识别指令214可以通过C/A码模板以每个卫星的码相位以及可能的多普勒频率进 行迭代,来识别最强的信号。
[0045] 一旦选择了卫星,将与所选择的卫星相关联的GPS信号从块中移除,并且将所选择 的卫星添加到可见卫星的集合。例如,卫星识别指令214可以通过执行到由所选择的卫星的 C/A码模板确定的合适的信号子空间上的投影来将与所选择的卫星相关联的GPS信号从块 中移除。
[0046]卫星识别指令214重复选择最强信号的过程直到满足停止条件为止。例如,停止条 件可以在实现对预定数量的卫星的识别(例如,识别出可以计算移动设备102的位置的足够 数量的卫星)、识别出所有可见卫星和/或块中的其余信号没有强到可靠地识别进行广播的 卫星时被满足。匹配追踪和正交匹配追踪算法是该过程的示例。以这
种方式,可以针对由移 动设备102提供的GPS信号114的每个块来确定可见的卫星的集合。
[0047] 一旦确定了可见的卫星的集合,卫星分类指令216使得服务器116将多个块上的可 见卫星的集合进行相关。由于块是如此的小(例如,长度为2ms),因此非预期的无线干扰或 其他噪声可能使GPS信号严重恶化并且使得卫星在单个样本内被不正确地检测。由此,通过 收集具有各种间隙的多个块并且对在每个块中被识别的卫星进行比较,被确定的位置122 的整体准确性能够得到改进。
[0048]如上文讨论的,使用单个块识别的可见卫星的集合中的每个卫星可能是好的(即, 可见卫星)、坏的(即,错误的识别)、或未知的(即,不能被分类为好的或坏的识别)。在一个 示例中,卫星分类指令216将针对作为GPS信号数据120的一部分被接收的每个块的可见卫 星的集合中的每个卫星设置为"未知"状态。
[0049]卫星分类指令216通过对与所有块上的每个卫星相关联的数据进行比较来确定好 的和坏的卫星。例如,在一个实现中,卫星分类指令216使得服务器116计算针对与特定卫星 相对应的每个样本检测到的码相位的差。如果该差小于第一阈值,则卫星被分类为"好的", 并且如果该差大于第二阈值,则卫星被分类为"坏的"。其余的卫星(即,大于第一阈值但是 小于第二阈值的卫星)以及仅在一个样本中可见的任何卫星被分类为"未知的"。为了使用 "好的"卫星来估计位置122,服务器116首先确定每个GPS信号被移动设备102采样的时间、 与好的卫星相关联的星历以及伪距。
[0050] 在一个实现中,该时间从移动设备接收,作为由移动设备102提供的时间戳,其是 作为GPS信号数据120的一部分。在另一个实现中,该时间可以从GPS信号中提取。从GPS信号 中提取的时间通常更加准确,然而,由移动设备102在采样时间处应用的时间戳足够用于计 算合理范围内(即在几米内)的初始位置122。
[0051] 星历可以由服务器116从NASA轨道数据库204取回。在一个特定实现中,服务器116 可以定期地从NASA轨道数据库204取回星历,并且将该信息存储在计算机可读存储介质210 中,以用于在稍后使用,例如GPS信号被采样并且被存储在移动设备102并且在一段时间之 后被下载到服务器116上的情况中。在其他实现中,位置过滤指令212可以使得服务器116对 GPS信号进行解码以确定星历数据。
[0052] 一旦星历数据和时间由服务器116识别出,则位置过滤指令212使得服务器116使 用星历数据和GPS信号来计算好的卫星中的每个的伪距(即码相位和传播延迟)。例如,如果 可以识别出移动设备102的位置122的150千米(km)内的参考位置(例如,蜂窝电话塔),则服 务器116可以使用被称为粗时间导航(CTN)的技术来确定传播延迟。
[0053] 一旦确定了每个卫星的时间戳、码相位和传播延迟,则位置过滤指令212使得服务 器116估计移动设备102的位置122。然而,在一些实例中,可能识别出过少的好的卫星,而不 能准确地估计移动设备102的位置122。如果识别出过少的好的卫星而不能确定位置,则位 置过滤指令212枚举全部的被分类为"未知的"可见卫星并且将每个"未知的"可见卫星添加 到好的卫星的集合并且试图识别位置122。使用坏的(即,被不正确地识别的)卫星估计的位 置将具有错误的、不可能的或不正确的位置(例如,在远高于或低于地球表面的海拔处)。由 此,位置过滤指令212对添加每个卫星之后估计的位置122进行测试以消除错误的位置。例 如,将位置122限制为接近地球表面的海拔范围(例如,5000到8000米(m))中使得消除很多 错误位置。
[0054] 不幸的是,单独地应用海拔范围可能检测不到所有的错误位置。为了消除其余的 错误位置,位置过滤指令212可以使得服务器116经由通信接口 208来访问USGS海拔API数据 库202。服务器116使用炜度和经度坐标取回其余估计的位置122中的每个的地球表面的真 实海拔。位置过滤指令212将确定的海拔与真实海拔相比较,并且消除海拔不匹配的任何位 置。然而,当海拔与USGS海拔数据匹配时,已经识别出GPS信号被采样时的移动设备102的实 际位置122,并且可以将其返回给移动设备102作为位置122。应该理解的是,使用USGS海拔 API数据库202并且对海拔进行比较是用于识别错误的位置的一种可能的技术,并且可以利 用其它的技术。
[0055] 在一些实例中,可能识别出足够的好的卫星以允许在一些卫星仍然被标记为"未 知的"时估计位置122。通过使用这些未知的卫星,可以改进估计的位置122的准确性。例如, 当估计了新的位置并且例如如上文讨论的,使用USGS海拔数据来进行校验时,可以将未知 的卫星中的每个添加到好的卫星的集合。在另一个实例中,可以将使用未知的卫星估计的 新的位置与初始位置相比较,并且如果两个位置在阈值距离内,则可以将未知的卫星考虑 为"好的"并且将新的位置返回给移动设备102作为位置122。该过程可以继续直到可以被标 记为"好的"的所有其余未知卫星已经被测试过。
[0056] 一旦识别出移动设备102的最终位置122,则将位置122提供给移动设备102。在可 替换的实现中,可以将位置122存储在计算机可读存储介质中以用于以后的分析或将其提 供给显示器,以用于例如在科学研究中使用。
[0057]图3是根据一些实现的移动设备102的示例框架300的框图。移动设备102包括一个 或多个处理器302、一个或多个通信接口 304、GPS接收器306、时钟308、以及计算机可读存储 介质310。计算机可读存储介质310被示出为存储位置过滤指令312、卫星识别指令314、卫星 分类指令316以及一个或多个GPS信号样本318。
[0058]利用通信接口 304以将数据传送到服务器,例如,图1和图2中的服务器116。通信接 口 304被配置为利用无线网络进行通信,所述无线网络例如是无线局域网(WLAN)、诸如 蓝牙等的短距离无线网、或诸如通过码分多址(CDMA)系统等的通过蜂窝塔提供的无线 网;或者通过有线连接,例如经由通用串行总线(USB)接口。
[0059] GPS接收器306被配置为接收来自一个或多个卫星(例如,卫星104-112)的GPS信 号。尽管被示出为与移动设备102集成,但GPS接收器306可以是外部、但本地的。外部的GPS 接收器可以通过有线接口(例如USB)或无线接口(例如:蓝牙? )来与移动设备102通信。在 一些情况中,GPS接收器306与通信接口 304中的一个集成。这样的集成模块提供蜂窝连接和 GPS功能。在一些示例中,集成模块的天线由蜂窝和GPS子系统共享。
[0060]时钟308被配置为提供与GPS信号样本被GPS接收器306接收的时间相关联的时间 戳。在一个示例中,时钟308是醫VB接收器。醫VB是无线电台,其经由从位于发射器地点的原 子钟的集合得到的连续的60kHz载波来广播全球的世界时间信号。
[0061 ]在示例中,GPS接收器306定期地对来自卫星104-112的GPS信号进行采样并且GPS 信号样本318中的每个由时钟308加上时间戳。被加上时间戳的GPS信号样本318被存储在计 算机可读存储介质310中或者经由通信接口 304被提供给服务器116,作为GPS信号数据120。 如果GPS信号样本318被提供给服务器116,则移动设备102可以作为响应接收来自服务器 116的位置。如果GPS信号样本318被存储,则信号318可以稍后被下载或提供给服务器116, 或者移动设备102可以利用该样本来识别位置。
[0062]在一些实现中,可以将GPS信号样本318提供给服务器116作为原始样本。在其他实 现中,位置处理可以在服务器116和移动设备102之间分开,并且可见卫星的集合以及相关 联的码相位和多普勒频率可以被提供给服务器116。在一些实例中,GPS信号样本318或信号 数据可以在发送前进行压缩。
[0063] 移动设备102可以用于通用或专用的计算机系统的环境或配置中。示例包括个人 计算机、手持式设备或便携设备、平板设备、多处理器系统、基于微处理器的系统、可编程消 费电子设备、网络PC或具有基于位置的系统的其他设备。
[0064] 在一个特定实现中,移动设备102可以识别位置,而不需要服务器的帮助。例如, GPS接收器306可以对由一个或多个可见卫星广播的GPS信号进行采样。GPS信号样本318可 能是很短的。移动设备102使用时钟308来对每个GPS信号样本318加上时间戳,并且一旦收 集到足够的样本,移动设备将GPS信号样本318划分成小的块(例如长度为1或2ms)并且在这 些块上执行捕获以识别可见卫星的集合。
[0065]针对每个块,移动设备执行卫星识别指令314以识别可见卫星的集合。移动设备 102先将可见卫星的集合初始化为空集合(即,最初还没有在块中检测到任何C/A码模板)。 接下来,移动设备102针对所有可能的卫星ID、码相位以及多普勒频率组合来对块进行搜索 以选择具有最强GPS信号的卫星。例如,移动设备102可以通过C/A码模板以每个卫星的码相 位以及可能的多普勒频率来进行迭代,以识别最强的GPS信号。
[0066] 一旦选择了卫星,则移动设备102将与所选择的卫星相关联的GPS信号从块中移除 并且将所选择的卫星添加到可见卫星的集合。例如,移动设备102可以通过执行到由所选择 的卫星的C/A码模板确定的合适的信号的子空间的投影来将与所
选择的卫星相关联的GPS 信号从块中移除。移动设备102继续选择最强信号和移除与广播该最强信号的卫星相关联 的信号的过程,直到满足停止条件。例如,停止条件可以在预定数量的卫星被分类为"好的" (例如,识别出可以计算移动设备102的位置的足够的卫星)、已经考虑了所有可见的卫星或 者块中的其余信号不够强到可靠地识别进行广播的卫星时被满足。匹配追踪和正交匹配追 踪算法是该过程的不例。
[0067] 一旦确定了可见卫星的集合,则移动设备102执行卫星分类指令316以将多个块上 的可见卫星的集合进行相关。在一个示例中,移动设备102将可见卫星的集合中的每个卫星 设置为"未知的"状态。移动设备102随后通过对与所有块上的每个卫星相关联的数据进行 比较来确定好的和坏的卫星。例如,在一个实现中,移动设备102计算针对所有块上的每个 卫星检测的码相位的差,并且如果该差小于第一阈值,则服务器将该卫星识别为"好的",并 且如果该差大于第二阈值,则将该卫星识别为"坏的"。其余的卫星(大于第一阈值并且小于 第二阈值的那些卫星)以及仅在一个块中检测到的任何卫星被分类为"未知的"。
[0068]使用"好的"卫星,移动设备102通过执行位置过滤指令212来确定位置。例如,移动 设备102可以使用由时钟308提供的时间戳、好的卫星ID的集合、与可见卫星有关的星历(其 可以从NASA轨道数据库获取或者从GPS信号样本318中解码)以及伪距来计算位置。例如,可 以使用星历、移动设备102的150km内的参照位置(例如蜂窝电话塔)以及使用了称为粗时间 导航(CTN)的技术的时间戳来计算传播延迟。
[0069] 图4-图7是示出了用于确定移动设备(例如,图1-图3中的移动设备102)的位置的 示例过程的流程图。该过程在逻辑流程图中被示为一系列框,这些框表示一系列的操作,所 述操作中的一些或全部可以在硬件、软件或其组合中实现。在软件的上下文中,框表示存储 在一个或多个计算机可读介质上的计算机可执行指令,当所述计算机可执行指令由一个或 多个处理器执行时,实施所记载的操作。一般地,计算机可执行指令包括执行特定功能或实 现特定抽象数据类型的例程、程序、对象、部件、数据结构以及其类似。
[0070] 对操作进行描述的顺序不应该被解释为限制。可以以任何顺序和/或并行地对任 何数量的被描述的框进行组合以实现该过程、或可替换的过程,并且不是所有的框都需要 被执行。出于讨论的目的,参照在本文的示例中描述的框架、架构和环境对本文的过程进行 了描述,但是这些过程可以在广泛的各种其他框架、架构或环境中实现。
[0071] 图4是根据一些实现的用于估计移动设备(例如图1-图3中的移动设备102)的位置 的示例过程400的流程图。在402,服务器从移动设备接收多个GPS信号样本和每个样本的时 间戳。例如,移动设备可以收集和发送在各种间隔采样到的原始GPS信号的多个块。在一些 实例中,样本的长度和/或所述间隔可以变化。例如,服务器可以接收一个或多个长的GPS信 号样本,服务器将该长的GPS信号样本划分为块。在一些实现中,服务器可以在GPS信号样本 被收集的时间以外的时间从移动设备下载GPS信号样本。
[0072]在404,服务器从块中识别可见卫星的集合。例如,服务器可以针对所有可能的卫 星ID、码相位以及多普勒频率组合来搜索每个块以选择具有最强信号的卫星。例如,服务器 可以通过C/A码模板以每个卫星的码相位以及可能的多普勒频率来进行迭代,以识别最强 的信号。
[0073] 一旦选择了最强的卫星,服务器将与最强的卫星相关联的GPS信号从块中移除并 且将所选择的卫星添加到可见卫星的集合。例如,服务器可以通过执行到由所选择的卫星 的C/A码模板确定的合适的信号子空间的投影来移除与所选择的卫星相关联的GPS信号。月艮 务器继续重复选择具有最强信号的卫星以及移除与该卫星相关联的信号的过程直到满足 任一个停止条件(例如,识别出可以计算移动设备的位置的足够的卫星、识别出所有的可见 卫星或者块中的其余信号不够强到可靠地识别进行广播的卫星)为止。匹配追踪和正交匹 配追踪算法是该过程的示例。以这种方式,可以针对每个块来确定可见卫星的集合。
[0074]在406,服务器从可见卫星的集合中识别好的卫星的集合。服务器通过将多个块上 的可见卫星的集合进行相关以及将每个可见卫星分类为好的(即,可见卫星)、坏的(即,错 误的识别)、或未知的(即,不能被分类为好的或坏的)来识别好的卫星。例如,服务器可以最 初将每个可见卫星设置为"未知的"状态。服务器通过对与所有块上的每个卫星相关联的数 据进行比较来确定好的和坏的卫星。例如,服务器可以计算每个块的码相位之间的差。服务 器可以将该差与第一阈值进行比较,并且如果该差小于第一阈值,则服务器可以将该卫星 识别为"好的"。然而,如果该差大于第一阈值,则服务器可以将该差与第二阈值比较,并且 如果该差大于第二阈值,则将该卫星识别为"坏的"。服务器可以将其余的卫星(即,具有大 于第一阈值并且小于第二阈值的码相位差的卫星)、以及仅在一个块中可见的任何卫星分 类为"未知的"。
[0075]在408,服务器从NASA轨道数据库取回星历数据。在一个特定示例中,服务器可以 定期地从NASA轨道数据库取回星历和历书数据并且将该信息存储在诸如计算机可读存储 介质310等的存储器中,以用于在稍后使用。当GPS信号样本被收集、存储在移动设备上一段 时间并且被下载到服务器时,对星历和历书数据进行存储是特别有用的。
[0076]在410,服务器可以从星历、好的卫星的集合、时间戳和伪距来估计移动设备的位 置。例如,服务器可以通过使用参照位置来计算CTN从而计算传播延迟。服务器随后可以将 位置提供回移动设备或提供给一个或多个数据库以用于科学研究。
[0077]图4提供了用于通过从一系列GPS信号样本块中识别出卫星的集合来估计移动设 备的位置的示例过程400。图5和图6提供了关于用于识别卫星的集合的可能的实现的更多 细节。
[0078]图5是根据一些实现的用于识别可见卫星的集合的示例过程500的流程图。在502, 服务器将可见卫星的集合初始化为空集合(即,最初,服务器还没有在从移动设备接收的 GPS信号块中识别出C/A码模板中的任一个)。
[0079]在504,服务器针对所有可能的卫星标识符、码相位和多普勒频率组合来搜索GPS 信号块中的一个并且选择最佳匹配。最佳匹配可以通过识别具有块内最强信号的卫星来选 择。例如,服务器可以通过C/A码模板以每个卫星的码相位以及可能的多普勒频率来进行迭 代,以识别最强的信号。
[0080] 在506,服务器将最佳匹配(即,具有样本中最强信号的卫星)添加到可见卫星的集 合。例如,可见卫星的集合可以如下表示:
[0081] x(k)=x(k-i)U|x(k)j
[0082] 其中,X(k)表示可见卫星的集合,x(k)是最佳匹配并且k是迭代过程500的次数。
[0083] 在508,服务器将与最佳匹配相关联的GPS信号从块中移除。例如,服务器可以通过 执行到由所选择的卫星的C/A码模板确定的合适的信号子空间的投影来移除与所选择的卫 星相关联的GPS信号。
[0084]在匹配追踪中,可以如下地使用先前的样本来计算新的信号r(k):
[0086] 其中,x(k)还是最佳匹配并且k是迭代过程500的次数。在正交匹配追踪中,可以如 下地使用先前的样本来计算新的信号r (k):
[0088]其中,Px(k)是到由直到当前迭代k的所有先前识别的C/A码模板张成的子空间上的 正交投影。
[0089]在510,服务器确定是否满足停止条件。例如,停止条件可以是预定数量的卫星识 另Ij(例如,已经识别出可以计算移动设备的位置的足够的卫星)、识别出所有可见卫星或块 中的其余信号不够强到可靠地识别进行广播的卫星。如果满足停止条件,则过程500继续进 行到512并且服务器输出可见卫星的集合,否则过程500返回到504以识别另一个最佳匹配。 [0090]图6是根据一些实现的用于从可见卫星的集合中选择好的卫星的集合的示例过程 600的流程图。在602,服务器接收可见卫星的集合。例如,如上文描述的,可见卫星的集合可 以从移动设备接收或者可以由服务器使用过程500来生成。
[0091]在604,服务器将可见卫星中的每个初始化为"未知的"状态。每个可见卫星可以被 分类为好的(即,可见卫星)、坏的(即,错误的识别)、或未知的(即,不能被分类为好的或坏 的识别)。卫星被初始化为"未知的",这是是因为由于块的小尺寸,非预期的无线干扰或其 他噪声可能使GPS信号严重恶化并且导致卫星被不正确地检测。
[0092]在606,服务器计算多个GPS样本上的每个卫星的码相位之间的差。例如,针对在两 个GPS样本m到112中检测到的卫星1到k的码相位CP1到CPk的差D,可以被如下地计算:
[0094]如果卫星在GPS信号被采样时对移动设备实际可见,则块之间的码相位中的差D相 对小。
[0095]在608,服务器将每个卫星的码相位中的差与阈值相比较,并且如果该差小于阈值 贝IJ将该卫星添加到"好的"卫星的集合。然而,如果卫星的码相位大于阈值,則狠务器可以将 该卫星留在未知卫星的集合中,或者将该差与第二阈值相比较,并且如果该差大于第二阈 值,则将该卫星添加到坏的卫星的集合。
[0096]图4-图6提供了用于从一系列GPS信号样本或块中识别卫星的集合的示例过程。图 7提供了用于使用卫星的集合来估
计位置的示例过程。
[0097]图7是根据一些实现的用于估计移动设备的位置的示例过程700的流程图。在702, 服务器接收好的卫星的集合。例如,可以根据上文描述的过程500和600来确定好的卫星的 集合。在一些实现中,服务器还可以接收未知卫星的集合和可见卫星的集合(即,在过程500 中识别的包括被分类为坏的卫星的卫星的完整集合)。
[0098]在704,服务器使用好的卫星的集合来估计位置。如上文讨论的,服务器可以基于 GPS信号被采样的时间、好的卫星的ID、星历和历书数据(可以从NASA轨道数据库中获取或 从GPS信号样本中解码)以及伪距来估计位置。
[0099]在706,服务器确定服务器是否能够从好的卫星的集合来估计位置。例如,在一些 示例中,可能已经将少于需要用来确定位置的最小数量的卫星识别为好的,并且估计的位 置可能是不可靠或错误的。如果服务器不能估计位置,则过程700继续进行到708并且服务 器一次一个地将可见卫星的集合中的其他卫星中的每个添加到好的卫星的集合,并且重新 估计位置。否则,如果服务器能够估计位置,则过程继续进行到710,并且服务器试图通过使 用其余的未知卫星来改进初始估计的位置的准确性。
[0100] 在708,服务器确定是否有未测试的卫星。如果没有未测试的卫星并且服务器仍然 不能估计位置,则过程700继续进行到712并且服务器输出失败(即,根据从移动设备接收的 GPS样本不能估计出任何位置)。如果仍然有未测试的卫星,则服务器临时地将未测试的卫 星中的一个添加到好的卫星的集合,并且过程700继续进行到714。
[0101] 在714,服务器试图使用更新后的好的卫星的集合来重新估计位置。使用坏的(即, 不正确地被识别的)卫星估计的位置将具有错误的、不可能的或不正确的位置(例如,位于 远高于或低于地球的表面的海拔)。由此,服务器对在添加每个未测试的卫星之后估计的位 置进行测试以消除错误的位置。例如,服务器可以将有效位置限制为接近地球表面的海拔 范围(例如500到8000m之间)内,这导致拒绝使用坏的卫星估计的位置中的许多位置。在其 他示例中,服务器可以访问USGS海拔API数据库以取回使用更新后的好的卫星的集合估计 的位置中的每个位置的地球表面的真实海拔。通过利用可以从USGS海拔API数据库中取回 的真实海拔,服务器能够识别移动设备的错误位置和实际位置二者。
[0102] 在716,如果服务器能够估计位置,则过程700继续进行到718,并且服务器将该位 置输出作为移动设备的位置。例如,当USGS海拔API数据库与使用更新后的好的卫星的集合 估计的位置的经度和维度处的海拔相匹配时,服务器能够估计位置。然而,如果服务器仍然 不能使用更新后的好的卫星的集合来估计位置,则服务器移除被添加到好的卫星的集合的 卫星并且返回到708,并且重复708、712、714、和716。服务器继续将未测试的卫星添加到好 的卫星的集合,并且重新估计位置直到没有卫星被剩余为未测试的或有效位置能够输出为 止。
[0103] 返回到706,如果最初使用好的卫星的集合对位置进行估计,则过程700继续进行 到710。在710,服务器使用与位置有关的定位信息来查看是否可以将任何剩余的卫星添加 到好的卫星的集合。例如,如上文讨论的,服务器可以使用更新后的好的卫星的集合来重新 估计位置并且将新的位置的海拔与从USGS海拔API数据库取回的在该新的位置的经度和维 度处的海拔相比较。在其他示例中,服务器可以对初始位置与新估计的位置之间的距离进 行比较,并且如果该距离小于阈值距离,则确定该新的位置是有效的。
[0104] 在722,服务器利用被识别的卫星来扩充好的卫星的集合。例如,服务器可以基于 定位信息的分析将最初被分类为未知的卫星中的一些添加到好的卫星的集合,如上文讨论 的。
[0105] 在724,服务器使用更新后的好的卫星的集合来重新估计位置,并且在718,服务器 将输出新的位置作为移动设备的位置。例如,服务器可以将位置输出回移动设备或者将位 置存储在数据库中,以用于分析或研究。
[0106]
[0107] ^已经以特定于结构特征和/或方法动作的语言对主题进行了描述,但是应当 理解的是,在所附的权利要求书中定义的主题不必限于所描述的特定特征或动作。确切地 说,这些特定特征和动作被公开作为实现权利要求的示例形式。
【主权项】
1. 一种计算设备,包括: 一个或多个处理器;以及 一个或多个计算机可读介质,其保持能够由所述一个或多个处理器执行的指令,所述 指令用于执行包括以下的操作: 接收全球定位系统(GPS)信号样本的多个块; 针对码相位和多普勒频率组合来在所述多个块中搜索卫星特定的粗/捕获(C/A)码以 识别能够看见的卫星; 针对所述能够看见的卫星中的每个能够看见的卫星,计算第一码相位与第二码相位之 间的差,所述第一码相位与所述多个块中的第一块相关联,并且所述第二码相位与所述多 个块中的第二块相关联; 将每个该差小于阈值差的能够看见的卫星添加到卫星的集合;以及 部分地基于所述卫星的集合来估计位置。2. 根据权利要求1所述的计算设备,还包括: 基于与所述位置有关的数据,确定所述能够看见的卫星中所述码相位的差大于所述阈 值差的能够看见的卫星如果存在的话,其中的哪些能够看见的卫星能够被添加到所述卫星 的集合;以及 部分地基于所添加的卫星来重新估计所述位置。3. 根据权利要求1所述的计算设备,其中,对所述卫星特定的C/A码的搜索是针对所述 块中的每个块而独立地执行的。4. 根据权利要求1所述的计算设备,其中,对所述卫星特定的C/A码的搜索被迭代地执 行直到达到停止条件为止。5. 根据权利要求1所述的计算设备,其中,所述位置是基于所述块被收集的时间、所述 卫星的集合和星历、以及与所述卫星的集合中的每个卫星有关的伪距数据来进行估计的。6. -种方法,包括: 接收第一全球定位系统(GPS)信号块; 通过针对码相位和多普勒频率组合来在所述第一GPS信号块中搜索卫星特定的粗/捕 获(C/A)码,从而从所述第一GPS信号块中识别第一卫星; 将所述第一卫星添加到卫星的集合; 将与所述第一卫星相关联的信号从所述第一GPS信号块中移除; 通过针对所述码相位和多普勒频率组合来在所述第一GPS信号块中搜索所述卫星特定 的C/A码,从而从所述第一GPS信号块中识别第二卫星; 将所述第二卫星添加到所述卫星的集合;以及 输出所述卫星的集合。7. 根据权利要求6所述的方法,还包括: 将与所述第二卫星相关联的信号从所述第一GPS信号块中移除; 通过针对所述码相位和多普勒频率组合来在所述第一GPS信号块中搜索所述卫星特定 的C/A码,从而从所述第一GPS信号块中识别第三卫星;以及 在输出所述卫星的集合之前,将所述第三卫星添加到所述卫星的集合。8. 根据权利要求7所述的方法,还包括: 接收第二GPS信号块; 通过针对所述码相位和多普勒频率组合来在所述第二GPS信号块中搜索所述卫星特定 的C/A码,从而从所述第二GPS信号块中识别第一卫星; 将在所述第二GPS信号块中识别的第一卫星添加到卫星的第二集合; 将与在所述第二GPS信号块中识别的第一卫星相关联的信号从所述第二GPS信号块中 移除; 通过针对所述码相位和多普勒频率组合来在所述GPS信号块中搜索所述卫星特定的C/A码,从而从所述第二GPS信号块中识别第二卫星; 将在所述第二GPS信号块中识别的第二卫星添加到所述卫星的集合;以及 输出所述卫星的第二集合。9. 根据权利要求6所述的方法,还包括: 确定同所述第一GPS信号块相关联的第一码相位与同所述第二GPS信号块相关联的第 二码相位之间的差,所述第一码相位和所述第二码相位与一个卫星相关联; 将所述差与阈值差相比较;以及 当所述差小于所述阈值差时,至少部分地基于与所述第一卫星有关的数据来估计位 置。10. -种存储指令的计算机可读存储介质,当所述指令由一个或多个处理器执行时,使 得所述一个或多个处理器: 接收与从多个全球定位系统(GPS)信号块中识别的多个卫星有关的数据,所述数据包 括多个码相位,所述多个码相位中的每个码相位与所述多个卫星中的一个卫星以及所述多 个GPS信号块中的一个GPS信号块相关联; 针对所述多个卫星中的每个卫星,计算所述多个GPS信号块中的每个GPS信号块的所述 码相位之间的差; 针对所述多个卫星中的每个卫星,将所述差与阈值差相比较,并且当所述差中的多数 小于所述阈值差时,将所述卫星添加到卫星的集合;以及 输出所述卫星的集合。
【专利摘要】一些实现提供了对全球定位系统(GPS)位置的低功率简化的采样。服务器可以被配置为帮助移动设备根据多个小的GPS信号块以及相对应的时间戳来确定位置。例如,服务器可以从GPS信号块中的每个中识别卫星的集合并且通过对GPS信号块中的每个GPS信号块的卫星的集合进行相互比较来确定卫星的第二集合。服务器随后可以基于所述第二卫星的集合来估计移动设备的位置。
【IPC分类】G01S19/21, G01S19/09, G01S19/28
【公开号】CN105492927
【申请号】CN201480047380
【发明人】J·刘, Y·金, T·C·哈特
【申请人】微软技术许可有限责任公司
【公开日】2016年4月13日
【申请日】2014年8月24日
【公告号】CA2919015A1, EP3039452A1, US20150061934, WO2015031215A1