cs0611003/pp.tex
1: 
2: %\documentclass[11pt,onecolumn,draftcls,dvips]{IEEEtran}
3: \documentclass[10pt,twocolumn,final,dvips]{IEEEtran}
4: \usepackage{amsmath,amssymb,epsfig,color}
5: \usepackage[breaklinks=true, colorlinks=true, linkcolor=dblue, urlcolor=dblue,
6: citecolor=dblue, pdfpagemode=None, pdfstartview=FitH]{hyperref}
7: 
8: 
9: \newtheorem{theorem}{Theorem}
10: \newtheorem{lemma}{Lemma}
11: \newtheorem{corollary}{Corollary}
12: \setlength{\unitlength}{1mm}
13: \definecolor{gray}{cmyk}{.2,0.2,.3,.1}
14: \definecolor{dred}{cmyk}{0,0.9,0.4,0.3}
15: \definecolor{dblue}{rgb}{0,0,0.5}
16: \definecolor{dgreen}{rgb}{0,0.3,0}
17: \definecolor{dgray}{rgb}{0.3,0.3,0}
18: 
19: 
20: \title{A Scalable Protocol for Cooperative Time Synchronization
21: Using Spatial Averaging
22:   \thanks{The authors are with the School of Electrical and Computer
23:   Engineering, Cornell University, Ithaca, NY.  URL:
24:   {{\tt http://cn.ece.cornell.edu/}}.
25:   Work supported by the National
26:   Science Foundation, under awards CCR-0238271 (CAREER), CCR-0330059,
27:   and ANR-0325556.}}
28: \author{An-swol Hu \hspace{2cm} Sergio D.\ Servetto}
29: 
30: 
31: \begin{document}
32: \maketitle
33: 
34: \begin{picture}(0,0)
35: \put(0,55){\tt\small Submitted to the IEEE/ACM Transactions on
36:   Networking, October 2006.}
37: \end{picture} 
38: \vspace{-4mm}
39: 
40: \begin{abstract}
41: Time synchronization is an important aspect of sensor
42: network operation. However, it is well known that synchronization
43: error accumulates over multiple hops. This presents a challenge for
44: large-scale, multi-hop sensor networks with a large number of nodes
45: distributed over wide areas. In this work, we present a protocol
46: that uses spatial averaging to reduce error accumulation in
47: large-scale networks. We provide an analysis to quantify the
48: synchronization improvement achieved using spatial averaging and
49: find that in a basic cooperative network, the skew and offset
50: variance decrease approximately as $1/\bar{N}$ where $\bar{N}$ is
51: the number of cooperating nodes.  For general networks, simulation
52: results and a comparison to basic cooperative network results are
53: used to illustrate the improvement in synchronization performance.
54: 
55: \end{abstract}
56: 
57: \section{Introduction}
58: 
59: \subsection{Synchronization and the Scalability
60: Problem} \label{sec:scalability_problem}
61: 
62: Many synchronization techniques have been proposed for synchronizing
63: sensor networks~\cite{ElsonGE:02,SichitiuV:03,
64: GaneriwalKW:03,GreunenR:03,MarotiKSL:04}. These techniques all rely
65: on nodes exchanging packets with timing information.  Using the
66: exchanged timing information, each node can then estimate clock
67: offset and maybe clock skew. However, all of these traditional
68: synchronization techniques suffer from an inherent scalability
69: problem---synchronization error accumulates over multiple hops.  At
70: each hop, nodes will estimate synchronization parameters, but the
71: estimates will have errors.  Therefore, when these erroneous
72: parameters are used to communicate timing information to the next
73: hop, errors will further increase.
74: 
75: This accumulation of error over multiple hops poses a problem as
76: sensor networks are deployed over larger and larger areas. The
77: number of hops required to communicate across the network increases
78: and, thus, the synchronization error across the network increases as
79: well. One possible way to avoid the scalability problem is to use a
80: few nodes with powerful radios to limit the number of hops required
81: to communicate timing information across the network.  However, this
82: technique does not address the fundamental scalability problem of
83: errors accumulating over multiple hops.
84: 
85: In this work, we consider the use of high density networks to
86: mitigate the scalability problem.  Recent
87: developments~\cite{KellyEM:03}, \cite{WarnekLLP:01}, \cite{LiLBH:02}
88: suggest that future networks may have extremely large numbers of
89: nodes deployed over wide areas. The question we consider is whether
90: or not the density of future networks can be used to address
91: scalability issues that plague existing techniques.
92: 
93: \subsection{Motivation for Cooperation}
94: 
95: In order to reduce the scalability problem, we need to find ways to
96: reduce the synchronization error at each hop.  There are two primary
97: ways to accomplish this.  The first is to collect more timing
98: information. With more timing data, nodes can generally make a
99: better estimate of clock skew and clock offset.  For example, RBS
100: and FTSP both let nodes collect many timing data points before
101: estimating clock skew and clock offset. A timing data point provides
102: a node with the time at a reference clock at a specific time in its
103: local time scale. With more data points, synchronization error will
104: decrease. This idea is essentially doing a \emph{time} average to
105: estimate clock skew and clock offset. However, this is not
106: necessarily practical since it would significantly increase the time
107: to synchronize and the amount of network traffic.
108: 
109: The second primary approach is to improve the quality of the timing
110: data point.  For example, TPSN and FTSP use MAC layer time stamping
111: techniques that are more accurate. However, we believe that there is
112: a fundamentally new technique for improving data point quality that
113: has not been considered before.  This new idea is to use spatial
114: averaging to improve data point quality.  In a high density network,
115: we have a large number of surrounding nodes. Instead of only doing a
116: time average to estimate the clock skew and clock offset, perhaps we
117: can also do a \emph{spatial} average to improve these estimates.
118: 
119: \subsection{Approach to Cooperation} \label{sec:approach}
120: 
121: We assume the network is setup such that one node, called node $1$,
122: has the reference clock that all other nodes want to synchronize to.
123: Node $1$ will communicate timing information to the nodes in its
124: broadcast domain, the $R_{2}$ nodes.  The $R_{2}$ nodes will then
125: communicate timing information to the nodes that are another hop
126: out, the $R_{3}$ nodes. This process continues until all nodes are
127: synchronized (Fig.~\ref{fig:nodeSets}).
128: 
129: \begin{figure}[!ht]
130: \centerline{\psfig{file=setPropagation.eps,width=5.5cm}}
131: \caption{\small For increasing $i$, the $R_{i}$ nodes are
132: progressively farther and farther away from reference node $1$, the
133: $R_{0}$ node.  Each node in the set $R_{i}$ receives its timing
134: information from a group of nodes in $R_{i-1}$.}
135: \label{fig:nodeSets}
136: \end{figure}
137: 
138: Each node in $R_{i}$, $i\geq 1$, will use information from the
139: $R_{i-1}$ nodes to estimate its clock skew and clock offset.  With
140: these parameters, the node will be able to send a sequence of $m$
141: pulses that are approximately $d$ seconds apart in the reference
142: time scale, where $d$ and $m$ are pre-specified by the protocol. All
143: nodes in the $R_{i}$ set will be attempting to send pulses at the
144: same time. However, due to synchronization error, the pulses will
145: only be occurring at approximately the same time. Thus, any node in
146: the $R_{i+1}$ set of nodes will observe $m$ clusters of pulses
147: instead of just $m$ individual pulses.
148: 
149: Since each pulse in a cluster represents one $R_{i}$ node's attempt
150: to transmit at some appropriate time in the reference time scale,
151: taking the sample mean of the pulse arrival times in each cluster
152: allows us to average out some of the error made by any one node in
153: $R_{i}$.  The process of having each node in $R_{i+1}$ use the
154: sample mean of each cluster as a timing data point is the key to
155: spatial averaging.  Since each $R_{i+1}$ node can use timing
156: information from many surrounding neighbors in $R_{i}$, we call our
157: technique \emph{cooperative time synchronization}.  Using these
158: timing data points, and some additional information from the $R_{i}$
159: set, every node in $R_{i+1}$ can estimate its clock skew and offset.
160: Thus, this process can then repeat to synchronize the $R_{i+2}$
161: nodes.
162: 
163: The difficulty in studying this problem is that, generally, the $m$
164: clusters observed by any particular node in $R_{i+1}$ will be
165: different from the $m$ clusters observed by any other node in
166: $R_{i+1}$.  This is because the clusters observed by a node will
167: depend on where this node is located relative to the $R_{i}$ set of
168: nodes.  Therefore, to study how cooperation can improve
169: synchronization, we approach the problem in two steps.
170: 
171: First, we set up a basic cooperative network (Type I network) that
172: is a base case for cooperation.  The key assumption in a Type I
173: network is that all nodes in $R_{i+1}$ are in the broadcast domain
174: of all nodes in $R_{i}$.  Note that this is a generalization of the
175: non-cooperative situation where timing information is passed from
176: one node to the next. Fig.~\ref{fig:typeIcomparison} compares the
177: basic cooperative network to a non-cooperative network. With the
178: Type I network we analytically quantify how the variance of the skew
179: and offset estimates grow with increasing hop number.
180: 
181: \begin{figure}[!ht]
182: \centerline{\psfig{file=typeIcomparison.eps,width=7.5cm}}
183: \caption{\small Top: A basic cooperative network (Type I network)
184: where timing information is communicated from the $R_{i}$ set of
185: nodes to the $R_{i+1}$ set. This Type I deployment assumes many
186: nodes in each $R_{i}$ set. Bottom: Assuming each $R_{i}$ set has
187: only one node, we have the non-cooperative situation. }
188: \label{fig:typeIcomparison}
189: \end{figure}
190: 
191: Second, we use the theoretical results from the basic cooperative
192: network to understand the behavior of a general Type II network
193: where nodes are uniformly distributed over a circular area.
194: Simulation results are used to illustrate that increasing network
195: density improves synchronization performance.
196: 
197: \subsection{Other Related Work} \label{sec:relatedwork}
198: 
199: The traditional synchronization techniques describe
200: in~\cite{ElsonGE:02,SichitiuV:03,
201: GaneriwalKW:03,GreunenR:03,MarotiKSL:04} all operate fundamentally
202: on the idea of communicating timing information from one set of
203: nodes to the next.  One other approach to synchronization that has
204: recently received much attention is to apply mathematical models of
205: natural phenomena to engineered networks.  A model for the emergence
206: of synchrony in pulse-coupled oscillators was developed
207: in~\cite{MirolloS:90} for a fully-connected group of identical
208: oscillators. In~\cite{LucarelliW:04}, this convergence to synchrony
209: result was extended to networks that were not fully connected.
210: 
211: The convergence result is clearly desirable for synchronization in
212: networks and in~\cite{HongS:04} theoretical and simulation results
213: suggested that such a technique could be adapted to communication
214: and sensor networks.  Experimental validation for the ideas
215: of~\cite{MirolloS:90} was obtained in~\cite{Werner-AllenTPWN:05}
216: where the authors implemented the Reachback Firefly Algorithm (RFA)
217: on TinyOS-based motes.
218: 
219: The problem with these emergent synchronization results is that the
220: fundamental theory assumes all nodes have nearly the same firing
221: period. Results from~\cite{HongS:04} and~\cite{Werner-AllenTPWN:05}
222: show that the convergence results may hold when nodes have
223: approximately the same firing period, but the authors
224: of~\cite{Werner-AllenTPWN:05} explain that clock skew will degrade
225: synchronization performance. Since we are not aware of any results
226: that provide an extension to deal with networks of nodes with
227: arbitrary firing periods, our work focuses on synchronization
228: algorithms that explicitly estimate clock skew.
229: 
230: \subsection{Contributions and Paper Organization}
231: 
232: In this paper, we propose a protocol for time synchronization that
233: uses spatial averaging to improve synchronization performance. In
234: this work we make the following analysis:
235: \begin{enumerate}
236: \item Mathematically quantify the synchronization error for the Type
237: I basic cooperative network.
238: \item Through simulations, show that increasing node density can
239: decrease synchronization error in general networks.
240: \end{enumerate}
241: 
242: The results show that if each node can hear a large number of
243: neighboring nodes, then nodes can cooperatively generate signals
244: that are less noisy and allow for better synchronization performance
245: over multiple hops.  The fact that more cooperating nodes yields
246: better performance means that there exists a new trade-off between
247: network density and synchronization performance where more nodes
248: provide better synchronization.  Even though it is possible to
249: achieve better synchronization performance by introducing nodes with
250: powerful radios to synchronize a large-scale network, cooperative
251: time synchronization is an effective alternative technique to
252: reducing synchronization error across the network without requiring
253: special nodes.
254: 
255: The remainder of the paper is organized as follows.  In
256: Section~\ref{sec:systemModel} we set up the general network
257: assumptions and present the synchronization protocol in
258: Section~\ref{sec:synchronizationProtocol}. The analysis and
259: simulations of the protocol for a basic cooperative network are
260: presented in Section~\ref{sec:typeI} while a study of cooperation in
261: general networks is carried out in Section~\ref{sec:typeII}. We make
262: concluding remarks in Section~\ref{sec:conclusion}.
263: 
264: \section{System Model} \label{sec:systemModel}
265: 
266: \subsection{Clock Model}
267: 
268: The behavior of each node $i$ is governed by a clock $c_{i}$ that
269: counts up from $0$. The introduction of $c_{i}$ is important since
270: it provides a consistent timescale for node $i$. This is the
271: node's local time scale and in synchronization the node tries to
272: estimate how its local clock is related to the reference clock.
273: 
274: We assume that node $1$ contains the reference clock and every
275: node in the network is to be synchronized to this clock.  The
276: clock of node $1$, $c_{1}$, will be defined as $c_{1}(t)=t$ where
277: $t \in [0,\infty)$. We now define the clock of any other arbitrary
278: node $i$, $c_{i}$, as
279: \begin{equation} \label{eq:clock}
280: c_{i}(t)=\alpha_{i}(t-\bar{\Delta}_{i})+\Psi_{i}(t),
281: \end{equation}
282: where
283: \begin{itemize}
284: \item $\bar{\Delta}_{i}$ is an unknown offset between the start
285:   times of $c_{i}$ and $c_{1}$.
286: \item $\alpha_{i}>0$ is an unknown constant for each $i$. \item
287: $\Psi_{i}(t)$ is a stochastic process modelling random timing
288: jitter. $\Psi_{i}(t)$ is a zero mean Gaussian process with
289: independent and identically distributed Gaussian samples with mean
290: zero and variance $\sigma^2$, i.e. $\mathcal{N}(0,\sigma^2)$. We
291: assume $\sigma^{2}<\infty$ and note that $\sigma^{2}$ is defined
292: in terms of the clock of node $i$.
293: \end{itemize}
294: Note that this linear relationship is valid for short periods of
295: time since we do not explicitly model clock drift.
296: 
297: \subsection{Transmission Model}
298: 
299: Each node $i$ in the network can transmit short pulses $p(t)$ for
300: time synchronization.  These are short duration pulses, i.e. ultra
301: wideband pulses, and for our purposes we consider them to be delta
302: functions $\delta(t)$.  The particular choice of $p(t)$ is not
303: important.  For the purposes of studying cooperative time
304: synchronization, we assume a node receiving the pulse can uniquely
305: determine a pulse arrival time, pulses sent from different nodes do
306: not overlap, and a node seeing multiple pulses can identify the
307: different pulse arrival times. Note that only minor modifications of
308: the protocol are needed to accommodate other types of pulse
309: shapes~\cite{HuS:05}.
310: 
311: We assume that each node has a transmission range of $R$.  This
312: means that a node $j$ must be within a distance $R$ from a
313: transmitting node $i$ in order to hear pulses from node $i$. Note
314: that the assumption of a circular transmission region is made only
315: to simplify the illustration of spatial averaging.  The
316: synchronization protocol proposed in
317: Section~\ref{sec:synchronizationProtocol} does not require this
318: assumption and most of the results in this work will hold under more
319: realistic conditions~\cite{GanesanKWCEW:02,ZhaoG:03}. Since we are
320: dealing with sensor nodes who have short transmission distances, we
321: further assume that propagation delay is negligible. We make this
322: assumption since from~\cite{MarotiKSL:04} we know that propagation
323: delay is less than $1\mu s$ for distances up to $300$ meters. Some
324: results on cooperation and propagation delay are available
325: in~\cite{HuS:05a}.
326: 
327: \section{Synchronization Protocol}
328: \label{sec:synchronizationProtocol}
329: 
330: To start synchronization, the reference node, node $1$, will send a
331: sequence of $m$ pulses that are $d$ seconds apart.  Since we assume
332: the nodes have impulse radio transmitters, each pulse is extremely
333: narrow in time. The values of $d$ and $m$ are parameters of the
334: protocol that are established before deploying the network so the
335: values are known by all nodes in the network. Therefore, in the time
336: scale of node $1$ the pulses are transmitted at times $\tau_{0},
337: \tau_{0}+d,\ldots,\tau_{0}+d(m-1)$, where $\tau_{0}$ is the time at
338: which the synchronization process started. Let node $1$ be the only
339: element of the $R_{0}$ nodes.
340: 
341: \begin{figure}[!ht]
342: \centerline{\psfig{file=pulseClustersWithd.eps,width=7.5cm}}
343: \caption{\small A node $2i$ in $R_{2}$ has clock $c_{2i}$. This node
344: will see clusters of pulse arrivals that are transmitted from a
345: group of nodes in the set $R_{1}$. These clusters arrive at node
346: $2i$ around times
347: $\tau_{0}+dm,\tau_{0}+d(m+1),\ldots,\tau_{0}+d(2m-1)$ in the time
348: scale of node $1$, $c_{1}$.} \label{fig:PulseClusters}
349: \end{figure}
350: 
351: The nodes that are in the broadcast domain of node $1$ will hear
352: this sequence of $m$ pulses.  We call these nodes the $R_{1}$ nodes
353: and each node $i\in R_{1}$, $i\geq 1$, will be denoted by node $1i$.
354: The vector of pulse arrival times observed by node $1i$ will be
355: denoted $\mathbf{Y}_{1i}$. Each node $1i$ will be able to estimate
356: its clock skew since it knows that node $1$ transmitted these pulses
357: $d$ seconds apart. Each node $1i$ will also predict, in its own time
358: scale, when times
359: $\tau_{0}+dm,\tau_{0}+d(m+1),\ldots,\tau_{0}+d(2m-1)$ will occur in
360: the time scale of node $1$ and transmit $m$ pulses, one at each
361: predicted time. This means that each node $1i$ will transmit a pulse
362: approximately at times $\tau_{0}+dm, \tau_{0}+d(m+1),\ldots,
363: \tau_{0}+d(2m-1)$ in the time scale of node $1$. When the $R_{1}$
364: nodes each transmit their sequence of $m$ pulses, the nodes that can
365: hear a subset of the $R_{1}$ nodes, the $R_{2}$ nodes, will observe
366: clusters of pulses around the times $\tau_{0}+dm,
367: \tau_{0}+d(m+1),\ldots, \tau_{0}+d(2m-1)$ since each node $2i$ can
368: hear many $R_{1}$ nodes (Fig.~\ref{fig:PulseClusters}). In fact, we
369: make sure each node $2i$ can hear a cluster by requiring the node to
370: observe at least $\bar{N}$ pulses in each cluster.  If a node $2i$
371: sees less than $\bar{N}$ pulses in a cluster, then it will not make
372: observations.  Each node $2i$, a node $i\in R_{2}$, will note the
373: arrival time of each pulse in the $k$th cluster, $k=1,\ldots,m$, and
374: take the sample mean of these times to be its $k$th observation.
375: Node $2i$'s vector of observations will be denoted as
376: $\mathbf{Y}_{2i}$. Using these $m$ observations, any node $2i$ will
377: be able to estimate its clock skew since it knows that these
378: observations should be occurring $d$ seconds apart.  As well, it
379: will be able to predict in its local time scale when times
380: $\tau_{0}+d(2m), \tau_{0}+d(2m+1),\ldots,\tau_{0}+d(3m-1)$ will
381: occur in the time scale of the reference time.  Node $2i$ will then
382: transmit a pulse at each of those predicted times.  This processes
383: will repeat until all nodes in the network have an estimate of their
384: clock skew.  Notice that the $R_{1}$ nodes are not required to
385: observe $\bar{N}$ pulses in each cluster since they will always only
386: receive a sequence of $m$ pulses from node $1$.  Node $1$ can simply
387: broadcast a special packet to its surrounding nodes to identify the
388: $R_{1}$ nodes. An illustration of the process can be found in
389: Fig.~\ref{fig:nodeSets} and note that nodes will remain silent for
390: the remainder of the synchronization process after transmitting
391: their $m$ pulses. The cooperation occurs when a node $ki$ in
392: $R_{k}$, $k>1$, can take a sample mean of a cluster of pulse
393: arrivals.
394: 
395: To obtain the clock offset, the $R_{k}$ nodes will broadcast a
396: packet of information to the $R_{k+1}$ nodes, $k\geq 0$.  This
397: packet will contain the value of $\tau_{0}$ and a number $q$
398: denoting the number of hops out from node $1$.  For example, node
399: $1$ will transmit the value of $\tau_{0}$ and $q=0$ to the $R_{1}$
400: nodes.  The $R_{1}$ nodes will then send $\tau_{0}$ and $q=1$ to the
401: $R_{2}$ nodes.  In general, the $R_{k}$ nodes will send $\tau_{0}$
402: and $q=k$ to the $R_{k+1}$ nodes.  Any node $ki$ will then know that
403: its first observation approximately occurred at time $\tau_{0}+dmq$
404: in the time scale of the reference time, where the value of $q$ is
405: the one received from set $R_{k-1}$.
406: 
407: We now describe how any node $ki$ can estimate its clock skew,
408: clock offset, and its $m$ pulse transmission times. From
409: (\ref{eq:clock}), we know that there is a linear relationship
410: between the reference clock $c_{1}$ and the clock of node $ki$,
411: $c_{ki}$.  Node $ki$ will have a set of $m$ observations denoted
412: by the $m\times 1$ vector $\mathbf{Y}_{ki}$, where the elements of
413: the vector are ordered from the earliest observation time to the
414: latest observation time. Node $ki$ will estimate its clock skew as
415: \begin{equation} \label{eq:alphahat}
416: \hat{\alpha}_{ki} =
417: \bar{\mathbf{C}}(\mathbf{H}^{T}\mathbf{H})^{-1}\mathbf{H}^{T}\mathbf{Y}_{ki}
418: \end{equation}
419: and clock offset as
420: \begin{equation} \label{eq:Deltahat}
421: \hat{\Delta}_{ki} =
422: \tilde{\mathbf{C}}(\mathbf{H}^{T}\mathbf{H})^{-1}\mathbf{H}^{T}\mathbf{Y}_{ki}-(\tau_{0}+dm(k-1)),
423: \end{equation}
424: where $\bar{\mathbf{C}}=[0 \quad 1]$, $\tilde{\mathbf{C}}=[1 \quad
425: 0]$ and
426: \begin{equation}  \label{eq:H}
427: {\mathbf H} = \left[ \begin{array}{ccccc}
428: 1 & 1 & 1 & \ldots & 1\\
429: 0 & d & 2d & \ldots & (m-1)d
430: \end{array} \right]^T
431: \end{equation}
432: Note that in the calculation of the clock offset
433: $\hat{\Delta}_{ki}$, the term $\tau_{0}+dm(k-1)$ is the time in
434: the time scale of $c_{1}$ that node $ki$ should receive its first
435: pulse.  Node $ki$ has used the $\tau_{0}$ and $q=k-1$ parameters
436: sent to it from the $R_{k-1}$ nodes.  Node $ki$ will also estimate
437: its own $m$ pulse transmission times using
438: \begin{equation} \label{eq:pulsetimeestimate}
439: X_{ki}(l) =
440: \mathbf{C}_{l}(\mathbf{H}^{T}\mathbf{H})^{-1}\mathbf{H}^{T}\mathbf{Y}_{ki},
441: \end{equation}
442: where $\mathbf{C}_{l} = [1 \quad d(m+l)]$, for $l=0,1,\ldots,m-1$.
443: $X_{ki}(l)$ is the transmission time of node $ki$'s $(l+1)$th pulse.
444: A pseudo-code description is given in Table~\ref{tab:protocol}. Note
445: that the protocol described above is a completely new approach to
446: the asymptotic spatial averaging ideas we studied in~\cite{HuS:03b}.
447: 
448: \begin{table}[!h]
449: \caption{\rm The synchronization protocol for each node $ki$, $k >
450: 1$.}
451: \begin{center}
452: \fbox{\tt\begin{minipage}{70truemm}\small
453: \begin{tabbing}
454: \hspace{2mm} \= {\normalsize Cooperative Time Sync}
455:   \hspace{1cm} \\ \\
456:   \> wa\=it for pulse arrivals, at least $\bar{N}$ \\
457:   \> \>per cluster; \\
458:   \> while\mbox{ }(number of arrival clusters < $m$) \{ \\
459:   \> \> record arrival time of all pulses; \\
460:   \> \> listen for packet with $\tau_{0}$ and $q$ values; \\
461:   \> \}; \\
462:   \> for each (pulse arrival cluster $j$) \{\\
463:   \> \> $\mathbf{Y}_{ki}[j]=$ sample mean of cluster; \\
464:   \> \}; \\
465:   \> skew $\hat{\alpha}_{ki} =
466: \bar{\mathbf{C}}(\mathbf{H}^{T}\mathbf{H})^{-1}\mathbf{H}^{T}\mathbf{Y}_{ki}$;
467: \\
468: \> offset $\hat{\Delta}_{ki} =
469: \tilde{\mathbf{C}}(\mathbf{H}^{T}\mathbf{H})^{-1}\mathbf{H}^{T}\mathbf{Y}_{ki}-(\tau_{0}+dmq)$
470: \\
471: \> for (l from $0$ to $m-1$) \{ \\
472: \> \> transmission time $X_{ki}(l) =
473: \mathbf{C}_{l}(\mathbf{H}^{T}\mathbf{H})^{-1}\mathbf{H}^{T}\mathbf{Y}_{ki}$;
474: \\
475: \> \> transmit pulse at $X_{ki}(l)$; \\
476: \> \}; \\
477: \> while (transmitting pulses) \{ \\
478: \> \> send a packet with values $\tau_{0}$ and $q+1$; \\
479: \> \}; \\
480: \end{tabbing}
481: \end{minipage}}
482: \label{tab:protocol}
483: \end{center}
484: \end{table}
485: 
486: \section{Type I: Basic Cooperative Networks} \label{sec:typeI}
487: 
488: \subsection{Network Setup}
489: 
490: The most basic and fundamental deployment of nodes that effectively
491: employs cooperative time synchronization is the case where
492: \emph{all} $\bar{N}$ nodes at any given hop contribute to the
493: signals observed at the next hop.  This Type I deployment is
494: illustrated in the top of Fig.~\ref{fig:typeIcomparison} where each
495: set of nodes $R_{i}$, $i\geq 1$, have $\bar{N}$ nodes.  We see that
496: every node in $R_{i}$ is in the broadcast domain of every node in
497: $R_{i-1}$.
498: 
499: \subsection{Analysis} \label{sec:typeIanalysis}
500: 
501: Due to the scalability problem, we would expect synchronization
502: error to grow as timing information from node $1$ (the $R_{0}$ node)
503: is communicated to a node in the $R_{k}$ set of nodes, $k>0$.
504: Therefore, it is of particular interest to quantify how the variance
505: of the skew and offset estimates change as a function of the hop
506: number $k$.  Looking at the structure of the basic cooperative
507: network in Fig.~\ref{fig:typeIcomparison}, we notice that the skew
508: and offset estimates at a node $ki$ must be dependent only on the
509: estimates made by the nodes in $R_{k-1}$ since all the information
510: at $R_{k}$ comes from the $R_{k-1}$ set of nodes.  Therefore, to
511: understand the synchronization error growth over multiple hops, we
512: need the distribution of the estimates made by the nodes in $R_{k}$
513: as a function of the distribution of the estimates made by the nodes
514: in $R_{k-1}$.  Theorem~\ref{theorem:main}, below, provides us with
515: this characterization.
516: 
517: In the statement of the theorem we use $e_{l}$ to be the column
518: vector of all zeros except for a one in the $l$th position and
519: \begin{eqnarray} \label{eq:barH}
520: \bar{{\mathbf H}} = \left[ \begin{array}{cccc} {\mathbf H} & 0 &
521: \ldots & 0 \\
522: 0 & {\mathbf H} & \ldots & 0 \\
523: \vdots & \vdots & \ddots & \vdots \\
524: 0 & 0 & \ldots & {\mathbf H}
525: \end{array} \right],
526: \end{eqnarray}
527: where ${\mathbf H}$ is from (\ref{eq:H}).  Also, $\alpha_{ki}$ and
528: $\bar{\Delta}_{ki}$ are the clock model parameters from
529: (\ref{eq:clock}) for node $ki$.
530: 
531: \begin{theorem} \label{theorem:main}
532: Assume a Type I basic cooperative network.
533: 
534: (1) Given the distribution of the $2\bar{N}\times 1$ vector of
535: estimates made by the $R_{k-1}$ nodes,
536: \begin{equation*}
537: \hat{\bar{{\mathbf \theta}}}_{k-1} \sim {\mathcal
538: N}(\bar{\mu}_{k-1}, \bar{\Sigma}_{k-1}),
539: \end{equation*}
540: the distribution of the $2\bar{N}\times 1$ vector of estimates made
541: by the $R_{k}$ nodes,
542: \begin{equation*}
543: \hat{\bar{{\mathbf \theta}}}_{k} \sim {\mathcal N}(\bar{\mu}_{k},
544: \bar{\Sigma}_{k}),
545: \end{equation*}
546: is found as follows: $\hat{\bar{{\mathbf \theta}}}_{k}$ has mean
547: vector
548: \begin{eqnarray} \label{eq:muk}
549: \bar{\mu}_{k} &=& E(\hat{\bar{{\mathbf \theta}}}_{k}) \nonumber \\
550: &=& E(\mathbf{A}_{k}\hat{\bar{\mathbf{\theta}}}_{k-1} +
551: \mathbf{B}_{k}) \nonumber \\
552: &=& \mathbf{A}_{k}\bar{\mu}_{k-1} +
553: \mathbf{B}_{k} \nonumber \\
554: &=& \left[ \begin{array}{c}
555: \alpha_{k1}(\tau_{0}+(k-1)md-\bar{\Delta}_{k1}) \\
556: \alpha_{k1} \\
557: \vdots \\
558: \alpha_{k\bar{N}}(\tau_{0}+(k-1)md-\bar{\Delta}_{k\bar{N}}) \\
559: \alpha_{k\bar{N}} \\
560: \end{array} \right]
561: \end{eqnarray}
562: and covariance matrix
563: \begin{equation} \label{eq:sigmak}
564: \bar{\Sigma}_{k} = \textrm{Cov}(\hat{\bar{{\mathbf \theta}}}_{k}) =
565: \Sigma_{m_{k}}+\mathbf{A}_{k}\bar{\Sigma}_{k-1}\mathbf{A}_{k}^{T}
566: \end{equation}
567: for
568: \begin{eqnarray*}
569: \Sigma_{m_{k}} & = &
570: (\bar{\mathbf{H}}^{T}\bar{\mathbf{H}})^{-1}\bar{\mathbf{H}}^{T}\Sigma_{\bar{{\mathbf
571: W}}_{k}}((\bar{\mathbf{H}}^{T}\bar{\mathbf{H}})^{-1}\bar{\mathbf{H}}^{T})^{T}
572: \end{eqnarray*}
573: \begin{eqnarray*}
574: \Sigma_{\bar{{\mathbf W}}_{k}} = {\mathbf
575: Q}_{k}\Sigma_{\tilde{\Psi}_{k-1}}{\mathbf Q}_{k}^{T} + \sigma^2
576: {\mathbf I}_{\bar{N}m}
577: \end{eqnarray*}
578: \begin{displaymath}
579: {\mathbf Q}_{k} = \left[ \begin{array}{c} \alpha_{k1}{\mathbf I}_{m} \\
580: \vdots \\
581: \alpha_{k\bar{N}}{\mathbf I}_{m}
582: \end{array} \right]
583: \end{displaymath}
584: \begin{displaymath}
585: \Sigma_{\tilde{\Psi}_{k-1}} =
586: \frac{\sigma^{2}}{\bar{N}^{2}}\sum_{i=1}^{\bar{N}}\frac{1}{\alpha_{(k-1)i}^{2}}{\mathbf
587: I}_{m}
588: \end{displaymath}
589: where
590: \begin{eqnarray*}
591: \mathbf{A}_{k} = \mathbf{D}_{k}\left[
592: \begin{array}{ccccc} \frac{1}{\alpha_{(k-1)1}} &
593: \frac{dm}{\alpha_{(k-1)1}} & \ldots & 0
594: & 0 \\
595: 0 & \frac{1}{\alpha_{(k-1)1}} & \ldots & 0 & 0 \\
596: \vdots & \vdots & \ddots & \vdots & \vdots \\
597: 0 & 0 & \ldots & \frac{1}{\alpha_{(k-1)\bar{N}}} &
598: \frac{dm}{\alpha_{(k-1)\bar{N}}} \\
599: 0 & 0 & \ldots & 0 & \frac{1}{\alpha_{(k-1)\bar{N}}}
600: \end{array}\right]
601: \end{eqnarray*}
602: \begin{eqnarray*}
603: \mathbf{D}_{k} = \frac{1}{\bar{N}}\left[
604: \begin{array}{ccccc} \alpha_{k1} & 0  & \ldots &
605: \alpha_{k1}
606: & 0 \\
607: 0 & \alpha_{k1} & \ldots & 0 & \alpha_{k1} \\
608: \vdots & \vdots & \ddots & \vdots & \vdots \\
609: \alpha_{k\bar{N}} & 0 & \ldots & \alpha_{k\bar{N}}
610: & 0 \\
611: 0 & \alpha_{k\bar{N}} & \ldots & 0 & \alpha_{k\bar{N}}
612: \end{array}\right]
613: \end{eqnarray*}
614: \begin{eqnarray*}
615: \mathbf{B}_{k} = \mathbf{D}_{k}\left[ \begin{array}{c}
616: \bar{\Delta}_{(k-1)1} \\ 0 \\ \vdots \\
617: \bar{\Delta}_{(k-1)\bar{N}} \\ 0
618: \end{array}\right] - \left[ \begin{array}{c}
619: \alpha_{k1}\bar{\Delta}_{k1} \\ 0 \\ \vdots \\
620: \alpha_{k\bar{N}}\bar{\Delta}_{k\bar{N}} \\ 0
621: \end{array}\right].
622: \end{eqnarray*}
623: The initial conditions are
624: \begin{eqnarray*}
625: \bar{\mu}_{1} &=& \left[ \begin{array}{c}
626: \alpha_{11}(\tau_{0}-\bar{\Delta}_{11}) \\
627: \alpha_{11} \\
628: \vdots \\
629: \alpha_{1\bar{N}}(\tau_{0}-\bar{\Delta}_{1\bar{N}}) \\
630: \alpha_{1\bar{N}} \\
631: \end{array} \right]
632: \end{eqnarray*}
633: and
634: %\begin{displaymath}
635: $\bar{\Sigma}_{1} = \sigma^2(\bar{{\mathbf H}}^{T}\bar{{\mathbf
636: H}})^{-1}$.
637: %\end{displaymath}
638: 
639: (2) The skew estimate and offset estimate for node $ki$ can be found
640: as
641: \begin{equation} \label{eq:alphahatki}
642: \hat{\alpha}_{ki} = e_{2(i-1)+2}^{T}\hat{\bar{{\mathbf \theta}}}_{k}
643: \end{equation}
644: \begin{equation} \label{eq:Deltahatki}
645: \hat{\Delta}_{ki} = e_{2(i-1)+1}^{T}\hat{\bar{{\mathbf \theta}}}_{k}
646: - (\tau_{0}+dm(k-1))
647: \end{equation}
648: for $i=1,2,\ldots,\bar{N}$ and $k\geq 1$. \qquad $\bigtriangleup$
649: \end{theorem}
650: 
651: The proof of Theorem~\ref{theorem:main} is found in the appendix.
652: Since the distribution of $\hat{\bar{{\mathbf \theta}}}_{k}$ is
653: available, the distribution of $\hat{\alpha}_{ki}$ and
654: $\hat{\Delta}_{ki}$ can be found.  In fact, the variance of
655: $\hat{\alpha}_{ki}$ can be found in element ($2(i-1)+2$, $2(i-1)+2$)
656: of $\bar{\Sigma}_{k}$ in (\ref{eq:sigmak}) and the variance of
657: $\hat{\Delta}_{ki}$ can be found in element ($2(i-1)+1$,
658: $2(i-1)+1$).  The mean of $\hat{\alpha}_{ki}$ is the $(2(i-1)+2)$th
659: element of $\bar{\mu}_{k}$ in (\ref{eq:muk}) and the mean of
660: $\hat{\Delta}_{ki}$ can be found from the $(2(i-1)+1)$th element
661: shifted by $\tau_{0}+dm(k-1)$.
662: 
663: From the statement of Theorem~\ref{theorem:main}, we see that the
664: distribution of the estimates made by the $R_{k}$ nodes,
665: $\hat{\bar{{\mathbf \theta}}}_{k}$, is completely determined from
666: the distribution of $\hat{\bar{{\mathbf \theta}}}_{k-1}$.  This
667: recursive nature comes from the fact that the parameters estimated
668: by the $R_{k}$ nodes is only dependent on the estimates made by the
669: $R_{k-1}$ nodes.  The relationship between $\hat{\bar{{\mathbf
670: \theta}}}_{k-1}$ and $\hat{\bar{{\mathbf \theta}}}_{k}$ can be
671: intuitively understood in two steps. First, $\hat{\bar{{\mathbf
672: \theta}}}_{k-1}$ is the vector of synchronization parameters
673: estimated by the nodes in $R_{k-1}$. Therefore, these estimates will
674: establish the synchronization parameters for the $R_{k}$ nodes since
675: the $R_{k-1}$ nodes communicate timing information to the $R_{k}$
676: nodes.  The synchronization parameters for $R_{k}$ are found as
677: \begin{displaymath}
678: \bar{\mathbf{\theta}}_{k} =
679: \mathbf{A}_{k}\hat{\bar{\mathbf{\theta}}}_{k-1} + \mathbf{B}_{k}.
680: \end{displaymath}
681: Second, the $R_{k}$ nodes will use the timing information from the
682: $R_{k-1}$ nodes to make an unbiased estimate of the parameters
683: $\bar{\mathbf{\theta}}_{k}$, which gives us $\hat{\bar{{\mathbf
684: \theta}}}_{k}$.
685: 
686: Since any node $ki$'s skew and offset estimates are found as affine
687: transforms of $\hat{\bar{\theta}}_{k}$ in (\ref{eq:alphahatki}) and
688: (\ref{eq:Deltahatki}), respectively, we see that any estimation
689: errors made by the $R_{k-1}$ nodes will be propagated to the $R_{k}$
690: nodes' estimates of clock skew and clock offset.  However, the
691: intuitive understanding of cooperative time synchronization comes
692: from realizing that the matrix $\mathbf{A}_{k}$ takes an ``average''
693: over $\hat{\bar{\mathbf{\theta}}}_{k-1}$ thus mitigating the errors
694: made by any particular node $(k-1)i$.  As a result, the
695: synchronization parameters communicated to the $R_{k}$ nodes will be
696: less noisy and, therefore, the skew and offset estimates made by a
697: node $ki$ will have less error. We would, thus, expect the variance
698: of the estimates to decrease with increasing $\bar{N}$. Notice that
699: our Type I network analysis does not explicitly utilize the circular
700: transmission region with radius $R$.
701: 
702: \subsection{Simulation Results} \label{sec:typeIsimulation}
703: 
704: In Fig.~\ref{fig:typeI_alphaIncluded} we illustrate the MATLAB
705: simulation results for two $20$ hop networks, one with $\bar{N}=2$
706: and the other with $\bar{N}=4$. The following parameters were used:
707: \begin{eqnarray*}
708: R = 1 \qquad d = 5 \qquad m = 4 \qquad \sigma = 0.01
709: \end{eqnarray*}
710: For each network, a set of $N=20\bar{N}+1$ nodes were first placed
711: in a Type I network deployment.  Each node's skew parameter was then
712: generated using $\alpha_{i} = |X_i|$ for $X_i\sim{\mathcal
713: N}(1,0.005)$, independently for each node $i$.  Node $1$ was assumed
714: to have $\alpha_1=1$.  The cooperative time synchronization protocol
715: was then run $5000$ times using the deployed network.  At each hop,
716: the $5000$ skew and offset estimates of one chosen node were used to
717: generate the simulated skew and offset estimate variance curves
718: shown in Fig.~\ref{fig:typeI_alphaIncluded}.  The theoretical
719: variance value of the chosen node at each hop was computed using the
720: recursive expression found in (\ref{eq:sigmak}).
721: 
722: \begin{figure}[!ht]
723: \centerline{\psfig{file=typeIskew_alpha.eps,width=8.25cm}}
724: \centerline{\psfig{file=typeIoffset_alpha.eps,width=8.25cm}}
725: \caption{\small $\textrm{Var}(\hat{\alpha}_{k1})$ is plotted in the
726: top figure and $\textrm{Var}(\hat{\Delta}_{k1})$ is plotted in the
727: bottom figure as a function of $k$. }
728: \label{fig:typeI_alphaIncluded}
729: \end{figure}
730: % simulation1b
731: 
732: In Fig.~\ref{fig:typeI_alphaIncluded}, we first clearly see that the
733: simulated skew and offset variance values nicely match the predicted
734: theoretical variance values.  As well, the expected decrease in skew
735: and offset variance as $\bar{N}$ increases from $2$ to $4$ is
736: immediately noticeable. In fact, in both the skew variance and
737: offset variance curves, we have an approximate halving of the
738: variance values as we double $\bar{N}$ from $2$ to $4$.  Also
739: expected, is that the variance values at each hop depend on the
740: particular values of $\alpha_{i}$, $i=1,\ldots,N$. This dependence
741: on the $\alpha_{i}$ values result in the jagged skew and offset
742: variance curves seen in Fig.~\ref{fig:typeI_alphaIncluded}. The
743: $\bar{N}=2$ network had $\alpha_{i}$ values ranging from $0.9073$ to
744: $1.1342$, while the $\bar{N}=4$ network had skew values ranging from
745: $0.8339$ to $1.1669$.
746: 
747: The problem with having the variance curves depend on the actual
748: skew values is that the exact performance of cooperative time
749: synchronization is dependent on the network realization. However, we
750: find that for $\alpha_{i}$ values that are close to and centered
751: around $1$, the variance curves follow the trend established by the
752: theoretical variance curves for $\alpha_{i}=1$, all $i$. This can be
753: seen in Fig.~\ref{fig:typeI_alphaIncluded} where we have also
754: plotted the theoretical curves using $\alpha_{i}=1$ for all $i$ for
755: $\bar{N}=2$ and $\bar{N}=4$. As a result, the situation where
756: $\alpha_{i}=1$, all $i$, can be used to study the the performance
757: improvement of cooperative time synchronization without dealing
758: specifically with the skew values of individual nodes.
759: 
760: Therefore, to get a better understanding of how cooperative time
761: synchronization improves synchronization performance, let us
762: simplify the recursive expression in (\ref{eq:sigmak}) for the
763: special case where $\alpha_{i}=1$ for all $i$ and find a
764: non-recursive expression for skew and offset variance.  The first
765: thing to note is that under the assumption of $\alpha_{i}=1$ for all
766: $i$, $\mathbf{A}_{k}=\mathbf{A}$ and $\Sigma_{m_{k}} = \Sigma_{m}$
767: are no longer dependent on $k$. Therefore, writing out the recursive
768: expression for $\bar{\Sigma}_{k}$ (\ref{eq:sigmak}), we have
769: \begin{equation} \label{eq:noalphaExpression}
770: \bar{\Sigma}_{k} =
771: \sum_{i=0}^{k-2}\mathbf{A}^{i}\Sigma_{m}(\mathbf{A}^{T})^{i} +
772: \mathbf{A}^{k-1}\bar{\Sigma}_{1}(\mathbf{A}^{T})^{k-1}.
773: \end{equation}
774: Using (\ref{eq:noalphaExpression}), Corollary~\ref{corollary:main}
775: gives us the non-recursive expression for skew and offset variance.
776: 
777: \begin{corollary} \label{corollary:main}
778: For a basic cooperative network with $\alpha_{i}=1$, all $i$,
779: $\hat{\alpha}_{ki}$ and $\hat{\Delta}_{ki}$ have the following mean
780: and variance:
781: \begin{equation}
782: E(\hat{\alpha}_{ki}) = 1 \nonumber
783: \end{equation}
784: \begin{equation}
785: E(\hat{\Delta}_{ki}) = -\bar{\Delta}_{ki} \nonumber
786: \end{equation}
787: \begin{equation} \label{eq:alphahatki_alphaEq1}
788: \textrm{Var}(\hat{\alpha}_{ki}) =
789: \frac{12\sigma^2}{d^2(m-1)m(m+1)}\left(
790: 1+\frac{2(k-1)}{\bar{N}}\right)
791: \end{equation}
792: \begin{eqnarray} \label{eq:Deltahatki_alphaEq1}
793: \lefteqn{\textrm{Var}(\hat{\Delta}_{ki}) =
794: \frac{2\sigma^2(2m-1)}{m(m+1)} +
795: \frac{\sigma^2}{\bar{N}}\bigg[\frac{4(k-1)(2m-1)}{m(m+1)} }
796: \nonumber
797: \\
798: &&+ (k-1)^2\bigg(-\frac{12}{(m+1)}+\frac{12m}{(m-1)(m+1)}\bigg)
799: \nonumber \\
800: &&+ \frac{1}{3}(k-2)(k-1)(2k-3)\frac{12m}{(m-1)(m+1)}\bigg]
801: \end{eqnarray}
802: where $k$ is a positive integer. \qquad $\bigtriangleup$
803: \end{corollary}
804: 
805: The proof of Corollary~\ref{corollary:main} is omitted since it is a
806: direct simplification of (\ref{eq:noalphaExpression}). Note that the
807: skew and offset variance expressions are only a function of $k$ and
808: not $i$. The theoretical skew and offset variance of the $i$th node
809: at the $k$th hop (node $ki$) can be found in elements ($2(i-1)+2$,
810: $2(i-1)+2$) and ($2(i-1)+1$, $2(i-1)+1$), respectively, of
811: $\bar{\Sigma}_{k}$ in (\ref{eq:noalphaExpression}). However, the
812: skew variance values in elements ($2(i-1)+2$, $2(i-1)+2$),
813: $i=1,\ldots,\bar{N}$, are all equal and the offset variance values
814: in elements ($2(i-1)+1$, $2(i-1)+1$), $i=1,\ldots,\bar{N}$, are also
815: equal when we assume that $\alpha_{i}=1$ for all $i$.  As a result,
816: we can consider the skew and offset variance at a hop $k$ without
817: specifying a particular node.  Notice also that, besides the sign
818: change in the mean of the offset estimate, the skew and offset
819: estimates are unbiased estimates of the clock parameters of node
820: $ki$.
821: 
822: Looking at the skew and offset variance curves in
823: (\ref{eq:alphahatki_alphaEq1}) and (\ref{eq:Deltahatki_alphaEq1}),
824: respectively, we see that the variance growth decreases like
825: $1/\bar{N}$.  This $1/\bar{N}$ factor in both
826: (\ref{eq:alphahatki_alphaEq1}) and (\ref{eq:Deltahatki_alphaEq1}) is
827: expected since every node takes the sample mean of $\bar{N}$ pulses
828: to be an observation.  The variance of the observation decreases
829: like $1/\bar{N}$ because it is a sample mean and, thus, it is not
830: surprising that the skew and offset variance values also
831: approximately decrease like $1/\bar{N}$.
832: 
833: \section{Type II: General Networks} \label{sec:typeII}
834: 
835: \subsection{Network Setup}
836: 
837: Nodes will not generally be clustered together as in a basic
838: cooperative network, but be deployed in a more random manner. As a
839: result, to study general network deployments, we will consider a
840: Type II situation where nodes are uniformly deployed with density
841: $\rho$ over a circular region of radius $LR$ with node $1$ at the
842: center. In such a setup, at any hop $k$, $k\geq 2$, a node $ki$ in
843: the $R_{k}$ nodes will see \emph{at least} $\bar{N}$ nodes from the
844: $R_{k-1}$ set of nodes. However, the exact number of observed nodes
845: will depend on node $ki$'s location in the region occupied by the
846: $R_{k}$ nodes.
847: 
848: An illustration of a Type II deployment is shown in
849: Fig.~\ref{fig:type2setup}.  We note that the $R_{0}$ node (node $1$)
850: is placed at the center of the disk and the $R_{1}$ nodes occupy a
851: circular region of radius $R$.  However, the region occupied by the
852: $R_{k}$ nodes for $k\geq 2$ is a ring centered around node $1$ with
853: a ring thickness of $d_{max,k}$.  For increasing $k$, the distance
854: from node $1$ to the inner circular boundary of the region occupied
855: by the $R_{k}$ set of nodes increases.
856: 
857: \begin{figure}[!ht]
858: \centerline{\psfig{file=type3setup.eps,width=5cm}} \caption{\small A
859: Type II network deployment. Nodes are deployed with uniform density
860: $\rho$ and node $1$ is at the center of the network.}
861: \label{fig:type2setup}
862: \end{figure}
863: 
864: \subsection{Analysis} \label{sec:typeII-analysis}
865: 
866: To study a Type II network, we could carry out an analysis similar
867: to the one we did for the Type I basic cooperative network. Assuming
868: we know the location of all nodes for a given network deployment
869: over the circular region of radius $LR$, we would be able to
870: determine the neighbors of each node and then readily extend the
871: Type I analysis to this Type II network.  The primary change that
872: would occur in the analysis is the determination of the affine
873: transform
874: \begin{displaymath}
875: \hat{\bar{\theta}}_{k} \mapsto
876: \bar{\theta}_{k+1}=\mathbf{A}_{k+1}\hat{\bar{\theta}}_{k}+\mathbf{B}_{k+1}.
877: \end{displaymath}
878: However, there are two issues that arise in determining the
879: transform matrix $\mathbf{A}_{k+1}$ and vector $\mathbf{B}_{k+1}$.
880: 
881: First, since $R_{k}$ and $R_{k+1}$ will most likely have different
882: numbers of nodes, we immediately see that $\mathbf{A}_{k+1}$ will be
883: a $2|R_{k+1}|\times 2|R_{k}|$ matrix and $\mathbf{B}_{k+1}$ will be
884: a $2|R_{k+1}|\times 1$ vector, where $|R_{k}|$ is the cardinality of
885: set $R_{k}$.  This means that the length of vector
886: $\hat{\bar{\theta}}_{k}$ will change with every hop.
887: 
888: Second, for any node $(k+1)i$ in $R_{k+1}$, the set of cooperating
889: nodes in $R_{k}$ will be different.  Thus, $\mathbf{A}_{k}$ will
890: also reflect this difference.  Therefore, every time we move from
891: hop $k$ to $k+1$, the correlation structure of
892: $\hat{\bar{\theta}}_{k}$ will change.
893: 
894: Together, these two points suggest that even though it is possible
895: to carry out the full analysis, the complexity would make the
896: resulting expressions depend on the particular network realization
897: and not provide significant insight into the problem.  In fact, it
898: would be nearly impossible to visualize the result without carrying
899: out a numerical evaluation.  Since our goal is to comprehend the
900: impact of spatial averaging on general networks, we choose to
901: proceed directly with simulations and compare the results with our
902: analytical expressions for Type I networks.
903: 
904: In the following analysis, we develop a basic understanding of what
905: we would expect to see in the simulation results that are presented
906: in Section~\ref{sec:typeIIIsimulation}. We assume that the number of
907: nodes in any given area of the Type II network is proportional to
908: the area. The reason is that for uniformly deployed nodes with
909: density $\rho$, the average number of nodes in an area ${\mathcal
910: A}$ is ${\mathcal A}\rho$.  Note that even though the analysis and
911: simulation results for Type II networks use the assumption of a
912: circular transmission range of $R$, the simulation results in
913: Section~\ref{sec:typeIIIsimulation} still provide valid insight when
914: realistic transmission regions~\cite{GanesanKWCEW:02,ZhaoG:03} are
915: assumed since the figures illustrate synchronization error as a
916: function of \emph{hop} number.  Therefore, regardless of the shape
917: of the transmission region, a node at hop $k$ will have received the
918: appropriate synchronization information and, thus, our simulation
919: results reflect its synchronization performance.
920: 
921: \subsubsection{Estimation of $\bar{L}$} \label{sec:estimatebarL}
922: 
923: Our first consideration is to estimate the number of hops,
924: $\bar{L}$, required to communicate timing information from node $1$
925: to the edge of the network a distance $LR$ away. In order to do
926: this, we need a way to quantify $d_{max,k}$. In
927: Fig.~\ref{fig:type2dmax}, we illustrate $d_{max,2}$ and see that
928: $d_{max,2}$ is determined by having the intersection of the two
929: radius $R$ circles contain an average of $\bar{N}$ nodes. This is
930: because if we increase $d_{max,2}$, then nodes at this increased
931: distance will not see $\bar{N}$ nodes on average and, thus, not be
932: considered an $R_{2}$ node.  However, $d_{max,k}>d_{max,2}$, for
933: $k>2$, because the ring occupied by the $R_{k}$ nodes increases in
934: size for increasing $k$.  As a result, we choose to be conservative
935: and let $d_{max}\stackrel{\Delta}{=}d_{max,2}$ approximate
936: $d_{max,k}$ for all $k$. This means that our estimate of $\bar{L}$
937: using $d_{max}$ will be greater than or equal to the number of hops
938: required to reach a distance of $LR$ when the differences in
939: $d_{max,k}$ are considered.
940: 
941: \begin{figure}[!ht]
942: \centerline{\psfig{file=type3dmax.eps,width=6cm}} \caption{\small An
943: illustration of $d_{max,2}$.} \label{fig:type2dmax}
944: \end{figure}
945: 
946: Let $A$ be the area of the intersection of the two radius $R$
947: circles in Fig.~\ref{fig:type2dmax} and we have
948: from~\cite{Weisstein:03} that
949: \begin{equation} \label{eq:circsegarea}
950: A =
951: 2\left(R^2\cos^{-1}\left(\frac{R-h}{R}\right)-(R-h)\sqrt{2Rh-h^2}\right).
952: \end{equation}
953: Since $A$ contains $\bar{N}$ nodes, we have that
954: \begin{equation} \label{eq:Aexpression}
955: A = \bar{N}/\rho.
956: \end{equation}
957: From (\ref{eq:circsegarea}) and (\ref{eq:Aexpression}) we can
958: numerically determine $h$ thus giving us
959: \begin{equation} \label{eq:dmax2}
960: d_{max} = R-2h.
961: \end{equation}
962: As a result, we need $\bar{L}$ to satisfy
963: \begin{displaymath}
964: R+(\bar{L}-1)d_{max}\geq LR
965: \end{displaymath}
966: which means that
967: \begin{equation} \label{eq:barL2}
968: \bar{L} = \left\lceil\frac{R(L-1)}{R-2h}+1 \right\rceil.
969: \end{equation}
970: 
971: \subsubsection{Comparison to Type I Networks} \label{sec:uplowbounds}
972: 
973: We will compare the Type II network simulation results to the Type I
974: analytical results.  This comparison will allow us to carry over the
975: intuition regarding spatial averaging that we have developed for the
976: basic cooperative network.  However, Type I and Type II networks
977: differ primarily in that Type I networks assume that all nodes will
978: observe $\bar{N}$ neighbors from the previous hop while any node in
979: a Type II network will only see \emph{at least} $\bar{N}$ nodes.
980: Thus, if we want to compare Type I and Type II plots, we need to
981: establish some meaningful choices of the number of cooperating nodes
982: for use with expressions (\ref{eq:alphahatki_alphaEq1}) and
983: (\ref{eq:Deltahatki_alphaEq1}).
984: 
985: \begin{figure}[!ht]
986: \centerline{\psfig{file=type3Nbark.eps,width=7cm}} \caption{\small
987: (a) Node $ki$ at the outer circular boundary of the $R_{k}$ set of
988: nodes.  (b) Node $ki$ at the inner circular boundary of the $R_{k}$
989: set.} \label{fig:type2Nbark}
990: \end{figure}
991: 
992: Looking at (a) of Fig.~\ref{fig:type2Nbark}, we see that if a node
993: $ki$ in the region occupied by the $R_{k}$ nodes is at the circular
994: boundary farthest from node $1$ (outer circular boundary), then it
995: will likely hear only $\bar{N}$ nodes from $R_{k-1}$. That is, there
996: are $\bar{N}=A_{1}\rho$ nodes in area $A_{1}$. Recall that $\bar{N}$
997: is the minimum number of $R_{k-1}$ nodes any node $ki$ will hear.
998: However, looking at (b) in Fig.~\ref{fig:type2Nbark}, a node $ki$ at
999: the circular boundary closest to node $1$ (inner circular boundary)
1000: in the $R_{k}$ region will hear many more nodes. In fact, a node
1001: $ki$ at the boundary between $R_{k-1}$ and $R_{k}$ will hear the
1002: largest average number of nodes $\bar{N}_{max}(k)=A_{2}\rho$. Since
1003: $\bar{N}$ and $\bar{N}_{max}(k)$ is the range of the number of
1004: cooperating nodes seen by a node in $R_{k}$, it would make sense to
1005: plot Type I expressions (\ref{eq:alphahatki_alphaEq1}) and
1006: (\ref{eq:Deltahatki_alphaEq1}) using these two values. However,
1007: $\bar{N}_{max}(k)$ varies with $k$.  In Fig.~\ref{fig:type2Nmax} we
1008: illustrate the regions occupied by the $R_{k}$ nodes for $k=1$,
1009: $k>1$, and $k>>1$ overlayed on top of each other and in each
1010: situation, we see that the set of nodes in $R_{k}$ seen by a node at
1011: the boundary between the $R_{k}$ nodes and the $R_{k+1}$ nodes is
1012: different for changing values of $k$. However, it is clear that the
1013: area of intersection always falls inside a semicircle of radius $R$.
1014: As a result, we will approximate $\bar{N}_{max}=\max_{k:k\geq
1015: 2}\bar{N}_{max}(k)$, by upper bounding the maximum area of
1016: intersection with the area of the semicircle. This means that
1017: \begin{equation} \label{eq:nbarmax2}
1018: \bar{N}_{max} \approx \rho\frac{\pi R^{2}}{2}.
1019: \end{equation}
1020: Thus, in comparing Type II and Type I results, we will use $\bar{N}$
1021: and $\bar{N}_{max}$ in (\ref{eq:nbarmax2}) with both
1022: (\ref{eq:alphahatki_alphaEq1}) and (\ref{eq:Deltahatki_alphaEq1})
1023: 
1024: \begin{figure}[!ht]
1025: \centerline{\psfig{file=type3Nmax.eps,width=5cm}} \caption{The
1026: regions occupied by the $R_{k}$ nodes for $k=1$, $k>1$, and $k>>1$
1027: overlayed on top of each other. The region of nodes seen by a node
1028: at the inner circular boundary of $R_{k+1}$ changes with $k$. \small
1029: } \label{fig:type2Nmax}
1030: \end{figure}
1031: 
1032: Using $\bar{N}$ with (\ref{eq:alphahatki_alphaEq1}) and
1033: (\ref{eq:Deltahatki_alphaEq1}) will provide a curve that tends to be
1034: higher than the Type II simulated curves for two main reasons.
1035: First, since $\bar{N}$ is the minimum number of nodes in $R_{k-1}$
1036: that a node $ki$ in $R_{k}$ will hear and we know that a larger
1037: number of cooperating nodes will result in decreased estimation
1038: variance, the variance values computed using $\bar{N}$ will tend to
1039: be higher. Second, even if a node $ki$ in $R_{k}$ hears $\bar{N}$
1040: nodes from $R_{k-1}$, each of those $\bar{N}$ nodes did not
1041: necessarily only hear $\bar{N}$ nodes from $R_{k-2}$. Thus, the skew
1042: and offset estimates made by each of those $\bar{N}$ nodes in
1043: $R_{k-1}$ whose transmissions are being heard by node $ki$ may have
1044: a variance that is less than predicted by
1045: (\ref{eq:alphahatki_alphaEq1}) and (\ref{eq:Deltahatki_alphaEq1})
1046: using $\bar{N}$. The improved skew and offset estimates made by the
1047: nodes in $R_{k-1}$ will thus lead to a lower estimation variance for
1048: node $ki$ even though node $ki$ hears only $\bar{N}$ from $R_{k-1}$.
1049: 
1050: Using $\bar{N}_{max}$ with (\ref{eq:alphahatki_alphaEq1}) and
1051: (\ref{eq:Deltahatki_alphaEq1}) will provide a curve that tends to be
1052: lower than the Type II simulated curves for two similar reasons.
1053: First, since $\bar{N}_{max}$ is the average number of nodes heard by
1054: a node at the inner circular boundary of $R_{k}$, $k\geq2$, and all
1055: other nodes in $R_{k}$ will on average hear fewer nodes, a Type I
1056: curve using $\bar{N}_{max}$ will tend to yield lower values. Second,
1057: not all nodes in $R_{k-1}$ make their estimates using a signal
1058: cooperatively generated by $\bar{N}_{max}$ nodes.  In fact, most
1059: nodes in $R_{k-1}$ observe fewer than $\bar{N}_{max}$ nodes. As a
1060: result, the lower quality estimates made by some of the $R_{k-1}$
1061: nodes will cause the estimation variance of the $R_{k}$ nodes that
1062: hear $\bar{N}_{max}$ from $R_{k-1}$ to be greater than predicted by
1063: (\ref{eq:alphahatki_alphaEq1}) and (\ref{eq:Deltahatki_alphaEq1})
1064: using $\bar{N}_{max}$.
1065: 
1066: \subsubsection{Synchronization Performance and Node Density}
1067: \label{sec:perfandnodedensity}
1068: 
1069: The third issue we want to address in analyzing a Type II network
1070: deployment is how to decrease synchronization error when we know
1071: from Section \ref{sec:estimatebarL} that the number of hops
1072: $\bar{L}$ required to communicate timing information from node $1$
1073: to the edge of the network a distance $LR$ away is determined by
1074: $\bar{N}$. Given a fixed $R$, we can start with some $\bar{N}$ and
1075: $\rho$. Using (\ref{eq:circsegarea}), (\ref{eq:Aexpression}), and
1076: (\ref{eq:dmax2}), we can determine the value of $d_{max}$ and,
1077: hence, from (\ref{eq:barL2}) the number of hops $\bar{L}$ required
1078: to send timing information from node $1$ to the edge of the network.
1079: In order to decrease synchronization error at a distance $LR$ from
1080: node $1$, we need to increase $\bar{N}$. However, only increasing
1081: $\bar{N}$ will decrease $d_{max}$ and increase $\bar{L}$. Therefore,
1082: we need to increase both $\bar{N}$ and $\rho$. From
1083: (\ref{eq:circsegarea}) and (\ref{eq:Aexpression}), we see that if
1084: $\bar{N}/\rho$ is kept constant, then $h$ will be constant.  If $h$
1085: is constant, then so is $d_{max}$. As a result, by increasing node
1086: density, we can increase the minimum number of cooperating nodes
1087: $\bar{N}$ and therefore decrease synchronization error.
1088: 
1089: \subsection{Simulation Results} \label{sec:typeIIIsimulation}
1090: 
1091: In the following simulation results, we have assumed that all nodes
1092: in the network have no clock skew, i.e. $\alpha_{i}=1$ for all $i$.
1093: From Section~\ref{sec:typeIsimulation} we know that general
1094: $\alpha_{i}$ values result in variance curves that follow the trends
1095: established by curves generated using $\alpha_{i}=1$. As a result,
1096: using $\alpha_{i}=1$ for all $i$ allows us to study the benefits of
1097: spatial averaging without considering effects that are dependent on
1098: the particular network realization.
1099: 
1100: \subsubsection{Comparison to Type I Results}
1101: \label{sec:typeIIIsimulation-bounds}
1102: 
1103: To being the study of cooperative time synchronization in general
1104: networks, we deploy a network for Simulation $1$ with the parameters
1105: in Table~\ref{tab:simulation1}.
1106: \begin{table}[!ht]
1107: \caption{\rm Simulation 1 Parameters}
1108: \begin{center}
1109: \begin{tabular}{|c|c|}
1110: \hline
1111: $\rho$ & 19.10 \\
1112: $\bar{N}$ & 4 \\
1113: $R$ & 1 \\
1114: $L$ & 5 \\
1115: $d$ & 2 \\
1116: $m$ & 4 \\
1117: $\sigma$ & 0.01 \\
1118: Number of Runs & 5000 \\
1119: \hline
1120: \end{tabular}
1121: \end{center}
1122: \label{tab:simulation1}
1123: \end{table}
1124: %\begin{eqnarray*}
1125: %\bar{N} &=& 4 \\
1126: %R &=& 1 \\
1127: %L &=& 5 \\
1128: %d &=& 2 \\
1129: %m &=& 4 \\
1130: %\sigma &=& 0.01 \\
1131: %\rho &=& 19.10
1132: %\end{eqnarray*}
1133: The simulation results are displayed in Fig.~\ref{fig:type2bound}.
1134: In each run, a new network of nodes was uniformly deployed over a
1135: circular area of radius $LR=5$ and the MATLAB simulator implemented
1136: the cooperative time synchronization protocol. Besides plotting the
1137: Type I comparison curves described in Section~\ref{sec:uplowbounds},
1138: we also plot the sample variance of the best performing node and the
1139: worse performing node. In each run, the node in $R_{k}$ that sees
1140: the fewest number of nodes from $R_{k-1}$ is considered the worse
1141: performing node while the node in $R_{k}$ that sees the largest
1142: number of nodes from $R_{k-1}$ is the best performing node. For the
1143: $l$th run, the fewest number of nodes seen by a node in $R_{k}$ is
1144: denoted $X_{min}^{(l)}(k)$ while the largest number of nodes seen by
1145: a node in $R_{k}$ is denoted $X_{max}^{(l)}(k)$.  The skew and
1146: offset estimate of the best and worst performing node at each hop is
1147: recorded and the sample variance over the $5000$ runs is plotted.
1148: 
1149: The top figure in Fig.~\ref{fig:type2bound} illustrates the sample
1150: skew variance curves of the worst and best synchronized node along
1151: with the Type I curves for comparison. The bottom figure in
1152: Fig.~\ref{fig:type2bound} illustrates the clock offset estimate
1153: sample variance. Note that using equation (\ref{eq:barL2}) and the
1154: parameters in Table~\ref{tab:simulation1}, we find that $\bar{L}=7$.
1155: From the simulations, we also see that $7$ hops are required to
1156: traverse the network. In fact, only $7.32\%$ of the networks
1157: required more than $7$ hops to reach all nodes in the network.
1158: 
1159: \begin{figure}[!ht]
1160: \centerline{\psfig{file=type3skewbound.eps,width=8.25cm}}
1161: \centerline{\psfig{file=type3offsetbound.eps,width=8.25cm}}
1162: \caption{\small Simulation $1$. Top: Sample variance for the skew
1163: estimate of a Type II network along with Type I comparison curves.
1164: Bottom: Sample variance of the offset estimate along with Type I
1165: comparison curves.} \label{fig:type2bound}
1166: \end{figure}
1167: % simulation3 (mainRun3new_5000_V6.mat)
1168: 
1169: As predicted in Section~\ref{sec:uplowbounds}, we clearly see in
1170: Fig.~\ref{fig:type2bound} that the worst case variance and the best
1171: case variance are sandwiched between the Type I comparison curves.
1172: Also, as expected, the skew and offset variances do not closely
1173: follow the upper and lower Type I comparison curves.  The worst case
1174: skew and offset variance follow the upper comparison cruve for the
1175: first $2$ hops and then begin do deviate from the curve.  As
1176: mentioned in Section~\ref{sec:uplowbounds}, this is because the
1177: nodes contributing to the worst performing node may have received
1178: signals from more than $\bar{N}$ nodes. Similarly, the best case
1179: skew and offset variance follow the lower comparison curve for the
1180: first $2$ hops before deviating. This is because many of the nodes
1181: contributing signals to the best performing node made their
1182: estimates using a signal cooperatively generated by less than
1183: $\bar{N}_{max}$ nodes. Also of interest is the steep decrease in the
1184: worst case skew and offset variance at hop $k=7$.  This is due to
1185: the fact that on average, the distance from the outer circular
1186: boundary of the $R_{6}$ region to the network boundary is much less
1187: than $d_{max}$. As a result, the $R_{7}$ region is smaller and
1188: $X_{min}(7)$ will be larger than $\bar{N}$.
1189: Table~\ref{tab:type2_nbarvalues1} shows the
1190: $X_{min}(k)=\frac{1}{5000}\sum_{l=1}^{5000}X_{min}^{(l)}(k)$ and
1191: $X_{max}(k)=\frac{1}{5000}\sum_{l=1}^{5000}X_{max}^{(l)}(k)$ values
1192: and we see that $X_{min}(6)=\bar{N}=4$, but $X_{min}(7)$ is nearly
1193: twice $X_{min}(6)$.
1194: 
1195: \begin{table}[!ht]
1196: \caption{\rm $X_{min}(k)$ and $X_{max}(k)$ for
1197: Fig.~\ref{fig:type2bound}}
1198: \begin{center}
1199: \begin{tabular}{|c|c|c|}
1200: \hline
1201: $k$& $X_{min}(k)$ & $X_{max}(k)$\\
1202: \hline
1203: 1&1&1\\
1204: 2&4.00&27.56\\
1205: 3&4.00&29.36\\
1206: 4&4.00&31.86\\
1207: 5&4.00&33.50\\
1208: 6&4.00&34.60\\
1209: 7&7.77&35.32\\
1210: \hline
1211: \end{tabular}
1212: \end{center}
1213: \label{tab:type2_nbarvalues1}
1214: \end{table}
1215: 
1216: We also note that $X_{max}(k)$ increases from $27.56$ for $k=2$ to
1217: $35.32$ for $k=7$.  Using (\ref{eq:nbarmax2}), however, we find that
1218: $\bar{N}_{max}=30$.  The reason $X_{max}(k)$ increases with each hop
1219: and does not equal $\bar{N}_{max}$ is because $X_{max}(k)$ is a
1220: different statistic.  $\bar{N}_{max}$ approximates the average
1221: number of $R_{k-1}$ nodes seen by a node $ki$ at the inner circular
1222: boundary of $R_{k}$. However, $X_{max}^{(l)}(k)$ is \emph{the}
1223: largest number of nodes seen by any node $ki$ in $R_{k}$ for the
1224: $l$th network realization. Therefore, $X_{max}^{(l)}(k)$ is actually
1225: an ordered statistic since it takes the largest number of nodes seen
1226: by a node at hop $k$. $X_{max}(k)$ is thus the mean of the ordered
1227: statistic. Therefore, we would not expect $\bar{N}_{max}$ and
1228: $X_{max}(k)$ to be the same. Also, $X_{max}(k)$ increases with $k$
1229: since as the circumference of the circular ring occupied by $R_{k}$
1230: increases, there are more nodes at the boundary between $R_{k}$ and
1231: $R_{k-1}$.  Since there are more nodes at the boundary, there are
1232: also more opportunities to find the largest number of nodes seen by
1233: a node $ki$.  Thus, the maximum number of nodes would tend to be
1234: larger. Note that, not considering the effects at the network
1235: boundary, $X_{min}(k)=\bar{N}$ because the definition of the
1236: protocol specifies the minimum to be $\bar{N}$ and there is little
1237: randomness in determining $X_{min}(k)$.
1238: 
1239: \subsubsection{Synchronization Performance and Node Density}
1240: \label{sec:typeIIIsimulation-densityincrease}
1241: 
1242: \begin{figure}[!ht]
1243: \centerline{\psfig{file=type3skewbound_lower.eps,width=8.25cm}}
1244: \centerline{\psfig{file=type3offsetbound_lower.eps,width=8.25cm}}
1245: \caption{\small Simulation $1$b. The Type I comparison curves and
1246: the Type II sample skew and offset variance curves are lower as
1247: compared to Fig.~\ref{fig:type2bound} when $\bar{N}$ and $\rho$ are
1248: increased. More cooperation yields improved synchronization
1249: performance.} \label{fig:type2bound_lower}
1250: \end{figure}
1251: % simulation3 (mainRun4new_5000_V6.mat)
1252: 
1253: \begin{table}[!ht]
1254: \caption{\rm Simulation 1b Parameters}
1255: \begin{center}
1256: \begin{tabular}{|c|c|}
1257: \hline
1258: $\rho$ & 23.87 \\
1259: $\bar{N}$ & 6 \\
1260: $R$ & 1 \\
1261: $L$ & 5 \\
1262: $d$ & 2 \\
1263: $m$ & 4 \\
1264: $\sigma$ & 0.01 \\
1265: Number of Runs & 5000 \\
1266: \hline
1267: \end{tabular}
1268: \end{center}
1269: \label{tab:simulation1b}
1270: \end{table}
1271: 
1272: Next, we want to improve synchronization performance by increasing
1273: node density.  Starting with the parameters for Simulation $1$, we
1274: increase the minimum number of cooperating nodes to $\bar{N}=6$
1275: while keeping $\bar{N}/\rho=0.25$ constant.  Therefore, for
1276: Simulation $1$b (Table~\ref{tab:simulation1b}), $\rho=23.87$ and we
1277: plot the simulation results in Fig.~\ref{fig:type2bound_lower}.
1278: Comparing Fig.~\ref{fig:type2bound} and
1279: Fig.~\ref{fig:type2bound_lower}, it is clear that
1280: Fig.~\ref{fig:type2bound_lower} yields improved skew and offset
1281: variances, thus showing that increased node density and larger
1282: $\bar{N}$ values indeed improve synchronization performance in Type
1283: II networks. In Table~\ref{tab:type2_nbarvalues2} we show
1284: $X_{min}(k)$ and $X_{max}(k)$ for Fig.~\ref{fig:type2bound_lower}.
1285: Note that there is only a slight decrease in the worst case skew and
1286: offset variance curves at hop $k=7$ since in this simulation, we
1287: have that $X_{min}(7)=6.57$ is only slightly larger than
1288: $X_{min}(6)=\bar{N}=6$.
1289: 
1290: \begin{table}[!ht]
1291: \caption{\rm $X_{min}(k)$ and $X_{max}(k)$ for
1292: Fig.~\ref{fig:type2bound_lower}}
1293: \begin{center}
1294: \begin{tabular}{|c|c|c|}
1295: \hline
1296: $k$& $X_{min}(k)$ & $X_{max}(k)$\\
1297: \hline
1298: 1&1&1\\
1299: 2&6.00&34.01\\
1300: 3&6.00&34.64\\
1301: 4&6.00&37.64\\
1302: 5&6.00&39.50\\
1303: 6&6.00&40.80\\
1304: 7&6.57&41.70\\
1305: \hline
1306: \end{tabular}
1307: \end{center}
1308: \label{tab:type2_nbarvalues2}
1309: \end{table}
1310: 
1311: Another very effective way to visualize how increasing $\rho$ and
1312: $\bar{N}$ can decrease skew and offset variance is to choose one
1313: \emph{test node} in the network and consider how its skew and offset
1314: variance decreases as the network density and number of cooperating
1315: nodes are increased. In Simulation 2 (Table~\ref{tab:simulation3}),
1316: we placed a test node at distance $LR=2.2$ from node $1$ and
1317: simulated its skew and offset variance as we increased $\rho$ and
1318: $\bar{N}$.  $\bar{N}$ took on values ranging from $1$ to $10$ and we
1319: adjusted $\rho$ accordingly to keep $\bar{N}/\rho=0.15$ fixed.  The
1320: results are plotted in Fig.~\ref{fig:type2variancedecrease} and we
1321: clearly see that as $\bar{N}$ increases along with $\rho$, the skew
1322: and offset variance of this test node decreases.  Also, from
1323: Section~\ref{sec:perfandnodedensity}, we know that since we keep
1324: $\bar{N}/\rho$ constant, the number of hops required to reach the
1325: test node stays the same as we increase $\bar{N}$.  Therefore, since
1326: the test node is at $\bar{L}=3$ for every value of $\bar{N}$, we
1327: have also plotted the upper and lower Type I comparison curves for
1328: the skew and offset variance at hop $k=3$ to illustrate how the
1329: comparison curves change in relation to the simulated variance
1330: curves.  In Fig.~\ref{fig:type2variancedecrease}, the simulated skew
1331: and offset variance curves of the test node fall between the Type I
1332: upper and lower comparison curves.
1333: 
1334: \begin{table}[!ht]
1335: \caption{\rm Simulation 2 Parameters}
1336: \begin{center}
1337: \begin{tabular}{|c|c|}
1338: \hline
1339: $\bar{N}/\rho$ & 0.15 \\
1340: $\bar{N}$ & [1 2 4 6 8 10] \\
1341: $R$ & 1 \\
1342: $L$ & 2.2 \\
1343: $d$ & 1 \\
1344: $m$ & 2 \\
1345: $\sigma$ & 0.01 \\
1346: Number of Runs & 5000 \\
1347: \hline
1348: \end{tabular}
1349: \end{center}
1350: \label{tab:simulation3}
1351: \end{table}
1352: 
1353: \begin{figure}[!ht]
1354: \centerline{\psfig{file=type3_skewVarianceDecrease.eps,width=8.25cm}}
1355: \centerline{\psfig{file=type3_offsetVarianceDecrease.eps,width=8.25cm}}
1356: \caption{\small Simulation $2$.  Variance of the skew and offset
1357: estimates of the test node fall between the Type I comparison curves
1358: and decrease with increasing $\bar{N}$ and $\rho$.}
1359: \label{fig:type2variancedecrease}
1360: \end{figure}
1361: % simulation3c (MergeDataAndPlot.m  mainRunXnew_1000_V6.mat)
1362: 
1363: It is clear that by keeping the ratio $\bar{N}/\rho$ constant while
1364: increasing $\bar{N}$ and $\rho$ allows us to reduce the
1365: synchronization error at each hop while keeping the number of hops
1366: required to synchronize the network, $\bar{L}$, constant.  The
1367: variance of the skew and offset estimates is decreased by increasing
1368: the minimum number of cooperating nodes.
1369: 
1370: Furthermore, from the simulations in this section, we find that the
1371: upper and lower Type I comparison curves provide a good reference to
1372: the performance of Type II networks.  We have established that the
1373: best and worst case variance values for the Type II skew and offset
1374: estimates fall between the upper and lower Type I comparison curves.
1375: As the density of the network and $\bar{N}$ are both increased, the
1376: comparison curves will shift downwards and become closer together.
1377: Thus, we would expect the variance of the Type II network estimates
1378: to change similarly with increasing $\bar{N}$ and $\rho$.
1379: 
1380: \section{Conclusion} \label{sec:conclusion}
1381: 
1382: In this paper we have proposed one technique that uses spatial
1383: averaging in dense networks as a means to improving global time
1384: synchronization. Spatial averaging is used to improve the timing
1385: data points that are used to estimate clock skew and clock offset.
1386: By decreasing the error in the timing data points, improved clock
1387: skew and clock offset estimates can be made. Our analysis of the
1388: technique in a basic cooperative network revealed that the error
1389: variance in both the clock skew and clock offset estimates can be
1390: significantly decreased as the number of cooperating nodes
1391: increases.  Simulation results also show that synchronization over
1392: large, multi-hop networks can be improved by increasing node
1393: density.  Further analysis and a comparison between cooperative and
1394: non-cooperative techniques can be found in~\cite{Hu:07}.
1395: 
1396: This scalable protocol provides an alternate way to combat the
1397: scalability problem. It allows us to simply increase the number of
1398: nodes in the network to obtain improved synchronization performance.
1399: The new trade-off between network density and synchronization
1400: performance provided by spatial averaging will allow for added
1401: flexibility in designing future networks.
1402: 
1403: It is important to note that the concept of spatial averaging is
1404: very general and our proposed cooperative technique is but one
1405: manner in which to take advantage of it.  Our protocol shows that
1406: techniques using spatial averaging can be designed.  Even though the
1407: proposed protocol has certain limitations, such as requiring access
1408: to the physical layer, it allows us to successfully illustrate the
1409: performance improvement achievable using spatial averaging.  Future
1410: work will focus on other approaches to spatial averaging. For
1411: example, it would be desirable to develop a cooperative technique
1412: using spatial averaging that achieves performance gains while
1413: needing only access to the data link or network layer.
1414: 
1415: \appendix
1416: 
1417: {\bf Proof of Theorem~\ref{theorem:main}} \hspace{0.5cm} Node $1$
1418: begins the synchronization processes by transmitting a sequence of
1419: pulses at times $\tau_{0}+ld$, for $l=0,\ldots,m-1$. For simplicity,
1420: assume that $\tau_{0}$ and $d$ are integer values. Note that since
1421: node $1$ transmits these pulses in its own time scale $c_{1}$ (the
1422: reference time), the pulses will occur at integer values of $t$.
1423: Using the clock model in (\ref{eq:clock}), any node $1i$,
1424: $i=1,\ldots,\bar{N}$, in the $R_{1}$ set of nodes will get a vector
1425: of observations ${\mathbf Y}_{1i}$, where ${\mathbf Y}_{1i}[1] =
1426: \alpha_{1i}(\tau_{0}-\bar{\Delta}_{1i})+\Psi_{1i,1}$ and the
1427: $(l+1)$th element of ${\mathbf Y}_{1i}$ is ${\mathbf
1428: Y}_{1i}[l+1]=\alpha_{1i}(\tau_{0}-\bar{\Delta}_{1i})+ld\alpha_{1i}+\Psi_{1i,l+1}$.
1429: This can also be written as
1430: \begin{equation} \label{eq:linearFormCoop}
1431: {\mathbf Y}_{1i}={\mathbf H}\theta_{1i} + {\mathbf W}_{1i},
1432: \end{equation}
1433: where
1434: \begin{displaymath}
1435: {\mathbf \theta}_{1i} = \left[ \begin{array}{c}
1436: \theta_{1i,1}\\
1437: \theta_{1i,2}
1438: \end{array} \right] =
1439: \left[ \begin{array}{c}
1440: \alpha_{1i}(\tau_{0}-\bar{\Delta}_{1i})\\
1441: \alpha_{1i}
1442: \end{array} \right]
1443: \end{displaymath}
1444: with ${\mathbf H}$ as in (\ref{eq:H}) and ${\mathbf W}_{1i} =
1445: [W_{1i,1},\dots, W_{1i,m}]^{T}$. Since $\Psi_{1i,l+1}$ is an
1446: independent Gaussian random variable for each $l$, ${\mathbf W}_{1i}
1447: \sim {\mathcal N}(0,\Sigma_{1i})$ with $\Sigma_{1i} =
1448: \sigma^{2}{\mathbf I}_{m}$. As mentioned, this set of observations
1449: is for any node $1i$ in the set of $R_{1}$ nodes.
1450: 
1451: Since we have $\bar{N}$ $R_{1}$ nodes, we can write the vector of
1452: observations made by all $R_{1}$ nodes as
1453: \begin{equation} \label{eq:R1bigYvec}
1454: \bar{{\mathbf Y}}_{1} = \bar{{\mathbf H}}\bar{{\mathbf \theta}}_{1}
1455: + \bar{{\mathbf W}}_{1}
1456: \end{equation}
1457: where
1458: \begin{eqnarray*}
1459: \bar{{\mathbf Y}}_{1} = \left[ \begin{array}{c} {\mathbf Y}_{11} \\
1460: \vdots \\
1461: {\mathbf Y}_{1\bar{N}}
1462: \end{array} \right], \quad \bar{{\mathbf \theta}}_{1} = \left[ \begin{array}{c} {\mathbf \theta}_{11} \\
1463: \vdots \\
1464: {\mathbf \theta}_{1\bar{N}}
1465: \end{array} \right], \quad \bar{{\mathbf W}}_{1}=\left[ \begin{array}{c} {\mathbf W}_{11} \\
1466: \vdots \\
1467: {\mathbf W}_{1\bar{N}}
1468: \end{array} \right]
1469: \end{eqnarray*}
1470: and $\bar{{\mathbf H}}$ is as in (\ref{eq:barH}). Note that
1471: $\bar{{\mathbf W}}_{1}\sim {\mathcal N}(0,\sigma^{2}{\mathbf
1472: I}_{\bar{N}m})$. This way we have $\bar{{\mathbf Y}}_{1}$ as the
1473: vector of observations made by all $R_{1}$ nodes and we can make a
1474: UMVU (uniformly minimum variance unbiased) estimate of
1475: $\bar{{\mathbf \theta}}_{1}$ by taking
1476: \begin{eqnarray*}
1477: \hat{\bar{{\mathbf \theta}}}_{1} =
1478: (\bar{\mathbf{H}}^{T}\bar{\mathbf{H}})^{-1}\bar{\mathbf{H}}^{T}\bar{{\mathbf
1479: Y}}_{1} \sim {\mathcal N}\left(\bar{\mu}_{1},\bar{\Sigma}_{1}
1480: \right),
1481: \end{eqnarray*}
1482: where
1483: \begin{equation*} %\label{eq:sigma1_alphaEq1}
1484: \bar{\mu}_{1} = \bar{{\mathbf \theta}}_{1}, \quad \bar{\Sigma}_{1} =
1485: \sigma^{2}(\bar{\mathbf{H}}^{T}\bar{\mathbf{H}})^{-1}.
1486: \end{equation*}
1487: It is easy to see that
1488: \begin{eqnarray*}  %\label{eq:pseudoinvbarH}
1489: \lefteqn{(\bar{\mathbf{H}}^{T}\bar{\mathbf{H}})^{-1}} \nonumber \\
1490: && = \left[
1491: \begin{array}{ccc} (\mathbf{H}^{T}\mathbf{H})^{-1}  &
1492: \ldots & 0 \\
1493: \vdots  & \ddots & \vdots \\
1494: 0 &  \ldots & (\mathbf{H}^{T}\mathbf{H})^{-1}
1495: \end{array} \right]
1496: \end{eqnarray*}
1497: and
1498: \begin{eqnarray*} %\label{eq:pseudoinvH}
1499: (\mathbf{H}^{T}\mathbf{H})^{-1} = \left[ \begin{array}{cc}
1500: \frac{2(2m-1)}{m(m+1)} & \frac{-6}{dm(m+1)} \\
1501: \frac{-6}{dm(m+1)} & \frac{12}{d^2(m-1)m(m+1)}
1502: \end{array} \right].
1503: \end{eqnarray*}
1504: This establishes the initial conditions for the theorem.
1505: $\hat{\bar{{\mathbf \theta}}}_{1}$ is a $2\bar{N}\times 1$ column
1506: vector where the subvector made up of the ($2(i-1)+1$)th and
1507: ($2(i-1)+2$)th elements, $i=1,\ldots,\bar{N}$, is $\hat{{\mathbf
1508: \theta}}_{1i}=(\mathbf{H}^{T}\mathbf{H})^{-1}\mathbf{H}^{T}\mathbf{Y}_{1i}$.
1509: Therefore, any node $1i$'s skew estimate (\ref{eq:alphahat}) and
1510: offset estimate (\ref{eq:Deltahat}) can be found from
1511: $\hat{\bar{{\mathbf \theta}}}_{1}$ as
1512: \begin{equation} \label{eq:alphahat1i}
1513: \hat{\alpha}_{1i} = e_{2(i-1)+2}^{T}\hat{\bar{{\mathbf \theta}}}_{1}
1514: \end{equation}
1515: and
1516: \begin{equation} \label{eq:Deltahat1i}
1517: \hat{\Delta}_{1i} = e_{2(i-1)+1}^{T}\hat{\bar{{\mathbf \theta}}}_{1}
1518: - \tau_{0}
1519: \end{equation}
1520: where $e_{l}$ is the column vector of all zeros except for a one in
1521: the $l$th position.
1522: 
1523: Each node $1i$ can now make an estimate of the next appropriate
1524: integer value of $t$, in this case $t=\tau_{0}+md$, by making a
1525: minimum variance unbiased estimate of
1526: $\theta_{1i,1}+md\theta_{1i,2}=\alpha_{1i}(\tau_{0}-\bar{\Delta}_{1i})+md\alpha_{1i}$.
1527: This can be done with the estimator
1528: \begin{eqnarray*}
1529: \hat{\tau}_{1i}=\hat{\theta}_{1i,1}+md\hat{\theta}_{1i,2} = {\mathbf
1530: C}_{0}\hat{{\mathbf \theta}}_{1i}
1531: \end{eqnarray*}
1532: where ${\mathbf C}_{0}=[1 \quad md]$.  This will then be node $1i$'s
1533: estimate of the next appropriate integer value of $t$ in its own
1534: time scale $c_{1i}$.
1535: 
1536: From (\ref{eq:pulsetimeestimate}), every node $1i$ will then
1537: transmit a sequence of $m$ pulses occurring, in the time scale of
1538: $c_{1i}$, at $X_{1i}(l)=\hat{\tau}_{1i}+ld\hat{\theta}_{1i,2}$, for
1539: $l=0,\ldots,m-1$. Using the clock model (\ref{eq:clock}), we find
1540: that in the time scale of $c_{1}$ these pules occur at
1541: \begin{eqnarray*}
1542: (\hat{\tau}_{1i}+ld\hat{\theta}_{1i,2})_{c_{1}} &=&
1543: \frac{\hat{\tau}_{1i}+ld\hat{\theta}_{1i,2}-\Psi_{1i,l+1}}{\alpha_{1i}}+\bar{\Delta}_{1i}
1544: \\ &=& \frac{\hat{\tau}_{1i}}{\alpha_{1i}}+ \bar{\Delta}_{1i} +
1545: ld\frac{\hat{\theta}_{1i,2}}{\alpha_{1i}}-
1546: \frac{\Psi_{1i,l+1}}{\alpha_{1i}}.
1547: \end{eqnarray*}
1548: Any node $2j$ in the $R_{2}$ set of nodes that can hear node $1i$
1549: will thus get a sequence of pulses
1550: \begin{eqnarray*}
1551: \lefteqn{\tilde{{\mathbf Y}}_{2j}[l+1]} \\ &=&
1552: \alpha_{2j}\bigg(\bigg(\frac{\hat{\tau}_{1i}}{\alpha_{1i}}+
1553: \bar{\Delta}_{1i} + ld\frac{\hat{\theta}_{1i,2}}{\alpha_{1i}}-
1554: \frac{\Psi_{1i,l+1}}{\alpha_{1i}}\bigg)-\bar{\Delta}_{2j}\bigg)
1555: \\
1556: && \hspace{2.5cm}+\Psi_{2j,l+1},
1557: \end{eqnarray*}
1558: where $l=0,\ldots,m-1$.
1559: 
1560: In this Type I network deployment every node $2j$ hears the same set
1561: of $\bar{N}$ nodes and takes the sample mean of each cluster of
1562: pulses for its observation, we can express the actual vector of
1563: observations made by node $2j$ as
1564: \begin{eqnarray*}
1565: \lefteqn{{\mathbf Y}_{2j}[l+1]} \\
1566: &=&\sum_{i=1}^{\bar{N}}
1567: \frac{\alpha_{2j}}{\bar{N}}\bigg(\bigg(\frac{\hat{\tau}_{1i}}{\alpha_{1i}}+
1568: \bar{\Delta}_{1i} + ld\frac{\hat{\theta}_{1i,2}}{\alpha_{1i}}-
1569: \frac{\Psi_{1i,l+1}}{\alpha_{1i}}\bigg)-\bar{\Delta}_{2j}\bigg)\\
1570: && \hspace{2.5cm}+\Psi_{2j,l+1},
1571: \end{eqnarray*}
1572: where $l=0,\ldots,m-1$. Note that since these pulse arrivals are
1573: clustered, we assume that for a given cluster, each pulse arrival is
1574: corrupted by the same jitter.  Thus, receiver side jitter
1575: $\Psi_{2j,l+1}$ is an independent sample for every $l$, but takes
1576: the same value for each $i$.  This models the fact that clock errors
1577: occurring in a small time window are highly correlated while errors
1578: farther apart in time are independent.  We can rewrite this simply
1579: as ${\mathbf Y}_{2j}[l+1] =
1580: \alpha_{2j}((\tau_{1}+ld\tilde{\alpha}_{1}-\tilde{\Psi}_{1,l+1})-\bar{\Delta}_{2j})+\Psi_{2j,l+1}$,
1581: where
1582: \begin{eqnarray*}
1583: \tau_{1} &\stackrel{\Delta}{=}&
1584: \frac{1}{\bar{N}}\sum_{i=1}^{\bar{N}}\frac{\hat{\tau}_{1i}}{\alpha_{1i}}+
1585: \bar{\Delta}_{1i} \qquad \tilde{\alpha}_{1} \stackrel{\Delta}{=}
1586: \frac{1}{\bar{N}}\sum_{i=1}^{\bar{N}}\frac{\hat{\theta}_{1i,2}}{\alpha_{1i}}
1587: \\
1588: \tilde{\Psi}_{1,l+1} &\stackrel{\Delta}{=}&
1589: \frac{1}{\bar{N}}\sum_{i=1}^{\bar{N}}\frac{\Psi_{1i,l+1}}{\alpha_{1i}}.
1590: \end{eqnarray*}
1591: Since every node $2j$ will see the same $\bar{N}$, this means that
1592: every node $2j$ will have the same $\tau_{1}$ and
1593: $\tilde{\alpha}_{1}$. Therefore, $\tau_{1}$ and $\tilde{\alpha}_{1}$
1594: are now fixed, and it can be easily found that
1595: \begin{displaymath}
1596: \left[ \begin{array}{c} \tilde{\Psi}_{1,1} \\ \vdots \\
1597: \tilde{\Psi}_{1,m}
1598: \end{array}\right] \sim {\mathcal
1599: N}\bigg(0,\Sigma_{\tilde{\Psi}_{1}}\bigg)
1600: \end{displaymath}
1601: where
1602: \begin{displaymath}
1603: \Sigma_{\tilde{\Psi}_{1}} =
1604: \frac{\sigma^{2}}{\bar{N}^{2}}\sum_{i=1}^{\bar{N}}\frac{1}{\alpha_{1i}^{2}}{\mathbf
1605: I}_{m}.
1606: \end{displaymath}
1607: 
1608: Node $2j$'s vector of observations can also be written in a linear
1609: form similar to (\ref{eq:linearFormCoop}), ${\mathbf
1610: Y}_{2j}={\mathbf H}\theta_{2j} + {\mathbf W}_{2j}$, where
1611: \begin{displaymath}
1612: {\mathbf \theta}_{2j} = \left[ \begin{array}{c}
1613: \theta_{2j,1}\\
1614: \theta_{2j,2}
1615: \end{array} \right] =
1616: \left[ \begin{array}{c}
1617: \alpha_{2j}(\tau_{1}-\bar{\Delta}_{2j})\\
1618: \alpha_{2j}\tilde{\alpha}_{1}
1619: \end{array} \right]
1620: \end{displaymath}
1621: with ${\mathbf H}$ as in (\ref{eq:H}) and ${\mathbf W}_{2j} =
1622: [W_{2j,1}\dots W_{2j,m}]^{T}$.
1623: \begin{displaymath}
1624: {\mathbf W}_{2j} = \alpha_{2j}\left[ \begin{array}{c}
1625: \tilde{\Psi}_{1,1}
1626: \\ \vdots \\ \tilde{\Psi}_{1,m}
1627: \end{array}\right]+\left[ \begin{array}{c} \Psi_{2j,1} \\ \vdots \\ \Psi_{2j,m}
1628: \end{array}\right]\sim {\mathcal N}(0,\Sigma_{2j})
1629: \end{displaymath}
1630: with
1631: \begin{displaymath}
1632: \Sigma_{2j} =
1633: \sigma^{2}\big(1+\frac{\alpha_{2j}^{2}}{\bar{N}^{2}}\sum_{i=1}^{\bar{N}}\frac{1}{\alpha_{1i}^{2}}\big){\mathbf
1634: I}_{m}.
1635: \end{displaymath}
1636: The vector of observations made by all $R_{2}$ nodes can be written
1637: in a manner similar to (\ref{eq:R1bigYvec}),
1638: \begin{equation*} %\label{eq:R2bigYvec}
1639: \bar{{\mathbf Y}}_{2} = \bar{{\mathbf H}}\bar{{\mathbf \theta}}_{2}
1640: + \bar{{\mathbf W}}_{2}
1641: \end{equation*}
1642: where
1643: \begin{eqnarray*}
1644: \bar{{\mathbf Y}}_{2} = \left[ \begin{array}{c} {\mathbf Y}_{21} \\
1645: \vdots \\
1646: {\mathbf Y}_{2\bar{N}}
1647: \end{array} \right], \quad \bar{{\mathbf \theta}}_{2} = \left[ \begin{array}{c} {\mathbf \theta}_{21} \\
1648: \vdots \\
1649: {\mathbf \theta}_{2\bar{N}}
1650: \end{array} \right], \quad {\mathbf Q}_{2} = \left[ \begin{array}{c} \alpha_{21}{\mathbf I}_{m} \\
1651: \vdots \\
1652: \alpha_{2\bar{N}}{\mathbf I}_{m}
1653: \end{array} \right]
1654: \end{eqnarray*}
1655: \begin{displaymath}
1656: \bar{{\mathbf W}}_{2} = \left[ \begin{array}{c} {\mathbf W}_{21} \\
1657: {\mathbf W}_{22} \\
1658: \vdots \\
1659: {\mathbf W}_{2\bar{N}}
1660: \end{array} \right]={\mathbf Q}_{2}\left[ \begin{array}{c}
1661: \tilde{\Psi}_{1,1}
1662: \\ \vdots \\ \tilde{\Psi}_{1,m}
1663: \end{array}\right]+\left[ \begin{array}{c} \Psi_{21,1} \\ \vdots \\
1664: \Psi_{21,m} \\ \vdots \\ \Psi_{2\bar{N},1} \\ \vdots \\
1665: \Psi_{2\bar{N},m}
1666: \end{array}\right]
1667: \end{displaymath}
1668: This means that $\bar{{\mathbf W}}_{2}\sim{\mathcal
1669: N}(0,\Sigma_{\bar{{\mathbf W}}_{2}})$, where
1670: \begin{eqnarray*}
1671: \Sigma_{\bar{{\mathbf W}}_{2}} = {\mathbf
1672: Q}_{2}\Sigma_{\tilde{\Psi}_{1}}{\mathbf Q}_{2}^{T} + \sigma^2
1673: {\mathbf I}_{\bar{N}m}.
1674: \end{eqnarray*}
1675: 
1676: The $R_{2}$ nodes will estimate $\bar{{\mathbf \theta}}_{2}$ as
1677: \begin{eqnarray} \label{eq:theta2barhat}
1678: \hat{\bar{{\mathbf \theta}}}_{2} &=&
1679: (\bar{\mathbf{H}}^{T}\bar{\mathbf{H}})^{-1}\bar{\mathbf{H}}^{T}\bar{{\mathbf
1680: Y}}_{2} \\
1681: &\sim& {\mathcal
1682: N}\left(\bar{\mathbf{\theta}}_{2},(\bar{\mathbf{H}}^{T}\bar{\mathbf{H}})^{-1}\bar{\mathbf{H}}^{T}\Sigma_{\bar{{\mathbf
1683: W}}_{2}}((\bar{\mathbf{H}}^{T}\bar{\mathbf{H}})^{-1}\bar{\mathbf{H}}^{T})^{T}
1684: \right) \nonumber .
1685: \end{eqnarray}
1686: However, for analysis, this does not give us the complete
1687: distribution of $\hat{\bar{{\mathbf \theta}}}_{2}$ since
1688: $\bar{\mathbf{\theta}}_{2}$ is a function of
1689: $\hat{\bar{\mathbf{\theta}}}_{1}$.  Therefore, we first consider how
1690: $\mathbf{\theta}_{2j}$ is a function of
1691: $\hat{\bar{\mathbf{\theta}}}_{1}$.  We find that
1692: \begin{eqnarray} \label{eq:theta2iasfxnoftheta1hat}
1693: \mathbf{\theta}_{2j} & = & \left[ \begin{array}{c}
1694: \alpha_{2j}(\tau_{1}-\bar{\Delta}_{2j})\\
1695: \alpha_{2j}\tilde{\alpha}_{1}
1696: \end{array} \right] \nonumber \\
1697: & = & \left[ \begin{array}{c}
1698: \alpha_{2j}(\frac{1}{\bar{N}}\sum_{i=1}^{\bar{N}}\frac{\hat{\tau}_{1i}}{\alpha_{1i}}+
1699: \bar{\Delta}_{1i}-\bar{\Delta}_{2j})\\
1700: \alpha_{2j}\frac{1}{\bar{N}}\sum_{i=1}^{\bar{N}}\frac{\hat{\theta}_{1i,2}}{\alpha_{1i}}
1701: \end{array} \right] \nonumber \\
1702: & = & \left[ \begin{array}{c}
1703: \alpha_{2j}(\frac{1}{\bar{N}}\sum_{i=1}^{\bar{N}}\frac{\hat{\theta}_{1i,1}+md\hat{\theta}_{1i,2}}{\alpha_{1i}}+
1704: \bar{\Delta}_{1i}-\bar{\Delta}_{2j})\\
1705: \alpha_{2j}\frac{1}{\bar{N}}\sum_{i=1}^{\bar{N}}\frac{\hat{\theta}_{1i,2}}{\alpha_{1i}}
1706: \end{array} \right] \nonumber \\
1707: & = & \frac{\alpha_{2j}}{\bar{N}}\sum_{i=1}^{\bar{N}}\bigg(\left[
1708: \begin{array}{cc} \frac{1}{\alpha_{1i}} & \frac{dm}{\alpha_{1i}} \\
1709: 0 & \frac{1}{\alpha_{1i}} \end{array} \right] \left[
1710: \begin{array}{c} \hat{\theta}_{1i,1} \\ \hat{\theta}_{1i,2} \end{array} \right] \nonumber \\
1711: && \hspace{1.5cm} + \left[ \begin{array}{c} \bar{\Delta}_{1i} \\ 0
1712: \end{array} \right] \bigg) - \alpha_{2j}\left[ \begin{array}{c}
1713: \bar{\Delta}_{2j} \\ 0
1714: \end{array} \right]
1715: \end{eqnarray}
1716: Using (\ref{eq:theta2iasfxnoftheta1hat}) we have
1717: \begin{equation} \label{eq:theta2asfxnoftheta1hat}
1718: \bar{\mathbf{\theta}}_{2} =
1719: \mathbf{A}_{2}\hat{\bar{\mathbf{\theta}}}_{1} + \mathbf{B}_{2},
1720: \end{equation}
1721: where
1722: \begin{eqnarray*}
1723: \mathbf{A}_{2} = \mathbf{D}_{2}\left[ \begin{array}{ccccc}
1724: \frac{1}{\alpha_{11}} & \frac{dm}{\alpha_{11}} & \ldots & 0
1725: & 0 \\
1726: 0 & \frac{1}{\alpha_{11}}  & \ldots & 0 & 0 \\
1727: \vdots & \vdots & \ddots & \vdots & \vdots \\
1728: 0 & 0 & \ldots & \frac{1}{\alpha_{1\bar{N}}} &
1729: \frac{dm}{\alpha_{1\bar{N}}} \\
1730: 0 & 0 & \ldots & 0 & \frac{1}{\alpha_{1\bar{N}}}
1731: \end{array}\right],
1732: \end{eqnarray*}
1733: \begin{eqnarray*}
1734: \mathbf{B}_{2} = \mathbf{D}_{2}\left[ \begin{array}{c}
1735: \bar{\Delta}_{11} \\ 0  \\ \vdots \\
1736: \bar{\Delta}_{1\bar{N}} \\ 0
1737: \end{array}\right] - \left[ \begin{array}{c}
1738: \alpha_{21}\bar{\Delta}_{21} \\ 0 \\ \vdots \\
1739: \alpha_{2\bar{N}}\bar{\Delta}_{2\bar{N}} \\ 0
1740: \end{array}\right],
1741: \end{eqnarray*}
1742: for
1743: \begin{eqnarray*}
1744: \mathbf{D}_{2} = \frac{1}{\bar{N}}\left[ \begin{array}{ccccc}
1745: \alpha_{21} & 0 &  \ldots & \alpha_{21}
1746: & 0 \\
1747: 0 & \alpha_{21} & \ldots & 0 & \alpha_{21} \\
1748: \vdots & \vdots & \ddots & \vdots & \vdots \\
1749: \alpha_{2\bar{N}} & 0  & \ldots & \alpha_{2\bar{N}}
1750: & 0 \\
1751: 0 & \alpha_{2\bar{N}} & \ldots & 0 & \alpha_{2\bar{N}}
1752: \end{array}\right].
1753: \end{eqnarray*}
1754: 
1755: Using (\ref{eq:theta2barhat}) and (\ref{eq:theta2asfxnoftheta1hat}),
1756: the distribution of $\hat{\bar{{\mathbf \theta}}}_{2}$ can now be
1757: found.
1758: \begin{eqnarray} \label{eq:mu2}
1759: \bar{\mu}_{2} &=& E(\hat{\bar{{\mathbf \theta}}}_{2}) \nonumber \\
1760: &=& E(E(\hat{\bar{{\mathbf \theta}}}_{2}|\hat{\bar{{\mathbf
1761: \theta}}}_{1})) \nonumber \\
1762: &=& E(\bar{{\mathbf \theta}}_{2}) \nonumber \\
1763: &=& E(\mathbf{A}_{2}\hat{\bar{\mathbf{\theta}}}_{1} +
1764: \mathbf{B}_{2}) \nonumber \\
1765: &=& \left[ \begin{array}{c}
1766: \alpha_{21}(\tau_{0}+md-\bar{\Delta}_{21}) \\
1767: \alpha_{21} \\
1768: \vdots \\
1769: \alpha_{2\bar{N}}(\tau_{0}+md-\bar{\Delta}_{2\bar{N}}) \\
1770: \alpha_{2\bar{N}} \\
1771: \end{array} \right]
1772: \end{eqnarray}
1773: Using the decomposition
1774: \begin{displaymath}
1775: \textrm{Cov}(\hat{\bar{{\mathbf
1776: \theta}}}_{2})=E(\textrm{Cov}(\hat{\bar{{\mathbf
1777: \theta}}}_{2}|\hat{\bar{{\mathbf
1778: \theta}}}_{1}))+\textrm{Cov}(E(\hat{\bar{{\mathbf
1779: \theta}}}_{2}|\hat{\bar{{\mathbf \theta}}}_{1})),
1780: \end{displaymath}
1781: we have from (\ref{eq:theta2barhat}) and
1782: (\ref{eq:theta2asfxnoftheta1hat})
1783: \begin{eqnarray*}
1784: \Sigma_{m_{2}} & = & E(\textrm{Cov}(\hat{\bar{{\mathbf
1785: \theta}}}_{2}|\hat{\bar{{\mathbf \theta}}}_{1})) \\
1786: & = &
1787: (\bar{\mathbf{H}}^{T}\bar{\mathbf{H}})^{-1}\bar{\mathbf{H}}^{T}\Sigma_{\bar{{\mathbf
1788: W}}_{2}}((\bar{\mathbf{H}}^{T}\bar{\mathbf{H}})^{-1}\bar{\mathbf{H}}^{T})^{T}
1789: \end{eqnarray*}
1790: \begin{eqnarray*}
1791: \textrm{Cov}(E(\hat{\bar{{\mathbf \theta}}}_{2}|\hat{\bar{{\mathbf
1792: \theta}}}_{1})) & = & \textrm{Cov}(\bar{\theta}_{2}) \\
1793: & = & \mathbf{A}_{2}\bar{\Sigma}_{1}\mathbf{A}_{2}^{T},
1794: \end{eqnarray*}
1795: giving us
1796: \begin{equation} \label{eq:sigma2}
1797: \bar{\Sigma}_{2} = \textrm{Cov}(\hat{\bar{{\mathbf \theta}}}_{2}) =
1798: \Sigma_{m_{2}}+\mathbf{A}_{2}\bar{\Sigma}_{1}\mathbf{A}_{2}^{T}.
1799: \end{equation}
1800: Thus, the distribution of $\hat{\bar{{\mathbf \theta}}}_{2}$ is
1801: \begin{equation*} %\label{eq:theta2dist}
1802: \hat{\bar{{\mathbf \theta}}}_{2} \sim {\mathcal N}(\bar{\mu}_{2},
1803: \bar{\Sigma}_{2}).
1804: \end{equation*}
1805: $\hat{\bar{{\mathbf \theta}}}_{2}$ is again a $2\bar{N}\times 1$
1806: column vector where the subvector made up of the ($2(i-1)+1$)th and
1807: ($2(i-1)+2$)th elements, $i=1,\ldots,\bar{N}$, is $\hat{{\mathbf
1808: \theta}}_{2i}=(\mathbf{H}^{T}\mathbf{H})^{-1}\mathbf{H}^{T}\mathbf{Y}_{2i}$.
1809: Therefore, as in (\ref{eq:alphahat1i}) and (\ref{eq:Deltahat1i}),
1810: any node $2i$'s skew estimate (\ref{eq:alphahat}) and offset
1811: estimate (\ref{eq:Deltahat}) can be found from $\hat{\bar{{\mathbf
1812: \theta}}}_{2}$ as
1813: \begin{equation} \label{eq:alphahat2i}
1814: \hat{\alpha}_{2i} = e_{2(i-1)+2}^{T}\hat{\bar{{\mathbf \theta}}}_{2}
1815: \end{equation}
1816: and
1817: \begin{equation} \label{eq:Deltahat2i}
1818: \hat{\Delta}_{2i} = e_{2(i-1)+1}^{T}\hat{\bar{{\mathbf \theta}}}_{2}
1819: - (\tau_{0}+dm).
1820: \end{equation}
1821: 
1822: Each node $2i$ will now be able to transmit a sequence of $m$ pulses
1823: occurring, in the time scale of $c_{2i}$, at
1824: $X_{2i}(l)=\hat{\tau}_{2i}+ld\hat{\theta}_{2i,2}$, for
1825: $l=0,\ldots,m-1$, where
1826: $\hat{\tau}_{2i}=\hat{\theta}_{2i,1}+md\hat{\theta}_{2i,2}$.
1827: Repeating the same process we carried out for the observations of
1828: any node $2j$ with any node $3j$, we can find $\hat{\bar{{\mathbf
1829: \theta}}}_{3} \sim {\mathcal N}(\bar{\mu}_{3}, \bar{\Sigma}_{3})$.
1830: In fact, continuing this procedure, we can find the distribution of
1831: $\hat{\bar{{\mathbf \theta}}}_{k}$ for the $R_{k}$ nodes as
1832: \begin{equation*} %\label{eq:thetakdist}
1833: \hat{\bar{{\mathbf \theta}}}_{k} \sim {\mathcal N}(\bar{\mu}_{k},
1834: \bar{\Sigma}_{k})
1835: \end{equation*}
1836: where similar to (\ref{eq:mu2}) we have $\bar{\mu}_{k} =
1837: E(\hat{\bar{{\mathbf \theta}}}_{k})$ which is found in
1838: (\ref{eq:muk}) and similar to (\ref{eq:sigma2}) we have
1839: \begin{equation*} %\label{eq:sigmak}
1840: \bar{\Sigma}_{k} = \textrm{Cov}(\hat{\bar{{\mathbf \theta}}}_{k}) =
1841: \Sigma_{m_{k}}+\mathbf{A}_{k}\bar{\Sigma}_{k-1}\mathbf{A}_{k}^{T},
1842: \end{equation*}
1843: which is found in (\ref{eq:sigmak}). $\Sigma_{m_{k}}$,
1844: $\mathbf{A}_{k}$, $\mathbf{B}_{k}$, and $\Sigma_{\bar{{\mathbf
1845: W}}_{k}}$ are as in the theorem statement. As in
1846: (\ref{eq:alphahat2i}) and (\ref{eq:Deltahat2i}), any node $ki$'s
1847: skew estimate (\ref{eq:alphahat}) and offset estimate
1848: (\ref{eq:Deltahat}) can be found from $\hat{\bar{{\mathbf
1849: \theta}}}_{k}$ as
1850: \begin{equation*}
1851: \hat{\alpha}_{ki} = e_{2(i-1)+2}^{T}\hat{\bar{{\mathbf \theta}}}_{k}
1852: \end{equation*}
1853: and
1854: \begin{equation*}
1855: \hat{\Delta}_{ki} = e_{2(i-1)+1}^{T}\hat{\bar{{\mathbf \theta}}}_{k}
1856: - (\tau_{0}+dm(k-1)).
1857: \end{equation*}
1858: This concludes the proof of Theorem~\ref{theorem:main}. \qquad
1859: $\bigtriangleup$
1860: 
1861: \begin{thebibliography}{10}
1862: 
1863: %\bibitem{LedecziVMSBNK:05}
1864: %A.~Ledeczi, P.~Volgyesi, M.~Maroti, G.~Simon, G.~Balogh, A.~Nadas,
1865: %B.~Kusy, S.~Dora and G.~Pap.
1866: %\newblock{Multiple Simultaneous Acoustic Source Localization in Urban
1867: %Terrain}.
1868: %\newblock In {\em Proc. Information Processing in Sensor Networs
1869: %(IPSN'05)}, Los Angeles, CA, 2005.
1870: 
1871: %\bibitem{BarriacMM:04}
1872: %B.~Barriac, R.~Mudumbai and U.~Madhow.
1873: %\newblock{Distributed Beamforming for Information Transfer in
1874: %Sensor Networks}.
1875: %\newblock In {\em Proc. International Symposium on Information Processing in Sensor Networks
1876: %(IPSN)}, Berkeley, CA, 2004.
1877: 
1878: %\bibitem{OchiaiMPT:05}
1879: %H.~Ochiai, P.Mitran, H.~V. Poor and V.~Tarokh.
1880: %\newblock{Collaborative Beamforming for Distributed Wireless Ad
1881: %Hoc Sensor Networks}.
1882: %\newblock{\em IEEE Transactions on Signal Processing},
1883: %53(11):4110-4124, 2005.
1884: 
1885: %\bibitem{HuS:03c}
1886: %A.~Hu and S.~D. Servetto.
1887: %\newblock{dFSK: Distributed Frequency Shift Keying Modulation in
1888: %Dense Sensor Networks}
1889: %\newblock In {Proc. IEEE Int. Conf. Communications (ICC)}, Paris,
1890: %France, 2004.
1891: 
1892: \bibitem{ElsonGE:02}
1893: J.~Elson, L.~Girod, and D.~Estrin.
1894: \newblock {Fine-Grained Network Time Syncrhonization using Reference
1895:   Broadcasts}.
1896: \newblock In {\em Proc. 5th Symp. Op. Syst. Design Implementation (OSDI)},
1897:   Boston, MA, 2002.
1898: 
1899: \bibitem{SichitiuV:03}
1900: M.~L. Sichitiu and C.~Veerarittiphan.
1901: \newblock{Simple, Accurate Time Synchronization for Wireless
1902: Sensor Networks}.
1903: \newblock In {\em Proc. IEEE Wireless Communication and Networking
1904: Conference (WCNC 2003)}, New Orleans, LA, March 2003.
1905: 
1906: \bibitem{GaneriwalKW:03}
1907: S.~Ganeriwal, R.~Kumar and M.~B. Srivastava.
1908: \newblock{Timing-Sync Protocol for Sensor Networks}.
1909: \newblock In {\em Proc. First ACM Conference on Embedded Networked
1910: Sensor Systems (SenSys)}, Los Angeles, CA, November 2003.
1911: 
1912: \bibitem{GreunenR:03}
1913: J.~van Greunen and J.~Rabaey.
1914: \newblock{Lightweight Time Synchronization for Sensor Networks}.
1915: \newblock In {\em Proc. 2nd ACM International Workshop on Wireless
1916: Sensor Networks and Applications (WSNA 2003)}, San Diego, CA,
1917: September 2003.
1918: 
1919: \bibitem{MarotiKSL:04}
1920: M.~Maroti, B.~Kusy, G.~Simon and A.~Ledeczi.
1921: \newblock {The Flooding Time Synchronization Protocol}.
1922: \newblock In {\em Proc. 2nd International Conference on Embedded
1923: Neteworked Sensor Systems}, Baltimore, MD, November 2004.
1924: 
1925: \bibitem{KellyEM:03}
1926: C.~Kelly IV, V.~Ekanayake, and R.~Manohar.
1927: \newblock {SNAP: A Sensor Network Asynchronous Processor}.
1928: \newblock In {\em Proc. 9th Int. Symp. Async. Circ. Syst.}, Vancouver, BC,
1929:   2003.
1930: 
1931: \bibitem{WarnekLLP:01}
1932: B.~Warneke, M.~Last, B.~Liebowitz, and K.~S.~J. Pister.
1933: \newblock {Smart Dust: Communicating with a Cubic-Millimeter Computer}.
1934: \newblock {\em IEEE Computer Mag.}, 34(1):44--51, 2001.
1935: 
1936: \bibitem{LiLBH:02}
1937: H.~Li, A.~Lal, J.~Blanchard, and D.~Henderson.
1938: \newblock {Self-Reciprocating Radioisotope-Powered Cantilever}.
1939: \newblock {\em J. Applied Phys.}, 92(2):1122--1127, 2002.
1940: 
1941: %\bibitem{GaneriwalKAS:03}
1942: %S.~Ganeriwal, R.~Kumar, S.~Adlakha and M.~B. Srivastava.
1943: %\newblock{Network-wide Time Synchronization in Sensor Networks}.
1944: %\newblock NESL Technical Report, 2003.
1945: 
1946: \bibitem{MirolloS:90}
1947: R.~E. Mirollo and S.~H. Strogatz.
1948: \newblock {Synchronization of Pulse-Coupled Biological Oscillators}.
1949: \newblock {\em SIAM J. Appl. Math.}, 50(6):1645--1662, 1990.
1950: 
1951: \bibitem{LucarelliW:04}
1952: D.~Lucarelli and I.~Wang.
1953: \newblock{Decentralized Synchroniztion Protocols with Nearest
1954: Neighbor Communication}.
1955: \newblock In {\em Proc. SenSys'04}, Baltimore, Maryland, 2004.
1956: 
1957: \bibitem{HongS:04}
1958: Y.~Hong and A.~Scaglione.
1959: \newblock{A Scalable Synchronization Protocol for Large Scale
1960: Sensor Networks and its Applications}.
1961: \newblock {\em IEEE Journal on Selected Areas in Communications (JSAC)},
1962: 23(5):1085-1099, May 2005.
1963: 
1964: \bibitem{Werner-AllenTPWN:05}
1965: G.~Werner-Allen, G.~Tewari, A.~Patel, M.~Welsh, and R.~Nagpal.
1966: \newblock{Firefly-Inspired Sensor Network Synchronicity with Realistic Radio
1967: Effects}.
1968: \newblock In {\em Proc. SenSys'05}, San Diego, CA, November 2005.
1969: 
1970: \bibitem{HuS:05a}
1971: A.~Hu and S.~D. Servetto.
1972: \newblock{Cooperative Time Synchronization with Propagation Delay: Model and
1973: Analysis}.
1974: \newblock In {\em Proc. 43rd Annual Allerton Conference on Communication, Control, and Computing},
1975: Monticello, IL, October 2005.
1976: 
1977: \bibitem{HuS:05}
1978: A.~Hu and S.~D. Servetto.
1979: \newblock{On the Scalability of Cooperative Time Synchronization in
1980: Pulse-Connected Networks}.
1981: \newblock {\em IEEE Transactions on Information Theory}, 52(6):2725--2748, 2006.
1982: 
1983: \bibitem{GanesanKWCEW:02}
1984: D.~Ganesan, B.~Krishnamachari, A.~Woo, D.~Culler, D.~Estrin  and
1985: S.~Wicker.
1986: \newblock{Complex Behavior at Scale: An Experimental Study of Low-Power Wireless Sensor
1987: Neteworks}.
1988: \newblock In {\em Technical Report UCLA/CSD-TR 02-0013}, Computer Science Department, UCLA,
1989: July 2002.
1990: 
1991: \bibitem{ZhaoG:03}
1992: J.~Zhao and R.~Govindan.
1993: \newblock{Understanding Packet Delivery Performance in Dense Wireless Sensor
1994: Networks}.
1995: \newblock In {\em Proc. 1st International Conf. on Embedded Networked Sensor
1996: Systems}, Los Angeles, CA, 2003.
1997: 
1998: \bibitem{HuS:03b}
1999: A.~Hu and S.~D. Servetto.
2000: \newblock {Algorithmic Aspects of the Time Synchronization Problem in
2001:   Large-Scale Sensor Networks}.
2002: \newblock ACM/Kluwer Mobile Networks and Applications. Special Issue on Wireless Sensor
2003: Networks. 10:491-503, 2005.
2004: 
2005: \bibitem{Weisstein:03}
2006: E.~W. Weisstein.
2007: \newblock{Circular Segment. From \emph{MathWorld}--A Wolfram Web Resource.}
2008: \newblock {{\tt http://mathworld.wolfram.com/ CircularSegment.html}}
2009: 
2010: \bibitem{Hu:07}
2011: A.~Hu.
2012: \newblock{Cooperative Time Synchronization Using Spatial Averaging}
2013: \newblock Ph.D. Thesis, Cornell University, January 2007.
2014: 
2015: %\bibitem{VasudevanDIKT:03}
2016: %S.~Vasudevan, B.~DeCleene, N.~Immerman, J.~Kurose, and D.~Towsley.
2017: %\newblock{Leader Election Algorithms for Wireless Ad Hoc
2018: %Networks}.
2019: %\newblock In {\em Proc. DARPA Information Survivability Conference
2020: %and Exposition (DISCEX'03)}, 2003.
2021: 
2022: \end{thebibliography}
2023: 
2024: 
2025: \end{document}
2026: