scipy.signal.

correlation_lags#

scipy.signal.correlation_lags(in1_len, in2_len, mode='full')[source]#

计算一维互相关函数的滞后/位移索引数组。

参数:
in1_lenint

第一个输入的大小。

in2_lenint

第二个输入的大小。

modestr {‘full’, ‘valid’, ‘same’}, 可选

指示输出大小的字符串。有关更多信息,请参阅文档 correlate

返回:
lagsarray

返回一个包含互相关滞后/位移索引的数组。可以使用 np.argmax 来索引这些索引,以返回滞后/位移。

参见

correlate

计算 N 维互相关。

注释

连续函数 \(f\)\(g\) 的互相关定义为

\[\left ( f\star g \right )\left ( \tau \right ) \triangleq \int_{t_0}^{t_0 +T} \overline{f\left ( t \right )}g\left ( t+\tau \right )dt\]

其中 \(\tau\) 定义为位移,也称为滞后。

离散函数 \(f\)\(g\) 的互相关定义为

\[\left ( f\star g \right )\left [ n \right ] \triangleq \sum_{-\infty}^{\infty} \overline{f\left [ m \right ]}g\left [ m+n \right ]\]

其中 \(n\) 是滞后。

示例

将信号与其时间延迟自身进行互相关。

>>> import numpy as np
>>> from scipy import signal
>>> rng = np.random.default_rng()
>>> x = rng.standard_normal(1000)
>>> y = np.concatenate([rng.standard_normal(100), x])
>>> correlation = signal.correlate(x, y, mode="full")
>>> lags = signal.correlation_lags(x.size, y.size, mode="full")
>>> lag = lags[np.argmax(correlation)]