from scipy import signal def band_pass(data, interval, sampFreq, order): tech_inter = [] tech_inter.append(2*interval[0]/sampFreq) tech_inter.append(2*interval[1]/sampFreq) b, a, = signal.butter(N=order, Wn=tech_inter, btype='bandpass') ret = signal.filtfilt(b, a, data) return ret def side_pass(data, bar, sampFreq, order, passtype='highpass'): tech_bar = 2*bar/sampFreq b, a, = signal.butter(N=order, Wn=tech_bar, btype=passtype) ret = signal.filtfilt(b, a, data) return ret def find_valleys_peaks(data): peaksleft = [] peaksright = [] valleyleft = [] valleyright = [] for i in range(1, len(data) - 1): if data[i] > data[i - 1] and data[i] >= data[i + 1]: peaksleft.append(i) if data[i] >= data[i - 1] and data[i] > data[i + 1]: peaksright.append(i) if data[i] < data[i - 1] and data[i] <= data[i + 1]: valleyleft.append(i) if data[i] <= data[i - 1] and data[i] < data[i + 1]: valleyright.append(i) return peaksleft, peaksright, valleyleft, valleyright