0
$\begingroup$

Imagine there are 100 recordings of the same signal or pattern, but those recordings are not properly aligned with each other in time. In other words, each sample has some unknown time delay in relation to each of its sister samples. The data might look something like this:

several recordings of same pattern

The question is: What's the best method for computing the relative time-delays of those signals so that I might align them?

If there were only two signals, computing time-delay would be simple. The best method I'm aware of is to maximize the cross-correlation between the two samples across different delay values.

But what about computing a large set of delays? I'm sure there has to be a robust method for this general task... I just don't know what it's called. Thanks!

$\endgroup$
2
$\begingroup$

There are papers describing a method called multichannel cross-correlation, that recursively estimates time delay of each signal.

However, If I have not missunderstood you problem you can also select one of your signal to be your reference signal and then repeatedly calculate cross-correlation against that compared to the other signals. that way you can align every signal to your reference point.

EDIT: based on your latest comments:

So far I've only had a chance to look at the original paper linked (microphones in a sound room). It's very interesting, however it seems to require that you know something about the geometry of the microphones. I had been hoping to find a generalized, system-agnostic method to do multi-channel cross-correlation. Something with which you can just input a set of arbitrary signals or patterns and it outputs the "best fit" delay vector.

What it appears to me that you need then is blind system identification methods which I can link you some examples. Common methods for this task utilizes cross correlation error minimization but there are some limitations based on your model selection.

Under-Modelled Blind system identification - cross correlation based

Blind system Identification for acoustic source localization - Eigenvalue decomposition method

Blind system identification using sparse leaning method - LMS adaptive algorithm based on cross correlation formulation

$\endgroup$
  • 1
    $\begingroup$ Yes, that seems to be the most sensible approach: choose one as the reference (zero delay example) and then compute the "delays" (or advances) of all the others with respect to that. $\endgroup$ – Peter K. Mar 22 '18 at 15:32
  • $\begingroup$ Thank you for the link! I will investigate that. Your suggestion to pick a "reference signal" and cross-correlate to that was actually my first inclination. However it doesn't really seem statistically sound to me. Maybe I'm overthinking it, but isn't there a TON of information lost in that approach? Sure, you're correlating all signals to the same reference signal, so at the very least we have a good guess. But the correlations between the other pairs would be ignored. I guess I'm looking for a method to find delays across all channels that maximizes the overall correlation. $\endgroup$ – R. Taylor Mar 22 '18 at 19:34
  • $\begingroup$ What statistical fluctuations do you expect? Do you have very noisy signals or low sampling rate? if there is high SNR and your sampling frequency is sufficient, then your estimated delays will all be relative to your selected reference signal and thus you indirectly get the delay between every signal as well. If however, there are problems such as low SNR or low sampling rate making it harder to pinpoint delay, then you can indeed consider looking at delay between more signals as a whole and try to average out statistical fluctuations $\endgroup$ – David Bondesson Mar 23 '18 at 9:05
  • $\begingroup$ in summary you need to consider how your measurement system is set up and what type of errors can occur. The paper I linked above deals with several microphones set up in a room which can suffer from signals being amalgamations of several sources. Looking instead towards seismic measurements such as the following link (wiki.seg.org/wiki/Processing_of_seismic_data) presents methods for measuring wave progression velocity (which is calculated from time delay with known relative positions of all recievers). $\endgroup$ – David Bondesson Mar 23 '18 at 9:15
  • $\begingroup$ So far I've only had a chance to look at the original paper linked (microphones in a sound room). It's very interesting, however it seems to require that you know something about the geometry of the microphones. I had been hoping to find a generalized, system-agnostic method to do multi-channel cross-correlation. Something with which you can just input a set of arbitrary signals or patterns and it outputs the "best fit" delay vector. $\endgroup$ – R. Taylor Mar 25 '18 at 20:09
0
$\begingroup$

There's something called blind beamforming but it isn't really applicable to your problem.

The idea about using one example as a reference and calculating all delays relative to it is a reasonable approach.

If you want to expand on that idea and you understand fractional sample shift, you can build an iterative "average" reference and then re estimate each delay relative to the "average", iterate the average, and repeat until the delays converge to some small error.

$\endgroup$
  • $\begingroup$ Those are good search terms, thank you. No, I'm not familiar with fractional sample shift, but am willing to learn. What is it generally used for? And do you recommend any links? $\endgroup$ – R. Taylor Mar 25 '18 at 20:31
  • $\begingroup$ ieeexplore.ieee.org/abstract/document/860248 and you can find a non paywall version. The term "fractional time delay filter" returns many references in Google Scholar. $\endgroup$ – Stanley Pawlukiewicz Mar 25 '18 at 20:58

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.