I would say there are essentially two main groups or categories of techniques that are commonly used to do this ...

1) Time domain

e.g. 

a) normalized or 'regular' cross-correlation

b) sum of squared differences

c) sum of absolute differences

d) etc

These (or similar) methods would be implemented/realized in a circuit by applying (integer) delays/lags to one of the channels, before applying one of the listed similarity/dissimilarity operations. A filter-bank results, with each sub-filter in the bank evaluating a different lag. Interpolation might then be used to find the non-integer maximum/minimum in the cross-correlation vector produced. A pre-filter might be applied beforehand to remove noise.   

Time domain techniques are probably more efficient if it is known in advance that only a few integer delays need to be evaluated - as might be the case when two closely-spaced omni-directional sensors are used to do direction finding of impulsive or broad-band signals.

2) Frequency domain

These methods would be implemented/realized in a circuit using a bank of frequency analyzers to each channel. From here, do any whitening required, form the cross-spectral density and evaluate the inverse DFT at the lags/delays of interest, or analyse the phase response.

Frequency-domain methods are probably better when processing narrow-band signals.   

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I reckon beamforming (no so good for two channels) would fall under one of the above categories, depending on how it is implemented (i.e. delay-and-sum or via an FFT).

Can you think of any techniques that do not fit under one of the two main classes enumerated above? 

Thanks in advance for your help.

More Hugh Lachlan Kennedy's questions See All
Similar questions and discussions