libPEAK.py 1.11 KB
Newer Older
Sugon_ldc's avatar
Sugon_ldc committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
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