时间偏移误差的计算方法及系统
技术领域
本发明涉及无线传感网络技术领域,更具体地说,涉及一种时间偏移误差的计算方法及系统。
背景技术
无线传感器网络就是由部署在监测区域内大量的微型传感器节点组成,通过无线通信方式形成的一个多跳自组织网络。并且,每个微型传感器节点均有采集、存储和处理信息的能力,能和其邻居节点通过无线链路保持通信。
无线传感器网络的传感器节点,通常使用本地晶振进行计时,不同节点的计时起始时间不同。但是,在无线传感器网络的应用中,进行协同感知、数据融合的时候必须建立节点精确的时间同步。例如:使用两个磁敏传感器节点协同感知测量车速的应用,Sink节点在收集到两个磁敏传感器节点的报文后,进行数据融合计算车速时,就需要上述的两个磁敏传感器节点报文中的时间戳在同一个时间参考系下,这样才能进行有意义的时间差计算操作。
具体的,传感器节点时间同步可以采用将本地时间改成全局时间的方式,也可以采用建立本地时间和全局时间的关系的方式。由于第一种方式存在引发系统崩溃的潜在风险,一般采用第二种方式。并且,在理想情况下,本地时间x和全局时间y成线性关系:
y=α+βx
其中:α为偏移量,β为斜率,即为时间偏移误差。
现有技术中,采用FTSP同步算法计算时间偏移误差β,具体的,传感器节点每接收到一个同步帧并需将其发送时,将接收的本地时间戳与发送的全局时间戳组合成一对相关数据,存储到同步样本表中,然后运行简化的线性回归算法计算斜率。
具体的,FTSP同步算法中使用的斜率计算公式如下:
其中:xi是同步样本表中同步样本点i的本地时间,yi是同步样本点i的全局时间。
按照上述方法计算时间偏移误差时,每收到一个同步帧,同步样本表就会增加一个新同步样本点,并计算同步样本表中当前存储同步样本点的x之和以及y之和,再计算得到x,y的平均值,计算非常耗时。
而在时间偏移误差计算过程中,节点资源被占用,不能进行数据收发操作,长时间的时间偏移误差计算就降低了节点通信信道利用率。并且,长时间的时间偏移误差计算还使得功耗高、节点响应事件的实时性弱。
发明内容
有鉴于此,本发明提供一种时间偏移误差的计算方法及系统,以解决现有的时间偏移误差计算方法中由于计算时间较长造成的信道利用率低、功耗高以及节点响应事件的实时性弱的问题。
为解决上述问题,现提出的方案如下:
一种时间偏移误差的计算方法,包括:
当接收到携带有全局时间的同步帧时,在同步样本表中建立与该同步帧相对应的同步样本点,确定该同步样本点的本地时间x和全局时间y,并计算x和y乘积np.xy以及x的平方np.x2;
选取所述同步样本表中除所述同步样本点之外的预设同步样本点;
确定所述预设同步样本点的x之和的基础值Ex、y之和的基础值Ey、x的平方和的基础值Ex2,以及,所述预设同步样本点的x和y乘积之和的基础值Exy;
确定时间偏移误差为(E′xy-E′x×E′y/n)/(E′x2-E′x×E′x/n);
将所述Exy、Ex、Ey以及Ex2分别替换为E′xy、E′x、E′y和E′x2;
其中:E′xy=Exy+np.xy,E′x=Ex+x,E′y=Ey+y,E′x2=Ex2+np.x2,n为所述同步样本表当前存储的同步样本点的数量。
优选地,所述选取预设同步样本点具体为:
当所述同步样本表中除所述同步样本点之外的同步样本点的数量未达到最大数量时,选取所述同步样本表中除所述同步样本点之外的所有同步样本点为所述预设同步样本点。
优选地,选取所述预设同步样本点具体为:
当所述同步样本表中除所述同步样本点之外的同步样本点的数量达到最大数量时,选取所述同步样本表中除所述同步样本点和最早建立的同步样本点之外的所有同步样本点为所述预设同步样本点。
优选地,所述确定同步样本点的本地时间x的方式具体为:
查询接收到所述同步帧的节点接收所述同步帧时该节点计时器的时间;
将所述计时器的时间作为同步样本点的本地时间x。
优选地,所述确定同步样本点全局时间y的方式具体为:
获取所述同步帧中携带有的全局时间;
所述全局时间作为同步样本点的全局时间y。
优选地,所述将所述Exy、Ex、Ey以及Ex2分别替换为E′xy、E′x、E′y和E′x2后,还包括存储所述E′xy、E′x、E′y和E′x2。
一种时间偏移误差的计算系统,包括:
同步样本点创建单元,用于当接收到携带有全局时间的同步帧时,在同步样本表中建立与该同步帧相对应的同步样本点;
第一计算单元,用于确定该同步样本点的本地时间x和全局时间y,并计算x和y乘积np.xy以及x的平方np.x2;
预设同步样本点选取单元,用于选取所述同步样本表中除所述同步样本点之外的预设同步样本点;
基础值确定单元,用于确定所述预设同步样本点的x之和的基础值Ex、y之和的基础值Ey、x的平方和的基础值Ex2,以及,所述预设同步样本点的x和y乘积之和的基础值Exy;
时间偏移误差计算单元,用于根据(E′xy-E′x×E′y/n)/(E′x2-E′x×E′x/n)计算时间偏移误差,其中:E′xy=Exy+np.xy,E′x=Ex+x,E′y=Ey+y,E′x2=Ex2+np.x2,n为所述同步样本表当前存储的同步样本点的数量;
基础值转换单元,用于将所述Exy、Ex、Ey以及Ex2分别替换为E′xy、E′x、E′y和E′x2。
优选地,当所述同步样本表中除所述同步样本点之外的同步样本点的数量未达到最大数量时,所述预设同步样本点选取单元选取所述同步样本表中除所述同步样本点之外的所有同步样本点为所述预设同步样本点。
优选地,当所述同步样本表中除所述同步样本点之外的同步样本点的数量达到最大数量时,所述预设同步样本点选取单元选取所述同步样本表中除所述同步样本点和最早建立的同步样本点之外的所有同步样本点为所述预设同步样本点。
优选地,还包括存储单元,用于存储所述E′xy、E′x、E′y和E′x2。
从上述的技术方案可以看出,本发明公开的时间偏移误差计算方法中,每新建立一个同步样本点时,只需在所述同步样本表中预设同步样本点的x之和的基础值Ex上增加所述同步样本点的x得到E′x,在预设同步样本点的y之和的基础值Ey上增加所述同步样本点的y得到E′y,在预设同步样本点的x的平方和的基础值Ex2上增加所述同步样本点的x的平方得到E′x2,在预设同步样本点的x和y乘积之和的基础值Exy上增加所述同步样本点的x和y乘积得到E′xy,根据公式(E′xy-E′x×E′y/n)/(E′x2-E′x×E′x/n)计算得到时间偏移误差,再将所述Exy、Ex、Ey以及Ex2分别替换为E′xy、E′x、E′y和E′x2,这样,每次计算时间偏移误差时,均不需要进行同步样本表中当前存储同步样本点的x和y的求和计算,缩短了计算时间,解决了现有的时间偏移误差计算方法中由于计算时间较长造成的信道利用率低、功耗高以及节点响应事件的实时性弱的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种时间偏移误差计算方法的流程图;
图2为本发明实施例公开的一种时间偏移误差计算系统的结构示意图;
图3为本发明另一实施例公开的一种时间偏移误差计算系统的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种时间偏移误差的计算方法及系统,以解决现有的时间偏移误差计算方法中由于计算时间较长造成的信道利用率低、功耗大以及系统实时性弱的问题。
本实施例公开的时间偏移误差的计算方法,如图1所示,包括:
步骤S11、当接收到携带有全局时间的同步帧时,在同步样本表中建立与该同步帧相对应的同步样本点;
步骤S12、确定所述新建立的同步样本点的本地时间x和全局时间y,并计算x和y乘积np.xy以及x的平方np.x2;
具体的,确定同步样本点的本地时间x的方法为:
查询接收到所述同步帧的节点接收所述同步帧时该节点计时器的时间;
将所述计时器的时间作为同步样本点的本地时间x。
并且,确定同步样本点全局时间y的方法为:
获取所述同步帧中携带有的全局时间;
所述全局时间作为同步帧样本点的全局时间y。
步骤S13、选取所述同步样本表中除所述新建立的同步样本点之外的预设同步样本点;
步骤S14、确定所述预设同步样本点的x之和的基础值Ex、y之和的基础值Ey、x的平方和的基础值Ex2,以及,所述预设同步样本点的x和y乘积之和的基础值Exy;
步骤S15、根据公式E′xy=Exy+np.xy,E′x=Ex+x,E′y=Ey+y,E′x2=Ex2+np.x2分别计算E′xy、E′x、E′y和E′x2;
步骤S16、将计算的得到的E′xy、E′x、E′y和E′x2带入以下公式(E′xy-E′x×E′y/n)/(E′x2-E′x×E′x/n)计算时间偏移误差;其中:n为所述同步样本表当前存储的同步样本点的数量;
步骤S17、将所述Exy、Ex、Ey以及Ex2分别替换为E′xy、E′x、E′y和E′x2。
具体的,无线传感器网络中的节点接收到一个同步帧时,在同步样本表中建立与该同步帧相对应的同步样本点之后,采用上述实施例公开的方法计算时间偏移误差后,还将本次计算得到的E′xy、E′x、E′y和E′x2替换Exy、Ex、Ey以及Ex2,作为下一轮计算时间偏移误差时的基础值Exy、Ex、Ey以及Ex2。
这样,每次计算时间偏移误差时,均不需要进行同步样本表中当前存储同步样本点的x和y的求和计算,缩短了计算时间,解决了现有的时间偏移误差计算方法中由于计算时间较长造成的信道利用率低、功耗高以及节点响应事件的实时性弱的问题。
并且,上述实施例公开的时间偏移误差的计算方法中,步骤S17、将所述Exy、Ex、Ey以及Ex2分别替换为E′xy、E′x、E′y和E′x2之后,还可以存储所述E′xy、E′x、E′y和E′x2,等无线传感器网络中的节点再接收同步帧,进行下一轮时间偏移误差计算时,直接获取存储的E′xy、E′x、E′y和E′x2,将其作为本轮的基础值Exy、Ex、Ey以及Ex2。
在上述实施例中,步骤S13、选取预设同步样本点的方式因所述同步样本表中存储的同步样本点的数量不同而不同,具体的:
计算所述同步样本表中除所述新建立的同步样本点之外的同步样本点的数量;
当所述同步样本表中除所述新建立的同步样本点之外的同步样本点的数量未达到同步样本表的最大存储数量时,选取所述同步样本表中除所述新建立的同步样本点之外的所有同步样本点为所述预设同步样本点;
当所述同步样本表中除所述新建立的同步样本点之外的同步样本点的数量达到同步样本表的最大存储数量时,选取所述同步样本表中除所述同步样本点和最早建立的同步样本点之外的所有同步样本点为所述预设同步样本点。
本发明实施例公开的时间偏移误差的计算方法在MSP430F5438芯片的节点上实现时,在8MHz主频的计算速度情况下,对于8个同步样本点的规模,现有的时间偏移误差的计算方法的计算时间需要2.5ms,而本发明只需300us,计算速度提高了8倍以上。若为了获得高精度的时间偏移误差,需要增加同步样本点数量,现有的时间偏移误差的计算方法的计算时间会随同步样本点数量的增加线性增长(例如,16个同步样本点的计算时间是5ms,32个同步样本点的计算时间就变成10ms),而本发明所需的计算时间仍是300us,和同步样本点数量无关。
本发明实施例公开的时间偏移误差的计算系统,如图2所示,包括:同步样本点创建单元101、第一计算单元102、预设同步样本点选取单元103、基础值确定单元104、时间偏移误差计算单元105以及基础值转换单元106,其中:
同步样本点创建单元101用于当接收到携带有全局时间的同步帧时,在同步样本表中建立与该同步帧相对应的同步样本点;
第一计算单元102用于确定新建立的同步样本点的本地时间x和全局时间y,并计算x和y乘积np.xy以及x的平方np.x2;
预设同步样本点选取单元103用于选取所述同步样本表中除所述同步样本点之外的预设同步样本点;
基础值确定单元104用于确定所述预设同步样本点的x之和的基础值Ex、y之和的基础值Ey、x的平方和的基础值Ex2,以及,所述预设同步样本点的x和y乘积之和的基础值Exy;
时间偏移误差计算单元105用于根据(E′xy-E′x×E′y/n)/(E′x2-E′x×E′x/n)计算时间偏移误差,其中:E′xy=Exy+np.xy,E′x=Ex+x,E′y=Ey+y,E′x2=Ex2+np.x2,n为所述同步样本表当前存储的同步样本点的数量;
基础值转换单元106用于将所述Exy、Ex、Ey以及Ex2分别替换为E′xy、E′x、E′y和E′x2。
具体的,当无线传感器网络中的节点接收到同步帧时,同步样本点创建单元101建立同步样本点后,第一计算单元102查询该节点接收到同步帧时的其计时器的时间,将其确定为同本样本点的本地时间x;同时,第一计算单元102还获取所述同步帧中携带的全局时间,将其确定为同步样本点的全局时间y;
并且,计算所述同步样本表中除所述新建立的同步样本点之外的同步样本点的数量,当所述计算得到的同步样本点的数量未达到同步样本表的最大存储数量时,预设同步样本点选取单元103选取所述同步样本表中除所述新建立的同步样本点之外的所有同步样本点为所述预设同步样本点;当所述计算得到的同步样本点的数量达到同步样本表的最大存储数量时,预设同步样本点选取单元103选取同步样本表中除所述新建立的同步样本点和最早建立的同步样本点之外的所有同步样本点为所述预设同步样本点。
如图3所示,本发明另一实施例公开的时间偏移误差的计算系统,除包括:同步样本点创建单元101、第一计算单元102、预设同步样本点选取单元103、基础值确定单元104、时间偏移误差计算单元105以及基础值转换单元106之外,还包括存储单元107,当基础值转换单元106将所述Exy、Ex、Ey以及Ex2分别替换为E′xy、E′x、E′y和E′x2后,存储所述E′xy、E′x、E′y和E′x2。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。