python 计算R峰和S峰之间的振幅

qyyhg6bp  于 2023-02-02  发布在  Python
关注(0)|答案(1)|浏览(228)

我想计算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峰的距离

zazmityj

zazmityj1#

通过查找R峰和S峰之间的ECG信号切片中的最大值和最小值之间的差异,代码似乎可以正确计算R峰和S峰之间的振幅。无论Y轴点处于正值范围还是负值范围,或者某些点为正值而其他点为负值,代码都将正确工作。因为振幅计算为最大值和最小值之间的差值。但是,您可能需要在代码中添加一个检查,以处理未检测到R峰或S峰的情况,因为在这种情况下代码将引发错误。

相关问题