根据离散信号的自方差系数的标准估计,其可表示为:
…其中x(i)是给定信号(即特定的1D向量),k表示x(i)信号通过k样本的移位,N是x(i)信号的长度,并且:
……这是简单的平均值,我们可以写:'''
Calculate the autocovarriance coefficient.
'''
import numpy as np
Xi = np.array([1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5])
N = np.size(Xi)
k = 5
Xs = np.average(Xi)
def autocovariance(Xi, N, k, Xs):
autoCov = 0
for i in np.arange(0, N-k):
autoCov += ((Xi[i+k])-Xs)*(Xi[i]-Xs)
return (1/(N-1))*autoCov
print("Autocovariance:", autocovariance(Xi, N, k, Xs))
如果要规范化自相关系数,它将成为自相关系数,表示为:
…只需在上面的代码中添加两行:def autocorrelation()