Estimating and correcting for clock drift in experimental data

97 Views Asked by At

I have 4 instruments, call them $i,j,k$ and $l$, with known coordinates $(x_i, y_i, z_i), (x_k, y_k, z_k), \ldots$.

Each instrument carries a radio receiver, and a clock. The clocks on instruments $i,j$ and $k$ give the "true" time, and are precisely synchronized. The clock on instrument $l$ is drifting linearly relative to the clocks on instruments $i,j$ and $k$.

The instruments receive signals from a transmitter(s), with unknown location(s) $(x, y, z)$, and at an unknown, varying rate, in addition to "signals" from point-like-source natural phenomenon. Each time a signal is received at a receiver, the current time is recorded. Additionally, environmental noise frequently triggers the instruments (in fact, the vast majority of recorded times correspond to noise).


I wish to filter out those timestamps which correspond to "true" transmissions (i.e. those emitted by the transmitter), and pair them up in "quadrouplets" (1 timestamp contributed by each station for each transmission).

I've been able to do this with great success in receivers $i,j$ and $k$ by simply iterating through the timestamps for each station, matching each timestamp with the nearest timestamps in the remaining two stations by performing a simple binary search, and removing those pairs (triplets, really) where the differences between their constituent timestamps don't correspond to the known signal velocity and station locations (that is, given the signal velocity, I can compute the minimum and maximum possible time difference between each pair of stations $i,j\;$, $\;i,k$, and $j,k$ for a signal).

The issue with station $l$ is that the nature of the clock drift is unknown.

The clock drift is linear, and we may assume it to be small relative to the time difference between subsequent "triggers" (the instruments trigger at approx $5\mathrm{Hz}$, while the clock drift can be assumed to be $<< 1/5 s$). Hence, I can still pair up quadruplets by simply pairing up the triplets produced using station $i,j$ and $k$ data (which are already known to be "true events", as above) with the nearest timestamps in the station $l$ data.

However, due to the clock drift, I don't know the "true time" of signal arrival at station $l$, which is important for how this data is used (for instance, this is likely to be fed into a "multilateration" algorithm, which is used to determine the location of the point source which emitted the signals, and relies entirely on the accuracy and precision of these timestamps). I can estimate the clock drift by simply subtracting the station $l$ timestamps from the station $i,j$ and $k$ timestamps in the aforementioned quadruplets, however this doesn't take into account the travel time between stations, which depends upon the (again, unknown) transmitter(s) locations and is not a simple constant value.

How may I estimate the clock drift, and find the "true" time of signal arrival at station $l$?