CPC心肺耦合简介及实现
一、简介
CardioPulmonary Coupling (心肺耦合图谱,简称CPC)技术是从连续单导联心电信号提取正常窦性心律间期序列以及相应的由心电图推导的呼吸信号,采用希尔伯特-黄(HHT)变换技术,通过分析这两种信号的相干度与互谱功率生成睡眠期间心肺耦合动力学频谱,从而给出睡眠的分期结果。
该技术于2005年,由Robert Joseph Thomas、Chung-Kang Peng等哈佛医学院的睡眠专家团队提出。
二、算法
基于单导联的ECG信号,从ECG信号中提取出心跳间隔序列(R-R Series)和对应的呼吸信号(EDR),计算互功率谱、相干性,最终计算得到心肺耦合强度。互功率谱表征的是在某一频率上,不同信号是否都具有相对较大的幅值;相干性表征的是在某一频率上,两路信号的震荡是否同步。二者的乘积得到表征心率和呼吸信号之间心肺耦合强度。
下图体现了心肺耦合算法的整个过程:
以下是CPC值计算的步骤说明:
1.从ECG信号中逐个检测出心跳,基于形态学和时间间隔,将这些心跳分为正常心跳和异位心跳,同时基于每个心跳的QRS波,计算出心跳幅值的变化作为替代的呼吸信号;
2.从上述识别出的正常心跳,提取出正常-正常心跳间隔序列(N-N interval Series)和相关联的EDR信号。
3.对心跳间隔序列做41点均值平滑,间隔值与平均值差20%的间隔认为是错误的心跳间隔,将被去除。
4.对N-N interval Series和EDR做三次样条插值后再做2Hz重采样。
5.将上述序列划分成包含1024个采样点的窗口,并将这个窗口再划分为3个重叠256个采样点,长度为512的子窗。对每个子窗做傅里叶变换,计算功率谱、相关性,最终得到该窗的CPC值。
6.计算各个频带的功率,频带功率为频带内两个最大功率区的总和;
频带 | 论文数据 | 安波澜软件数据 |
---|---|---|
高频带(HFB) | 0.1Hz~0.4Hz | 0.1Hz~0.5Hz |
低频带(LFB) | 0.01Hz~0.1Hz | 0.01Hz~0.1Hz |
超低频带(vLFB) | 0Hz~0.01Hz | 0.00391Hz~0.01Hz |
7.将1024个采样点的窗口,移动256个采样点后,重复第5、6步的相关计算,直至将整个序列处理完毕。
注意在做傅里叶变换前,需对子窗做去趋势和加窗(hann)处理。
根据上述步骤计算各窗口的CPC值后,再根据以下规则,将各窗口归入到不同的睡眠状态:
若,HFB功率 >0.080 且Lo/Hi比 < 2.000,分类为高频耦合,与NREM期的稳定睡眠相关;
若,LFB功率 > 0.150且Lo/Hi比 > 0.500,分类为低频耦合,与NREM期的不稳定睡眠相关;
若,极低频耦合,VLFB 功率 > 0.000且vLow/(Lo+Hi)比 > 0.200,分类为极低频耦合,与清醒/REM期相关;
若,不满足以上任何一类,则分类为未知状态。
三、实现
如下是两幅图,RemLogic的CPC报告截图和用python实现的上述算法得到的CPC图。
四、参考文献
[1] Thomas R J , Mietus J E , Peng C K , et al. An electrocardiogram-based technique to assess cardiopulmonary coupling during sleep.[J]. Sleep, 2005, 28(9):1151-61.
[2] 心肺耦合(CPC)睡眠分析简介
[3] 心肺耦合(CPC)睡眠分析原理与应用