# xcov
互协方差
函数库: TyStatistics
# 语法
# 说明
c, = xcov(x,y)返回两个离散时间序列的互协方差。互协方差测量向量 x 和移位(滞后)副本向量 y 的之间的相似性,形式为滞后的函数。如果 x 和 y 的长度不同,函数会在较短向量的末尾添加零,使其长度与另一个向量相同。示例
c, = xcov(x) 返回 x 的自协方差序列。如果 x 是矩阵,则 c 是矩阵,其列包含 x 所有列组合的自协方差和互协方差序列。示例
c, = xcov(___;maxlag=nothing) 将上述任一语法中的滞后范围限制为从 -maxlag 到 maxlag。示例
c, = xcov(___;scale=nothing) 还为互协方差或自协方差指定归一化选项。除 nothing(默认值)以外的任何选项都要求 x 和 y 具有相同的长度。示例
c,lags = xcov(___) 还返回用于计算协方差的滞后。示例
# 示例
两个随机向量的互协方差
创建一个由随机数组成的向量 x 和一个向量 y,后者是 x 右移 3 个元素的结果。计算并绘制 x 和 y 的估计互协方差。在 x 和 y 的元素完全匹配的滞后值 (-3) 处,出现最大峰值。
using TyPlot
using TyMath
using TyStatistics
rng=mt19937ar(5489);
x = rand(rng,20,1);
y = circshift(x,3);
c,lags = xcov(x,y);
stem(lags,c)
随机向量的自协方差
创建一个 20×1 随机向量,然后计算并绘制估计的自协方差。在零滞后时(此时向量与自身完全相等),出现最大峰值。
using TyPlot
using TyMath
using TyStatistics
rng=mt19937ar(5489);
x = rand(rng,20,1);
c,lags = xcov(x);
stem(lags,c)
噪声的归一化自协方差
计算并绘制 −10≤m≤10 时高斯白噪声的估计的自协方差 c(m)。将序列归一化,使其在零滞后时为单位 1。
using TyPlot
using TyMath
using TyStatistics
rng=mt19937ar(5489);
x = randn(rng,1000,1);
maxlag = 10;
c,lags = xcov(x,maxlag=maxlag,scale="normalized");
stem(lags,c)
两个移位信号的有偏互协方差
创建一个由两个信号组成的信号,这两个信号彼此循环移位 50 个样本。
using TyPlot
using TyMath
using TyStatistics
rng=mt19937ar(5489);
shft = 50;
s1 = rand(rng,150,1);
s2 = circshift(s1,[shft 0]);
x = [s1 s2];
计算并绘制自协方差和互协方差序列的有偏估计。输出矩阵 c 的形式为四个列向量,满足
c, lags = xcov(x; scale="biased")
plot(lags, c)
legend([raw"$cₛ₁ₛ₁$", raw"$cₛ₁ₛ₂$", raw"$cₛ₂ₛ₁$", raw"$cₛ₂ₛ₂$"])
# 输入参数
x — 输入数组
向量 | 矩阵 | 多维数组
输入数组,指定为向量、矩阵或多维数组。如果 x 是多维数组,则 xcov 对所有维度按列操作,并将每个自协方差和互协方差作为矩阵的列返回。
数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128 |Bool
复数支持: 是
y — 输入数组
向量 | 矩阵 | 多维数组
输入数组,指定为向量、矩阵或多维数组。
数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128 |Bool
复数支持: 是
maxlag — 最大滞后
整数标量
最大滞后,指定为整数标量。如果您指定 maxlag,则返回的互协方差序列范围是从 -maxlag 到 maxlag。默认情况下,滞后范围等于 2N–1,其中 N 是输入 x 和 y 中较长一方的长度。
数据类型: Float32 |Float64 |Int8 |Int16 |Int32 |Int64 |Int128 |UInt8 |UInt16 |UInt32 |UInt64 |UInt128 |Bool
scale — 归一化选项
nothing (默认) | "biased" | "unbiased" | "normalized" | "coeff"
归一化选项,指定为下列各项之一。
- nothing - 原始、未缩放的互协方差。当 x 和 y 长度不同时,'none' 是唯一有效的选项。
- "biased" - 互协方差的有偏估计:
- "unbiased" - 互协方差的无偏估计:
- "normalized" 或 "coeff" - 对序列进行归一化,使零滞后时的互协方差等于 1:
# 输出参数
c — 互协方差或自协方差
向量 | 矩阵
互协方差或自协方差,以向量或矩阵形式返回。
如果 x 是 M × N 矩阵,则 先从 xcov(x) 返回
例如,如果 S 有三列,
lags — 滞后索引
向量
滞后索引,以向量形式返回。
# 详细信息
互协方差和自协方差
xcov 计算其输入的均值,减去均值,然后调用 xcorr。
xcov 的结果可以解释为两个随机序列之间的协方差估计,也可以解释为两个确定性信号之间的确定性协方差。
两个联合平稳随机过程
其中
默认情况下,xcov 计算未经归一化的原始协方差:
输出向量 c 包含的元素由下式给出:
协方差函数需要归一化来正确估计函数。您可以通过使用输入参数 scale 来控制相关性的归一化。