- Home
- Technical Notes
- Timing precision in 905 nm pulsed time-of-flight ranging: walk error, jitter and time-stamping architectures
Timing precision in 905 nm pulsed time-of-flight ranging: walk error, jitter and time-stamping architectures
Published: 20 min read20 references
In pulsed time-of-flight (TOF) ranging, 1 ps of timing error is roughly 0.15 mm of range error, so millimetre-level accuracy needs a timing chain well below a few tens of picoseconds. For 905 nm systems with linear (APD plus transimpedance) receivers, this note derives the three dominant error sources: noise-induced jitter, amplitude-dependent walk, and time-to-digital converter (TDC) quantisation and nonlinearity. It then builds a numerical error budget and shows how each line can be verified.
Measurement equation and sensitivity
With t the interval between pulse emission and echo detection:
c = 299 792 458 m/s is exact by definition [17], and ng is the group index of air. Differentiating:
NIST lists a Ciddor phase index of 1.000271800 for dry air at 20 °C, 101.325 kPa and 633 nm [18], so using vacuum c reads long by about 2.7 × 10−4 · R, roughly 8 mm at 30 m. From the Ciddor dispersion formula, ng − 1 ≈ 2.74 × 10−4 at 905 nm and 20 °C (derived), still ≈ 8.2 mm at 30 m. A 1 °C or 0.4 kPa error shifts the index by 1 × 10−6, and pulsed applications need the group rather than the phase index [18].
Scope: linear detection with a 905 nm laser diode, avalanche photodiode (APD), transimpedance amplifier (TIA) and timing discriminator. SPAD receivers follow different statistics; one reports 2–3 cm single shot with ~100 ps FWHM pulses [20].
Single shot versus averaging
Scanning systems usually get one pulse per position, so single-shot precision is what matters [6]. Averaging N results on a static target with equal inter-sample correlation ρ gives:
The σ/√N rule holds only for ρ = 0; any correlation (thermal delay drift, clock frequency error, TDC nonlinearity at a fixed phase) leaves a floor. Määttä and Kostamovaara report better than 15 ps single shot, below 0.1 ps after about 10 000 averages, and a periodic ±20 ps nonlinearity with a 40 ns period in the same TDC [7]. Systematic error averages out only if the interval is randomly phased against the clock.
Jitter: noise projected onto the time axis
A leading-edge discriminator fires when the signal crosses a fixed threshold Vth. With the signal locally linear and additive noise of rms σv, the crossing moves to first order by δt = −vn/(dV/dt), hence:
ORTEC gives this as “timing jitter = en/(dV/dt)” and warns that low-pass filtering usually cuts slope faster than noise [8]; independent contributions add in root-sum-square [9]. For a linear edge of amplitude A and 10–90 % rise time tr, the slope is about 0.8A/tr. With SNR = A/σv:
The second is the Oulu group's pulse-preserving bandwidth criterion; for ~3 ns pulses it calls for about 250 MHz [6], i.e. tr ≈ 1.4 ns. Derived jitter is then ≈ 175 ps (26 mm) at SNR = 10, ≈ 88 ps (13 mm) at SNR = 20 and ≈ 9 ps (1.3 mm) at SNR = 200, matching published results in order: 120 ps (~1 μA) [4] and 250 ps [3] at the minimum detectable signal, and about 3 cm at SNR = 13 for a 230 MHz CMOS receiver [5].
More bandwidth shortens tr, but white noise grows as √B. The optimum just preserves the signal edge, whose lower limit the laser sets. The SPL PL90 datasheet gives 1 ns (typical) rise and fall times [15], and the current SPL PL90AT03 is specified at 75 W typical peak power at 25 A, 30 ns and 1 kHz [14]. Diodes in the 10–100 W class typically deliver 3–5 ns minimum pulse widths [6]. Set against false alarms, the threshold sits near five times the rms noise with a minimum-signal SNR of about 10 [6], so the weakest echo is timed at half its peak.
Walk: amplitude-dependent systematic delay
Pulses of identical shape but different amplitude cross a fixed threshold at different times; this shift is called walk (timing walk, time slewing) [8]. For an edge rising linearly from zero to peak in Tr (≈ tr/0.8):
Walk between two amplitudes is Δt = TrVth(1/A1 − 1/A2). It is worst just above threshold [9] and scales with Tr, so a fast edge cuts both jitter and walk. Comparator “charge sensitivity” adds further delay for small, slow signals [9].
Dynamic range and saturation
For a beam-filling Lambertian target, received power scales roughly as Pr ∝ ρ/R2. A 1–30 m range span alone gives a factor of 900; reflectivity from 0.05 to 0.9 adds 18, about 1:16 000 in total (derived). Automotive use can reach 1:100 000, with uncompensated walk of tens of centimetres [6]. A simulated 1 μA–100 mA sweep gives 2.5 ns (37 cm): about 2 ns in the linear region (1–70 μA) and 600 ps in saturation [6]. Past the linear range, input charge accumulation widens the pulse and timing follows the laser's slower trailing edge; mirror-like returns near 100 mA are clamped with external Schottky diodes [6].
Constant fraction discriminator (CFD)
A CFD adds a copy of the input delayed by td to an inverted copy attenuated by f, then marks the zero crossing. For a fixed pulse shape, the crossing does not depend on amplitude [8]. AN42 distinguishes two regimes [9]. In true constant fraction (TCF) timing, TTCF = td + fTr with td > Tr(1 − f). This is amplitude-independent but still depends on rise time. Amplitude and rise-time compensated (ARC) timing requires td < Tr,min(1 − f). Solving A(t − td)/Tr − fAt/Tr = 0 for a linear edge gives:
The timing point depends on neither A nor Tr; both expressions match AN42 Eqs. (5) and (14) [9]. With branch noise uncorrelated at lag td, the composite noise is σv√(1 + f2) and the slope at the crossing is A(1 − f)/Tr. Relative to leading-edge jitter (σvTr/A) the penalty is √(1 + f2)/(1 − f): ≈ 1.27 at f = 0.2 and ≈ 1.49 at f = 0.3. Removing walk this way costs roughly 30–50 % more jitter. With normalised noise autocorrelation r, the composite is σv√(1 + f2 − 2fr(td)) [9]; low-pass noise usually has r(td) > 0, so the real penalty is smaller. ORTEC suggests fractions of 0.2–0.4 for scintillators [8].
In lidar the weak point is the shape assumption: saturation changes the shape and walk returns. Wideband delay lines are also hard to integrate [19], so high-dynamic-range designs favour leading-edge timing with post-correction.
Time-domain walk correction
The quantity that drives walk (amplitude, time over threshold or edge slope) is measured on every pulse; a calibrated table maps it to walk, which is subtracted from each result [6].
| Method | Dynamic range | Corrected accuracy | Source |
|---|---|---|---|
| Amplitude (peak detector) | 1:4000 | ±35 mm single shot, 0–50 °C | [2] |
| Edge slope (two thresholds) | ≥ 1:10 000 | ±37 ps | [3] |
| Pulse width (time over threshold) | 1:100 000 | ±15 ps | [4] |
| Width + rise time | ~1:100 000 | ±4 mm (operation verified −20…+50 °C) | [5] |
Amplitude needs a fast, linear peak detector and fails in saturation. Time over threshold (ToT) costs one TDC channel and improves low-SNR jitter, but width grows rapidly beyond the linear range [6]. For two-threshold slope, a larger threshold ratio improves accuracy but raises the minimum signal [6]. The combined scheme uses width up to about 1:100 and slope from 100:100 000, with thresholds at SNR ≈ 5 and ≈ 1000 [6]. All need a multi-channel picosecond TDC. Waveform sampling beat the other methods in MCP simulations and adds amplitude, charge, baseline and pile-up information [19], at the cost of GS/s sampling, power and data rate.
Time-stamping architectures
Kalisz reviews counting with averaging, time stretching, time-to-amplitude conversion plus ADC, Vernier, tapped delay lines and interpolation [1]. Practical TDCs pair a coarse counter with a fine interpolator.
Counter plus interpolation
The TI TDC7200 does this in “measurement mode 2”: a ring oscillator measures the fractions, the external clock counts periods, giving TOFn = normLSB · (TIME1 − TIMEn+1) + CLOCK_COUNTn · Tclk [12]. The oscillator LSB drifts with temperature and supply, so each measurement adds a two-point calibration over 1 clock period (CAL1) and 2/10/20/40 periods (CAL2):
The reference clock adds two errors [12]. Frequency error scales with the interval: +50 ppm over 50 μs gives 2.5 ns, and over a 30 m target's ≈ 200 ns it gives 10 ps, or 1.5 mm (derived). Cycle-to-cycle jitter J accumulates as ≈ √n · J over n periods. In its example, 400 periods with 10 ps jitter give 200 ps rms, 25 ps after 64 averages. The standard deviation is about 243 ps with a 1 MHz clock, which is why 16 MHz is recommended [12].
Tapped delay lines and FPGA carry chains
In a tapped-delay-line TDC the event edge propagates along a delay chain whose taps are latched on the clock edge; the thermometer code gives the position within the period. An FPGA implementation using Spartan-6 carry chains reports 26 ps rms per channel at 37–48 °C: a 37 ps two-channel difference over √2, assuming independent channels [11]. It also shows the difficulties: some tap differences in the timing model are negative (bits are reordered), almost half the bins have zero width, and a 1.3 % ring-oscillator shift over 15 °C is about 100 ps at the end of the line [11]. Wu and Shi note that bin widths vary with temperature and supply and need frequent recalibration, and that “ultra-wide bins” form at logic-block boundaries; their wave-union launcher subdivides them, reaching 20–10 ps in low-cost FPGAs [10].
Vernier and time-to-amplitude conversion
Vernier: START triggers an oscillator of period Ts, and STOP triggers a slightly faster one of period Tf. The edges coincide after N periods, so Δt = N(Ts − Tf) (derived). Resolution is set by the period difference, not an element delay; the cost is N · Ts conversion time and tracking of the frequency ratio.
Time-to-amplitude converter (TAC): A constant current charges a capacitor for the interval (V = IΔt/C), and an ADC reads the voltage [9]. In one analogue-interpolation TDC, ±10 ns coarse resolution was refined to ±10 ps, and drift across six units stayed within ±10 ps from −10 to +50 °C [7]. Weaknesses are dead time, component tempco and, per AN42, heating and dielectric absorption at high conversion rates [9].
Quantisation, DNL/INL and the code-density test
Let wi be the width of code i and w̄ the mean width. The code-density test feeds in events that are uniformly distributed within the clock period and uncorrelated with the clock. The count ni in each code is then proportional to its width, and the widths sum to one clock period [11]:
The last term follows from counting statistics. A 1 % width uncertainty needs about 104 hits per bin, or about 5 × 106 events for 500 bins. Any correlation between the calibration source and the clock distorts the histogram. Two start-up calibrations of one device differed by up to 17 ps; the suggested fix is a calibration clock close to, but not equal to, the system clock [11]. Quantisation contributes q/√12 only when the interval is randomly phased against the clock; in a synchronous set-up the same code repeats and the error becomes a fixed offset. For the TDC7200's 55 ps LSB, q/√12 ≈ 16 ps ≈ 2.4 mm (derived).
Commercial TDCs
| Parameter | TI TDC7200 [12] | ScioSense TDC-GPX2 [13] |
|---|---|---|
| Calibration | Two-point, against clock period | Automatic, against reference clock (no PLL/DLL) |
| LSB | 55 ps typ. | Configurable fraction of reference period (e.g. 1 ps) |
| Single-shot rms | Mode 2: 35 ps (1 μs), 50 ps (100 μs) | 20 ps typ. / 30 ps max.; 10 ps typ. in high-resolution mode |
| Accuracy / nonlinearity | Mode 2: 28 ps (8 MHz) | INL 20 ps max., DNL 5 ps typ. |
| Range | Mode 1: 12–500 ns; Mode 2: 250 ns–8 ms | 0–16 s |
| Reference clock | 1–16 MHz | 2–12.5 MHz |
| Minimum pulse spacing | 67 ns between STOPs (mode 1) | 20 ns; 5 ns with combined channels |
| Offset error / drift | Not specified | 100 ps typ.; 0.5 ps/K typ., 3 ps/K max. (normal mode) |
In range terms (derived), TDC7200 mode 1 spans about 1.8–75 m, and GPX2 separates echoes 3 m apart (0.75 m with combined channels).
Error budget
The budget is for an example system with explicit assumptions. The target is at 30 m (t ≈ 200 ns) and the receiver bandwidth is 250 MHz (tr ≈ 1.4 ns). START comes from an optical pick-off with assumed SNR ≈ 100. The TDC is GPX2-class, with START and STOP on separate channels of one chip. TDC noise is 20 ps for the channel difference: the datasheet's STOP2 − STOP1 histogram (96 ns) shows 20 ps, one channel against the clock 22.5 ps [13], so √2 × 20 ps (28 ps) would be pessimistic. A 45 K temperature span is assumed, and walk is corrected by one of the methods in Table 1. Random terms add in root-sum-square (RSS); systematics are listed separately.
| Term | Type | ps | mm | Basis |
|---|---|---|---|---|
| STOP jitter, SNR = 20 | Random | 87.5 | 13.1 | (5); derived |
| STOP jitter, SNR = 200 | Random | 8.8 | 1.3 | (5); derived |
| START jitter, SNR ≈ 100 | Random | 17.5 | 2.6 | (5); assumed |
| TDC, START − STOP difference | Random | 20 | 3.0 | [13] |
| RSS, SNR = 20 | 91.4 | 13.7 | derived | |
| RSS, SNR = 200 | 28.0 | 4.2 | derived | |
| Walk residual (corrected) | Systematic | ±15…±37 | ±2.2…±5.5 | [4], [3] |
| TDC INL (max., uncalibrated) | Systematic | 20 | 3.0 | [13] |
| TDC offset, 45 K × 0.5 ps/K (typ.) | Systematic | 22.5 | 3.4 | [13]; derived |
| TDC offset, 45 K × 3 ps/K (max.) | Systematic | 135 | 20.2 | [13]; derived |
| Clock, 50 ppm × 200 ns | Systematic, ∝ R | 10 | 1.5 | [12]; derived |
| Air index, uncorrected | Systematic, ∝ R | — | 8.2 | [18]; derived |
| Air index, corrected from T/P (~1 ppm) | Systematic, ∝ R | — | 0.03 | [18]; derived |
| Fixed optical/electronic delay | Systematic | calibration uncertainty | reference target | |
For weak echoes STOP jitter dominates: a 10 ps TDC only moves the total from ≈ 91 to ≈ 90 ps, while doubling the STOP SNR gives ≈ 51 ps. For strong echoes the TDC and START channel take over. With typical values, corrected systematics add to ≈ ±13 mm linearly (≈ 7 mm RSS) and do not average down. At maximum drift the offset alone reaches ≈ 20 mm; some of it may cancel between START and STOP on one chip, but the datasheet gives no difference figure, so offset must be calibrated over temperature. Uncorrected air index alone exceeds the strong-echo random total. Reaching 1 mm on a weak echo needs ≈ 190 uncorrelated averages with target, amplitude and temperature held constant.
Verification methodology
Each budget line needs its own experiment; one “ranging test” cannot separate them.
- TDC alone: Drive START and STOP with two electrical edges of known delay; Bourdeauducq used a splitter and cables of about 2 ns and 4 ns, with an oscillator asynchronous to the clock so the whole line was exercised [11]. Repeat spread gives precision, a delay sweep gives INL, and (10) gives the DNL/INL table.
- Reference timer: Cross-check with an independent time-interval analyser on a separate frequency standard; a shared one hides clock scale error.
- Optical delay line: A fibre spool delivers the real optical pulse; its delay drifts with temperature, so stabilise it and measure it independently.
- Walk curve: Sweep amplitude over the full dynamic range with a stepped optical attenuator on a fixed path, logging time, width and slope together [6]; step-dependent attenuator delay would otherwise read as walk.
- Reference targets: Independently surveyed flat targets of known reflectivity fix the offset; a range sweep separates scale errors (clock, air index).
- Climatic testing: Repeat walk curve and offsets at several chamber temperatures; published receivers were validated over 0…+50 °C [2] and −20…+50 °C [5]. Log T, P and humidity for the air-index correction [18].
Common mistakes
- “Averaging removes jitter.” Only the uncorrelated part falls as σ/√N (3), and scanning systems often cannot average at all [6].
- “Walk is a constant offset.” It depends on amplitude and changes fastest near threshold (6); an offset from one target is wrong for another reflectivity, and saturation changes the dependence [6].
- “The TDC LSB is the precision.” The GPX2 LSB can be 1 ps while single-shot rms is 20 ps [13]; resolution, precision (rms) and accuracy (INL, offset, scale) must be verified separately.
- “A CFD always cancels walk.” It relies on a constant pulse shape [8], and in ARC mode jitter rises by √(1 + f2)/(1 − f) (7).
- “More bandwidth always helps.” Beyond the signal edge it only adds noise [6], [8]; likewise, clock ppm error grows with range [12].
References
- J. Kalisz, “Review of methods for time interval measurements with picosecond resolution,” Metrologia, vol. 41, no. 1, pp. 17–32, 2004. https://doi.org/10.1088/0026-1394/41/1/004
- P. Palojärvi, T. Ruotsalainen, J. Kostamovaara, “A 250-MHz BiCMOS receiver channel with leading edge timing discriminator for a pulsed time-of-flight laser rangefinder,” IEEE Journal of Solid-State Circuits, vol. 40, no. 6, pp. 1341–1349, 2005. https://doi.org/10.1109/JSSC.2005.848022
- J. Nissinen, I. Nissinen, J. Kostamovaara, “Integrated receiver including both receiver channel and TDC for a pulsed time-of-flight laser rangefinder with cm-level accuracy,” IEEE Journal of Solid-State Circuits, vol. 44, no. 5, pp. 1486–1497, 2009. https://doi.org/10.1109/JSSC.2009.2017006
- S. Kurtti, J. Kostamovaara, “An integrated laser radar receiver channel utilizing a time-domain walk error compensation scheme,” IEEE Transactions on Instrumentation and Measurement, vol. 60, no. 1, pp. 146–157, 2011. https://doi.org/10.1109/TIM.2010.2047663
- S. Kurtti, J. Nissinen, J. Kostamovaara, “A wide dynamic range CMOS laser radar receiver with a time-domain walk error compensation scheme,” IEEE Transactions on Circuits and Systems I: Regular Papers, vol. 64, no. 3, pp. 550–561, 2017. https://doi.org/10.1109/TCSI.2016.2619762
- S. Kurtti, J. Kostamovaara, “CMOS receiver for a pulsed TOF laser rangefinder utilizing the time domain walk compensation scheme,” 20th IMEKO TC4 International Symposium, Benevento, pp. 111–115, 2014. https://www.imeko.org/publications/tc4-2014/IMEKO-TC4-2014-292.pdf
- K. Määttä, J. Kostamovaara, “A high-precision time-to-digital converter for pulsed time-of-flight laser radar applications,” IEEE Transactions on Instrumentation and Measurement, vol. 47, no. 2, pp. 521–536, 1998. https://doi.org/10.1109/19.744201
- ORTEC (AMETEK), “Fast-Timing Discriminator Introduction: Choosing the Right Timing Discriminator for the Application,” application note. https://www.ortec-online.com/-/media/ametekortec/other/fast-timing-discriminator-introduction.pdf
- ORTEC (AMETEK), “AN42: Principles and Applications of Timing Spectroscopy,” application note. https://www.ortec-online.com/-/media/ametekortec/application%20notes/an42.pdf
- J. Wu, Z. Shi, “The 10-ps wave union TDC: Improving FPGA TDC resolution beyond its cell delay,” 2008 IEEE Nuclear Science Symposium Conference Record, pp. 3440–3446, 2008. https://doi.org/10.1109/NSSMIC.2008.4775079
- S. Bourdeauducq, “A 26 ps RMS time-to-digital converter core for Spartan-6 FPGAs,” arXiv:1303.6840, 2013. https://arxiv.org/abs/1303.6840
- Texas Instruments, “TDC7200 Time-to-Digital Converter for Time-of-Flight Applications in LIDAR, Magnetostrictive and Flow Meters,” datasheet SNAS647D, 2016. https://www.ti.com/lit/ds/symlink/tdc7200.pdf
- ScioSense (formerly ams/acam), “TDC-GPX2 4-Channel Time-to-Digital Converter,” datasheet v1-03, 2017. https://www.sciosense.com/wp-content/uploads/2023/12/TDC-GPX2-Datasheet.pdf
- ams OSRAM, “SPL PL90AT03 – Pulsed Laser Diode in Plastic Package 75 W Peak Power,” datasheet v1.1, 2024. https://look.ams-osram.com/m/4c6fd3eb2516daa7/original/SPL-PL90AT03.pdf
- OSRAM Opto Semiconductors, “SPL PL90 – Pulsed Laser Diode in Plastic Package 25 W Peak Power,” datasheet v1.5, 2015. https://datasheet.octopart.com/SPLPL90-Osram-Opto-datasheet-62046751.pdf
- IEC 60825-1:2014, “Safety of laser products – Part 1: Equipment classification and requirements,” edition 3.0. https://webstore.iec.ch/en/publication/3587
- NIST, “CODATA value: speed of light in vacuum.” https://physics.nist.gov/cgi-bin/cuu/Value?c
- NIST Engineering Metrology Toolbox, “Refractive Index of Air Calculator – Documentation.” https://emtoolbox.nist.gov/Wavelength/Documentation.asp
- J.-F. Genat, G. Varner, F. Tang, H. Frisch, “Signal processing for picosecond resolution timing measurements,” Nuclear Instruments and Methods in Physics Research A, vol. 607, no. 2, pp. 387–393, 2009. https://arxiv.org/abs/0810.5590
- J. Kostamovaara et al., “On laser ranging based on high-speed/energy laser diode pulses and single-photon detection techniques,” IEEE Photonics Journal, vol. 7, no. 2, 2015. https://doi.org/10.1109/JPHOT.2015.2402129
Related capability area: Defence electronics and electro-optical systems
Have a requirement in this area, or a correction to this note? Tell us about it.