scipy.signal.
correlation_lags#
- scipy.signal.correlation_lags(in1_len, in2_len, mode='full')[源代码][源代码]#
计算一维互相关的时间滞后/位移指数数组。
- 参数:
- in1_len整数
首先输入大小。
- in2_len整数
第二个输入大小。
- 模式str {‘full’, ‘valid’, ‘same’}, 可选
一个表示输出大小的字符串。更多信息请参阅
correlate
文档。
- 返回:
- 延迟数组
返回一个包含互相关滞后/位移索引的数组。索引可以通过互相关的 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)]