0
我想計算Python中使用交叉關聯函數的一些信號之間的時滯。從numpy文檔numpy.correlate(),這個函數究竟做了什麼並不是很清楚。因此,我有兩個簡單的方波信號,首先嚐試用下面的代碼:使用numpy.correlate()的信號之間的時間延遲
import matplotlib.pyplot as plt
import numpy as np
frequency=100
x = np.linspace(1,2000,frequency)
time = np.arange(x.size)
time = time/(1.0*frequency) #Time in seconds
def func1(x):
x = np.where((x < 500) | (x > 531), 1, 2)
return x
y1 = func1(x)
def func2(x):
x = np.where((x < 600) | (x > 631), 1, 2)
return x
y2 = func2(x)
def func3(x):
x = np.where((x < 700) | (x > 731), 1, 2)
return x
y3 = func3(x)
xcorr12 = np.correlate(y1,y2, "full")
xcorr13 = np.correlate(y1,y3, "full")
lag12 = np.argmax(xcorr12)
lag13 = np.argmax(xcorr13)
print ("lag12:",lag12/frequency)
print ("lag13:",lag13/frequency)
當我改變信號的位置,我預計的時間間隔改變,但它不!我不明白爲什麼我得到y1和y2之間的時間滯後等於1和y3之間的滯後!
你能幫我理解發生了什麼嗎? 謝謝:)
好的,我改變了示例信號。現在沒有零值。仍然,問題沒有解決。爲什麼我得到y1和y2之間的時間滯後等於y1和y3之間的滯後? :( – user8224662
可能是你應該問這裏https://stats.stackexchange.com/ – MishaVacic
我已經問過那裏,但該職位被擱置爲脫題! https://stats.stackexchange.com/問題/ 293969 /時間滯後之間-信號-使用-numpy的-相關成分 – user8224662