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