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 Feb 25 '12 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$ – Martin Beckett Feb 27 '12 at 17:54

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$ – Martin Beckett Feb 25 '12 at 2:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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