# How to estimate ALL time-delays across MULTIPLE signals?

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:

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!

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.

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

• 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.
– Peter K.
Mar 22, 2018 at 15:32
• 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. Mar 22, 2018 at 19:34
• 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 Mar 23, 2018 at 9:05
• 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). Mar 23, 2018 at 9:15
• 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. Mar 25, 2018 at 20:09

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.

• 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? Mar 25, 2018 at 20:31
• 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.
– user28715
Mar 25, 2018 at 20:58