以下是每行约266336条记录。 我需要的是一个可以找到这些峰值的代码。
以下是我希望填写的一些条件:
依此类推,直到数组结束。请记住,我的数据具有正数负数,因此必须有其他论点,如果我在负数上寻找峰值,则下一个数字必须高于之前的数字。
到目前为止,这是我的代码,很好的一部分:
Bx = data.data[0,]
By = data.data[1,]
N = len(Bx)
M = len(By)
time = np.linspace(0,300,N)
time2 = np.linspace(0,300,M)
BxTime = time[100:-100]
ByTime = time2[100:-100]
Bxfft = (Bx[100:-100])
Byfft = (By[100:-100])
Sampling = float(266336) / 300
HalfSampling = float(Sampling) / 2
Wn = float(1) / HalfSampling
b, a = signal.butter(3, Wn, 'high')
BxHPF = signal.filtfilt(b, a, Bxfft)
ByHPF = signal.filtfilt(b, a, Byfft)
# Bandstop Filter
def butter_bandstop_filter(data, lowcut, highcut, fs, order):
nyq = 0.5 * fs
low = lowcut / nyq
high = highcut / nyq
i, u = butter(order, [low, high], btype='bandstop')
y = lfilter(i, u, data)
return y
ax2 = plt.subplot(212)
plt.plot(BxTime, butter_bandstop_filter(BxHPF, 49.9, 50.1, float(266336)/300, 3), label='Channel 1', color='r',
linewidth=0.5, linestyle="-")
plt.plot(ByTime, butter_bandstop_filter(ByHPF, 49.9, 50.1, float(266336)/300, 3), label='Channel 1', color='b',
linewidth=0.5, linestyle="-")
这是我试图满足我的条件,但它不起作用。
for search in butter_bandstop_filter(BxHPF, 49.9, 50.1, float(266336)/300, 3):
if search >= search and search < search:
print search