应用于基于服务器的定位系统的定位数据分布的方法及装置
引用结合
本公开要求提交于2013年8月14日的第61/865,751号美国临时申请“PositionData Distribution Applied to Server Assisted Positioning System”的权益,该文献通过完全引用而结合于此。
技术领域
本公开大体上涉及定位数据库管理。更具体而言,本公开涉及用于执行定位数据库管理以提高用于在无线通信网络中的无线设备的、基于服务器的定位性能的方法和装置。
背景技术
这里提供的背景技术描述是为了概括地呈现本公开的背景。在本背景技术章节内所描述的范围内的、本发明人的工作,以及在提交时可以不另外作为现有技术的、该背景技术描述中的方面,既未明确地也未暗示地被承认为针对本公开的现有技术。
现代无线设备可以包含卫星定位系统接收器的功能、蜂窝收发器的功能或者无线收发器的功能。在无线设备作为卫星定位系统接收器工作时,无线设备可以通过仅使用来自卫星的信号来指明设备的定位。基于卫星的定位可以提供高准确度,但是在卫星与无线设备之间需要正的视线。另外,接收和处理卫星定位信号可能消耗大量能量,从而缩短电池使用时间。
设备可以通过运用射频(RF)场传播来与无线通信网络无线地通信。向创建通过空间传播的电磁场的天线供应射频,即在与无线电波传播相关联的电磁频谱内的频率。无线通信网络的部件可以是无线站 (wireless station),例如蜂窝网络的蜂窝基站、或者无线局域网(LAN) 或无线个人局域网(PAN)的接入点。无线站可以允许无线设备通过接入网关与有线网络通信。通常,无线站广播信标信号,该信标信号提供为了无线设备连接到它而必需的关键信息。无线站可以服务于位于地理区域中的无线设备。在无线设备作为蜂窝收发器和/或无线收发器工作时,如果无线设备可以通信到的无线站的位置已知,则无线设备可以通过基于从该无线站接收的信号的强度而三角测量它的定位,来使用该无线站的位置确定它的定位。
作为基于三角测量的定位的备选,基于数据库的定位可以用来通过评估RF测量读值来确定无线电设备的定位。将这些测量读值与数据库的条目比较。对应的计算发现最佳匹配数据库条目,从而产生定位估计。基于数据库的定位可以提供高的准确度并且用于基于网络的定位系统。这一方法未依赖于视线条件,但是从多径环境的更不同的无线电模式受益。仅利用了网络固有参数,从而无需硬件修改并且可以运用传统设备。
发明内容
本公开的各个方面提供一种方法。该方法包括初始化(initiate) 用于将与无线站相关联的定位数据组聚类成多个子集的边界。边界是固定边界,其划分接收信号强度值的空间。然后,该方法包括根据子集的存储在无线站信息表中的聚类边界,从存储在数据库中的该组定位数据提取数据。在一个示例中,该方法重复提取步骤,直至满足重置条件。另外,该方法包括计算用于子集的累计分布函数值。在一个示例中,该方法重复提取步骤和计算步骤,直至满足退出条件。另外,该方法包括:基于将子集的累计分布函数值重置等于阈值,而确定子集的聚类边界;以及在无线站信息表中的用于该组的条目中存储所确定的聚类边界。
在一个实施例中,当在定位数据的子集中的接收信号强度值的标准偏差达到阈值以上时,满足重置条件。在另一实施例中,当在子集中的定位数据的数目达到阈值数目以上时,满足重置条件。在另一实施例中,在用于在定位数据的子集中的接收信号强度值的采样平均值的标准误差达到阈值以上时,满足重置条件。
另外,在一个实施例中,在子集的计算得到的累计分布函数值在阈值以上时,满足退出条件。
本公开的各个方面提供另一种方法。该方法包括:根据下一邻近子集的存储在无线站信息表中的聚类边界,从存储在数据库中的定位数据组提取数据;计算用于下一邻近子集的累计分布函数值;在满足可行条件时,标识下一邻近子集的聚类边界可行;根据邻近子集的存储在无线站信息表中的经更新的聚类边界,从存储在数据库中的该组定位数据提取数据;计算用于邻近子集的累计分布函数值;在满足存在条件时,标识邻近子集的聚类边界可行;基于重置累计分布函数值,确定用于其余子集的聚类边界;以及在无线站信息表中的用于该组的条目中存储所确定的聚类边界。
在一个实施例中,在下一邻近子集的计算得到的累计分布函数值在阈值与阈值和容差值之和之间时,满足可行条件。在另一实施例中,在邻近子集的计算得到的累计分布函数值在以下不等式中的两个边界值之间时,满足存在条件:
1-2CDFT-A-CDFp.sum≤CDFn≤1-2CDFT-CDFp.sum
其中A表示容差值并且是小实数,CDFT表示CDF的阈值,CDFn表示邻近子集的计算得到的CDF值,并且CDFp.sum表示用于在该组中的除了当前子集、邻近子集和下一邻近子集之外的所有子集的CDF 值的部分求和。
在一个实施例中,为了基于重置累计分布函数值确定用于其余子集的聚类边界,可以使用以下等式来计算累计分布函数值::其中D是当前子集、邻近子集和下一邻近子集的CDF 值之和;并且B是其余子集的数目。
在一个实施例中,在不能满足可行条件或存在条件时,累计分布函数值等于阈值。
本公开的各个方面提供一种包括聚类分配模块的系统。聚类分配模块被配置为,执行初始化用于将与无线站相关联的定位数据组聚类成多个子集的边界。边界是固定边界,其划分接收信号强度值的空间。聚类分配模块被配置为,根据子集的存储在无线站信息表中的聚类边界,从存储在数据库中的该组定位数据提取数据。另外,聚类分配模块被配置为重复提取操作直至满足重置条件。另外,聚类分配模块被配置为计算用于子集的累计分布函数值。在一个实施例中,聚类分配模块被配置为重复提取操作和计算操作直至满足退出条件。然后,聚类分配模块被配置为:基于将子集的累计分布函数值重置等于阈值,而确定子集的聚类边界;并且在无线站信息表中的用于该组的条目中存储所确定的聚类边界。
在另一实施例中,聚类分配模块被配置为:根据下一邻近子集的存储在无线站信息表中的聚类边界,从存储在数据库中的该组定位数据提取数据;计算用于下一邻近子集的累计分布函数值;在满足可行条件时,标识下一邻近子集的聚类边界可行;根据邻近子集的存储在无线站信息表中的经更新的聚类边界,从存储在数据库中的该组定位数据提取数据;计算用于邻近子集的累计分布函数值;在满足存在条件时,标识邻近子集的聚类边界可行;基于重置累计分布函数值而确定用于其余子集的聚类边界;以及在无线站信息表中的用于该组的条目中存储确定的聚类边界。
附图说明
将参照以下附图具体描述本公开的作为示例提出的各种实施例,其中相似标号指代相似单元,并且其中:
图1根据本公开的一个实施例示出定位系统示例100的图;
图2根据本公开的一个实施例示出用于定位数据的示例;
图3根据本公开的一个实施例示出服务器示例310的框图;
图4根据本公开的一个实施例示出概括过程示例400的流程图;并且
图5根据本公开的一个实施例示出概括过程示例500的流程图。
具体实施方式
图1根据本公开的一个实施例示出定位系统示例100的图。如图所示,系统100包括其中每个动作以提供特定功能的多个部件。这些部件包括存储于在存储装置中然后在处理器上执行以提供功能的软件、被适配为提供部件的功能的硬件、或者一起工作以提供部件的功能的软件和硬件的组合。
系统100包括网络101、定位服务器110、以及多个无线设备比如无线设备150和160。网络101包括被配置为经由无线信号与无线设备通信的多个无线站105比如无线站WS-A至WS-C。定位服务器 110存储了先前获得的定位数据的数据库。每个定位数据将位置的定位信息与在该位置的无线通信指纹相关联。在一个示例中,无线通信指纹包括:无线站的标识符,该无线站覆盖了在该位置的无线通信;以及在该位置接收的无线信号的特性。在数据库中的定位数据被管理成与无线站相关联的分组。进一步地,与无线站相关联的一组定位数据被聚类成子集。
根据本公开的一个方面,定位服务器110被配置为确定用来将一组的定位数据聚类成子集的边界。另外,定位服务器110被配置为响应于来自无线设备的定位请求而选择子集之一,并且基于被选择的子集而确定无线设备的定位。在一个实施例中,确定了边界以提高定位确定的准确度。在一个示例中,定位服务器110被配置为确定边界值以向子集中均匀地填充定位数据。
在图1的示例中,网络101包括单个网络或者相同或不同类型的多个网络。在一个示例中,网络101包括与蜂窝网络连接的光纤网络。另外,网络101可以是数据网络或者与数据网络连接的远程通信或视频分发(例如线缆、地面广播或者卫星)网络。可以使用远程通信网络、视频/音频分发网络和数据网络(无论是全球的、国家的、地区的、广域的、局域的还是家庭内的网络)的任何组合,而未脱离本公开的精神和范围。
根据本公开的一个实施例,无线站105可以是在蜂窝网络中的蜂窝基站。每个无线站105根据各种无线技术,比如全球移动通信系统 (GSM)、码分多址(CDMA)、宽带码分多址(WCDMA)、长期演进(LTE)等技术,被配置为使用射频信号以与无线设备通信。蜂窝网络的蜂窝基站可以广播信标信号,该信标信号提供标识符(例如小区全球标识符),以便多个无线设备在该无线设备在该蜂窝基站的通信范围内时连接到它。反过来,对于无线设备,多个蜂窝基站也可以是可用的。如在图1的示例中所示,无线设备160可以连接到蜂窝基站WS-A,并且蜂窝基站WS-A可以是用于无线设备160的服务基站。服务基站WS-A可以向无线设备160提供电话服务,并且/或者可以通过使用网关向定位服务器110提供向广域网(WAN)比如因特网的通信接入并且通过提供该通信接入来中继传输。在无线设备 160无线连接到服务基站WS-A的同时,无线设备160也可以从邻近基站WS-B和WS-C接收信标信号。
根据本公开的另一实施例,无线站105可以是在无线局域网 (LAN)或者无线个人局域网(PAN)中的接入点。每个无线站105 根据各种通信协议,比如基于电气和电子工程师协会(IEEE)802.11 的协议(例如WiFiTM网络)或者基于IEEE 802.15的协议(例如BluetoothTM网络),而被配置为使用射频信号以与无线设备通信。接入点可以广播信标信号,该信标信号提供标识符(例如介质访问控制 (MAC)地址),以便多个无线设备在无线设备在挂起接入点的通信范围内时连接到它。反过来,对于无线设备,多个接入点也可以是可用于连接的。这些标识符无需与无线设备连接的或可以连接的接入点相关联。可以在定位估计中使用由无线设备取回(retrieve)的接入点标识符的所有。如在图1的示例中所示,无线设备160除了位于接入点WS-B和WS-C的通信范围内之外,还位于接入点WS-A的通信范围内。无线设备160可以在WiFiTM网络中使用的无线通信协议下来识别接入点WS-A至WS-C。接入点WS-A至WS-C可以通过接入点的MAC地址被识别。接入点WS-A可以通过向定位服务器110提供向WAN比如因特网的通信接入来中继传输。
根据本公开的另一实施例,无线站105包括在蜂窝网络中的第一多个蜂窝基站、以及在无线LAN中的第二多个接入点。如在图1的示例中所示,无线设备160可以无线连接到蜂窝基站WS-A,并且蜂窝基站WS-A可以是用于无线设备160的服务基站。服务基站WS-A 可以向无线设备160提供电话服务和/或网络(例如因特网)接入。尽管无线设备160连接到服务基站WS-A,但是无线设备可以从接入点 WS-B和WS-C接收信标信号。
无线设备可以是被配置为使用无线信号来与无线站105通信的任何类型的移动设备,比如膝上型计算机、平板计算机、智能电话、可佩戴电子设备等。无线设备可以包括:硬件,包括但不限于用于执行和存储指令的处理器和存储器;软件,包括操作系统和一个或者多个应用。无线设备可以具有多个处理器以及多个共享的或分离的存储器部件。在一个示例中,无线设备可由人携带。在另一示例中,无线设备可安装于车辆上。
定位服务器110包括用于数据库管理和定位确定的多个部件。如在图1的示例中所示,定位服务器110包括处理器111和存储介质 114。在一个示例中,定位服务器110可以包括多于一个处理器和存储介质。在一个示例中,定位服务器110是使用分布式系统来实施的,该分布式系统包括通过网络耦合在一起的多个处理器和/或多个存储介质。存储介质114存储定位数据130。定位数据可以将位置与无线指纹(比如无线站105的标识符以及无线信号特性)相关联。此外,存储介质114存储各种软件指令,比如用于数据库管理和定位确定的服务器应用。在一个示例中,处理器111执行服务器应用以提供数据库管理和定位服务。
根据本公开的一个方面,向无线设备安装用于定位的客户端应用。在一个示例中,安装有客户端应用的无线设备向定位服务器110 提供定位数据。在另一示例中,具有客户端应用的无线设备请求来自定位服务器110的定位服务。
在图1的示例中,无线设备160包括用于实现与无线站105的无线通信的多个部件,比如天线169、接收电路(未示出)、发送电路 (未示出)、处理器(未示出)等。此外,无线设备160还安装有卫星定位系统,比如全球定位系统(GPS)161和客户端应用162。在一个示例中,GPS 161包括用于从四个或者更多个卫星接收信号的接收器(未示出)。信号包括传输定时信息和卫星位置信息。基于接收的信号,GPS 161计算到卫星的距离。然后,将到卫星的距离和卫星位置信息用于确定无线设备160的位置。位置的定位信息主要涉及地理坐标,该地理坐标包括无线设备160的纬度坐标、经度坐标和海拔坐标。在一个示例中,将位置的定位信息表示为一对纬度坐标和经度坐标。
客户端应用162使无线设备160能够与定位服务器110通信。在一个实施例中,无线设备160的用户开启GPS 161以允许无线设备 160提供关于旅程的方向信息。在开启了GPS161时,客户端应用162 例如经由用户界面来请求用户准许向定位服务器110提供定位数据。
在用户经由用户界面准许请求时,客户端应用162提供用于在定位服务器110中形成定位数据的信息。在一个示例中,在某个位置,客户端应用162从GPS 161获得定位信息(例如纬度和经度)。另外,客户端应用162还获得在该位置的无线通信指纹,比如与无线设备 160无线通信的无线站105的标识符以及在该位置的无线信号的特性。在一个示例中,客户端应用162获得接收信号强度指示符(RSSI) 作为在该位置接收的无线信号的特性。另外,客户端应用162还根据网络通信协议(例如用于实施通信协议(比如传输控制协议/互联网协议(TCP/IP)、超文本传送协议(HTTP)等)的软件)向定位服务器110预备消息。消息携带信息以便形成定位数据,比如定位信息、无线站的标识符以及在该位置从该无线站接收的无线信号的特性。然后,无线设备160向无线站发送与消息对应的无线信号,并且无线站经由网络101向定位服务器110转发消息。在带有无线设备160的用户在旅途中移动时,在不同位置,无线设备160具有不同无线指纹,比如与不同无线站通信、具有不同RSSI值等。无线设备160可以向定位服务器110提供与在旅途中不同位置的无线指纹相关联的定位信息。在一个示例中,在定位服务器110接收携带用于形成定位数据的信息的消息时,定位服务器110从消息取回定位信息和关联的无线指纹,比如无线站的标识符以及RSSI值,并且形成可以将定位信息与无线指纹相关联的定位数据。另外,定位服务器110在存储介质114 中存储形成的定位数据。
根据本公开的一个方面,各种无线设备被相似地配置为无线设备 160以从不同位置发送携带用于形成定位数据的信息的消息。定位服务器110接收消息,形成定位数据,并且在存储介质114中存储定位数据。在一个示例中,在定位数据库中存储定位数据。
另外,根据本公开的该方面,定位服务器110管理定位数据库,然后基于定位数据库,定位服务器110向另一无线设备比如无线设备 150提供定位服务。在图1的示例中,无线设备150包括用于实现与无线站105的无线通信的多个部件,比如天线159、接收电路(未示出)、发送电路(未示出)、处理器(未示出)等。此外,无线设备 150还安装有用于定位的客户端应用152。在一个示例中,无线设备 150无GPS,但是需要知道它的定位。
在一个示例中,在某个定位处当无线设备150的用户想要知道定位时,用户经由用户界面向客户端应用152下指令。然后,客户端应用152使无线设备150根据网络通信协议向定位服务器110发送消息。该消息携带定位请求。无线设备150可以在相同消息中或者在不同消息中向定位服务器110提供无线指纹,比如与无线设备150通信的无线站的标识符、在该位置接收的无线信号用的RSSI值等。在一个实施例中,在定位服务器110从无线设备150接收定位请求时,定位服务器110识别与无线设备150通信的无线站。定位服务器110取回与该无线站相关联的一组定位数据。另外,定位服务器110从该无线站用的该组定位数据中选择子集,该子集具有与无线设备150在其位置相似的信号特性(例如在相同范围中的RSSI值)。然后,定位服务器110基于从该组定位数据选择的子集来确定无线设备150的定位。在一个示例中,将定位信息表示为一对纬度坐标和经度坐标。定位服务器110根据在该组定位数据中的子集来计算位置的平均值或者加权平均值作为定位结果。在该示例中,定位服务器110根据网络通信协议向无线设备150发送携带定位结果的响应消息。
根据本公开的一个方面,定位服务器110被配置为确定用于将与无线站相关联的一组定位数据聚类成子集的边界。在一个实施例中,定位服务器110确定用于信号特性比如RSSI值等的边界值,以对该组的定位数据进行聚类。
在一个示例中,初始地,定位服务器110均匀地划分RSSI值空间。例如RSSI值域为从0至100,并且初始地,定位服务器110将RSSI值空间均匀地划分成三个子集。因此,该组的定位数据被聚类成具有从0至33的RSSI值的第一子集、具有从34至66的RSSI值的第二子集、和具有从67至100的RSSI值的第三子集。在另一示例中,在该组中的最大RSSI是90,并且在该组中的最小RSSI是10,而且初始地,定位服务器110将从最小RSSI至最大RSSI的RSSI值空间均匀地划分成四个子集。例如该组的定位数据被聚类成具有从10 至30的RSSI值的第一子集、具有从31至50的RSSI值的第二子集、具有从51至70的RSSI值的第三子集和具有从71至90的RSSI值的第四子集。
另外,根据本公开的一个方面,定位服务器110被配置为改变边界值以将该组的定位数据重新聚类成新子集以便提供更准确定位确定服务。在一个实施例中,定位服务器110被配置为动态地改变用于新子集的边界值以在子集中均匀地填充定位数据。在一个示例中,在接收一个或者多个新定位数据时,定位服务器110确定是否需要更新边界值。例如定位服务器110接收用于一个或者多个子集的指示总体 (population)均匀性的统计参数,比如累计分布函数(CDF)。然后,定位服务器110比较统计参数与阈值,并且基于该比较来确定是否更新边界。另外,在一个示例中,为了更新用于子集的边界,定位服务器110确定用于子集的CDF的值并且根据确定的CDF确定边界。以下将参照图4至5描述聚类分配过程的更多细节。
图2根据本公开的一个实施例示出用于定位数据的一个示例。定位数据使以表230的格式存储的。表230包括用于位置的第一字段232 以及用于无线指纹的第二字段236。在图2的示例中,将位置表示为一对纬度坐标和经度坐标,并且将无线指纹表示为无线站的标识符以及在该位置从无线站接收的RSSI值。
例如在第一位置(位置1),无线设备可以从无线站WS-A接收无线信号。然后,在定位数据中,第一字段存储用于第一位置的纬度 (LAT-1)和经度(LON-1),并且第二字段存储无线信号的指纹,该指纹包括无线站WS-A的标识符以及在第一位置从无线站WS-A接收的RSSI值(例如50)。在一个示例中,无线设备可以从多于一个无线站接收无线信号。例如,在第三位置(位置3),无线设备可以从无线站WS-A和无线站WS-B二者接收无线信号。然后,在定位数据中,第一字段存储用于第三位置的纬度(LAT-3)和经度(LON-3),并且第二字段存储无线信号的指纹,该指纹包括与在第三位置从无线站WS-A接收的RSSI值(例如40)相关联的无线站WS-A的标识符、以及与在第三位置从无线站WS-B接收的RSSI值(例如20)相关联的无线站WS-B的标识符。
在本公开的一个实施例中,可以在任何适当格式的数据库中存储定位数据。在一个示例中,定位数据是以如下格式存储的,该格式用于帮助提取与无线站相关联的一组定位数据,用于并且帮助从该组提取具有特定信号特性的定位数据子集。在一个示例中,根据存储在无线站信息表中的聚类边界而将与无线站相关联的每组定位数据聚类成子集。
在一个示例中,定位服务器110包括用于蜂窝网络的第一无线站信息表。第一无线站信息表包括多个字段比如23个字段等,用于存储聚类信息。在第一无线站信息表中的每个条目对应于用于一组定位数据的聚类信息,该定位数据与在蜂窝网络中的蜂窝基站相关联。在一个示例中,该组定位数据根据RSSI值被聚类成三个子集。23个字段是(1)蜂窝技术类型的标识(Id)、(2)移动国家代码(MCC)、 (3)移动网络代码(MNC)、(4)局域代码(LAC)、(5)小区标识符(Ci)、(6)蜂窝基站的纬度(Lat)、(7)蜂窝基站的经度 (Lon)、(8)用于该组定位数据的不确定性误差(Uncert Error)、 (9)在该组定位数据中的数据的总数(DataNum)、(10)用于定位数据的第一子集的不确定性误差(Uncert1)、(11)在定位数据的第一子集中的数据的数目(Data Num1)、(12)用于定位数据的第二子集的不确定性误差(Uncert2)、(13)在定位数据的第二子集中的数据的数目(Data Num2)、(14)用于定位数据的第三子集的不确定性误差(Uncert3)、(15)在定位数据的第三子集中的数据的数目(DataNum3)、(16)覆盖范围(Cover Range)、(17)RSSI 阈值(RSSI Thrshld)、(18)第一RSSI边界值(RSSI1)、(19) 第二RSSI边界值(RSSI2)、(20)第三RSSI边界值(RSSI3)、 (21)第四RSSI边界值(RSSI4)、(22)最新近查询时间(Inquiry Time)和(23)最新近更新时间(UpdateTime)。
根据在第一无线站信息表中的条目,与无线站相关联的定位数据被聚类成三个子集。例如,从定位数据库提取了与由字段(2)-(5) 标识的无线站相关联的一组定位数据。该组定位数据具有在第一RSSI 边界与第四RSSI边界值之间的RSSI值。然后,该组定位数据根据边界值被聚类成第一子集、第二子集和第三子集。例如,用于该组的定位数据的第一子集具有在第一RSSI边界值与第二RSSI边界值之间的 RSSI值;用于该组的定位数据的第二子集具有在第二RSSI边界值与第三RSSI边界值之间的RSSI值;用于该组的定位数据的第三子集具有在第三RSSI边界值与第四RSSI边界值之间的RSSI值。
在另一示例中,定位服务器110包括用于无线LAN的第二无线站信息表。第二无线站信息表包括多个字段比如18个字段等,以便每个条目存储聚类信息。在第二无线站信息表中的每个条目对应于用于与在无线LAN中的接入点相关联的一组定位数据的聚类信息。在一个示例中,根据RSSI值将该组定位数据聚类成两个子集。18个字段是(1)无线LAN类型标识(Id)、(2)移动国家代码(MCC)、 (3)介质访问控制(MAC)、(4)接入点的纬度(Lat)、(5)接入点的经度(Lon)、(6)用于该组定位数据的不确定性误差(Uncert Error)、(7)在该组定位数据中的数据的总数(Data Num)、(8) 用于定位数据的第一子集的不确定性误差(Uncert1)、(9)在定位数据的第一子集中的数据的数目(Data Num1)、(10)用于定位数据的第二子集的不确定性误差(Uncert2)、(11)在定位数据的第二子集中的数据的数目(DataNum2)、(12)覆盖范围(覆盖范围)、 (13)RSSI阈值(RSSI Thrshld)、(14)第一RSSI边界值(RSS1)、 (15)第二RSSI边界值(RSS2)、(16)第三RSSI边界值(RSS3)、 (17)最新近查询时间(Inquiry Time)和(18)最新近更新时间(Update Time)。例如从定位数据库提取与由字段(2)-(3)标识的接入点相关联的一组定位数据。
根据在第二无线站信息表中的条目,与接入点相关联的定位数据被聚类成两个子集。例如,从定位数据库提取了与由字段(2)-(3) 标识的接入点相关联的一组定位数据。该组定位数据具有在第一RSSI 边界与第三RSSI边界值之间的RSSI值。然后,该组定位数据根据边界值被聚类成第一子集和第二子集。例如用于该组的定位数据的第一子集具有在第一RSSI边界值与第二RSSI边界值之间的RSSI值;并且用于该组的定位数据的第二子集具有在第二RSSI边界值与第三 RSSI边界值之间的RSSI值。
根据本公开的一个方面,频繁地(比如实时地、或者在特定时间、或者在特定时间段期间、或者每天)更新定位数据的数据库。定位数据的总体分布可以变化。在一个实施例中,定位服务器,比如定位服务器110被配置为动态地调整聚类边界以维持跨越(across)子集相对均匀的总体。
图3根据本公开的一个实施例示出定位服务器示例310的框图。如图所示,定位服务器310包括各自动作以提供特定功能的多个单元。这些单元包括:软件,存储于存储器中,然后在处理器上执行以提供功能的;硬件,被适配为提供单元的功能;或者一起工作以提供单元的功能的软件和硬件的组合。
定位服务器310被配置为动态地调整聚类边界以执行聚类分布。定位服务器310包括数据库371、数据管理器351和无线站信息表361。这些单元如图3中所示耦合在一起。定位服务器310可以包括其它适当部件(未示出),比如数据取回器、数据处理器、位置估计器等。
数据库371存储先前获得的定位数据。在一个示例中,每个定位数据存储与在位置的无线指纹(例如无线站的标识符以及从该无线站接收的RSSI值)相关联的、用于该位置的定位信息(例如纬度和经度)。在一个示例中,在分层文件夹结构之下组织数据库371,并且文件夹被映射到在文件系统中的索引簿。
数据管理器351包括聚类分配模块352,该聚类分配模块352被配置为动态地调整每个组中的子集的聚类边界。在一个实施例中,聚类分配模块352动态地调整聚类边界,使得该组的子集具有相对相等的总体。在一个示例中,聚类分配模块352为每个子集确定累计分布函数(CDF)的值。CDF是基于在每个子集中的总体分布而计算得到的。在用于子集的CDF值在范围中时,子集被配置为可能具有跨越子集相对均匀的总体;并且在用于子集的CDF值在范围以外时,聚类分配模块352使用适当算法以确定用于重新限定子集的RSSI边界值,以便实现跨越用于该组的子集相对均匀的总体。然后,用于该组的更新的RSSI边界值存储在无线站信息表361中。
在无线站信息表中,每个条目对应于用于与无线站(例如蜂窝基站或者接入点)相关联的一组定位数据的聚类信息。用于无线站的该组定位数据可以根据存储在无线站信息表361中的聚类边界而被聚类成多个子集。以下将参照图4和图5描述聚类分配过程的更多细节。在一个示例中,无线站信息表361包括用于蜂窝网络的第一无线站信息表。另外,无线站信息表361还包括用于无线LAN的第二无线站信息表。
根据本公开的一个方面,每个定位数据将位置的定位信息与用于在该位置提供无线连接的无线站的标识符和在该位置接收的无线信号的强度相关联。在一个示例中,当在待覆盖的区域内的多个位置测量信号强度时,测量的信号强度的值遵循高斯分布。
根据本公开的一个方面,据根据信号特性比如RSSI值,而将与无线站相关联的该组定位数聚类成子集。每个子集由聚类边界限定。在一个示例中,聚类边界包括上聚类边界和下聚类边界、可以按照 CDF来表达子集的概率。在一个示例中,使用等式1来计算CDF:
等式1
其中SU表示用于子集的上聚类边界;SL表示用于子集的下聚类边界;表示在该组定位数据中的RSSI值的平均值;σS表示在该组定位数据中的RSSI值的标准偏差;并且P表示概率。在一个示例中,假设为高斯分布,则使用等式2来计算Φ:
等式2
在一个实施例中,在子集的CDF值比阈值大得多时,它意味着子集的聚类边界可能不可实现定位数据具有跨越用于该组的子集均匀的总体。在一个示例中,可以使用等式3用公式表示阈值:
等式3
其中K是子集数目。在一个示例中,K是实数,并且可以可被配置为微调确定性(例如子集的区间更大可以导致在使用定位数据的子集来确定无线设备的定位信息时可靠度更高)与精确度(例如子集的区间更小可以导致在使用定位数据的子集来确定无线设备的定位信息时无线设备的定位更准确)之间的平衡。
在操作期间,在一个示例中,在无线设备(比如如图1中所示的无线设备160)从不同位置发送携带着用于形成定位数据的信息的消息时,定位服务器310接收消息,形成定位数据,并且在存储介质中存储该定位数据。在一个示例中,定位服务器310包括数据取回器(未示出)。数据接收器被配置为接收携带信息的消息,并且被配置为根据无线站信息表对信息进行整理(sort)。例如,数据接收器检测到无线站,并且在无线站信息表中选择标识该无线站的条目(例如在第一无线站信息表中选择的条目的字段(2)至(5)中的MCC、MNC、 LAC和Ci与无线站的标识符匹配)。然后,根据该信息,数据接收器基于时间段形成与无线站关联成组的定位数据。注意到,在无线站信息表中的没有条目标识检测的无线站时,可以生成新的条目。
另外,在一个示例中,定位服务器310包括数据处理器(未示出)。数据处理器被配置为:分析定位数据,从定位数据排除一个或者多个无关定位数据,以及组合当前定位数据与在数据库371中的历史定位数据。此外,在一个示例中,定位服务器310包括位置估计器(未示出)。位置估计器被配置为:确定无线站的估计的位置(例如在第一无线站信息表中的条目的字段(6)和(7)中的蜂窝基站的纬度和经度),计算不确定值(例如在第一无线站信息表中的条目的字段(8) (10)、(12)、(14)中的不确定性误差),以及计算覆盖区域长度和传输信号范围(例如在第一无线站信息表中的条目的字段(16) 和(17)中的覆盖范围和RSSI阈值)。定位数据库371中存储定位数据。
在一个实施例中,当在无线站信息表中没有条目表示检测到的无线站时,可以生成与无线站相关联的新条目。在一个示例中,定位服务器310初始化用于新条目的聚类边界,并且可以根据初始化的聚类边界将与无线站相关联的该组定位数据聚类成子集。在一个示例中,在该组定位数据中的最大RSSI值用来限定用于该组的上聚类边界 (S1),并且在该组定位数据中的最小RSSI值用来限定用于该组的下聚类边界(S2)。
另外,定位服务器310确定在上聚类边界与下聚类边界之间的初始边界,以将该组定位数据的空间均匀地划分成K个子集(K是正整数)。初始边界可以表示为[S1,S1-S′,S1-2S′,...,S1-(K-1)S′,S2],其中S′=(S1-S2)/K是在两个相邻边界之间的区间。子集的聚类边界被存储到在无线站信息表中的与无线站相关联的条目中。
在该示例中,用于该组的定位数据的第一子集具有在S1与S1-S′之间的RSSI值,其中S1是用于第一子集的上聚类边界,并且S1-S′是用于第一子集的下聚类边界。用于该组的定位数据的第K个子集具有在S1-(K-1)S′与S2之间的RSSI值,其中S1-(K-1)S′是用于第K个子集的上聚类边界,并且S2是用于第K个子集的下聚类边界。
另外,在一个实施例中,在定位服务器310接收与无线站相关联的更多定位数据时,定位服务器310评估跨越子集的总体均匀性,并且更新聚类边界以重新分配定位数据以便实现跨越子集相对均匀的总体。
应当注意的是,聚类分配模块352可以使用任何适当算法以将一组定位数据重新聚类成相对相等总体的子集。在一个实施例中,聚类分配模块352向该组中的所有子集指定相等的CDF值,然后确定子集的聚类边界以实现该相等的CDF值。在另一实施例中,聚类分配模块352比如如在图4和5中描述的那样,向子集以及一个或多个邻近子集重新指定CDF值。
图4根据本公开的一个实施例示出概括用于重置子集的聚类边界的过程示例400的流程图。在一个示例中,该过程由在定位服务器310 中的聚类分配模块352执行。该过程在S401开始并且继续至S410。
在S410,聚类分配模块352根据子集的存储在无线站信息表中的子集的聚类边界,从存储在数据库371中的一组定位数据中提取子集的定位数据。
在S420,聚类分配模块352确定对于子集是否满足重置条件。在一个示例中,在定位数据的子集中的RSSI值的标准偏差达到阈值以上时,满足重置条件。阈值与在定位数据的子集中的RSSI分布有关。在一个实施例中,低的标准偏差指示RSSI值很接近总体平均值,这也指示用于子集的空间小并且RSSI值集中在子集的空间中。在RSSI 值集中在子集的空间中时,有限数目的定位数据存在于子集以内。高的标准偏差指示RSSI值在更大的值域内展开,这也指示用于子集的空间大并且RSSI值在子集的空间中散布。在RSSI值在子集的空间中散布时,大量定位数据存在于子集以内。
在另一示例中,在子集中的定位数据的数目达到阈值数目以上时,满足重置条件。阈值数目与在定位数据的子集中的总体分布有关。在一个实施例中,在子集中的空间更大可以导致可靠度更高。
在另一示例中,在用于定位数据的子集中的RSSI值的采样平均值的标准误差达到阈值以上时,满足重置条件。在一个实施例中,在定位数据的总体在相对小的空间中分布时,阈值与在定位数据的子集中的RSSI分布有关。
在一个实施例中,在定位数据的子集中的RSSI分布和/或总体分布对于可靠度水平未足够大时,未满足重置条件。例如在CDF值很小,比如CDF值约为零时。
在满足重置条件时,该过程继续至S430;否则,该过程返回至 S410以提取另一子集的定位数据。
在S430,聚类分配模块352计算子集的CDF值。在一个示例中,聚类分配模块352根据等式1计算子集的CDF值。
在S440,聚类分配模块352比较子集的计算得到的CDF值与阈值。在一个示例中,根据等式3确定阈值。
在S450,聚类分配模块352确定是否满足退出条件。在一个示例中,在子集的计算得到的CDF值在容差范围以上在阈值以上时,满足退出条件。在满足退出条件时,该过程继续至S460以重置用于子集的一个或者多个边界;否则,该过程返回至S410以提取用于另一子集的定位数据。
在S460,聚类分配模块352重置用于子集的CDF值,并且基于 CDF值确定子集的聚类边界。在一个示例中,子集是在该组的子集之中的第一子集或者最后子集,聚类分配模块352确定用于子集的单侧 (one-side)聚类边界。在一个示例中,聚类分配模块352重置子集的CDF值等于CDF阈值,并且根据等式1确定用于子集的单侧聚类边界(例如用于第一子集的下聚类边界或者用于最后子集的上聚类边界)。
在另一示例中,在子集(比如第二子集)在该组的所有子集的中间时,聚类分配模块352确定用于子集的双侧(two-side)聚类边界。在一个实施例中,聚类分配模块352标识当前子集的两个邻近子集,计算用于该两个邻近子集的CDF值,并且选择该邻近子集之一以更新用于被选择的邻近子集和当前子集的聚类边界。例如,在当前子集的上聚类边界的第一邻近子集的CDF值约为阈值,并且当前子集的下聚类边界的第二邻近子集的CDF值小于阈值时,聚类分配模块352 选择第二邻近子集,并且确定用于当前子集的下聚类边界。
在470,聚类分配模块352用确定的聚类边界更新在无线站信息表中的用于该组的条目。应当注意的是,在更新将两个相邻子集分离的聚类边界时,两个子集的总体都改变。在一个实施例中,聚类分配模块352执行过程比如参照图5描述的过程,以更新其它聚类边界以便使得用于所有子集的CDF值都约为阈值(例如在约为阈值的容差范围中)。在用于所有子集的CDF值约为阈值时,该过程继续至499 并且终止。
图5根据本公开的一个实施例示出概括用于确定子集的聚类边界的过程示例500的流程图。在一个示例中,在已经在S470更新了当前子集的在无线站信息表的条目中的聚类边界时,过程500由聚类分配模块352执行。该过程在S501开始并且继续至S510。
在S510,聚类分配模块352根据下一邻近子集的存储在无线站信息表中的聚类边界来从存储在数据库371中的该组定位数据提取数据。在一个示例中,聚类分配模块352已经确定了并且更新了在无线站信息表的条目中的当前子集(称为第一子集)到该邻近子集(称为第二子集)的聚类边界。在改变了聚类边界时,该改变也影响与当前子集共享聚类边界的邻近子集的总体。聚类分配模块352根据更新的聚类边界提取用于下一邻近子集(称为第三子集)的定位数据。在该示例中,第一子集、第二子集和第三子集是三个连续子集。
在S520,聚类分配模块352根据等式1计算下一邻近子集(第三子集)的CDF值。
S530,聚类分配模块352确定是否满足可行条件。在一个示例中,聚类分配模块352确定下一邻近子集(第三子集)的计算得到的CDF 值是否在范围内。例如范围是从CDF阈值到CDF阈值与容差值之和。在满足可行条件时,该过程继续至S540;否则,该过程继续至S580。
在S540,聚类分配模块352根据存储在无线站信息表中的更新的聚类边界而从存储在数据库中的该组定位数据提取邻近子集(第二子集)的定位数据。
在S550,聚类分配模块352根据等式1计算邻近子集(第二子集) 的CDF值。
在S560,聚类分配模块352确定是否满足存在条件。在一个示例中,在邻近子集(第二子集)的计算得到的CDF值满足以下不等式时,满足存在条件:
1-2CDFT-A-CDFp.sum≤CDFn≤1-2CDFT-CDFp.sum
其中A表示容差值并且是小实数,CDFT表示根据等式3计算得到的 CDF的阈值,CDFn表示邻近子集(第二子集)的计算得到的CDF值,并且CDFp.sum表示用于在该组中的除了第一子集、第二子集和第三子集之外的所有子集的CDF值的部分求和。在一个示例中,容差值可配置,并且与在该组中的子集的总数有关。在满足存在条件时,该过程继续至S570;否则,该过程继续至S580。
在570,聚类分配模块352重置用于其余子集的CDF值,并且基于重置的CDF值确定用于其余子集的聚类边界。在一个示例中,根据等式4重置CDF值:
等式4
其中D是当前子集(第一子集)的CDF值、邻近子集(第二子集) 的CDF值以及下一邻近子集(第三子集)的CDF值之和;并且B是其余子集的数目。然后,聚类分配模块352例如根据等式1确定与重置的CDF值对应的子集的聚类边界。
在580,聚类分配模块352重置用于其余子集的CDF值为CDF 阈值,然后根据等式1确定与重置的CDF值对应的子集的聚类边界。
在590,聚类分配模块352在无线站信息表的用于该组的条目中存储确定的聚类边界。该过程继续至599并且终止。
在一个示例中,在数据库中的与无线站相关联的一组定位数据中新添加多个定位数据,并且用于该组定位数据的最大RSSI值和最小 RSSI值不变时,聚类分配模块352可以执行在图4和图5中描述的过程以确定该组的聚类边界。然而在另一示例中,用于该组定位数据的最大RSSI值和/或最小RSSI值在添加多个定位数据之后改变,聚类分配模块352可以重新初始化用于该组的聚类边界,然后执行在图 4和图5中描述的过程以确定该组的聚类边界。
可以在处理系统执行的一个或者多个计算机程序中实施如参照图1-图5描述的特征,该处理系统包括:至少一个可编程处理器,其耦合为从数据存储系统接收数据和指令,并且耦合为向数据存储系统发送数据和指令;至少一个输入设备;以及至少一个输出设备。计算机程序是可以在计算机中直接或者间接用来执行特定活动或者产生特定结果的指令集。计算机程序可以用包括编译或者解译语言的任何形式的编程语言(例如Java、Objective-C)编写,并且可以采用包括作为单独程序或者作为模块、部件、基于浏览器的web应用、或者适合于在计算环境中使用的其它单元的任何形式部署。
各个特征可以在计算机系统中实现,该计算机系统可以包括后端部件(例如数据服务器),或者可以包括中间件部件(例如应用服务器),或者可以包括前端部件(例如具有图形用户界面或因特网浏览器或者其任何组合的计算机)。系统的部件可以被数据通信网络的任何形式或介质连接。在一些实现方式中,通信网络可以包括LAN、 WAN、以及形成因特网的计算机和网络。
计算机系统可以包括客户端和服务器。客户端和服务器一般相互远离并且通常通过网络交互。客户端和服务器的关系是借助在相应计算机上运行并且相互之间具有客户端-服务器关系的计算机程序而产生的。
尽管已经结合本公开的作为示例而提出的具体实施例描述了本公开的各个方面,但是可以市县对各个示例的备选例、修改例和变化例。因而,如这里阐述的实施例旨在于示例而非限制。存在可以在未脱离以下阐述的权利要求的范围的情况下而实现的改变。