<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Archiving and Interchange DTD v2.3 20070202//EN" "archivearticle.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="methods-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Built Environ.</journal-id>
<journal-title>Frontiers in Built Environment</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Built Environ.</abbrev-journal-title>
<issn pub-type="epub">2297-3362</issn>
<publisher>
<publisher-name>Frontiers Media S.A.</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fbuil.2018.00082</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Built Environment</subject>
<subj-group>
<subject>Methods</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Time Synchronization for Wireless Sensors Using Low-Cost GPS Module and Arduino</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Koo</surname> <given-names>Ki Young</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="corresp" rid="c001"><sup>&#x0002A;</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/598624/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Hester</surname> <given-names>David</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/429485/overview"/>
</contrib>
<contrib contrib-type="author">
<name><surname>Kim</surname> <given-names>Sehoon</given-names></name>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<uri xlink:href="http://loop.frontiersin.org/people/665388/overview"/>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>College of Engineering, Mathematics and Physical Sciences, University of Exeter</institution>, <addr-line>Exeter</addr-line>, <country>United Kingdom</country></aff>
<aff id="aff2"><sup>2</sup><institution>School of Natural and Built Environment, Queen&#x00027;s University Belfast</institution>, <addr-line>Belfast</addr-line>, <country>United Kingdom</country></aff>
<aff id="aff3"><sup>3</sup><institution>Department of Civil and Environmental Engineering, Sejong University</institution>, <addr-line>Seoul</addr-line>, <country>South Korea</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Ehsan Noroozinejad Farsangi, Graduate University of Advanced Technology, Iran</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Jian Li, University of Kansas, United States; Billie Spencer, University of Illinois at Urbana-Champaign, United States</p></fn>
<corresp id="c001">&#x0002A;Correspondence: Ki Young Koo <email>k.y.koo&#x00040;exeter.ac.uk</email></corresp>
<fn fn-type="other" id="fn001"><p>This article was submitted to Structural Sensing, a section of the journal Frontiers in Built Environment</p></fn></author-notes>
<pub-date pub-type="epub">
<day>23</day>
<month>01</month>
<year>2019</year>
</pub-date>
<pub-date pub-type="collection">
<year>2018</year>
</pub-date>
<volume>4</volume>
<elocation-id>82</elocation-id>
<history>
<date date-type="received">
<day>28</day>
<month>08</month>
<year>2018</year>
</date>
<date date-type="accepted">
<day>14</day>
<month>12</month>
<year>2018</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2019 Koo, Hester and Kim.</copyright-statement>
<copyright-year>2019</copyright-year>
<copyright-holder>Koo, Hester and Kim</copyright-holder>
<license xlink:href="http://creativecommons.org/licenses/by/4.0/"><p>This is an open-access article distributed under the terms of the Creative Commons Attribution License (CC BY). The use, distribution or reproduction in other forums is permitted, provided the original author(s) and the copyright owner(s) are credited and that the original publication in this journal is cited, in accordance with accepted academic practice. No use, distribution or reproduction is permitted which does not comply with these terms.</p></license>
</permissions>
<abstract><p>Time synchronization for wireless sensors is important for a proper interpretation of measurements, particularly for acceleration measurements to estimate mode-shapes. This paper presents a new time synchronization method working independently on each node without exchanging time-sync packets among nodes. This stand-alone operation can make field measurement campaigns very time-efficient without constructing and validating the wireless sensor network. The proposed method firstly time-stamps measurements using the accurate time-source from a GPS module on each node, and secondly re-samples the time-stamped data to get time-synchronized data. The time-stamping method proposed in the study utilizes Pulse-Per-Second (PPS) signals and NMEA (National Marine Electronics Association) sentences generated by a low-cost GPS module, and the internal timer/counter unit of Arduino. Error analysis on the proposed time-stamping method was carried out and derived an analytical expression for the maximum variance of time-stamping error of the proposed method. Four experiments have been carried out to observe (1) the long-term operational stability of the GPS module, (2) the accuracy of the PPS signals, (3) the accuracy of the proposed time-stamping method, and (4) the validity of the proposed time-synchronization method for output-only modal analysis on a laboratory floor structure. The GPS module was found to operate or to resume operating stably for the entire test period of 7 days even with the limited field of view to the sky. The relative time errors of two PPS signals from four GPS modules were found to be within &#x000B1;400 ns. The time-stamping error measured by two identical time-stamping Arduinos for common trigger signals was found to have a standard deviation of 40.8 ns, which agreed well with the maximum value of 42.0 ns predicted by the error analysis. From the output-only modal analysis, the estimated modal parameters were found to agree well with that from the wired acceleration sensors. The phase angle of the cross spectral density of the two wireless accelerations showed that there was no apparent time-synchronization error observable. These observations indicated a successful operation of the proposed time-synchronization method.</p></abstract>
<kwd-group>
<kwd>time-synchronization</kwd>
<kwd>wireless sensors</kwd>
<kwd>GPS module</kwd>
<kwd>Arduino</kwd>
<kwd>pulse-per-second signal</kwd>
<kwd>NMEA sentence</kwd>
<kwd>field measurement system</kwd>
</kwd-group>
<counts>
<fig-count count="20"/>
<table-count count="2"/>
<equation-count count="28"/>
<ref-count count="24"/>
<page-count count="16"/>
<word-count count="6795"/>
</counts>
</article-meta>
</front>
<body>
<sec sec-type="intro" id="s1">
<title>1. Introduction</title>
<p>Wireless sensors are highly necessary for a field measurement of a civil infrastructure, to avoid the expensive, time consuming and labor intensive installation of wired sensors. An extensive review on the developmental history of wireless sensors is found (Lynch and Loh, <xref ref-type="bibr" rid="B12">2006</xref>). While wireless sensors have their advantages, they have brought a technical problem during the transition from the wired to the wireless, i.e., time-synchronization among sensors. Time synchronization for wireless sensors is important especially when using high sampling-frequency sensors such as acceleration sensors or dynamic strain sensors to get mode shapes or strain mode shapes correctly (Krishnamurthy et al., <xref ref-type="bibr" rid="B8">2008</xref>; Abdaoui et al., <xref ref-type="bibr" rid="B1">2017</xref>).</p>
<p>Possible time-synchronization methods known to be available are (not limited to): (1) time-sync packet based methods, (2) terrestrial time broadcasting radio based method, and (3) GPS modules based method.</p>
<p>The first approach has been one of the important research topics in the computer science research community (Sundararaman et al., <xref ref-type="bibr" rid="B23">2005</xref>; Sadler and Swami, <xref ref-type="bibr" rid="B19">2006</xref>; Lasassmeh and Conrad, <xref ref-type="bibr" rid="B10">2010</xref>). Notable time synchronization algorithms are Reference Broadcasting Synchronization (RBS) (Elson et al., <xref ref-type="bibr" rid="B2">2002</xref>; Sim et al., <xref ref-type="bibr" rid="B21">2010</xref>), Timing-sync Protocol for Sensor Networks (TPSN) (Kumar and Srivastava, <xref ref-type="bibr" rid="B9">2003</xref>), and Flooding Time Synchronization Protocol (FTSP) (Mar&#x000F3;ti et al., <xref ref-type="bibr" rid="B14">2004</xref>).</p>
<p>Time synchronization errors of RBS, FTSP, and TPSN were reported to be within 20 &#x003BC;s. However, with the root-based or tree-based topology, their accumulative errors can be up to 5 ms in a period of 6 s (Krishnamurthy et al., <xref ref-type="bibr" rid="B8">2008</xref>). To overcome such accumulation, the consensus-based time synchronization protocols were introduced (Olfati-Saber et al., <xref ref-type="bibr" rid="B17">2007</xref>; Maggs et al., <xref ref-type="bibr" rid="B13">2012</xref>). Compared to the root-based or tree-based time-synchronization, the consensus-based time-synchronization doesn&#x00027;t require a single time reference.</p>
<p>In civil engineering research community, a notable development with a proven time-sync capability is the imote2-based HW/SW system developed by the Illinois SHM Project (<ext-link ext-link-type="uri" xlink:href="http://www.shm.cs.illinois.edu">http://www.shm.cs.illinois.edu</ext-link>) which implemented FTSP for clock time-synchronization with accuracy of 80 &#x003BC;s and developed the resampling technique for data synchronization (Nagayama and Spencer, <xref ref-type="bibr" rid="B16">2007</xref>; Nagayama et al., <xref ref-type="bibr" rid="B15">2007</xref>). Their research has formed Embedor Technologies (<ext-link ext-link-type="uri" xlink:href="http://embedortech.com">http://embedortech.com</ext-link>) and developed Xnode smart sensors with a real-time operating system (FreeRTOS) on NXP&#x00027;s LPC4357 micro-controller (Spencer et al., <xref ref-type="bibr" rid="B22">2017</xref>). Time-sync performance specification is not available yet, but it is reasonable to expect the same accuracy of 80 &#x003BC;s or better due to the real-time OS reducing uncertainty of task execution timings.</p>
<p>The second approach uses the radio signals sent from time broadcasting radio stations scattered all over the world (Ikram et al., <xref ref-type="bibr" rid="B5">2010</xref>). This approach consumes less power than GPS modules and is not limited to line-of-sight range, but the accuracy is around a few tens of milliseconds, which may be not good enough for acceleration sensor nodes.</p>
<p>The third approach is to use the GPS module&#x00027;s accurate time source, which is a byproduct of the GPS technology. It has been known that the GPS modules can perform time-synchronization with a resolution of 100 ns or smaller (Sazonov et al., <xref ref-type="bibr" rid="B20">2010</xref>). The GPS modules has been commonly used for time-synchronization on wired Ethernet networks, using Network Time Protocol (NTP), or Precision Time Protocol (PTP) (Volgyesi et al., <xref ref-type="bibr" rid="B24">2017</xref>). In the Illinois SHM Project, a GPS module were used on the gateway node for time-synchronization of leaf nodes in the sub-network (Kim et al., <xref ref-type="bibr" rid="B7">2016</xref>). This research is similar with the contents of this paper in terms of using a GPS module and its PPS signals, but only on gateway nodes not each node. This paper uses an Oven Controlled Crystal Oscillator (OCXO) to avoid problems related to the clock frequency fluctuation and achieved an extreme time-stamping accuracy. The direct use of a GPS module on each leaf node has been largely ignored by the research communities due to having a relatively high power-consumption and cost. However, for a short-term vibration measurement campaign on a civil infrastructure, this approach can be a sound option, since power consumption can be deal with using a large capacity battery pack, and a low-cost GPS module, retailing at around 40 USD (as of 2018) which is worth investing in as opposed to expensive and labor intensive wired sensor systems. However, the GPS module based method has a clear limitation that it needs a clear view to the sky for receiving GPS signals. However, this requirement is often satisfied for many field measurement campaigns of civil infrastructures.</p>
<p>Time-synchronization using a GPS module on each node brings a possibility of a highly time-efficient field measurement campaign on an operational bridge under constrains in access time and area. As the proposed time-synchronization occurs independently without sending/receiving time-sync packets among nodes, this approach doesn&#x00027;t require the wireless network to be formed and validated before starting measurement. For long-span bridges, creating and validating the wireless network can be challenging and time-consuming, due to long distances or steel obstacles. This approach provides the place and measure strategy where a sensor node is started to measure just after placement at a designated location. Proper operation of the sensor node can be confirmed by real-time graphs on the screen of the node. By repeating the place and measure strategy for all the sensor nodes, the installation process can be very time-efficient.</p>
<p>In this study, a new standalone time-synchronization method using a low-cost GPS module on each node was proposed. Error analysis on the proposed time-stamping method was carried out, followed by four experiments to validate the proposed time-synchronization method.</p>
</sec>
<sec id="s2">
<title>2. Theory</title>
<sec>
<title>2.1. GPS: Accurate Time Source</title>
<p>A GPS receiver apparently estimates the current position of the receiver in Latitude, Longitude, and Height on Earth. However, in the background, the GPS receiver actually tries to estimate not only the three position variables, but also the variable for the time offset between the receiver&#x00027;s internal clock-source and the atomic clocks in the GPS satellites. After a successful estimation, the GPS receiver has an extremely accurate internal clock, synchronized with the atomic clocks in the GPS satellites. This accurate time-source can be used for time-synchronization of wireless sensors installed anywhere with a clear view to the sky.</p>
<p>Each GPS satellite has an atomic clock and all atomic clocks in the GPS satellites are synchronized periodically by the control segment of the GPS, which monitors clock errors and updates them to maintain the accuracy of the GPS system. Each GPS satellite transmits its own unique PRN (Pseudo Random Number) which identifies the satellite itself at the exact start of each millisecond. A GPS receiver on the surface of Earth needs at least four PRNs to fix its position. For more details of GPS theory and operation can be found (Guochang, <xref ref-type="bibr" rid="B4">2003</xref>; Kaplan and Hegarty, <xref ref-type="bibr" rid="B6">2005</xref>).</p>
<p>Figure <xref ref-type="fig" rid="F1">1</xref> shows the input/output pins of the Adafruit Ultimate GPS v3 module. The RX pin is where the module receives configuration commands from a Micro Processor Unit (MPU): Arduino Mega 2560 in this study. The TX pin is for outputting NMEA (National Marine Electronics Association) sentences from the module to the MPU. NMEA sentences are the standard format for GPS to output results about receiver locations and accurate time as shown in Figure <xref ref-type="fig" rid="F2">2</xref>. The PPS (Pulse Per Second) pin is where a square wave comes out at the exact start of each second as shown in Figure <xref ref-type="fig" rid="F3">3</xref>. The square-wave has a high signal for the first 100 ms after the exact start of each second and is repeated every second. NMEA sentences are received roughly in the middle of two adjacent PPS signals, which provides the absolute timing information showing the year, month, day, hour, minute, and second of the current time. By combining the absolute time information from NMEA sentences and the precise relative timing of the PPS signals, it is possible to get a very accurate time-source for time-stamping.</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p>Low-cost GPS module: Adafruit Ultimate GPS v3.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0001.tif"/>
</fig>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p>Examples of NMEA sentences.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0002.tif"/>
</fig>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p>Pulse-Per-Second (PPS) signal waveform.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0003.tif"/>
</fig>
</sec>
<sec>
<title>2.2. Arduino: Open-Source Electronic Prototyping Platform</title>
<p>Arduino (<ext-link ext-link-type="uri" xlink:href="http://www.arduino.cc">http://www.arduino.cc</ext-link>) is an open-source electronics prototyping platform providing several board variants from the simplest Arduino UNO, to the enhanced Arduino Mega 2560 and the Internet of Things YUN. Arduino Mega 2560 is shown in Figure <xref ref-type="fig" rid="F4">4</xref>. Arduino has advantages over other platforms in terms of its ease of use for beginners. Arduino does not require special hardware for programming, but simply a USB port in a PC. Arduino is cheap (Arduino Mega 2560 board costs around 43 USD as of 2018). Arduino is available with easy-to-use recipe-like instructions on what to buy, what to wire with Arduino, and how to program Arduino for enormous parts and devices including sensors and actuators as well as computer IO devices such as Ethernet, Wifi, and SD memory. Arduino has a large user community where people share their own developments freely, which helps the wide usage and rapid growth of Arduino. The low-cost GPS module used in this study (40 USD as of 2018) also has a recipe-like instruction. Arudino makes it possible for non-electronic engineers to build their own sensor systems by assembling sensors, DAQ, and wireless communication to meet their special needs.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p>Arduino Mega2560: an electronics prototyping board in Arduino product family.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0004.tif"/>
</fig>
<p>Arduino Mega 2560 has an Atmel ATmega2560 Micro-Processor-Unit (MPU) at its core. A MPU is conceptually a small computer on a single chip with a small programming space, memory space, and special hardware components to enable connection with other integrated circuit (IC) chips of various tasks. ATmega2560 has 256kB Flash Memory for programming, 8kB SRAM for RAM, 16 Analog Input Pins, 54 Digital Input/Output Pins in the clock-speed of 16 MHz. ATmega2560 MPU is limited in computational capability in comparison with modern PCs, but capable enough in many electronics applications such as the time-synchronized acceleration sensors used in this study.</p>
<p>Three useful hardware components in ATmega2560 for this study are UART (Universal Asynchronous Receiver-Transmitter) RX/TX pins, four 16-bit timers/counters, and their input capture units. The UART RX/TX pins are used to communicate with the GPS module. ATmega2560 MPU sends control commands to the GPS module through TX pin and receives NMEA sentences through the RX pin.</p>
<p>The 16-bit timer/counter is an internal memory of ATmega2560 to store a value which starts from zero and increases by one per single oscillation of the crystal oscillator (XO) attached to ATmega2560. As the Arduino Mega 2560 has a 16 MHz crystal oscillator, the value increases by 16 &#x000D7; 10<sup>6</sup> per second in theory. However, there is a maximum value to be stored for the timer/counter 2<sup>16</sup> &#x02212; 1, which is a typical value for a 16-bit timer. Whenever it reaches the maximum, it resets and starts from zero again. By reading a timer/counter value at different times, relative timing information becomes available.</p>
<p>Each 16-bit timer/counter has an input capture unit which has its own internal memory to store the timer/counter value when a pulse signal arrives on the input capture pin. By wiring the PPS output pin of the GPS module to the input capture pin of the timer/counter, a relative timing measurement of the PPS signal becomes available.</p>
</sec>
</sec>
<sec id="s3">
<title>3. Proposed Time-stamping Method</title>
<p>Figure <xref ref-type="fig" rid="F5">5</xref> shows the proposed time-stamping method in a simplified way. <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>) and <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) denote the times of the two ideal PPS signals arriving at the <italic>k</italic>-th and (<italic>k</italic> &#x0002B; <italic>l</italic>)-th second, respectively. Here <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) &#x02212; <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>) &#x0003D; <italic>l</italic> (sec). As discussed in the previous section, <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>) and <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) can be identified from the NMEA sentences that arrived just before arrival of the PPS signals. In addition, <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>) and <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) are the timer/counter values captured at the arrivals of the two PPS signals through the input capture unit connected to the PPS output pin of the GPS module. <italic>C</italic><sub><italic>D</italic><sub><italic>A</italic></sub></sub>(<italic>m</italic>) denotes the timer/counter value read at the time of the <italic>m</italic>-th measurement. <italic>F</italic><sub><italic>clk</italic></sub> is the clock-frequency of the crystal oscillator. Then the time of the <italic>m</italic>-th measurement <inline-formula><mml:math id="M1"><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is estimated by the linear interpolation on the two points (<italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>), <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>)) and (<italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>), <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>)) for <italic>C</italic><sub><italic>D</italic><sub><italic>A</italic></sub></sub>(<italic>m</italic>) as shown in Equation (1).</p>
<disp-formula id="E1"><label>(1)</label><mml:math id="M2"><mml:mrow><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mfrac><mml:mo>&#x000D7;</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>sec</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p>Proposed timestamping method.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0005.tif"/>
</fig>
<p>The procedure for the proposed time-stamping method is summarized as follows.</p>
<list list-type="order">
<list-item><p>Read the timer/counter value of the input capture unit captured when the <italic>k</italic>-th PPS signal arrives and store it into <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>).</p></list-item>
<list-item><p>Identify the time <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>) as 1 s later from the time shown in the NMEA sentence received just before the <italic>k</italic>-th PPS.</p></list-item>
<list-item><p>Read the timer/counter <italic>C</italic><sub><italic>D</italic><sub><italic>A</italic></sub></sub>(<italic>m</italic>) when the <italic>m</italic>-th measurement is made.</p></list-item>
<list-item><p>Repeat Steps (1)&#x02013;(2) when the (<italic>k</italic> &#x0002B; <italic>l</italic>)-th PPS signal arrives.</p></list-item>
<list-item><p>Calculate the time of the <italic>m</italic>-th measurement <inline-formula><mml:math id="M3"><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> by linear-interpolation on the two points (<italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>), <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>)) and (<italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(k&#x0002B;l), <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(k&#x0002B;l)) for <italic>C</italic><sub><italic>D</italic><sub><italic>A</italic></sub></sub>(<italic>m</italic>) as shown in Equation (1).</p></list-item>
</list>
</sec>
<sec id="s4">
<title>4. Error Analysis on Proposed Time-stamping Method</title>
<p>The error of the proposed time-stamping method by Equation (1) is investigated analytically. An ideal GPS receiver produces a PPS signal at the exact start of each second. However, the actual time of the PPS signal at the <italic>k</italic>-th second <italic>t</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>) can be different from the ideal time <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>) by time error &#x003B5;<sub><italic>t</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>) as shown in Figure <xref ref-type="fig" rid="F6">6</xref> and Equation (2). &#x003B5;<sub><italic>t</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>) is assumed to be a random variable having the mean value &#x003BC;<sub><italic>t</italic><sub><italic>P</italic></sub></sub> &#x0003D; 0 and the standard deviation &#x003C3;<sub><italic>t</italic><sub><italic>P</italic></sub></sub>. According to the datasheet of the GPS module used in the study, &#x003C3;<sub><italic>t</italic><sub><italic>P</italic></sub></sub> is known to typically be 10 ns (GlobalTop Technology Inc, <xref ref-type="bibr" rid="B3">2012</xref>).</p>
<disp-formula id="E2"><label>(2)</label><mml:math id="M4"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<p>The timer/counter value of the Arduino is an integer and a discontinuous step function of time as shown in Figure <xref ref-type="fig" rid="F6">6</xref>. The exact timer/counter value corresponding to <italic>t</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>) needs to be represented in a real value <italic>C</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>) ideally, but in an integer <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>) resulting in the timer/counter error &#x003B5;<sub><italic>C</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>) as shown in Figure <xref ref-type="fig" rid="F6">6</xref> and Equation (3).</p>
<disp-formula id="E3"><label>(3)</label><mml:math id="M5"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where &#x003B5;<sub><italic>C</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>) is assumed to be a random variable having a uniform distribution on [0, 1).</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p>Error analysis on proposed timestamping method.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0006.tif"/>
</fig>
<p>For the (<italic>k</italic> &#x0002B; <italic>l</italic>)-th time-step, the ideal and actual PPS times, and the timer/counter values have following relationships.</p>
<disp-formula id="E4"><label>(4)</label><mml:math id="M6"><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="E5"><label>(5)</label><mml:math id="M7"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) &#x02212; <italic>t</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>) &#x0003D; <italic>l</italic>. &#x003B5;<sub><italic>C</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>) and &#x003B5;<sub><italic>C</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) are assumed to be independent and identically distributed (<italic>i.i.d</italic>.) random variables and so are &#x003B5;<sub><italic>t</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>) and &#x003B5;<sub><italic>t</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>).</p>
<p>The timer/counter value of the <italic>m</italic>-th data acquisition ideally needs to be represented in a real value <italic>C</italic><sub><italic>D</italic><sub><italic>I</italic></sub></sub>(<italic>m</italic>), but in an integer <italic>C</italic><sub><italic>D</italic><sub><italic>A</italic></sub></sub>(<italic>m</italic>) resulting in the timer/counter error &#x003B5;<sub><italic>C</italic><sub><italic>D</italic></sub></sub>(<italic>m</italic>) as follows.</p>
<disp-formula id="E6"><label>(6)</label><mml:math id="M8"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where &#x003B5;<sub><italic>C</italic><sub><italic>D</italic></sub></sub>(<italic>m</italic>) is assumed to be an <italic>i.i.d</italic>. random variable with &#x003B5;<sub><italic>C</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>).</p>
<p>The detailed error analysis of the proposed method is presented in the <xref ref-type="app" rid="A1">Appendix</xref> and the main result of the time-stamping error <inline-formula><mml:math id="M9"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> on the <italic>m</italic>-th measurement is given below.</p>
<disp-formula id="E7"><mml:math id="M10"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mi>A</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>+</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mi>A</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>A</italic> is a constant in the range of (0, 1) as defined in the <xref ref-type="app" rid="A1">Appendix</xref>.</p>
<p>One assumption of the analysis is that the clock frequency <italic>F</italic><sub><italic>clk</italic></sub> of the MPU is a constant. It is well-known that the clock frequency fluctuates with ambient temperature change which requires a post-processing to reduce time-synchronization error (Li et al., <xref ref-type="bibr" rid="B11">2016</xref>). However, in this study, this problem was tackled by an Oven Controlled Crystal Oscillator (OCXO) which is a XO in a temperature controlled miniature oven. With a cost of the additional hardware, an excellent time-synchronization performance is achieved without the post-processing.</p>
<p>The mean value of <inline-formula><mml:math id="M11"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is obtained using &#x003BC;<sub>&#x003B5;<sub><italic>t</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>)</sub> &#x0003D; &#x003BC;<sub>&#x003B5;<sub><italic>t</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>&#x0002B;<italic>l</italic>)</sub> &#x0003D; 0, and &#x003BC;<sub>&#x003B5;<sub><italic>C</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>)</sub> &#x0003D; &#x003BC;<sub>&#x003B5;<sub><italic>C</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>&#x0002B;<italic>l</italic>)</sub> &#x0003D; 0.5 as following.</p>
<disp-formula id="E8"><mml:math id="M12"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x003BC;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mi>A</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>+</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mfrac><mml:mrow><mml:mi>E</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:mi>A</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mi>E</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The variance of <inline-formula><mml:math id="M13"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is</p>
<disp-formula id="E9"><mml:math id="M14"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:mi>E</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>+</mml:mo><mml:mtext>&#x000A0;</mml:mtext><mml:mfrac><mml:mrow><mml:mi>E</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:mi>E</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow><mml:msup><mml:mi>A</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x02212;</mml:mo><mml:mi>E</mml:mi><mml:mrow><mml:mo>[</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>]</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>A</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mi>C</mml:mi></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msup><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msup><mml:mo>+</mml:mo><mml:msup><mml:mi>A</mml:mi><mml:mn>2</mml:mn></mml:msup></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mi>C</mml:mi></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The maximum variance is obtained using (1 &#x02212; <italic>A</italic>)<sup>2</sup> &#x0002B; <italic>A</italic><sup>2</sup> &#x02A7D; 1 for 0 &#x02A7D; <italic>A</italic> &#x0003C; 1, and <inline-formula><mml:math id="M15"><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mi>C</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>12</mml:mn></mml:mrow></mml:mfrac></mml:mrow></mml:math></inline-formula>.</p>
<disp-formula id="E10"><label>(7)</label><mml:math id="M16"><mml:mrow><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>&#x02A7D;</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:mtext>&#x000A0;&#x000A0;</mml:mtext><mml:mfrac><mml:mrow><mml:mn>2</mml:mn><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mi>C</mml:mi></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msup><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:msqrt><mml:mn>6</mml:mn></mml:msqrt></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mn>2</mml:mn></mml:msup></mml:mrow></mml:math></disp-formula>
<p>The variance <inline-formula><mml:math id="M17"><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula> has two sources of uncertainty: the variance of the PPS signals and the variance related to the clock-period 1/<italic>F</italic><sub><italic>clk</italic></sub>. The standard deviation <inline-formula><mml:math id="M18"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is known to be 10 (ns) from the datasheet and the standard deviation related to the clock-period is <inline-formula><mml:math id="M19"><mml:mrow><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:msqrt><mml:mrow><mml:mn>6</mml:mn></mml:mrow></mml:msqrt><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>c</mml:mi><mml:mi>l</mml:mi><mml:mi>k</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>=</mml:mo><mml:mn>40</mml:mn><mml:mo>.</mml:mo><mml:mn>8</mml:mn></mml:mrow></mml:math></inline-formula> ns based on a 10 MHz OCXO. The maximum standard deviation of <inline-formula><mml:math id="M20"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> combined by the two uncertainties was predicted to be 42.0 ns. This value was compared with an experimental estimation in section 6.3.</p>
</sec>
<sec id="s5">
<title>5. Resampling Technique and Implementation</title>
<p>In wireless sensor nodes, it is challenging to start and repeat to sample data at the exact times simultaneously among all the sensor nodes, due to deviations of the XO clock frequencies under changing ambient temperature. Alternatively, it may be simpler to allow the wireless sensor nodes to have different starting times with deviations in the sampling intervals, but to resample data on regular time points from accurately time-stamped data. Resampling technique was proposed by Nagayama and Spencer (<xref ref-type="bibr" rid="B16">2007</xref>) and Figure <xref ref-type="fig" rid="F7">7</xref> shows an illustrative example before and after resampling. In Figure <xref ref-type="fig" rid="F7">7A</xref> data-sampling starts in different times among the sensor nodes, and data-sampling intervals may have deviations due to that of the XOs. But, resampling can be carried out to have data points at the regular time points, starting from the exact start of a second, repeated with the exact original sampling time-interval. More detail of resampling technique can be found in Nagayama and Spencer (<xref ref-type="bibr" rid="B16">2007</xref>).</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p>Re-sampling on time-stamped data: <bold>(A)</bold> before re-sampling with irregular starting times, and <bold>(B)</bold> after re-sampling.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0007.tif"/>
</fig>
<p>Implementation of the proposed time-stamping method involves challenges on the resource limited ATmega2560 MPU as well as a high programming complexity. The first challenge was the multitasking to parse NMEA sentences together with reading data from the MEMS accelerometer. If a measured acceleration value is not read by ATmega2560 from the sensor on time, it will be overwritten by the next measured value on the sensor. However, it turned out parsing NMEA sentences takes a long time causing such data-overwritings. This problem was overcome by parsing NMEA sentences only once at the boot time of ATmega2560 and incrementing <italic>T</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>) by 1 s whenever a PPS arrives. The second challenge was the multitasking to read data from the accelerometer together with time-stamping measurements by Equation (1). In the proposed time-stamping method, the time-stamping <inline-formula><mml:math id="M21"><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> can be carried out only after the arrival of <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>). This means all the measurements between <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>) and <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) need to be stored and time-stamped after the arrival of <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) as a block of data for the last <italic>l</italic> seconds. This involves a relatively complex data management operations as well as a long operation time. To simplify this, the term <italic>l</italic>/(<italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) &#x02212; <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>)) in Equation (1) which has the meaning of the inverse of the clock frequency is equivalently estimated by <italic>p</italic>/(<italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>) &#x02212; <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic> &#x02212; <italic>p</italic>)) where <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic> &#x02212; <italic>p</italic>) is the timer/counter value captured at the arrival of the PPS at <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic> &#x02212; <italic>p</italic>). This alternative expression allows the time-stamping immediately after a measurement.</p>
<p>Implementation of the resampling technique was carried out as shown in the pseudocode in Algorithm <xref ref-type="table" rid="T2">1</xref>. The inputs were the time-stamped data <italic>y</italic>(<italic>m</italic>) on the timestamps <inline-formula><mml:math id="M22"><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> for <italic>m</italic> &#x0003D; 0, 1, 2, &#x000B7; &#x000B7; &#x000B7;, and the outputs were the resampled data <italic>y</italic><sub>sync</sub>(<italic>q</italic>) on the regular time-stamps <italic>t</italic><sub>sync</sub>(<italic>q</italic>) for <italic>q</italic> &#x0003D; 0, 1, 2, &#x000B7; &#x000B7; &#x000B7;. An efficient resampling strategy was used by linear interpolation on the most recent two measurements only.</p>
<table-wrap position="float" id="T2">
<label>Algorithm 1</label>
<caption><p>Pseudo code of the implemented resampling.</p></caption>
<graphic xlink:href="fbuil-04-00082-i0001.tif"/>
</table-wrap>
<p>In this study, ATmega2560 was programmed to transmit <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(0), <italic>C</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>), <italic>C</italic><sub><italic>D</italic><sub><italic>A</italic></sub></sub>(<italic>m</italic>), and <italic>y</italic>(<italic>m</italic>) for <italic>k, m</italic> &#x0003D; 0, 1, 2, &#x000B7; &#x000B7; &#x000B7;, through the UART TX port wired to a Raspberry Pi and a Python code in the Raspberry Pi receiving UART data was used to perform timestamping and resampling.</p>
<p>This implementation assumes that the sensor nodes have different starting times. After completing a measurement campaign, the resampled timestamps common in all the sensor nodes are identified. Then, the data corresponding to the common timestamps in each node are copied into a single data file to complete the time-synchronized data acquisition. This process can be done over the wireless network if available.</p>
</sec>
<sec id="s6">
<title>6. Experiments</title>
<p>Four experiments were carried out. The first two experiments were to validate the two fundamental assumptions of the proposed method that (1) GPS modules successfully operates stably to output NMEA sentences and PPS signals during the operation of wireless sensors, and (2) PPS signals are highly accurate. The third experiment was carried out as an attempt to measure time-stamping error. The last experiment was for an output-only modal analysis with the four acceleration sensors where the proposed time-stamping method and their modal parameters were compared with that from the wired counterpart.</p>
<sec>
<title>6.1. Experiment &#x00023;1: Long-Term Stability of GPS Module</title>
<p>The operation of the GPS module was observed for a week, using an Arduino Mega 2560 connected to the GPS module as shown in Figure <xref ref-type="fig" rid="F8">8</xref>. The UART TX/RX pins of the GPS modules were connected to the RX/TX pins of the Arduino Mega 2560, while the PPS output pin was connected to an input capture unit of the Arduino. The antenna of the GPS module was installed in such a way that it saw only the southern half of the sky, in order to create a limited visibility which may be encountered in a field measurement campaign. The Arduino was connected to a PC through a USB cable and NMEA sentences from the GPS module were recorded on the PC.</p>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p>Experimental setup for long-term operational stability of GPS module.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0008.tif"/>
</fig>
<p>Figure <xref ref-type="fig" rid="F9">9</xref> showed various outputs found in the NMEA sentences. The number of satellites visible to the GPS module varied mostly from 4 to 13. There were five occasions where the number of satellites dropped to 0, which may have happened due to the limited visibility. The Horizontal Dilution Of Precision (HDOP) indicates the magnitude of uncertainty about fixing the position and time. A large HDOP indicates large errors in position and time estimates when the number of satellites visible at the time decreases or satellites are densely located in a certain region of sky rather than spread out across the whole sky. The measured HDOP was clearly shown to be inversely proportional to the number of satellites. On the occasions where there were no visible satellites, the GPS failed to fix the location and time, resulting in a rebooting of the module. Then, the GPS module resumed to work properly in about 40&#x02013;60 s as seen in &#x00394;<italic>T</italic> and <inline-formula><mml:math id="M23"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>. This observation indicates the importance of having a clear line of sight to the sky for the successful operation of time-stamping by the GPS. However, with the given half visibility to the sky, the GPS module had operated successfully for the entire week, either working or resuming work after a few down-times. In summary, the GPS module showed a relatively robust and reliable operation for the test period even under the limited visibility.</p>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p>Long-term operational reliability of GPS module.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0009.tif"/>
</fig>
</sec>
<sec>
<title>6.2. Experiment &#x00023;2: Accuracy of PPS Signals</title>
<p>Figure <xref ref-type="fig" rid="F10">10</xref> shows the definitions of time errors in PPS signals coming from multiple GPS modules. <inline-formula><mml:math id="M24"><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> denotes the time error of the PPS signal from the <italic>i</italic>-th GPS module at <italic>k</italic>-th second. Direct measurement of <inline-formula><mml:math id="M25"><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> requires an accurate clock source such as an atomic clock. However, in this study, an indirect way of measuring its accuracy was carried out measuring the relative timer/counter differences of PPS signals coming from a single GPS module or multiple GPS modules, as shown in Equations (8)&#x02013;(9).</p>
<disp-formula id="E11"><label>(8)</label><mml:math id="M26"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow><mml:mi>i</mml:mi></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow><mml:mi>i</mml:mi></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="E12"><label>(9)</label><mml:math id="M27"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow><mml:mi>i</mml:mi></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow><mml:mi>j</mml:mi></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mi>i</mml:mi><mml:mo>&#x02260;</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M28"><mml:mrow><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M29"><mml:mrow><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>i</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> are the timer/counter values of the <italic>i</italic>-th GPS module at the (<italic>k</italic> &#x0002B; 1)-th and <italic>k</italic>-th time-steps, respectively. <inline-formula><mml:math id="M30"><mml:mrow><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>j</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is the timer/counter value of the <italic>j</italic>-th GPS module at the <italic>k</italic>-th time-step. For ideal error-free GPS modules, <inline-formula><mml:math id="M31"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M32"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, <italic>i</italic>&#x02260;<italic>j</italic>, are close to <italic>F</italic><sub><italic>clk</italic></sub> and zero, respectively.</p>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p>Errors of PPS signals in multiple GPS modules.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0010.tif"/>
</fig>
<p>Figure <xref ref-type="fig" rid="F11">11</xref> shows the experimental setup. Four GPS modules were attached to a modified Arduino Mega 2560, where the crystal oscillator was replaced by an 10 MHz OCXO which cost was 37 USD as of 2018. This was to minimize measurement inaccuracy due to a clock frequency fluctuation of the XO under ambient temperature change.</p>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p>Experimental setup for measuring accuracy of PPS signals.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0011.tif"/>
</fig>
<p>Four PPS signal pins were wired to four 16-bit timers/counters of the Arduino to capture the timer/counter value whenever a PPS signal arrives. Figure <xref ref-type="fig" rid="F12">12</xref> shows <inline-formula><mml:math id="M33"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M34"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, and their distributions. The average value was 9,999,927. It was very close to the nominal frequency of the OCXO 10 MHz. As shown in Figure <xref ref-type="fig" rid="F12">12</xref>, the maximum deviation was found to be 2 clock counts, which corresponds to 200 ns (1 clock count corresponds to 100 ns = 1/10 MHz). Figure <xref ref-type="fig" rid="F13">13</xref> showed <inline-formula><mml:math id="M35"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M36"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>3</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and their distributions. It was found that the maximum differences varied from &#x02212;4 to 2 clock-counts, which corresponds to &#x02212;400 to &#x0002B;200 ns. These observations showed promising accuracy in the PPS signals.</p>
<fig id="F12" position="float">
<label>Figure 12</label>
<caption><p>Accuracy of PPS signals from a single GPS module: <bold>(top)</bold> <inline-formula><mml:math id="M37"><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>, <bold>(middle)</bold> <inline-formula><mml:math id="M38"><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>2</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>, and <bold>(bottom)</bold> distribution of <inline-formula><mml:math id="M39"><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> deviation for <italic>i</italic> &#x0003D; 1, 2, 3, 4.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0012.tif"/>
</fig>
<fig id="F13" position="float">
<label>Figure 13</label>
<caption><p>Accuracy of PPS signals between two GPS modules: <bold>(top)</bold> <inline-formula><mml:math id="M40"><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>, <bold>(middle)</bold> <inline-formula><mml:math id="M41"><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mn>3</mml:mn></mml:mrow></mml:msubsup></mml:math></inline-formula>, and <bold>(bottom)</bold> distribution of <inline-formula><mml:math id="M42"><mml:mo>&#x00394;</mml:mo><mml:msubsup><mml:mrow><mml:mi>C</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>P</mml:mi></mml:mrow><mml:mrow><mml:mi>A</mml:mi></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msubsup></mml:math></inline-formula> deviation for <italic>j</italic> &#x0003D; 2, 3, 4.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0013.tif"/>
</fig>
</sec>
<sec>
<title>6.3. Experiment &#x00023;3: Accuracy of Proposed Method on Trigger Signals</title>
<p>This experiment was an attempt to measure the accuracy of the proposed time-stamping method, in an indirect way. Two identical time-stamping Arduinos were built, each using a GPS module and an OCXO, and common trigger signals generated from a function generator were fed to the two Arduinos, as shown in Figure <xref ref-type="fig" rid="F14">14</xref>. The function generator produced a trigger signal every second for 30 hours. The time-stamps made for a common trigger signal were compared to estimate the error of the proposed time-stamping method.</p>
<fig id="F14" position="float">
<label>Figure 14</label>
<caption><p>Experimental setup for measuring time-stamping accuracy.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0014.tif"/>
</fig>
<p>The two time-stamps made by the two Arduinos for the <italic>m</italic>-th trigger signal are denoted by <inline-formula><mml:math id="M43"><mml:mrow><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M44"><mml:mrow><mml:msup><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>, and are represented as follows.</p>
<disp-formula id="E13"><label>(10)</label><mml:math id="M45"><mml:mrow><mml:msup><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi></mml:mrow><mml:mn>1</mml:mn></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<disp-formula id="E14"><label>(11)</label><mml:math id="M46"><mml:mrow><mml:msup><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msubsup><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mi>r</mml:mi><mml:mi>u</mml:mi><mml:mi>e</mml:mi></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msubsup><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></disp-formula>
<p>The difference between them was the quantity measured in the experiment.</p>
<disp-formula id="E15"><mml:math id="M47"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mo>&#x00394;</mml:mo><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msup><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msup><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mn>2</mml:mn></mml:msup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msubsup><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mn>1</mml:mn></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msubsup><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mn>2</mml:mn></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The variance of <inline-formula><mml:math id="M48"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> is represented as follows, based on the assumption that <inline-formula><mml:math id="M49"><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>1</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M50"><mml:mrow><mml:msubsup><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msubsup><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> are <italic>i.i.d</italic>. with <inline-formula><mml:math id="M51"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>.</p>
<disp-formula id="E16"><mml:math id="M52"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup><mml:mo>+</mml:mo><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mn>2</mml:mn><mml:msubsup><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:msub></mml:mrow><mml:mn>2</mml:mn></mml:msubsup></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The standard deviation of the proposed time-stamping method is estimated as follows.</p>
<disp-formula id="E17"><label>(12)</label><mml:math id="M53"><mml:mrow><mml:msub><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:msub></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msqrt><mml:mn>2</mml:mn></mml:msqrt></mml:mrow></mml:mfrac><mml:mo>&#x000D7;</mml:mo><mml:msub><mml:mi>&#x003C3;</mml:mi><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></disp-formula>
<p>The difference between the two time-stamps was calculated and shown in Figure <xref ref-type="fig" rid="F15">15</xref>. The standard deviation of <inline-formula><mml:math id="M54"><mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>m</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula> was 57.68 ns. Using Equation (12), the standard deviation of the proposed time-stamping method <inline-formula><mml:math id="M55"><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003C3;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:mover accent="true"><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mo>^</mml:mo></mml:mover></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> was found to be 40.8 ns. It is worth noting that this value agrees well with the predicted maximum of 42.0 ns by Equation (7) with 3% error.</p>
<fig id="F15" position="float">
<label>Figure 15</label>
<caption><p>Distribution of time-stamp difference for common trigger signals.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0015.tif"/>
</fig>
</sec>
<sec>
<title>6.4. Experiment &#x00023;4: Output-Only Modal Analysis</title>
<p>Output-only modal analysis was carried out on a laboratory floor structure (Figure <xref ref-type="fig" rid="F16">16</xref>) using four wireless acceleration sensors built with the proposed time-stamping method and the re-sampling technique.</p>
<fig id="F16" position="float">
<label>Figure 16</label>
<caption><p>Laboratory floor structure.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0016.tif"/>
</fig>
<p>Each wireless acceleration sensor uses an ADXL362 MEMS accelerometer as shown in Figure <xref ref-type="fig" rid="F17">17</xref>. An Arduino Mega 2560 compatible board was developed to integrate the ADXL362 sensor, the GPS module, and the ATmega2560 MPU in a single printed circuit board. The ADXL362 sensor was connected to the Atmel ATmega2560 MPU through SPI (Serial Peripheral Interface). The Arduino Mega 2560 compatible board was sitting on top of a Raspberry Pi 3 Model B (RPI) powered by and communicated through GPIO (General Purpose Input/Output) pins of the RPI. A GPS antenna was connected to the GPS module and a USB battery pack was connected to power the RPI. The battery pack of 20 Ah with 3.85V was able to support more than 10 hours of the system operation consuming roughly 700 mA. For the wired counterpart, four QA700 servo-type accelerometers were used with the Data-Physics Signal Mobilizer DAQ system.</p>
<fig id="F17" position="float">
<label>Figure 17</label>
<caption><p>Wireless and Wired sensor: <bold>(top-right)</bold> wired QA700 accelerometer, and <bold>(bottom-middle)</bold> wireless ADXL362 MEMS sensor.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0017.tif"/>
</fig>
<p>Acceleration response under ambient vibration of human walking was measured for 10 min, using 100 Hz sampling frequency for both wireless and wired sensors as shown in Figure <xref ref-type="fig" rid="F18">18</xref>. The covariance-driven SSI (Stochastic Subspace Identification) (Peeters and De Roeck, <xref ref-type="bibr" rid="B18">2001</xref>) was used for output-only modal analysis. The results were shown in Table <xref ref-type="table" rid="T1">1</xref> and Figure <xref ref-type="fig" rid="F19">19</xref>. Table <xref ref-type="table" rid="T1">1</xref> showed that both frequencies were very close to each other. The maximum frequency error was &#x02212;0.09%. Figure <xref ref-type="fig" rid="F19">19</xref> showed that the first four mode shapes agreed well each other, confirming successful operation of the proposed time-stamping method and re-sampling technique.</p>
<fig id="F18" position="float">
<label>Figure 18</label>
<caption><p>Sensor positions.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0018.tif"/>
</fig>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p>Natural frequencies from wireless and wired systems.</p></caption>
<table frame="hsides" rules="groups">
<thead><tr>
<th valign="top" align="left"><bold>Mode</bold></th>
<th valign="top" align="center"><bold>Wireless sensors</bold></th>
<th valign="top" align="center"><bold>Wired sensors</bold></th>
<th valign="top" align="center"><bold>Relative error</bold></th>
</tr>
<tr>
<th/>
<th valign="top" align="center"><bold>(Hz)</bold></th>
<th valign="top" align="center"><bold>(Hz)</bold></th>
<th valign="top" align="center"><bold>(%)</bold></th>
</tr>
</thead>
<tbody>
<tr>
<td valign="top" align="left">B11</td>
<td valign="top" align="center">6.416</td>
<td valign="top" align="center">6.417</td>
<td valign="top" align="center">&#x02212;0.01</td>
</tr>
<tr>
<td valign="top" align="left">B21</td>
<td valign="top" align="center">14.005</td>
<td valign="top" align="center">14.002</td>
<td valign="top" align="center">0.02</td>
</tr>
<tr>
<td valign="top" align="left">B12</td>
<td valign="top" align="center">14.825</td>
<td valign="top" align="center">14.839</td>
<td valign="top" align="center">&#x02212;0.09</td>
</tr>
<tr>
<td valign="top" align="left">B22</td>
<td valign="top" align="center">23.339</td>
<td valign="top" align="center">23.334</td>
<td valign="top" align="center">0.02</td>
</tr>
<tr>
<td valign="top" align="left">B31</td>
<td valign="top" align="center">23.862</td>
<td valign="top" align="center">23.862</td>
<td valign="top" align="center">0.00</td>
</tr>
</tbody>
</table>
</table-wrap>
<fig id="F19" position="float">
<label>Figure 19</label>
<caption><p>Mode shapes from Wireless sensors and Wired sensors: <bold>(A)</bold> Mode B11, <bold>(B)</bold> Mode B12, <bold>(C)</bold> Mode B21, and <bold>(D)</bold> Mode B22.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0019.tif"/>
</fig>
<p>The phase angle of the cross spectral density of two acceleration signals can be used to estimate the time-synchronization error in the signals. A slope in the phase angle is proportional to the time-synchronization error and can be converted to a time-sync error estimation in seconds (Nagayama and Spencer, <xref ref-type="bibr" rid="B16">2007</xref>). This approach requires that the two signals were measured from a common reference clock. However, in this study, the wired and wireless systems were completely independent measurement systems with no common reference clock. Instead, the cross spectral density of the two wireless accelerations from Position &#x00023;2 and &#x00023;3 was shown in Figure <xref ref-type="fig" rid="F20">20</xref>. As shown in Figure <xref ref-type="fig" rid="F20">20</xref> there was no linear trend observable, indicating no apparent time-synchronization error between the nodes. The sensors at position &#x00023;2 and &#x00023;3 were chosen as they had moderate mode-shape amplitudes away from zero. Fluctuations of the phase angle below 3 Hz and over 18 Hz might be due to the small magnitude of the signals causing a low signal-to-noise ratio.</p>
<fig id="F20" position="float">
<label>Figure 20</label>
<caption><p>Cross spectral density using Sensor &#x00023;2 and &#x00023;3.</p></caption>
<graphic xlink:href="fbuil-04-00082-g0020.tif"/>
</fig>
</sec>
</sec>
<sec sec-type="conclusions" id="s7">
<title>7. Conclusion</title>
<p>The time-synchronization method for wireless acceleration sensors highly optimal for field measurement campaigns was proposed using the accurate time-stamping built on the GPS technology and the re-sampling technique working independently on each node. Analytical and experimental investigations revealed the following.</p>
<list list-type="bullet">
<list-item><p>The GPS module was found to be operating reliably, or to resume doing so for the entire seven days of the test-period, even though there was only half the visibility to the sky. However, to minimize down-times, it is recommended to ensure a clear visibility to the sky as much as possible.</p></list-item>
<list-item><p>The PPS signals were found to be accurate, with maximum relative time errors of 300 ns for two adjacent PPS signals from a single module and 400 ns for two PPS signals from two different GPS modules.</p></list-item>
<list-item><p>The analytical investigation on the proposed time-stamping method derived the expression of the standard deviation of the time-stamping error. The expression revealed two sources of uncertainties: one from PPS signal errors and the other related to the magnitude of the clock-period. The expression predicted the maximum standard deviation of the time stamping error to be 42.0 ns.</p></list-item>
<list-item><p>The time-stamping error was measured by comparing two time-stamps made by the two identical time-stamping Arduinos for common trigger signals. The standard deviation of the proposed time-stamping method was estimated to be 40.2 ns which agreed well with the analytical prediction of 42.0 ns with 3% error.</p></list-item>
<list-item><p>Output only modal analysis was carried out on a laboratory floor structure, using wireless acceleration sensors equipped with the proposed time-stamping method and the re-sampling technique. Identified natural frequencies and mode shapes agreed well with those from wired acceleration sensors.</p></list-item>
<list-item><p>The phase angle of the two wireless accelerations showed that there was no apparent time-synchronization error observable, indicating a successful time synchronization by the proposed method.</p></list-item>
</list>
</sec>
<sec id="s8">
<title>Data Access Statement</title>
<p>The research data supporting this publication are openly available from the University of Exeter&#x00027;s institutional repository at <ext-link ext-link-type="uri" xlink:href="https://dio.org/10.24378/exe.1063">https://dio.org/10.24378/exe.1063</ext-link></p>
</sec>
<sec id="s9">
<title>Author Contributions</title>
<p>KK: algorithm development, HW development, experimental validation; DH: algorithm development; SK: HW development.</p>
<sec>
<title>Conflict of Interest Statement</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
</sec>
</body>
<back>
<ref-list>
<title>References</title>
<ref id="B1">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Abdaoui</surname> <given-names>A.</given-names></name> <name><surname>El Fouly</surname> <given-names>T. M.</given-names></name> <name><surname>Ahmed</surname> <given-names>M. H.</given-names></name></person-group> (<year>2017</year>). <article-title>Impact of time synchronization error on the mode-shape identification and damage detection/localization in WSNs for structural health monitoring</article-title>. <source>J. Netw. Comput. Appl.</source> <volume>83</volume>, <fpage>181</fpage>&#x02013;<lpage>189</lpage>. <pub-id pub-id-type="doi">10.1016/j.jnca.2017.01.004</pub-id></citation></ref>
<ref id="B2">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Elson</surname> <given-names>J.</given-names></name> <name><surname>Girod</surname> <given-names>L.</given-names></name> <name><surname>Estrin</surname> <given-names>D.</given-names></name></person-group> (<year>2002</year>). <article-title>Fine-grained network time synchronization using reference broadcasts</article-title>, in <source>The Fifth Symposium on Operating Systems Design and Implementation (OSDI)</source> (<publisher-loc>New York, NY</publisher-loc>), <fpage>147</fpage>&#x02013;<lpage>163</lpage>.</citation></ref>
<ref id="B3">
<citation citation-type="other"><person-group person-group-type="author"><collab>GlobalTop Technology Inc</collab></person-group> (<year>2012</year>). <source>FGPMMOPA6H GPS Standalone Module Datasheet</source>.</citation></ref>
<ref id="B4">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Guochang</surname> <given-names>X.</given-names></name></person-group> (<year>2003</year>). <source>GPS Theory, Algorithms and Applications</source>. Berlin; <publisher-loc>Heidelberg</publisher-loc>: <publisher-name>Springer</publisher-name>.</citation></ref>
<ref id="B5">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Ikram</surname> <given-names>W.</given-names></name> <name><surname>Stoianov</surname> <given-names>I.</given-names></name> <name><surname>Thornhill</surname> <given-names>N. F.</given-names></name></person-group> (<year>2010</year>). <article-title>Towards a radio-controlled time synchronized wireless ensor network: a work in-progress paper</article-title>, in <source>Proceedings of the 15th IEEE International Conference on Emerging Technologies and Factory Automation, ETFA 2010</source> (<publisher-loc>Bilbao</publisher-loc>).</citation></ref>
<ref id="B6">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Kaplan</surname> <given-names>E.</given-names></name> <name><surname>Hegarty</surname> <given-names>C.</given-names></name></person-group> (<year>2005</year>). <source>Understanding GPS: Principles and Applications</source>. <publisher-name>Artech house</publisher-name>.</citation></ref>
<ref id="B7">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kim</surname> <given-names>R. E.</given-names></name> <name><surname>Li</surname> <given-names>J.</given-names></name> <name><surname>Spencer</surname> <given-names>B. F. J.</given-names></name> <name><surname>Nagayama</surname> <given-names>T.</given-names></name> <name><surname>Mechitov</surname> <given-names>K. A.</given-names></name></person-group> (<year>2016</year>). <article-title>Synchronized sensing for wireless monitoring of large structures</article-title>. <source>Smart Struct. Syst.</source> <volume>18</volume>, <fpage>885</fpage>&#x02013;<lpage>909</lpage>. <pub-id pub-id-type="doi">10.12989/sss.2016.18.5.88</pub-id></citation></ref>
<ref id="B8">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Krishnamurthy</surname> <given-names>V.</given-names></name> <name><surname>Fowler</surname> <given-names>K.</given-names></name> <name><surname>Sazonov</surname> <given-names>E.</given-names></name></person-group> (<year>2008</year>). <article-title>The effect of time synchronization of wireless sensors on the modal analysis of structures</article-title>. <source>Smart Mater. Struct.</source> <volume>17</volume>, <fpage>55018</fpage>&#x02013;<lpage>55113</lpage>. <pub-id pub-id-type="doi">10.1088/0964-1726/17/5/055018</pub-id></citation></ref>
<ref id="B9">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Kumar</surname> <given-names>R.</given-names></name> <name><surname>Srivastava</surname> <given-names>M. B.</given-names></name></person-group> (<year>2003</year>). <article-title>Timing-sync protocol for sensor networks categories and subject descriptors</article-title>. <source>Work</source>.</citation></ref>
<ref id="B10">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Lasassmeh</surname> <given-names>S. M.</given-names></name> <name><surname>Conrad</surname> <given-names>J. M.</given-names></name></person-group> (<year>2010</year>). <article-title>Time synchronization in wireless sensor networks: a survey</article-title>, in <source>Proceedings of the IEEE SoutheastCon 2010 (SoutheastCon)</source> (<publisher-loc>Concord, NC</publisher-loc>), <fpage>242</fpage>&#x02013;<lpage>245</lpage>.</citation></ref>
<ref id="B11">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Li</surname> <given-names>J.</given-names></name> <name><surname>Mechitov</surname> <given-names>K. A.</given-names></name> <name><surname>Kim</surname> <given-names>R. E.</given-names></name> <name><surname>Spencer</surname> <given-names>B. F.</given-names></name></person-group> (<year>2016</year>). <article-title>Efficient time synchronization for structural health monitoring using wireless smart sensor networks</article-title>. <source>Struct. Control Health Monit.</source> <volume>23</volume>, <fpage>470</fpage>&#x02013;<lpage>486</lpage>. <pub-id pub-id-type="doi">10.1002/stc.1782</pub-id></citation></ref>
<ref id="B12">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lynch</surname> <given-names>J. P.</given-names></name> <name><surname>Loh</surname> <given-names>K. J.</given-names></name></person-group> (<year>2006</year>). <article-title>A summary review of wireless sensors and sensor networks for structural health monitoring</article-title>. <source>Shock Vibrat. Digest</source> <volume>38</volume>, <fpage>91</fpage>&#x02013;<lpage>128</lpage>. <pub-id pub-id-type="doi">10.1177/0583102406061499</pub-id></citation></ref>
<ref id="B13">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Maggs</surname> <given-names>M. K.</given-names></name> <name><surname>O&#x00027;Keefe</surname> <given-names>S. G.</given-names></name> <name><surname>Thiel</surname> <given-names>D. V.</given-names></name></person-group> (<year>2012</year>). <article-title>Consensus clock synchronization for wireless sensor networks</article-title>. <source>IEEE Sens. J.</source> <volume>12</volume>, <fpage>2269</fpage>&#x02013;<lpage>2277</lpage>. <pub-id pub-id-type="doi">10.1109/JSEN.2011.2182045</pub-id></citation></ref>
<ref id="B14">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Mar&#x000F3;ti</surname> <given-names>M.</given-names></name> <name><surname>Kusy</surname> <given-names>B.</given-names></name> <name><surname>Simon</surname> <given-names>G.</given-names></name> <name><surname>L&#x000E9;deczi</surname> <given-names>K.</given-names></name></person-group> (<year>2004</year>). <article-title>The flooding time synchronization protocol</article-title>, in <source>Proceedings of the 2nd International Conference on Embedded Networked Sensor Systems - SenSys &#x00027;04</source> (<publisher-loc>Baltimore, MD</publisher-loc>), <fpage>39</fpage>&#x02013;<lpage>49</lpage>.</citation></ref>
<ref id="B15">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nagayama</surname> <given-names>T.</given-names></name> <name><surname>Sim</surname> <given-names>S.</given-names></name> <name><surname>Miyamori</surname> <given-names>Y.</given-names></name> <name><surname>Spencer</surname> <given-names>B. J.</given-names></name></person-group> (<year>2007</year>). <article-title>Issues in structural health monitoring employing smart sensors</article-title>. <source>Smart Struct. Syst.</source> <volume>3</volume>, <fpage>299</fpage>&#x02013;<lpage>320</lpage>. <pub-id pub-id-type="doi">10.12989/sss.2007.3.3.299</pub-id></citation></ref>
<ref id="B16">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Nagayama</surname> <given-names>T.</given-names></name> <name><surname>Spencer</surname> <given-names>B. F.</given-names></name></person-group> (<year>2007</year>). <source>Structural Health Monitoring Using Smart Sensors</source>, Report No. Urbana-Champaign: NSEL.</citation></ref>
<ref id="B17">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Olfati-Saber</surname> <given-names>R.</given-names></name> <name><surname>Fax</surname> <given-names>J. A.</given-names></name> <name><surname>Murray</surname> <given-names>R. M.</given-names></name></person-group> (<year>2007</year>). <article-title>Consensus and cooperation in networked multi-agent systems</article-title>. <source>Proc. IEEE</source> <volume>95</volume>, <fpage>215</fpage>&#x02013;<lpage>233</lpage>. <pub-id pub-id-type="doi">10.1109/JPROC.2006.887293</pub-id></citation></ref>
<ref id="B18">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Peeters</surname> <given-names>B.</given-names></name> <name><surname>De Roeck</surname> <given-names>G.</given-names></name></person-group> (<year>2001</year>). <article-title>Stochastic system identification for operational modal analysis: a review</article-title>. <source>J. Dyn. Syst. Meas. Control</source> <volume>123</volume>:<fpage>659</fpage>. <pub-id pub-id-type="doi">10.1115/1.1410370</pub-id></citation></ref>
<ref id="B19">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Sadler</surname> <given-names>B.</given-names></name> <name><surname>Swami</surname> <given-names>A.</given-names></name></person-group> (<year>2006</year>). <article-title>Synchronization in sensor networks: an overview</article-title>, in <source>Milcom 2006</source> (<publisher-loc>Washington, DC</publisher-loc>: <publisher-name>IEEE</publisher-name>), <fpage>1</fpage>&#x02013;<lpage>6</lpage>. <pub-id pub-id-type="doi">10.1109/MILCOM.2006.302459</pub-id></citation></ref>
<ref id="B20">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sazonov</surname> <given-names>E.</given-names></name> <name><surname>Krishnamurthy</surname> <given-names>V.</given-names></name> <name><surname>Schilling</surname> <given-names>R.</given-names></name></person-group> (<year>2010</year>). <article-title>Wireless intelligent sensor and actuator network - A scalable platform for time-synchronous applications of structural health monitoring</article-title>. <source>Struct. Health Monit.</source> <volume>9</volume>, <fpage>465</fpage>&#x02013;<lpage>476</lpage>. <pub-id pub-id-type="doi">10.1177/1475921710370003</pub-id></citation></ref>
<ref id="B21">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sim</surname> <given-names>S. H.</given-names></name> <name><surname>Spencer</surname> <given-names>B. F.</given-names></name> <name><surname>Zhang</surname> <given-names>M.</given-names></name> <name><surname>Xie</surname> <given-names>H.</given-names></name></person-group> (<year>2010</year>). <article-title>Automated decentralized modal analysis using smart sensors</article-title>. <source>Struct. Control Health Monit.</source> <volume>17</volume>, <fpage>872</fpage>&#x02013;<lpage>894</lpage>. <pub-id pub-id-type="doi">10.1002/stc.348</pub-id></citation></ref>
<ref id="B22">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Spencer</surname> <given-names>B. F.</given-names></name> <name><surname>Park</surname> <given-names>J. W.</given-names></name> <name><surname>Mechitov</surname> <given-names>K. A.</given-names></name> <name><surname>Jo</surname> <given-names>H.</given-names></name> <name><surname>Agha</surname> <given-names>G.</given-names></name></person-group> (<year>2017</year>). <article-title>Next generation wireless smart sensors toward sustainable civil infrastructure</article-title>. <source>Proc. Eng.</source> <volume>171</volume>, <fpage>5</fpage>&#x02013;<lpage>13</lpage>. <pub-id pub-id-type="doi">10.1016/j.proeng.2017.01.304</pub-id></citation></ref>
<ref id="B23">
<citation citation-type="journal"><person-group person-group-type="author"><name><surname>Sundararaman</surname> <given-names>B.</given-names></name> <name><surname>Buy</surname> <given-names>U.</given-names></name> <name><surname>Kshemkalyani</surname> <given-names>A. D.</given-names></name></person-group> (<year>2005</year>). <article-title>Clock synchronization for wireless sensor networks: a survey</article-title>. <source>Ad Hoc Netw.</source> <volume>3</volume>, <fpage>281</fpage>&#x02013;<lpage>323</lpage>. <pub-id pub-id-type="doi">10.1016/j.adhoc.2005.01.002</pub-id></citation></ref>
<ref id="B24">
<citation citation-type="book"><person-group person-group-type="author"><name><surname>Volgyesi</surname> <given-names>P.</given-names></name> <name><surname>Dubey</surname> <given-names>A.</given-names></name> <name><surname>Krentz</surname> <given-names>T.</given-names></name> <name><surname>Madari</surname> <given-names>I.</given-names></name> <name><surname>Metelko</surname> <given-names>M.</given-names></name> <name><surname>Karsai</surname> <given-names>G.</given-names></name></person-group> (<year>2017</year>). <article-title>Time synchronization services for low-cost fog computing applications</article-title>, in <source>Proceedings of the 28th International Symposium on Rapid System Prototyping: Shortening the Path from Specification to Prototype</source> (<publisher-loc>Seoul</publisher-loc>), <fpage>57</fpage>&#x02013;<lpage>63</lpage>.</citation>
</ref>
</ref-list>
<app-group>
<app id="A1">
<title>A. Appendix: Expression of Time-stamping Error of Proposed Method</title>
<p>The time difference between <italic>t</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) and <italic>t</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>) is expressed as</p>
<disp-formula id="E18"><label>(A1)</label><mml:math id="M56"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>{</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>}</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mi>l</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The difference between the timer/counter values <italic>C</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic> &#x0002B; <italic>l</italic>) and <italic>C</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>) is expressed in terms of the clock frequency <italic>F</italic><sub>clk</sub> of the MPU as follows.</p>
<disp-formula id="E19"><label>(A2)</label><mml:math id="M57"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>l</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x0225C;</mml:mo><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:msup><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mo>&#x02032;</mml:mo></mml:msup><mml:mo>&#x000D7;</mml:mo><mml:mi>l</mml:mi></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>The true time-stamp of the <italic>m</italic>-th data acquisition <italic>C</italic><sub><italic>D</italic><sub><italic>I</italic></sub></sub>(<italic>m</italic>) is</p>
<disp-formula id="E20"><label>(A3)</label><mml:math id="M58"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mtext>true</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mfrac><mml:mo>&#x000D7;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:munder><mml:munder><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy='true'>&#x0FE38;</mml:mo></mml:munder><mml:mrow><mml:mo>&#x0225C;</mml:mo><mml:mi>A</mml:mi></mml:mrow></mml:munder><mml:mo>&#x000D7;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mi>l</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>Note that the term <italic>A</italic> above is a constant in the range of [0, 1) (see Figure <xref ref-type="fig" rid="F6">6</xref>).</p>
<p>The proposed time-stamp of the <italic>m</italic>-th data acquisition in Equation (1) is re-written for convenience.</p>
<disp-formula id="E21"><label>(A4)</label><mml:math id="M59"><mml:mrow><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:munder><mml:munder><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy='true'>&#x0FE38;</mml:mo></mml:munder><mml:mrow><mml:mo>&#x0225C;</mml:mo><mml:mi>B</mml:mi></mml:mrow></mml:munder><mml:mo>&#x000D7;</mml:mo><mml:mi>l</mml:mi></mml:mrow></mml:math></disp-formula>
<p>The term <italic>B</italic> in the above equation is expressed as</p>
<disp-formula id="E22"><mml:math id="M60"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mi>B</mml:mi><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:mfrac><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>D</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>+</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>By using the definitions of <italic>A</italic> and <inline-formula><mml:math id="M61"><mml:mrow><mml:msubsup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">clk</mml:mtext></mml:mstyle></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>, and the approximation <inline-formula><mml:math id="M62"><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x0002B;</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x02243;</mml:mo><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> for a small <italic>x</italic>,</p>
<disp-formula id="E23"><mml:math id="M63"><mml:mi>B</mml:mi><mml:mo>&#x02243;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mi>F</mml:mi><mml:mo>&#x02032;</mml:mo></mml:msup><mml:msub><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x000D7;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mi>F</mml:mi><mml:mo>&#x02032;</mml:mo></mml:msup><mml:msub><mml:mrow><mml:mtext>&#x02009;</mml:mtext></mml:mrow><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:math></disp-formula>
<p>By expanding the above equation and ignoring the 2nd order term <inline-formula><mml:math id="M64"><mml:mrow><mml:msup><mml:mrow><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:msup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">clk</mml:mtext></mml:mstyle></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> negligible w.r.t. the other terms,</p>
<disp-formula id="E24"><mml:math id="M65"><mml:mi>B</mml:mi><mml:mo>&#x02243;</mml:mo><mml:mi>A</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mi>F</mml:mi><mml:mo>&#x02032;</mml:mo></mml:msup><mml:msub><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msup><mml:mi>F</mml:mi><mml:mo>&#x02032;</mml:mo></mml:msup><mml:msub><mml:mtext>&#x000A0;</mml:mtext><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac></mml:math></disp-formula>
<p>The term <italic>B</italic> is further modified using the approximation on <inline-formula><mml:math id="M66"><mml:mrow><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:msup><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mi>&#x02032;</mml:mi></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">clk</mml:mtext></mml:mstyle></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mo>&#x02243;</mml:mo><mml:mfrac><mml:mrow><mml:mn>1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>F</mml:mi></mml:mrow><mml:mrow><mml:mstyle class="text"><mml:mtext class="textrm" mathvariant="normal">clk</mml:mtext></mml:mstyle></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi><mml:mo>&#x0002B;</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow><mml:mo>-</mml:mo><mml:msub><mml:mrow><mml:mi>&#x003B5;</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mrow><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mi>P</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msub><mml:mrow><mml:mo stretchy="false">(</mml:mo><mml:mrow><mml:mi>k</mml:mi></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:mi>l</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo stretchy="false">)</mml:mo></mml:mrow></mml:mrow></mml:math></inline-formula>,</p>
<disp-formula id="E25"><mml:math id="M67"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mi>B</mml:mi><mml:mo>&#x02243;</mml:mo><mml:mi>A</mml:mi><mml:mo>+</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x000D7;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mi>l</mml:mi></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>By expanding the above equation and ignoring the cross-terms of &#x003B5;<sub><italic>C</italic><sub>(&#x000B7;)</sub></sub>(&#x000B7;) &#x000D7; &#x003B5;<sub><italic>t</italic><sub><italic>P</italic></sub></sub>(&#x000B7;) negligible to the other terms,</p>
<disp-formula id="E26"><label>(A5)</label><mml:math id="M68"><mml:mrow><mml:mi>B</mml:mi><mml:mo>&#x02243;</mml:mo><mml:mi>A</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:math></disp-formula>
<p>The error of the proposed time-stamping method is</p>
<disp-formula id="E27"><mml:math id="M69"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mtext>true</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>=</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>A</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:mi>A</mml:mi><mml:mo>&#x000D7;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mi>l</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mi>P</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mi>P</mml:mi></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mi>I</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>A</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac></mml:mrow></mml:mrow></mml:mrow></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mrow><mml:mrow><mml:mrow><mml:mi>A</mml:mi><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mi>l</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub><mml:mi>l</mml:mi></mml:mrow></mml:mfrac></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:mo>&#x000D7;</mml:mo><mml:mi>l</mml:mi></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>By using <italic>t</italic><sub><italic>P</italic><sub><italic>A</italic></sub></sub>(<italic>k</italic>) &#x02212; <italic>t</italic><sub><italic>P</italic><sub><italic>I</italic></sub></sub>(<italic>k</italic>) &#x0003D; &#x003B5;<sub><italic>t</italic><sub><italic>P</italic></sub></sub>(<italic>k</italic>),</p>
<disp-formula id="E28"><label>(A6)</label><mml:math id="M70"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mover accent='true'><mml:mi>t</mml:mi><mml:mo>&#x0005E;</mml:mo></mml:mover></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy='false'>)</mml:mo><mml:mi>A</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;&#x000A0;</mml:mtext><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mn>1</mml:mn><mml:mo>&#x02212;</mml:mo><mml:mi>A</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>+</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>P</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo stretchy='false'>)</mml:mo><mml:mi>A</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>&#x003B5;</mml:mi><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>D</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>F</mml:mi><mml:mrow><mml:mtext>clk</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
</app>
</app-group>
<fn-group>
<fn fn-type="financial-disclosure"><p><bold>Funding.</bold> This work was supported by the National Research Foundation of Korea Grant funded by the Korean Government NRF-2009-352-D00291.</p></fn>
</fn-group>
</back>
</article>