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)
が、私はタイムラグが変わることを期待するが、それはしていません。そのため、私は次のコードで2つの単純な四角の信号で最初にそれを試してみてください!私はなぜy1とy2の間のタイムラグが1とy3の間の遅れに等しいのか理解できないのですか?
何が起こっているのか理解してもらえますか? おかげで:)
さて、私はサンプル信号を変更しました。今はゼロの値はありません。それでも問題は解決されません。なぜ私はy1とy2の間のタイムラグがy1とy3の間の遅れに等しいのですか? :( – user8224662
ここにお問い合わせくださいhttps://stats.stackexchange.com/ – MishaVacic
私は既にそこに尋ねましたが、投稿はそこに話題としてホールドされます! https://stats.stackexchange.com/質問/ 293969 /信号間タイムラグ - numpy-correlateを使用する – user8224662