I am looking for the most precise way to determine the onset time of a very fast pulse sampled at 5 GHz coming from a physics detector.

Here is an example of my signals: enter image description here

I already tried different things using the unfiltered and smoothed waveforms including:

  • Different ways of looking at the second derivative in the hope of finding the turning point
  • Fitting different types of models (see examples below)

The fitting yielded the best results but is really sensible to the fitting range which was chosen. I think one could do better. Since I want to be as precise as possible I am looking for other ways (maybe known algorithms?) to improve the onset time detection. I would be grateful for any input or ideas I could try out, thank you!

EDIT: Clarification of the problem

The detector in question is a so-called SIPM, a photodetector. The signals produced by light detection were digitized by using a waveform digitizer. In a very simple model the signal shape can be expressed as a convolution of two exponentials giving:

$$ f(t, A, t_0, \tau_r, \tau_f) = A \cdot \Theta(t - t_0) \cdot \left( \exp\left(-\frac{t - t_0}{\tau_r}\right) - \exp\left(-\frac{t - t_0}{\tau_f}\right) \right) $$

Basically simply an exponential rise and decay. Some SIPMs have a so-called fast output where the signal is decoupled by using a capacitance, which acts as a high pass filter. This is the reason for the "overswinging" tail. The above model can be modified to accommodate for that:

$$ f(t, A, t_0, \tau_d, \tau_r, \tau_f) = A \cdot \Theta(t - t_0) \cdot \left( \frac{\tau_d}{\tau_d - \tau_f} \cdot \exp\left(-\frac{t - t_0}{\tau_f}\right) - \frac{\tau_d}{\tau_d - \tau_r} \cdot \exp\left(-\frac{t - t_0}{\tau_r}\right) - \frac{\tau_d \cdot (\tau_f - \tau_r)}{(\tau_d - \tau_f) \cdot (\tau_d - \tau_r)} \cdot \exp\left(-\frac{t - t_0}{\tau_d}\right) \right) $$

Hence an additional parameter is introduced. See this example for a full fit of the signal:

enter image description here

My understanding of onset time is the the "start" time of the signal. So using the described model, I try to fit the signal and get t0. Since the tail of the signal does not contribute any information to the onset time, I first try to only fit the rising edge of the signal with the simpler model (see example below). This works but the result is highly dependant on the fit range, i.e. including/excluding a few points on the rising edge greatly changes t0. The underlying noise should simply be gaussian distributed electronic noise. Because of this sensible method I am wondering if there is a more robust approach. (The piecwise linear fit at the bottom was just another idea)

Exponential model:

enter image description here

And another one to see how many samples are given on the rising edge:

enter image description here Piecewise linear model:

enter image description here

  • 2
    $\begingroup$ You'd usually use the physical model of what you're observing, including a mathematical model of the disturbances you see, and derive an optimal estimator from that. So, can you tell us what we're looking for, mathematically? I must admit I don't even know what your onset time is. If you gave me a printout of your signal plot and a pencil and asked me to mark the onset time, I'd have no idea what to do. So, please start by defining that! $\endgroup$ Commented Jul 31, 2023 at 9:54
  • $\begingroup$ Hi, thanks for the reply. A edited my initial question to clarify the problem. $\endgroup$
    – Tim Buktu
    Commented Jul 31, 2023 at 15:17

1 Answer 1


For determine timing of a signal, cross correlation can be a good tool. Of course, that requires you some sort of a reference to cross-correlate your signal with.

If the pulses are fairly consistent you can just manually create a reference by taking a few examples, lining up by hand and averaging them.

If there is too much variability you can try creating a parametric model. Your pulse looks like the impulse response of a lowpass cascaded with a DC blocking filter, so this shape can be described with a very small number of parameters.

Once you detect a pulse, you can roughly estimate the parameters from some key metrics (pulse height, pulse width, DC recovery time, etc.), create a reference based on the parametric model and cross correlate for the exact location. If need be, you can iterate: use your first time of arrival estimate to refine your parameter estimation, etc.

Chances are some parameters will not change at all. It's likely that the DC blocker is not a property of the pulse, but some other part of the device under test or data acquisition system.

  • $\begingroup$ Hi, thanks for the input! I edited my initial question to clarify the problem. $\endgroup$
    – Tim Buktu
    Commented Jul 31, 2023 at 15:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.