def windowCharacter(x):
tmp = np.zeros((x.shape[0]))
n=0
for row in x.iterrows():
tmp[n] = signalMag(row[1]['X'],row[1]['Y'],row[1]['Z'])
n=n+1
# if np.std(tmp) > 5:
# return None
# else:
p_25 = np.percentile(tmp,25)
p_75 = np.percentile(tmp,75)
tmp_25 = [each for each in tmp if each < p_25]
tmp_75 = [each for each in tmp if each < p_75]
data_dm = scale(tmp,with_mean=True, with_std=False) # demean data
(freq_1,power_1) = butterFilter(data_dm,lowcut_1,highcut_1)
idx_1 = np.argmax(power_1)
freq_1_sec = np.delete(freq_1,idx_1)
power_1_sec = np.delete(power_1,idx_1)
idx_1_sec = np.argmax(power_1_sec)
(freq_2,power_2) = butterFilter(data_dm,lowcut_2,highcut_2)
idx_2 = np.argmax(power_2)
return np.mean(tmp), np.std(tmp), np.median(tmp), np.linalg.norm(tmp_25), np.linalg.norm(tmp_75),np.sum(power_1), freq_1[idx_1],power_1[idx_1], freq_1_sec[idx_1_sec], power_1_sec[idx_1_sec], freq_2[idx_2],power_2[idx_2],freq_1[idx_1]/np.sum(power_1)
评论列表
文章目录