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\)
, 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:
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:
The method above is called generalized cross-correlation phase transform.