从PPG计算心率

问题描述 投票:0回答:2

我正在为我的毕业设计开发用于 PPG 记录和心率计算的 iOS 应用程序。

我实现了一种用于记录 PPG 和检测峰值的算法。现在我需要可靠的算法来计算每分钟的节拍数(从 10-15 秒长的 PPG)。这是记录信号并调用 PeakFinder 方法后得到的结果:

enter image description here

ios objective-c algorithm matlab
2个回答
2
投票

您可以使用2种方法:

  1. 峰值计数:检测数据中的峰值。计算 1 个相邻峰之间的距离。

BPM=(Sampling Rate/(peak(i+1)-peak(i)))*60;

  1. 对一组数据进行FFT变换。然后找到0.5-2.5Hz的峰值。最后将该峰值的频率乘以 60 秒。

0
投票

丢弃第一个和最后一个峰值,因为从图表中看,最后一个峰值并不是真正的峰值,并且第一个峰值也可能发生类似的情况。

其余峰的范围是从第二个峰到倒数第二个峰。

用作您的心率:

60 * ((剩余峰值的数量) - 1) / ((倒数第二个峰值的时间) - (第二个峰值的时间))

这本质上就是护士在计算脉搏时的做法——脉搏率是脉搏数除以时间。结果基于峰之间的平均距离,对于此应用来说,这可能比中值距离更有效。

© www.soinside.com 2019 - 2024. All rights reserved.