从原始心电图信号中提取心率的算法

4

从原始的ECG信号中提取心率的算法

我有一个以BDF格式记录的原始ECG信号(也可以转为EDF或txt格式)。现在我需要离线分析并提取心率。

是否有C#或C ++实现这种算法?或者至少伪代码算法。

之所以要自己从头开始做,是因为我希望最终将其纳入在线分析系统中。

我找到了以下链接: 低通滤波器:http://en.wikipedia.org/wiki/Low-pass_filter
高通滤波器:http://en.wikipedia.org/wiki/High-pass_filter

... 这些滤波器可能需要用于过滤初始数据。

此外,还有一个为硬件模块创建的系统,可能是一个不错的起点: http://www.codeproject.com/Articles/4353/ECG-recording-storing-filtering-and-recognition


低通滤波器 + 相锁环路(PLL)。 - Paul R
这个应用程序并不是为医疗目的而设计的,所以你不必太担心。 @Paul:那么您是在建议,在PLL之后,心率将被表示为相位,或者当检测到相位变化时,这将是心跳的标记? - pjercic
@pjercic:不,PLL 频率 将等于心率。 - Paul R
这是一个真正的问题 - 被标记为“关闭”似乎是目光短浅的。 - thefaj
1个回答

6
"Pan, Tompkins"算法非常简单易实现,并且能够得出合理的结果。
据我所知,该算法的一般思路如下:
心电图(ECG)的特征形状被称为QRS复合波,其中ECG中的主要尖峰(也称为“R-尖峰”)具有明显的形状,这是大多数人关注的重点。 R-尖峰通过“匹配滤波器”进行增强(一个具有类似于尖峰的脉冲响应的滤波器)。然后信号经过微分器处理。之后进行了一个简单的3点搜索来寻找最高峰值。 我还记得,该算法有一个“空白期”,在此期间不进行R-尖峰搜索,因为心脏的跳动速度是有限的...
请看这个链接:ECG QRS Detection (PDF)"

这正是我所追求的。非常感谢您,向您致敬。 - pjercic
很高兴为您服务 :-) - S.C. Madsen
你的链接已经失效了。这里有一个相当不错的Matlab实现:http://www.mathworks.com/matlabcentral/fileexchange/45840-complete-pan-tompkins-implementation-ecg-qrs-detector - Eternal21
这是一个包含答案PDF的Archive.org链接。https://web.archive.org/web/20150319000704/http://www.physik.uni-freiburg.de/~severin/ECG_QRS_Detection.pdf - thefaj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接