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)]