添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

xcov

互协方差

全页折叠

说明

示例

c = xcov( x , y ) 返回两个离散时间序列的 互协方差 。互协方差测量向量 x 和移位(滞后)副本向量 y 的之间的相似性,形式为滞后的函数。如果 x y 的长度不同,函数会在较短向量的末尾添加零,使其长度与另一个向量相同。

示例

c = xcov( x ) 返回 x 自协方差 序列。如果 x 是矩阵,则 c 是矩阵,其列包含 x 所有列组合的自协方差和互协方差序列。

示例

c = xcov( ___ , maxlag ) 将上述任一语法中的滞后范围设置为从 -maxlag maxlag

示例

c = xcov( ___ , scaleopt ) 还为互协方差或自协方差指定归一化选项。除 'none' (默认值)以外的任何选项都要求输入 x y 具有相同的长度。

示例

[ c , lags ] = xcov( ___ ) 还返回用于计算协方差的滞后。

示例

全部折叠

创建一个由随机数组成的向量 x 和一个向量 y ,后者是 x 右移 3 个元素的结果。计算并绘制 x y 的估计互协方差。在 x y 的元素完全匹配的滞后值 (-3) 处,出现最大峰值。

rng default
x = rand(20,1);
y = circshift(x,3);
[c,lags] = xcov(x,y);
stem(lags,c)

创建一个 20×1 随机向量,然后计算并绘制估计的自协方差。在零滞后时(此时向量与自身完全相等),出现最大峰值。

rng default
x = rand(20,1);
[c,lags] = xcov(x);
stem(lags,c)

计算并绘制 - 1 0 m 1 0 时高斯白噪声的估计的自协方差 c ( m ) 。将序列归一化,使其在零滞后时为单位 1。

rng default
x = randn(1000,1);
maxlag = 10;
[c,lags] = xcov(x,maxlag,'normalized');
stem(lags,c)

创建一个由两个信号组成的信号,这两个信号彼此循环移位 50 个样本。

rng default
shft = 50;
s1 = rand(150,1);
s2 = circshift(s1,[shft 0]);
x = [s1 s2];

计算并绘制自协方差和互协方差序列的有偏估计。输出矩阵 c 的形式为四个列向量,满足 c = ( c s 1 s 1 c s 1 s 2 c s 2 s 1 c s 2 s 2 ) 。由于循环移位, c s 1 s 2 在 -50 和 +100 处有最大值, c s 2 s 1 在 +50 和 -100 处有最大值。

[c,lags] = xcov(x,'biased');
plot(lags,c)
legend('c_{s_1s_1}','c_{s_1s_2}','c_{s_2s_1}','c_{s_2s_2}')

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。如果 x 是多维数组,则 xcov 对所有维度按列操作,并将每个自协方差和互协方差作为矩阵的列返回。

数据类型: single | double
复数支持:

输入数组,指定为向量。

数据类型: single | double
复数支持:

最大滞后,指定为整数标量。如果您指定 maxlag ,则返回的互协方差序列范围是从 -maxlag maxlag 。默认情况下,滞后范围等于 2N–1,其中 N 是输入 x y 中较长一方的长度。

数据类型: single | double

归一化选项,指定为下列各项之一。

  • 'none' - 原始、未缩放的互协方差。当输入 x y 长度不同时, 'none' 是唯一有效的选项。

  • 'biased' - 互协方差的有偏估计。

  • 'unbiased' - 互协方差的无偏估计。

  • 'normalized' 'coeff' - 对序列进行归一化,使零滞后时的自协方差等于 1。

输出参量

全部折叠

互协方差或自协方差,以向量或矩阵形式返回。

如果 x M × N 矩阵,则 xcov(x) 返回 (2M – 1) × N 2 矩阵,其中包含 x 各列的自协方差和互协方差。如果您指定最大滞后 maxlag ,则输出 c 的大小为 (2 × maxlag + 1) × N 2

例如,如果 S 有三列, S = ( x 1 x 2 x 3 ) ,则 C = xcov(S) 的结果的形式为

c = ( c x 1 x 1 c x 1 x 2 c x 1 x 3 c x 2 x 1 c x 2 x 2 c x 2 x 3 c x 3 x 1 c x 3 x 2 c x 3 x 3 ) .

滞后索引,以向量形式返回。

详细信息

全部折叠

互协方差和自协方差

xcov 计算其输入的均值,减去均值,然后调用 xcorr

xcov 的结果可以解释为两个随机序列之间的协方差估计,也可以解释为两个确定性信号之间的确定性协方差。

两个联合平稳随机过程(x n 和 y n 的真正互协方差序列是去除均值后的序列的互相关,

ϕ x y ( m ) = E { ( x n + m μ x ) ( y n μ y ) ) } ,

其中 μ x 和 μ y 是两个平稳随机过程的均值,星号表示复共轭,E 是期望值运算符。 xcov 只能估计序列,因为实际上,在无限长随机过程的一个实现中只有有限的部分可用。

默认情况下, xcov 计算未经归一化的原始协方差:

c x y ( m ) = { n = 0 N m 1 ( x n + m 1 N i = 0 N 1 x i ) ( y n 1 N i = 0 N 1 y i ) , m 0 , c y x ( m ) , m < 0.

输出向量 c 包含的元素由下式给出:

c(m) = c x y ( m N ) , m = 1 , , 2 N 1.

协方差函数需要归一化来正确估计函数。您可以通过使用输入参量 scaleopt 来控制相关性的归一化。

参考

[1] Orfanidis, Sophocles J. Optimum Signal Processing: An Introduction. 2nd Edition. New York: McGraw-Hill, 1996.

[2] Larsen, Jan. “Correlation Functions and Power Spectra.” November, 2009. https://www2.imm.dtu.dk/pubdb/edoc/imm4932.pdf

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。