移动智能设备室内定位方法
技术领域
本发明涉及一种移动智能设备参与下的室内音频定位方法,属于声波、超声波定位技术领域。
背景技术
近几年,随着智能手机、平板电脑等移动智能设备的普及以及移动互联网的快速发展,已然进入室内导航时代。谷歌、微软、苹果、博通等一些科技巨头,还有一些世界有名的大学和科研院所都在研究室内定位技术。
室内定位技术的商业化将带来一波创新高潮,各种基于该技术的应用将会大量涌现,其影响和规模绝不会逊于卫星定位。我们可以设想一些比较常见的应用场合,比如在大型商场里面借助室内定位技术快速找到逃生出口、直梯、品牌专卖店,家长用它来追踪小孩的位置避免小孩在商场中走丢,根据你的位置打开或关闭电灯,实体店根据用户的具体位置向用户推送更多关于新品、优惠商品的介绍等等,室内定位在越来越多的场景被应用。
然而,目前已有的很多种定位技术都需要大量关联数据的收集、整理,或者应用成本较高,一时间难以推广。例如:谷歌手机地图中关于室内定位的技术主要根据GPS信号、wifi信号、手机基站以及一些“盲点”的具体位置。目前谷歌手机地图的精度还不是很高,后来又发布了一个叫“Floor Plan Marker”的手机应用,用户可以按照指定的步骤来提高室内导航的精度。谷歌手机地图需要获取更多的建筑平面图以提高室内导航的精度。谷歌通过鼓励用户上传建筑平面图的方式解决数据源的问题,另外,用户在使用谷歌的室内导航时,谷歌会收集一些GPS、wifi、基站等信息,通过服务器进行处理分析之后为用户提供更准确的定位服务。
诺基亚推出的是HAIP(High Accuracy Indoor Positioning Based on BLE)技术,并且努力使它成为蓝牙协议的一部分。当然,仅有一个蓝牙模块还不能完成定位,还需要在室内安装一种定位发射台,通过这两者之间的通信完成定位。这种发射台可以覆盖100m×100m的范围,定位精度在30cm~100cm。
IndoorAtlas是一家专注室内导航解决方案的公司,其方案原理是每一个具体位置的磁场信息的不同。不过使用这种技术有其局限性,用户需要上传建筑平面图,然后还需要拿着移动设备绕室内一圈,记录下各个位置的地磁信号特征,这些信息需要上传到IndoorAtlas的服务器,最后,使用IndoorAtlas提供的工具包开发一个应用才能使用室内定位功能。
与IndoorAtlas不同的是,Qubulus公司根据无线电信号(Radio Signature)来定位。每一个位置的无线电信号数量、频度、强度等也是不同的,Qubulus根据这些差异计算出具体位置。使用Qubulus的方案,同样需要整理收集室内的无线电信号。
发明内容
本发明的目的是提供一种低成本的、便捷的、适于大面积推广且定位精度较高的室内定位方法。
本发明的技术方案有:
一种移动智能设备室内定位方法:将室内空间划分成若干个独立的区域,在每个所述区域配置一个具有唯一识别码的定位信源,当持有装载定位信源识别算法的移动终端进入任一区域时,移动终端识别出所在区域对应的识别码,并通过无线通信网络将识别码提交给后台服务器,后台服务器经过判定将相应区域的信息回馈给所述移动终端。
所述定位信源优选为能够发射指定频率的音频信号的调制装置,所述识别码为一组编码,每一位编码对应一段音频信号,同时相应对应一个频率的调制信号和一个频率的载波信号,各位编码对应的各段音频信号组合成所述定位信源一个发射周期所发射的已调信号,所述移动终端是具有音频录制功能的移动终端,接收所述定位信源输出的音频信号,并利用所述识别算法进行解调运算以获得相应的识别码。
所述定位信源输出的音频信号的频率范围优选为19KHz-22.05KHz。
所述定位信源优选配置在相应区域的中心附近。
所述定位信源周期性、连续发射所述音频信号,每发射一个周期的所述音频信号前先发射一个帧头,所述帧头由一个固定频率的方波或正弦波调制而成,当所述移动终端检测到所述帧头所对应频率的能量值超过预设值后再进行识别运算。
所述定位信源优选采用双音多频的调制方式对各个频点进行调制。
所述识别算法优选为基于Goertzel的DTMF解调算法。
识别所述识别码的过程优选为:所述移动终端计算所述音频信号的各采样频点对应的各组能量值,后台服务器利用能量值与相应频点的频率值间的对应关系以及频率值与每一位编码的对应关系解析出所述识别码。。
所述各采样频点对应的能量值的确定方法优选为:计算每一位编码对应的调制信号中每个频点的能量值,并与预设临界值比较,并分别取调制信号和载波信号中各频点能量值的最大值作为该位编码对应的一组能量值。
所述移动终端还计算检测所述音频信号的各采样频点的二次谐波的能量值,当该能量值超过二倍频能量谱预设值时,退出对当前周期音频信号的解调运算,等待接收下一周期的已调信号并解调。
所述识别码的一个位对应的调制信号的长度在ms数量级上。
本发明的有益效果是;
1、普适性,适合大面积推广:
只要具有音频录制功能并且采样率不低于44.1kHz的智能设备都可以作为定位信源的检测工具,即已调信号的接收和解调工具,现在市面上普通的智能手机和平板电脑等移动设备都能满足这一要求,因此,本发明有很强的普适性,可以大面积推广。
2、低成本:
本发明所涉及的新增硬件主要是定位信源,其他都是纯软件,而且定位信源的成本很低,因此本发明可以被大量应用。
3、可移植性:
本发明已给出算法系数的计算方法以及信号调制的方法,因此对于不同的编程环境很容易移植,便于跨平台的编程操作。
4、信息容量大:
本发明采用两两频点任意组合的方法来确定一位编码,在满足检测时间的条件下,使用者可以任意定义数据长度,因此,音频信号承载的数据信息可以任由支配,有足够大的容量,也因此,定位精度的提升空间足够大。
5、低功耗:
本发明给出信号调制的帧头检测机制,有效的避免了系统资源的无端消耗,系统只有在检测到有效帧头后才开始进行后续复杂的递推计算,因此这对于移动设备有着重大的意义。
附图说明
图1是被抽象成若干个独立的区域的室内空间示意图;
图2是移动智能终端进行音频信号检测的流程图;
图3是移动智能终端与后台服务器交互的流程图。
具体实施方式
针对某室内空间,例如商场,其中有店铺、通道、收银台、电梯等功能区以及入口和出口。采用本发明所公开的方法对该室内空间进行较为精细的定位,首先需要将该室内空间(包含入口、出口)划分成若干个相互独立的区域,各区域覆盖面积可大可小,边界形状不限,数量不限,主要根据区域的实际情况、定位的目的、定位的精度等确定,为了说明原理,本实施例中将该室内空间划分成主体区域:A11、A12、A13、……、A33,入口区域:Entrance1、Entrance2、Entrance3,出口区域:Exit1、Exit2、Exit3;如图1所示。
在包含入口、出口在内的每个所述区域配置一个具有唯一识别码的定位信源,当装载定位信源识别算法的移动终端被带进任一区域时,移动终端识别出所在区域对应的识别码,并通过无线通信网络(如GPRS、3G、wifi等)将识别码提交给后台服务器,后台服务器经过判定将相应区域的信息回馈给所述移动终端,以使所述移动终端的持有人知晓其身处何地。当到达下一个定位信源所覆盖区域时,前一定位信源所覆盖区域的位置就会被校准。
所述定位信源可以是一维码、二维码。RFID,NFC等电子标签,相应地,所述移动终端应配有满足要求分辨率的摄像头,配有读卡器模块,或者支持NFC近场通信。
本发明中,所述定位信源优选采用能够发射指定频率的音频信号的调制装置,可安装在室内天花板上、安装在墙壁上、嵌入地板或摆放于桌面上,所述定位信源优选配置在相应区域的中心附近。所述识别码是一组编码(如数字编码、字母编码、数字与字母的混合编码),是人为定制的为了唯一标识各区域以区别于其他各区域的编码,其每一位编码对应一段音频信号,同时相应对应一个频率的调制信号和一个频率的载波信号,所述定位信源将各位编码对应的各段音频信号发射完成即完成了一个发射周期。所述移动终端是具有音频录制功能的移动终端,所述移动终端录制所述定位信源输出的音频信号即完成信号的接收,再利用所述识别算法进行解调运算以获得相应的识别码,从而实现其对定位信源的识别。覆盖区域的大小由定位信源的发射功率决定,发射功率越大,发射距离越远,则可覆盖区域的面积越大,反之则越小。定位精度由单位面积设置的定位信源的个数决定,本发明中,为了获得较高的定位精度,划分的区域的数量较多,因此单个区域的覆盖面积较小,采用发射功率较小的音频信号调制装置即可满足需要。不同覆盖面积的区域应采用不同发射功率的定位信源,也可以采用发射功率可调的同种定位信源,再根据需要各自调节发射功率。所述识别算法也称为信号检测算法,是基于快速傅里叶变换FFT的优化算法。
关于频点的设定以及取值范围,所述定位信源输出的音频信号的频率范围优选为19KHz-22.05KHz,该信号的频谱在可听见声之外(19kHz以上),不会对人在听觉上造成干扰;根据耐奎斯特定理,采样率最低要两倍于输入信号的频率,而一般移动智能设备的音频处理能力都可以达到44.1kHz,因此将定位信源的频点取值上限定为22.05kHz,可照顾到一般的移动智能手机和平板电脑设备,即采用一般的移动智能设备即可检测到所述定位信源输出的音频信号,使得该方法具有很强的普适性。当然也可以引入更高频率并且能够被移动智能设备麦克风检测到的信号,与所选取值范围的频点一起调制,达到增强信号鲁棒性的效果。
所述定位信源的发射是周期性、连续进行的,这将促使所述移动终端时时刻刻都在进行大量的数值运算,这将带来大量的电源消耗,人为干预信号的做法固然能够节约设备的电量,不过这种方法给使用者带来很大的不便,体验性太差;基于以上的考虑,本发明提出了更加有效的信号调制方法,即通过帧头检测机制规避移动终端的大量计算,具体做法是:定位信源每发射一个周期的所述音频信号前先发射一个帧头,所述帧头由一个固定频率的方波或正弦波调制而成,所述固定频率优选从20-22KHz范围内选取,各个编码位对应的调制信号的频率都应避开这个频率,当所述移动终端检测到所述帧头所对应频率的能量值(或称为能量谱在对应频点的值)超过预设值后再进行繁杂的解调运算操作,此处设置能量值的下限是为了一定程度地滤除环境中可能夹杂的同一频率的噪声。
所述定位信源优选采用双音多频(DTMF)的调制方式对各个频点进行调制:将频点分为上下两个半区进行两两组合,两个半区分别对应调制信号和载波信号,可根据承载数据量的多少确定频点的数量,频点的选取要与检测算法窗口大小相互支持,频点过密就会造成频点交错现象,频点过疏会引入大量数据计算,影响解析速度。以上下半区各8个频点为例,上半区频点用L1、L2、……、L8表示,下半区频点用M1、M2、……、M8表示,上下半区频点两两任意组合,比如L1M2、L3M6等等,将会组合出64种结果,如果用4位这种组合的数据,将会实现16777216位的十进制数,也就是说,如果每一种组合出的结果对应一位编码的一个取值的话,这64种结果即对应了一个编码位的64种各不相同的取值,如果采用4位的编码,则最多可以编出16777216个互不相同的识别码,即可以实现对最多16777216个区域的细分定位。
采用双音多频调制方式,可以显著增强信号的抗干扰性能,尤其适用于语音信道的低速数据通信中。
相应地,所述识别算法优选为基于Goertzel的DTMF解调算法,Goertzel算法是计算离散傅立叶变换的方法,当需要计算的频率点数不超过 时,其中N为 采样点数,Goertzel算法将比FFT(Fast Fourier transform)快速傅里叶变换更为有效。采用基于Goertzel算法的DTMF信号解调算法基本可实现DTMF信号的高可靠检测,相应的计算公式及系数的简要推导过程如下:
式中,
。n=N时,
,即
的第k点DFT。由于
是复数,运算不变,为此将
的z变换改写为:
;
;
;
初始值
以上推导中未尽其详的部分可以参照很多关于Goertzel算法推导过程的文献,实际应用时按照上式计算,不必计算
,直接计算
即可得到相关频点的能量值,并将
作为常数而无需每次都进行计算。所述移动终端计算所述音频信号的各采样频点对应的各组能量值,后台服务器利用能量值与相应频点的频率值间的对应关系以及频率值与每一位编码的对应关系即可解析出所述识别码。
所述各采样频点对应的能量值的确定方法为:计算每一位编码对应的调制信号中每个频点的能量值,并与预设临界值比较,并分别取调制信号和载波信号中各频点能量值的最大值作为该位编码对应的一组能量值。
对FFT 算法而言,采样点数N 只能取2的整数次幂,对点数比较多的运算来说,因为相邻可选值之间点数差别太大,很难选定N 的值,但Goertzel 算法则无此限制,它的计算点数可灵活地选取任意值,特别是在只关心信号的能量谱的幅度信息时,运算量的大小仅与信号的实际长度有关,N 的值增加并不会带来运算量的增加,因此可以增大点数N,使信号所有频点在频谱图上都严格对应着其相应的数字频率,避免产生频率偏移。由于信号检测的实时性要求,N的取值不能过大,同时N也不能过小,如果两个频点间距太小,就会发生频点漂移以致混乱,经过大量实验验证,根据定位信源信号的信息承载量,定义每一位的数据长度在ms的数量级上较为合适,即所述识别码的每一位编码所对应的调制信号的长度在ms数量级上。
由于现场语音信号谐波丰富,如果不加以区分,容易导致误检,本发明采用如下方法避免误检:所述移动终端还计算检测所述定位信源发出的DTMF信号的各采样频点的二次谐波的能量值,当该能量值超过二倍频能量谱预设值时,退出对当前周期音频信号的解调运算,等待接收下一周期的已调信号并解调。如果语音信号在某个频点处功率较大,则二倍频处功率也会很大,而定位信源发出的音频信号不存在这种情况,因此采用上述方法可以区分出是定位信源发出的音频信号还是现场的语音信号,以此来避免将现场环境中对应的频率误检为有效信号,该计算可以采用信号检测之外的另外一套Goertzel算法进行。
对于信号的传输误码校验,有很多的方法可以应用,如采用循环冗余校验(CRC Cyclic Redundancy Code),该校验方法是发射端将被传输的数据流多项式除以预设定的数生成多项式得到冗余位,接收端将接收到的数据(包括冗余位)除以事先确定的数生成多项式,如果余数为零,则认为没有错误发生,不为零则表示有错。循环冗余校验有较强的信息覆盖能力,擅长发现一些突发性错误,是一种效果比较好的差错校验方法,适应于定位信源的数据流传输。
本发明的室内定位方法包含了两个子流程,一个是图2示出的移动智能终端(也称移动终端、移动设备)进行的音频信号检测流程,另一个是图3主要部分所示的移动智能终端与后台服务器交互的流程。首先,移动终端被带入定位信源覆盖的区域,在移动终端打开信号检测应用程序的情况下,对定位信源发出的音频信号进行录制并解码,通过对帧头即所述帧头的判断,接收整周期的音频信号,计算出每一位数据中每个频点的能量值,并与预设临界值比较,并分别取调制信号和载波信号中频点能量值的最大值,当完成针对整个周期的上述计算后进行数据校验,当验证所获得的数据为有效数据时,将有效数据提交给后台服务器,进入下一个子流程,如果验证所获得的数据并非有效数据,放弃本周期数据,返回再次进行数据检测,直至检测到有效数据为止。
后台服务器参与的子流程为:后台服务器对收到的来自移动终端的提交数据进行分析,找到与之匹配的位置信息,并将其回传给移动终端,移动终端可根据该回传的位置信息更新其内部存储的室内地图。随着移动终端在室内空间的移动,其不断获取有效检测数据,后台服务器也会持续回传位置信息,将当前有效检测数据或表征位置信息的识别码与相邻的前一组有效检测数据或识别码进行比较,连续比较n组(n最好大于5),由所获得的有效检测数据(如能量值)或识别码的变化判断出移动终端携带者在室内空间的移动趋势。当相邻两组检测值或识别码相同时,取下一组检测值或识别码参与移动趋势分析。
本发明的方法也可以达到检索定位信源的目的。