[time-nuts] Centroid pulse timing

Dr Bruce Griffiths bruce.griffiths at xtra.co.nz
Wed Sep 27 07:54:40 EDT 2006

   Hal Murray wrote:

Another way of determining the the arrival time of a pulse with high
resolution is to use centroid timing techniques. The input pulse is
converted to a short pulse using a delay line timed monostable then
the resultant pulse is low pass filtered by a discrete component RLC
Gaussian low pass filter.

This sounds like fun.  Thanks.


A sampling ADC continuously samples the low pass filter output at a
fixed clock speed. The centroid of the pulse can then be calculated
from the resultant sequence of ADC samples. Monostable output pulse
width ~ 2x ADC sample clock period. Low pass filter risetime ~ 2 ADC
sample clock periods. With a 10MHz sample clock a resolution of
100picosec or better can be achieved with a 12 bit ADC. 

The idea seems simple, but I don't see how to write the code.  Is there a 
good URL on that?  Table lookup and average?  (make the table from spice or 


A delay line timed monostable is required for low output pulse jitter
and good output pulse width temperature stabilty.

2x 100 ns delay line seems like a pain.

What's the (ballpark) tempco of coax?  What's the ballbark tempco of a normal 
(whatever that means) delay chip?  (Assume I use a chip designed for this 
rather than kludging gate delays.)

Can I correct for the change in pulse width if I have more samples?

How much accuracy do I give up by making the pulse wider so I can get more 
info on the width/height of the pulse in order to correct?


   Typical delay tempco for coax is~ 50-100ppm/K.
   A discrete component hybrid delay line like those from Newport and
   their successors typically has a tempco of 300 ppm/K.
   The Maxim/Dallas delay chips are likely to have a tempco somewhat
   greater than this.
   If you built your own discrete component delay line it fairly easy to
   achieve a tempco of less than 50ppm/K
   provided you use NP0/C0G capacitors and either air core or iron powder
   core inductors.
   However such a delay line will be somewhat bulky although it will
   occupy less space than 200ns (~ 40m) of ordinary coax.
   At one time special delay line coax was available, Tektronix used it
   in some of their scopes.
   The delay of such coax was about 40 times that of an equal length of
   normal coax.
   It is also possible to just implement the delay line as a folded
   microstrip line but it will occupy about
    56 square inches of FR4 circuit board per 100ns of delay when the
   delay line track is 20 mils wide on a 50 mil pitch.
   The delay will also vary about 20% over a temperature range of 0-70C.
   The rise time at the output of such a delay line will be relatively
   slow (several nanoseconds).
   Only the variation in the propagation delay from the input to the
   centroid of the output pulse is important.
   If one is timestamping a GPS PPS pulse then there is plenty of time to
   generate another pulse
   that is synchronous with the reference clock and inject it into the
   input of the delay line timed monostable.
   If the known time stamp of the leading edge of this pulse is
   subtracted from the corresponding time stamp
   of the resultant output pulse centroid, this is equal to the
   propagation delay from input to output pulse
   centroid to within a fast gate delay or so.
   Thus you can continuously measure this delay so that changes can be
   accurately tracked.
   An offset in the time stamp is unimportant when using PPS pulse timing
   to monitor the reference frequency stability and drift, as long as the
   offset remains constant.
   Off course it is also necessary to correct for the PPS pulse sawtooth
   error which is transmitted by the GPS timing receiver,
   This is best done in software.
   Whilst several papers have been published over the years on this
   technique no details on how to calculate a centroid are given.
   This is because the method of calculating the centroid of a pulse from
   a sequence of samples is regarded as obvious.
   Link below is to a recent Latvian implementation of this technique to
   achieve resolution of a few picosec.
   If S[j] is the value of the jth sample after the synchroniser output
   time stamp Ts then the centroid time stamp value T[c ]is given by
   Tc = Ts +T*(1*S[1] + 2*S[2 ]+ ....+ n*S[n])/(S[1 ]+ S[2] + ... +S[n])
   Where T is the sampling clock period.
   Off course in practice these samples all occur before the synchroniser
   time stamp so all the j's will be negative.
   If you imagine drawing the pulse shape on a piece of paper and cutting
   it out, what you are trying to do is to find the centre of gravity of
   this piece of paper.
   The above formula approximates the pulse shape a sequence of
   rectangular pulses of height Sj and
   width 1 sampling clock period centred on the instant at which the
   pulse was sampled.
   It is also possible to approximate the pulse by a sequence of
   trapaezoids where straight lines join the succesive samples.
   The result using this algorithm is a little more accurate, however in
   practice as long as the pulse is well sampled
   and has a Gaussian like shape the difference between the 2
   calculations is small.
   You can use a shorter monostable output pulse width but the amplitude
   of the low pass filtered pulse will be reduced.
   A longer monostable pulse width will produce a flat topped pulse which
   should be avoided.
   The amplitude should be slightly less than the ADC full scale range to
   maximise the accuracy of determining the centroid position.
   Both the input and output of the low pass filter should be correctly
   The low pass filter input and output terminations need not be equal.


   1. http://cddis.nasa.gov/lw13/docs/papers/time_artyukh_1m.pdf#search=%22A010%20Family%20of%20Time%20Interval%20Counters%20Adapted%20to%20SLR%20applications%22

More information about the time-nuts mailing list