主旨
分析给出HRV非线性分析Poincare Plot中SD1和SD2的算法
背景描述
Poincare Plot是HRV非线性分析的一种方法。对于一段连续的心跳间隔,将第i个心跳间隔作为横坐标,第(i+1)个心跳间隔作为纵坐标,在二维平面可以画出如下图形[1]。这些点的分布可以近似为椭圆,椭圆的中心位于(心跳间隔平均值,心跳间隔平均值)确定的坐标点。椭圆的半长轴和半短轴分别为SD1和SD2
算法推导
从上图可以看到,SD1和SD2分别由数据点沿着y=xy=x和y=−x+2∗RRI¯¯¯¯¯¯¯¯¯¯y=−x+2∗RRI¯两条直线的离散程度决定,即在这两个方向上数据的方差决定。这样,对原始坐标轴做逆时针45°旋转,旋转后的坐标系中X′X′方向和Y′Y′方向的数据标准差就是SD1与SD2.
根据线性代数,旋转坐标系相当于对原坐标系下任意一点P(x,y)(x,y),右乘一个如下的矩阵,
记新坐标系下P的坐标为(x′,y′)(x′,y′),
由此,原始的坐标点集合S={(xi,yi)|i=1..N}S={(xi,yi)|i=1..N},在新坐标系变为S={(x′i,y′i)|i=1..N}S={(xi′,yi′)|i=1..N}.
记X={xi|i=1..N}X={xi|i=1..N}, X′={x′i|i=1..N}X′={xi′|i=1..N}, Y={yi|i=1..N}Y={yi|i=1..N}, Y′={y′i|i=1..N}Y′={yi′|i=1..N}
同理可以推得
Matlab实现代码
%%rriList为输入的心跳间隔数组
x=rriList;
x(end)=[];
y=rriList;
y(1)=[];
SD1 = std(y-x)/sqrt(2);
SD2 = std(y+x)/sqrt(2);
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
参考文献
[1]Tulppo M P, Makikallio T H, Takala T E, et al. Quantitative beat-to-beat analysis of heart rate dynamics during exercise[J]. American journal of physiology-heart and circulatory physiology, 1996, 271(1): H244-H252.