我想计算R峰和S峰之间的放大率。
例如,我在这里绘制了R峰和S峰之间点的ECG信号切片
R to S peak
我计算的振幅值为-1.8473999831376395
看这张图表,我认为它看起来是正确的,但我不能肯定。
密码在这里-
def QRS_test(ecg):
R_peaks, S_peack, Q_point=EKG_QRS_detect(ecg, 320, True, True)
if len(R_peaks) >= len(S_peack):
for i in range(0, len(R_peaks)):
try:
scipy_plot(ecg[R_peaks[i]:S_peack[i]]) #Plot the points for which I want to calculate the amplitude value
ecg_slice = ecg[R_peaks[i]:S_peack[i]] #Get signal data between R peak point and S peak point
print(max(ecg_slice)-min(ecg_slice)) #Get the amplitude value
except:
pdb.set_trace()
print(ecg[R_peaks[i]:S_peack[i]])
print(ecg[R_peaks[i],S_peack[i]])
pass
我对上述逻辑有疑问,我不知道在这些条件下,它是否能正确运作
1.所有Y轴点均在-(负)范围内
1.一些y轴点在-范围内,一些点在+范围内
我的目标是正确计算R峰和S峰的距离
1条答案
按热度按时间zazmityj1#
通过查找R峰和S峰之间的ECG信号切片中的最大值和最小值之间的差异,代码似乎可以正确计算R峰和S峰之间的振幅。无论Y轴点处于正值范围还是负值范围,或者某些点为正值而其他点为负值,代码都将正确工作。因为振幅计算为最大值和最小值之间的差值。但是,您可能需要在代码中添加一个检查,以处理未检测到R峰或S峰的情况,因为在这种情况下代码将引发错误。