Dan*_*aro 10 python numpy correlation cross-correlation
在参考Chelton(1983)后,我一直在努力计算两对向量(x和y)的自由度,这是:
并且我找不到使用np.correlate计算归一化互相关函数的正确方法,我总是得到一个不在-1,1之间的输出.
为了计算两个向量的自由度,有没有简单的方法来对互相关函数进行归一化?
mak*_*kis 10
好问题。没有直接的方法,但是您可以np.correlate像这样使用之前“标准化”输入向量,并且将在[-1,1]范围内返回合理的值:
在这里,我定义了相关性,如信号处理教科书中通常定义的那样。
c'_{ab}[k] = sum_n a[n] conj(b[n+k])
Run Code Online (Sandbox Code Playgroud)
代码:如果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')
Run Code Online (Sandbox Code Playgroud)
参考文献:
https://docs.scipy.org/doc/numpy/reference/generation/numpy.correlate.html
https://zh.wikipedia.org/wiki/交叉关联
MATLAB \xe2\x9e\x9c xcorr(a, b, '标准化');
\nPython 中的 MATLAB 归一化互相关实现。
\nimport numpy as np\na = [1, 2, 3, 4]\nb = [2, 4, 6, 8]\nnorm_a = np.linalg.norm(a)\na = a / norm_a\nnorm_b = np.linalg.norm(b)\nb = b / norm_b\nc = np.correlate(a, b, mode = 'full')\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
7636 次 |
| 最近记录: |