I have pairs of 1d digitised waveform signals which are almost identical - except there are sections which are the same in both but one is delayed slightly. I need to find sections and the delay with the corresponding section in the other channel.

I can set a maximum delay BUT I need to measure a delay to less than the sample interval - so some sort of convolution/correlation approach rather than a simple feature id.

Any suggestions where to start?

  • 1
    $\begingroup$ Hey Martin can you post some plots for us to see? $\endgroup$
    – Spacey
    Commented Feb 25, 2012 at 7:14
  • $\begingroup$ @Mohammad - now I have some sample data it's worse than I thought - it's so noisy and with large scale DC variation I will need to do a lot of scaling before they are even viewable. $\endgroup$ Commented Feb 27, 2012 at 17:54

1 Answer 1


This may be a good candidate for a two step approach:

Step 1 would be a pretty coarse running cross correlation with a threshold detector to identify what parts in the signals are matching.

Step 2 would than determined the actual delay. There are various ways to get sub sample resolution:

  1. Upsample to desired resolution and then cross correlate
  2. Short term fourier transform and match a linear phase difference with a weighted least squares approach
  3. Delayed lock loop with a fractional delay filter
  4. Match the the two signals in with an adaptive filter. Then calculate the fourier transform of the filter impulse response and calculate the delay through a linear phase match
  • $\begingroup$ Thanks - it's actually harder than I implied, the main signal is identical (except for noise) in each channel - it's only parts that are delayed. Although your approach is still a good one $\endgroup$ Commented Feb 25, 2012 at 2:27

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.