Inverse of xcorr?

8 visualizaciones (últimos 30 días)
Mariano Arnaiz
Mariano Arnaiz el 9 de Jul. de 2021
Respondida: vidyesh el 12 de Abr. de 2024
Hi all.
I have a signal that is a cross correlation between to signals:
X=xcorr(A,B)
But in my case I get X and I can compute B... any idea how to make the inverse of the cross correlation so that I get:
A=ixcorr(X,B)
  1 comentario
Jonas
Jonas el 9 de Jul. de 2021
since convolution and cross correlation are very similar, you may have a look into deconvolution, also something in this thread

Iniciar sesión para comentar.

Respuestas (1)

vidyesh
vidyesh el 12 de Abr. de 2024
Hi Mariano,
Inverse of the cross-correlation can be calculated using the deconv function (as suggested by Jonas). Note that for two real signals 'x' and 'y', cross-correlation of 'x' and 'y' is equal to convolution of 'x' and 'y[-n]' (time reversal of y).
Therefore you can calculate 'x' using the below code.
x = randi([1,10],1,5);
y = randi([1,10],1,6);
R = xcorr(x,y);
x2 = (deconv(R,fliplr(y)));
disp(x)
8 4 10 9 6
disp(x2);
8.0000 4.0000 10.0000 9.0000 6.0000 0.0000
Hope this helps.

Community Treasure Hunt

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

Start Hunting!

Translated by