2024-06-24 13:23:21 发布
网友
最近几天,我一直在努力计算两对向量(x和y)的自由度,参考了Chelton(1983),即:
degrees of freedom according to Chelton(1983)
我找不到合适的方法用np.correlate计算归一化互相关函数, 我总是得到一个不在-1,1之间的输出。
为了计算两个向量的自由度,有没有简单的方法使互相关函数正规化?
a = np.dot(abs(var1),abs(var2),'full')
b = np.correlate(var1,var2,'full')
c = b/a
这是我的想法:但它将使其正常化0-1
好问题。没有直接的方法,但是您可以在使用np.correlate之前“规范化”输入向量,并在[-1,1]的范围内返回合理的值:
np.correlate
在这里,我定义了信号处理教科书中通常定义的相关性。
c'_{ab}[k] = sum_n a[n] conj(b[n+k])
代码:如果a和b是向量:
a = (a - np.mean(a)) / (np.std(a) * len(a)) b = (b - np.mean(b)) / (np.std(b)) c = np.correlate(a, b, 'full')
参考文献:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.correlate.html
https://en.wikipedia.org/wiki/Cross-correlation
a = np.dot(abs(var1),abs(var2),'full')
b = np.correlate(var1,var2,'full')
c = b/a
这是我的想法:但它将使其正常化0-1
好问题。没有直接的方法,但是您可以在使用
np.correlate
之前“规范化”输入向量,并在[-1,1]的范围内返回合理的值:在这里,我定义了信号处理教科书中通常定义的相关性。
代码:如果a和b是向量:
参考文献:
https://docs.scipy.org/doc/numpy/reference/generated/numpy.correlate.html
https://en.wikipedia.org/wiki/Cross-correlation
相关问题 更多 >
编程相关推荐