AnyMath 文档

xcov的

互协方差。

库::`工程师`

语法

函数调用

* [参数:c]=xcov(<参数:x>>,<参数:y>>) -回报 互协方差。 相互协方差测量向量之间的相似性 [参数:x] 和向量的移位(延迟)副本 [参数:y] 作为延迟的函数。 如果 [参数:x][参数:y] 它们有不同的长度。 该函数将零添加到较短向量的末尾,使其具有与另一个相同的长度。

* [参数:c]=xcov(<参数:x>>) -返回序列 自变量的论点 [参数:x]. 如果 [参数:x] 是矩阵,那么输出参数是 [参数:与] 是一个矩阵,其列包含所有列组合的自变量和互协方差序列 [参数:x].

* [参数:with]=xcov(___,[参数:maxlag]) -设置延迟范围从 [参数:maxlag] 以前 [参数:maxlag] 对于前面的任何语法。

* [参数:with]=xcov(___,[参数:scaleopt]) -还设置互协方差或自变量的归一化参数。 任何参数值 [参数:scaleopt],除 "没有" (默认情况下),要求输入参数 [参数:x][参数:y] 他们有相同的长度。

* <参数:c>>,<参数:滞后>=xcov(___) -还返回计算协方差的延迟值。

争论

输入参数

# *x* — 输入数组

+ 向量资料 | 矩阵 | 多维数组

Details

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

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *y* — 输入数组

+ 向量资料

Details

指定为向量的输入数组。

数据类型

漂浮物32, 漂浮64</无翻译> 支持复数::是

# *maxlag* — 最大延迟

+ 一个整数标量

Details

最大延迟,设置为整数标量。 如果论点是 马克斯拉格 集合,互协方差的返回序列范围从 -maxlag 以前 马克斯拉格. 如果论点是 马克斯拉格 还没准备好。 默认情况下,滞后范围为 ,在哪里 -输入参数长度中较大的一个 [参数:x][参数:y].

数据类型

漂浮物32, 漂浮64</无翻译>

# *scaleopt* — 规范化参数

+ "没有" (默认情况下)| "偏见" | "无偏见" | "规范化" | "科夫"

Details

使用以下方法之一的规范化参数集:

* "没有" -原始的,未压缩的相互协方差。 意义 "没有" -唯一有效的选项是如果输入参数是 [参数:x][参数:y] 它们有不同的长度。

* "偏见" -相互协方差的偏置估计。

* "无偏见" -互协方差的无偏估计。

* "规范化""科夫" -标准化序列,使零延迟处的自变量相等 1.

输出参数

# *c* — 相互协方差或自变量

+ 向量资料 | 矩阵

Details

互协方差或自变量,作为向量或矩阵返回。

如果 [参数:x] -矩阵尺寸 然后 xcov(x) 返回大小矩阵 具有自变量和互列协方差 [参数:x]. 如果论点是 [参数:maxlag] 如果设置,则输出参数为 c 它有一个尺寸 .

例如,如果 S 它有三列: ,则运算结果 c=xcov(S) 它将组织如下:

# *滞后* — 延迟索引

+ 向量资料

Details

延迟索引作为向量返回。

例子:

两个随机向量的相互协方差

Details

创建随机数的向量 x 和向量 y,等于向量 x,向右移动了3个元素。 计算并绘制估计的相互协方差 xy. 在延迟值观察到最大的尖峰,当元素 xy 他们完全匹配(−3).

import EngeeDSP.Functions: xcov

using Random

Random.seed!(123)

x = rand(20, 1)
y = circshift(x, 3)

c, lags = xcov(x, y)

plot(vec(lags), c,
     seriestype = :stem, marker = :circle,
     legend = false)

xcov 1

随机向量的自变量

Details

创建大小的随机向量 201 然后我们计算并绘制估计的自变量。 当矢量完全等于自身时,在零延迟处观察到最大尖峰。

import EngeeDSP.Functions: xcov

使用随机

随机的。种子!(123)

x=兰德(20,1)

c,滞后=xcov(x)

情节(vec(滞后),c,
     seriestype=:茎,标记=:圆,
     传说=错误)

xcov 2

噪声的归一化自变量

Details

让我们计算并绘制白高斯噪声的估计自变量 . 归一化序列,使其等于零延迟的一个。

import EngeeDSP.Functions: xcov

using Random

Random.seed!(123)

x = rand(1000, 1)

maxlag = 10

c, lags = xcov(x, maxlag, "normalized")

plot(vec(lags), c,
     seriestype = :stem, marker = :circle,
     legend = false)

xcov 3

两个移位信号的偏移互协方差

Details

让我们创建一个由两个相对于彼此移动的信号组成的信号 50 数数。

using Random

Random.seed!(123)

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

让我们计算并绘制自变量和互协方差序列的偏估计值。 输出矩阵 c 它被组织为四个列向量,使得 . 元素 它有最大值在点 −50+100,而 -点的最大值 +50−100 作为循环移位的结果。

import EngeeDSP.Functions: xcov

c, lags = xcov(x, "biased")

plot(vec(lags), c,
     label = ["c_s1s1" "c_s1s2" "c_s2s1" "c_s2s2"])

xcov 4

此外

相互协方差和自变量

Details

功能 *xcov* 计算其输入数据的平均值,减去此平均值,然后调用函数 *xcorr*.

函数的结果 *xcov* 它可以被解释为两个随机序列之间的协方差的估计或两个确定性信号之间的确定性协方差。

两个共同平稳随机过程的相互协方差的真序列 它是中心序列的互相关。,

哪里 -两个静止随机过程的平均值,星号表示复共轭, -数学期望运算符。 功能 *xcov* 它只能评估序列,因为在实践中只有无限长度的随机过程的单个实现的有限段是可用的。

默认函数为 *xcov* 计算未归一化的原始协方差:

输出向量 c 它具有由公式指定的元素

为了获得正确的估计,协方差函数需要归一化。 您可以使用输入参数控制协方差的规范化 [参数:scaleopt].

文学作品

  1. Orfanidis,Sophocles J. _Optimum Signal Processing:An Introduction。_第2版。 繝シ繝ォ縺ァ縺呐

  2. 拉森,简。 _相关函数和功率谱。_2009年11月。 https://www2.imm.dtu.dk/pubdb/edoc/imm4932.pdf