Skip to content

Generalized Cross-Correlation Phase Transform

Context

Given:

  • \(x(t) \in \mathbb{R}\): A signal source
  • \(y_1(t) = \alpha_1 \cdot x(t - t_1) + n_1(t) \in \mathbb{R}\): A sensor capturing the signal \(x(t)\), with attenuation factor \(0 < \alpha_1 \leq 1\), a time delay \(t_1 \geq 0\), and a noise \(n_1(t)\)
  • \(y_2(t) = \alpha_2 \cdot x(t - t_2) + n_2(t) \in \mathbb{R}\): Another sensor capturing the signal \(x(t)\), with attenuation factor \(0 < \alpha_2 \leq 1\), a time delay \(t_2 \geq 0\), and a noise \(n_2(t)\)

Assume that the noise signals \(n_1(t)\) and \(n_2(t)\) are uncorrelated with the source signal \(x(t)\) and are uncorrelated with each other, we want to find the time difference \(\ell\)

\[ \ell = t_1 - t_2 \]

, which is the time difference of \(x(t)\) arriving the two sensors.

One intuitive method is to compute the cross-correlation between \(y_1(t)\) and \(y_2(t)\), and locate the peak:

\[ \begin{align} R_{y_1, y_2}(\tau) &= E\left\{ y_1(t) y_2(t + \tau) \right\} \\ \hat{\ell} &= \underset{\tau}{\operatorname{arg\,max}}\,{R(\tau)} \end{align} \]

But depending on the power spectral density of \(x(t)\), the cross-correlation \(R_{y_1,y_2}(\tau)\) may not show a sharp peak, reducing our confidence on the accuracy of \(\hat{\ell}\).

Problem

How to improve the shape of the cross-correlation so that it can show a sharper peak?

Solution

Apply a weighting function to whiten the signal. This can be done by computing the followings:

\[ \begin{align} S_{y_1,y_2}(f) &= \int_{-\infty}^{\infty}{R_{y_1,y_2}(\tau) e^{-j 2 \pi f \tau} d \tau} \\ \tilde{R}_{y_1,y_2}(\tau) &= \int_{-\infty}^{\infty} \frac{S_{y_1,y_2}(f)}{|S_{y_1,y_2}(f)|} e^{j 2 \pi f \tau} df \\ \tilde{\ell} &= \underset{\tau}{\operatorname{arg\,max}}\,{\tilde{R}(\tau)} \end{align} \]

The method above is called generalized cross-correlation phase transform.

Reference