结合啁啾信号的水下传感器网络时间同步算法
金彦亮 , 方昌立, 姚彬    
1. 上海大学特种光纤与光接入网省部共建重点实验室, 上海 200072;
2. 上海大学通信与信息工程学院, 上海 200072
摘要

提出了一种结合啁啾信号时间同步(CCS-Sync)算法,以提高水下传感器网络时间同步性能.在物理层,使用一种结合啁啾信号的序文结构来估计多普勒规模因子.更进一步,提出一个新的由2个阶段组成的信息交换机制.在粗同步阶段,信标节点通过广播去同步普通节点.在此基础上,同步机制通过2次线性回归来估计时钟相位和频率频移.通过这种算法,可以利用移动节点的多普勒效应来减少同步误差,而且仿真实验证明了CCS-Sync算法的良好性能.

关键词: 啁啾信号    时间同步    节点移动性    多普勒频移         
中图分类号:TN301.6 文献标志码:A 文章编号:1007-5321(2016)01-0052-06 DOI:10.13190/j.jbupt.2016.01.009
A Combined Chirp Signal Time-Synchronization Scheme for Mobile Underwater Sensor Networks
JIN Yan-liang , FANG Chang-li, YAO Bin    
1. Key Laboratory of Special Fiber Optics and Optical Access Networks of Ministry of Education, Shanghai University, Shanghai 200072, China;
2. School of Communication and Information Engineering, Shanghai University, Shanghai 200072, China
Abstract

This article puts forward a combined chirp signal time synchronization(CCS-Sync) algorithm. In the physical layer, it uses a preamble structure combined with chirp signals to estimate the Doppler scaling factor. Furthermore, the author proposes a message exchange mechanism composed of two phases. In the phase of coarse synchronization, the reference node broadcasts messages to synchronize the ordinary nodes. Based on the first phase, it uses twice linear regression method to estimate the clock skew and offset. With this algorithm, it successfully uses the effect of Doppler between mobility nodes to reduce the synchronization error. The effectiveness of CCS-Sync is validated by the simulation.

Key words: chirp signals    time synchronization    node mobility    Doppler shift    

水下传感器网络时间同步对于水下研究具有重大意义. 早期解决水下同步的TSHL[1](time synchronization for high latency acoustic networks)和M U- Sync[2](time synchronization protocol for underwater mobile networks )考虑了水下节点的广播机制和移动性,D- Sync[3](Doppler-based time synchronization for mobile underwater sensor networks)和D A- Sync[4](Doppler-assisted time synchronization scheme for mobile underwater sensor networks)则进一步考虑了多普勒效应.

笔者提出结合啁啾信号的水下时间同步(CC S- Sync,combined chirp signal time synchronization)算法,该算法引入了啁啾信号为时间同步信号的载波信号,同时提出了一个分两阶段的新的同步机制. 经过这两个阶段的同步后,结果证明CC S- Sync算法具有高精度和高能效.

1 相关工作 1.1 啁啾信号

啁啾信号也可称作线性调频信号(正弦信号),在一定时间内其频率随时间线性增加或减小. 由于其扩频具有较大时间带宽积,即使发射功率很低,也可抗多径衰落,且可以利用多普勒效应来减少同步误差. 啁啾信号表达式为

\[s\left( t \right) = rect\left( {\frac{t}{T}} \right){e^{j2\pi \left( {{f_c}t + \frac{k}{2}{t^2}} \right)}}\] (1)
其中:fc为载波频率;K= B/T为调频斜率(可以得到信号的瞬时频率),B和T分别为啁啾信号的带宽和周期;rect(t/T)表示矩形信号:
$$rect\left( {{t \over T}} \right) = \left\{ {\matrix{ {1,\left | {{t \over T}}\right|≤1} \cr {0, 其他} \cr } } \right.$$ (2)

1.2 时钟相位和频移

通常使用两个因素,也就是时钟相位和时钟频移来衡量时间同步的性能. 为了表示节点i的本地时间,其公式为其中ai和bi分别为节点i的时钟相位和时钟频移. 时钟频移会引起独立于时间的常数误差,然而时钟相位则会导致随时间增加而增加的误差. 每个节点都有一个起始时间并形成一个时钟模型,在一个同步过程中,会产生一个同步误差. 为了得到更好的同步性能,要综合这两个因素.

\[{T_i}\left( t \right) = {a_i}t + {b_i}\] (3)
2 CC S- Sync算法 2.1 多普勒规模因子的估计

为了估计多普勒规模因子,有学者提出过模糊度函数法. 但这种方法最大的缺点是需要大量的自相关器,导致较大的运算量和硬件复杂度.

所以笔者引入一种更加实用而且有效的方法,称为类块状多普勒方法,如图 1所示. 在这个前导结构里面,传输的数据是由两个线性的啁啾信号结合在一起的,数据包在发送端的时间长度为Γtp.当匹配滤波器接收到数据包的时候,可以测量出接收一个数据包的整个过程的时间Γrp.

多普勒规模因子计算公式为

\[\delta = \frac{{{\Gamma _{rp}}}}{{{\Gamma _{tp}}}} - 1\] (4)
其中δ为多普勒规模因子. 对于测量数据包的接收时间Γrp的具体方法是,在一个数据块的首尾部分别添加已知的线性啁啾信号序列,在接收端采用匹配滤波器,两个峰值之间的长度即为接收端的时间长度Γrp. 类块状多普勒方法是在数据块两端插入一个已知的啁啾信号序列,在带宽积BT≥100情况下,啁啾信号序列极易被单个相关器检测到.

图1 结合啁啾信号的前导结构

估计多普勒规模因子的目的是为了获得节点间的相对移动速度. 应该将水声速度考虑进去,取水声速度C=1.5 km/s. 根据对应的物理关系,相对速度的估计公式为

\[V = C\delta \] (5)

考虑到真实的水下环境,在节点间往返程的多普勒影响是不同的. 这导致节点间往返程的相对速度也是不同的,可以推断出:

\[V = \left\{ {\begin{array}{*{20}{c}} {{V_1} = c{\delta _1} = c\left( {{\Gamma _{rp1}}/{\Gamma _{tp}} - 1} \right)} \\ {{V_2} = c{\delta _2} = c\left( {{\Gamma _{rp2}}/{\Gamma _{tp}} - 1} \right)} \end{array}} \right.\] (6)
其中:δ1为数据包从信标节点发送到普通节点过程中估计的多普勒规模因子,δ2为数据包从普通节点返回到信标节点过程中估计的多普勒规模因子,Γrp1为数据包从信标节点发送到普通节点的时间,Γrp2为数据包从普通节点发送到信标节点的时间,V1为在Γrp1期间的节点间的相对速度,V2为在Γrp2期间的节点间的相对速度.

2.2 信息交换机制

在时间同步这个研究方向上,有许多典型的信息交换机制,但是其同步精度不够. Mobi-Sync[5]和 D- Sync都采用发 送- 接收方式,有些则使用接 收- 接收方式. 尽管它们都比单发送方式获得了更好的性能,但它们的代价是高的计算量和复杂度.

基于以上问题,提出一个新的信息交换机制,新的机制由两个阶段组成,具体实现过程如下.

1) 阶段Ⅰ:粗同步

在粗同步算法中,信标节点A广播其信标信息给邻近普通节点(未被同步),在其广播范围内的节点都能够收到该消息. 信标节点A范围内的信标节点和普通节点所在的网络代表一个簇内的同步状况,对于整个同步系统,这个簇外也会形成很多个这样的簇以相同的方式进行同步. 以带有信标节点A的簇为例,在第Ⅰ阶段,信标节点A发送带有介质访问控制层的时间戳同步信息给整个簇内的普通节点. 待收到来自信标节点A的同步消息包后,那些普通节点从休眠状态被激活到工作状态,然后开始处理同步数据包,准备进入到返回各自处理后的数据包状态. 对于这个阶段,先进行一次上述的广播,利用信标消息去同步普通节点,并要求普通节点都有返回到信标节点的信息.

这样做的好处:首先,避免了反复广播从而浪费能量;其次,利用普通节点返回到信标节点的信息可以为在第Ⅱ阶段更加精确地估计漂移率和频偏提供必要的条件. 至此完成第1次线性回归过程,实现初步估计时钟漂移和时钟偏差.

粗同步对于同步一群节点来说,可以节省能量. 因为当总的节点数一定时,每个节点在同步时需要消耗一部分能量,若每次都是点对点的同步,势必会使整个簇内消耗变大. 但是其同步精度还需进一步提升,在普通节点返回其处理后的同步数据包后,就进入了精同步过程,从而来获取更高的同步精度.

2) 阶段Ⅱ:精同步

当信标节点广播其同步数据包给簇内的普通节点后,它将会等待那些接收到同步消息的普通节点返回的消息. 在水下环境中,一般部署到水下的节点间的距离是0.5~2.0km[6]. 在CC S- Sync算法里,假设水下节点间的平均距离是1.5km,那么信标节点一个同步周期需要等待的时间是3s.

在信标节点广播出同步消息之后,邻近普通节点由于处在不同的距离位置上,当普通节点收到消息后,会在不同的时间点返回带有自己时间戳的信息给信标节点. 暂时不考虑节点间的竞争机制问题,假设不同节点返回到信标节点的同步数据包是在不同的时刻被信标节点接收到的. 信标节点会把接收到的不同节点的时间戳信息按照一定的接收次序进行一个排列,以接收到的时间早晚次序为准,那么在3 s的等待时间内,会得出一个不同节点返回的时间戳信息排列次序. 然后信标节点按照这个排列好的次序,从早到晚依次给普通节点发送带有时间戳的同步请求信息,直至最后一个为止. 在这个精同步的过程中,信标节点会和簇内的每个待同步节点分别进行第2次线性回归过程,以此来进一步提升整个簇内普通节点的同步精度.

至此就完成了一个完整的同步周期,后面继续重复这个同步过程. 每个同步过程都是由粗同步和精同步两个阶段组成的,其机制如图 2所示.

图2 信息交换机制

首先,在第一轮同步周期内,信标节点A广播其带有时间戳TA1[1]的消息给邻近节点;然后,邻近的普通节点B在TA1[1]+γ1[1](绝对时间)接收到参考消息,这时候节点B对应的本地时间是TB1[1]. 在节点B处进行信息交换之后,节点B发送带有时间戳信息TB2[1]的消息包给信标节点A,此时信标节点接收到节点B的回传消息. 其他邻近节点也会重复这样的同步过程,并且信标节点在不同的时间收到从普通节点回传的消息,然后进行既定的排列.

为了研究方便,选取一个信标节点和一个普通节点进行细致的研究. 等到信标节点接收到节点B的回传消息后,可以在这个期间建立一次线性回归. 但是仍需要另一个信息交换过程来得到更高的同步精度,考虑到两个节点间往返的长传播时延是不相同的,更加需要再一次回传得到更多的数据来计算模型里面的长传播时延. 接着节点A第2次发送其带有时间戳信息TA3[1]的消息给节点B,最后,节点B在TA3[1]+γ3[1]时收到消息包,此时其本地时间为TB3[1]. 对于整个同步过程来说,可以进行两次线性回归以获得更高的同步精度.

为了方便问题的研究,在这里假定普通节点是远离信标节点的(另一种靠近的情况也可以计算). 利用前面的估计速度来计算传播时延,下面是分析过程. 选取第1个信息交换回程: TA1[1]→TB1[1]→TB2[1]→TA2[1]. 首先定义:

\[\vartriangle \gamma \left[1 \right] = {\gamma _2}\left[1 \right] - {\gamma _1}\left[1 \right]\] (7)

根据信息交换机制,可以知道:

\[{\gamma _1}\left[1 \right] + {\gamma _2}\left[1 \right] = \frac{{\left( {{T_{A2}}\left[1 \right] - {T_{A1}}\left[1 \right]} \right)}}{a} + {T_{B1}}\left[1 \right] - {T_{B2}}\left[1 \right]\] (8)

在CC S- Sync机制中,假定普通节点和信标节 点间的相对速度是线性增长的. 用Δm表示从TB1[1] 到TA2[1]期间节点的相对距离,则可以估计出:

\[\vartriangle m = c\Delta \gamma \left[1 \right]\] (9)

然后考虑整个的时间同步过程,假定Δl是从TA1[1]到TA2[1]期间节点的相对距离,可以得出:

\[\vartriangle l = \vartriangle m + {V_1}{\gamma _1}\left[1 \right]\] (10)

估计相对速度V1,是为了方便计算Δl. 同时可以利用运动学方程来建立等式计算Δl:

\[\vartriangle l = {v_0}\left( {{T_{B2}}\left[1 \right] + {\gamma _2}\left[1 \right] - {T_{A1}}\left[1 \right]} \right) + \frac{1}{2}\alpha {\left( {{T_{B2}}\left[1 \right] + {\gamma _2}\left[1 \right] - {T_{A1}}\left[1 \right]} \right)^2}\] (11)

其中:v0为节点的始速度,α为节点的相对加速度,此外α=0.1m/s2.

为了简化问题,忽略掉传播时延γ2[1],可以进一步得到等式:

\[\vartriangle l = {v_0}\left( {{T_{B2}}\left[1 \right] - {T_{A1}}\left[1 \right]} \right) + \frac{1}{2}\alpha {\left( {{T_{B2}}\left[1 \right] - {T_{A1}}\left[1 \right]} \right)^2}\] (12)

为了计算简便,做如下数学处理:

\[\left. {\begin{array}{*{20}{c}} {\eta = {T_{A2}}\left[1 \right] - {T_{A1}}\left[1 \right]} \\ {\beta = {T_{B1}}\left[1 \right] - {T_{B2}}\left[1 \right]} \\ {\varepsilon = {T_{B2}}\left[1 \right] - {T_{A1}}\left[1 \right]} \end{array}} \right\}\] (13)

结合式(8) ~ 式(10)、式(12)和式(13),可以 分别计算出传播时延γ1[1]和γ2[1]:

\[{\gamma _1}\left[1 \right] = \frac{{\left( {a\beta - \eta } \right)c + a\left( {{v_0}\varepsilon + \frac{1}{2}\alpha {\varepsilon ^2}} \right)}}{{a\left( {{V_1} - 2c} \right)}}\] (14)
\[{\gamma _2}\left[1 \right] = \frac{{\left( {a\beta - \eta } \right)\left( {c - v} \right) - a\left( {{v_0}\varepsilon + \frac{1}{2}\alpha {\varepsilon ^2}} \right)}}{{a\left( {{V_1} - 2c} \right)}}\] (15)

用同样的方式,也可以计算出γ3[1].为了得到传播时延的值,需要设置一些初始值和环境参数. 在本机制里面,假设相位值a是1. 最终的目的是估计时钟相位和频偏. 由于时间同步过程是线性变化的,可以利用线性回归来估计需要获得的参数. 在每个同步周期里面,选取两个点来描述时钟模型.

以下就是用来估计时钟参数的一系列坐标:(TB1[1],TA1[1]+γ1[1])和(TB3[1],TA3[1]+ γ3[1])或者是 (TB2[1],TA2[1]-γ2[1])和(TB3[1],TA3[1]+γ3[1]).

通过计算以上数据,可以用Matlab仿真平台来描述时钟相位ai和频偏bi. 如图 3所示,假定CC S- Sync算法里面的相对速度是以线性规律变化的.

图3 线性回归
3 仿真实验

根据水下环境的特点,选取了合适的仿真环境,并选取了CC S- Sync算法机制的水下仿真参数,如表1所示.

表1 CCS -Sync 算法的水下仿真环境参数表

根据CC S- Sync算法的同步过程,可以分析出有两个主要的误差来源.首先,如果考虑带有啁啾信号的信息从开始发送到接收之间,这个过程会受到不同的多普勒影响. 这就会导致在两个自相关的主峰之间产生时滞,最终将会给多普勒估计带来误差,这个误差近似为

\[{\varepsilon _{\vartriangle 1}} \approx \frac{{\alpha T}}{c}\] (16)

同时在同步过程中,两个信息交换机制间会产生误差,用εnoise来表示这个误差,把这个随机噪声误差看作是高斯随机误差,可以得到

\[{\varepsilon _\vartriangle } = {\varepsilon _{noise}} + {\varepsilon _{\vartriangle 1}}\] (17)

根据表1的仿真环境,为了更加准确地研究同步的性能,后面仿真的数据都是通过1 000次仿真获得的平均数值. 首先来比较几种典型算法在水下环境下的性能,如图 4所示.

图4 同步后的时间与同步误差的关系

图 4的总体趋势可以知道,随着同步后时间的增长,所有同步机制的同步误差都越来越大,几乎以指数的形式增长.

MU-Sync的同步性能受节点的最大相对速度影响,而CC S- Sync主要受多普勒规模因子的估计影响,对CCS-Sync来说,最大相对速度对同步误差影响方面的性能要优于MU-Sync算法.因此,把这两者通过仿真进行了对比,如图 5所示. 可以观测出,当最大相对速度小于1 m/s的时候,CCS-Sync和MU-Sync的性能差不多相同.然后,随着最大相对速度的增加,CCS-Sync算法的同步性能明显优于MU-Sync,并把这个优势一直持续到5m/s.

图5 最大相对速度对CCS-Sync 和MU-Sync 性能影响

对于水下传感器网络来说,能量消耗是一个非常重要的指标. 用下面的指标来衡量能量消耗的情况,这里定义能量消耗率为

\[\partial = \frac{{\varphi vx}}{{{t_r}\varphi }} \times 100\% \] (18)

其中:为在tr内需要再次同步的数量,在这个过程中,所有节点的同步误差都低于某一个特定的值;ν为数据包的长度;χ为在整个同步过程中每个节点的能量消耗;ψ为所有节点的总体的能量消耗.在标准化能量消耗率后,分别设置CC S- Sync的数据包长度为50B,D- Sync的数据包长度为40B,M U- Sync的数据包长度为32B.再把tr设置成足够长以保证同步的精确度,这里把它的值取为120160109s.

图 6可以分析出,随着错误容忍率的增加总体上CCS-Sync、D-Sync和MU-Sync算法的能量消耗率是减小的,同时可以看到CCS-Sync的能量消耗率明显要小于D-Sync和MU-Sync两种同步机制.

图6 随错误容忍率变化的能量消耗率
4 结束语

提出了一种应用于水下传感器网络中的CCS-Sync算法,并利用结合啁啾信号的前导结构来估计多普勒规模因子.通过仿真实验表明,CCS-Sync算法在精确度和能量消耗方面表现出优于其他算法的性能.

今后会进一步研究在水下传感器网络时间同步系统中,不同的簇之间的信息交互机制,以及整体系统的同步机制的处理方法.

参考文献
[1] Syed A, Heidemann J. Time synchronization for high latency acoustic networks[J]. Proceedings - IEEE INFOCOM, 2006: 1-12.[引用本文:1]
[2] Chirdchoo N, Soh W S, Chua K C. MU-Sync: a time synchronization protocol for underwater mobile networks[C]//Proceedings of the Third ACM International Workshop on Underwater Networks. [S.l.]: Wuwnet08, 2008: 35-42.[引用本文:1]
[3] Lu Feng, Mirza D, Schurgers C. D-sync: Doppler-based time synchronization for mobile underwater sensor networks[C]//Proceedings of the Fifth ACM International Workshop on Underwater Networks. [S.l.]: ACM, 2010: 1-8.[引用本文:1]
[4] Liu J, Wang Z, Zuba M, et al. DA-Sync: a doppler-assisted time-synchronization scheme for mobile underwater sensor networks[J]. IEEE Transactions on Mobile Computing, 2014(3): 582-595.[引用本文:1]
[5] Liu J, Zhou Z, Peng Z, et al. Mobi-Sync: efficient time synchronization for mobile underwater sensor networks[J]. Parallel and Distributed Systems, IEEE Transactions on, 2013, 24(2): 406-416.[引用本文:1]
[6] Stojanovic M. On the relationship between capacity and distance in an underwater acoustic communication channel[J]. ACM SIGMOBILE Mobile Computing and Communications Review, 2007, 11(4): 34-4. [引用本文:1]