我对xcorr
MATLAB中的函数有疑问。
当前,此函数可以计算矩阵的自相关,但不能计算2个矩阵的互相关:
A=[1,2;3,4];
B=[5,6;7,8];
xcorr(A); %% Possible
xcorr(A,A); %% Not Possible
xcorr(A,B); %% Not Possible
您知道执行此操作的任何解决方法,但不使用for
循环吗?
xcorr
本质上有两种语法。
c = xcorr(x, y)
计算两个标量信号(作为矢量)之间的互相关函数,并且
c = xcorr(x)
如果x
是矢量,则计算信号的自相关函数;x
如果是矩阵,则计算其所有列之间的自相关和互相关函数。如果x
的大小为n
x p
,则c
大小为2*n-1
x p^2
。
当你写
c = xcorr(x, y);
有两个矩阵 x
和y
,我假设你想在所有信号之间的互相关函数x
与所有信号y
。xcorr
不能开箱即用。但是,如果两个矩阵都具有n
行,则可以编写
c = xcorr([x, y]);
以获得inx
或中的 所有信号之间的自相关和互相关函数y
。c
是2*n-1
x的大小(p1+p2)^2
,其中p1
和p2
是两个矩阵中信号(列)的数量。然后,您可以调整形状并截断结果:
c = reshape(c, 2*n-1, p1+p2, p1+p2);
c = c(:, 1 : p1, p1+1 : end);
结果是一个三维矩阵,其中第一维对应于滞后,第二维枚举信号in x
,第三维枚举信号in y
;它的大小是2*n-1*
x p1
x p2
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句