Inverse of xcorr?

9 ビュー (過去 30 日間)
Mariano Arnaiz
Mariano Arnaiz 2021 年 7 月 9 日
回答済み: vidyesh 2024 年 4 月 12 日
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 件のコメント
Jonas
Jonas 2021 年 7 月 9 日
since convolution and cross correlation are very similar, you may have a look into deconvolution, also something in this thread

サインインしてコメントする。

回答 (1 件)

vidyesh
vidyesh 2024 年 4 月 12 日
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.

カテゴリ

Help Center および File ExchangeCorrelation and Convolution についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by