Cross Correlation to determine Delay

Hi,
I have 2 signals of equal length. The signals correlate but with a time delay. I thought of doing a cross-correlation between both signals to determine the lag at which both signals have the maximum correlation. I've written the following line of code to do that.
[c,lags]=xcorr(signal1,signal2,20);
Plotting both signals and their cross-correlation returns this.
I was expecting to see a peak at approx. positive or negative 10 because that's when both signals drop significantly. I can't seem to figure out why that isn't the case. Is it because both signals have the same length?
Any help would be very much appreciated!

3 comentarios

Tim
Tim el 2 de Jun. de 2023
Both of the signals have a large bias; your cross correlation values are going to predominantly be affected by this bias, not signal variation. Try making the signals zero-mean before cross-correlating.
Samuel
Samuel el 2 de Jun. de 2023
Can I achieve that by subtracting the mean from my signals?
Tim
Tim el 2 de Jun. de 2023
yes

Iniciar sesión para comentar.

Respuestas (0)

Productos

Versión

R2021b

Preguntada:

el 2 de Jun. de 2023

Comentada:

Tim
el 2 de Jun. de 2023

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by