Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if normalize:
- a = (a - mean(a)) / (std(a) * len(a))
- v = (v - mean(v)) / std(v)
- def cross_correlation(a1, a2):
- lags = range(-len(a1)+1, len(a2))
- cs = []
- for lag in lags:
- idx_lower_a1 = max(lag, 0)
- idx_lower_a2 = max(-lag, 0)
- idx_upper_a1 = min(len(a1), len(a1)+lag)
- idx_upper_a2 = min(len(a2), len(a2)-lag)
- b1 = a1[idx_lower_a1:idx_upper_a1]
- b2 = a2[idx_lower_a2:idx_upper_a2]
- c = np.correlate(b1, b2)[0]
- c = c / np.sqrt((b1**2).sum() * (b2**2).sum())
- cs.append(c)
- return cs
Add Comment
Please, Sign In to add comment