876*_*674 5 python signals analysis
我从实验中获得了两个数据阵列; x(时间)和y(电压).这些绘制如下.每隔200微秒,信号就是三种状态之一:
我想'数字化'这个信号,所以情况1.,2.和3.,对应于-1,+ 1或0的离散值.
如何通过分析数据数组来做到最好?
我目前的想法:
np.interp(0.5,x,y)
问题:
小智 0
假设您将我们的数据存储在 pandas 数据表中(data包含列x和y),我会首先清理一下您的数据(将其数字化)。
data.loc[data['y'] > 0.3, 'y'] = +1
data.loc[data['y'] < -0.25, 'y'] = -1
data.loc[(data['y'] >= -0.25) & (data['y'] <= 0.3), 'y'] = 0
Run Code Online (Sandbox Code Playgroud)
之后我会通过计算后续元素之间的差异来检查斜率
data_diff = data.set_index('x').diff(periods=1, axis=0)
Run Code Online (Sandbox Code Playgroud)
现在计算一下您的差异并计算
state = 0
pos_peaks = 0
neg_peaks = 0
flats = 0
for row in data_diff.itertuples():
if row[1] > 0 and state == 0:
pos_peaks += 1
state = 1
elif row[1] < 0 and state == 0:
neg_peaks +=1
state = -1
elif row[1] < 0 and state == 1:
flats += 1
state = 0
elif row[1] > 0 and state == -1:
flats += 1
state = 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
869 次 |
| 最近记录: |