HRV非线性分析PoincarePlot:SD1,SD2计算算法

主旨

分析给出HRV非线性分析Poincare Plot中SD1和SD2的算法

背景描述

Poincare Plot是HRV非线性分析的一种方法。对于一段连续的心跳间隔,将第i个心跳间隔作为横坐标,第(i+1)个心跳间隔作为纵坐标,在二维平面可以画出如下图形[1]。这些点的分布可以近似为椭圆,椭圆的中心位于(心跳间隔平均值,心跳间隔平均值)确定的坐标点。椭圆的半长轴和半短轴分别为SD1和SD2
HRV非线性分析PoincarePlot:SD1,SD2计算算法_第1张图片

算法推导

从上图可以看到,SD1和SD2分别由数据点沿着 y=x y=x+2RRI¯¯¯¯¯¯¯ 两条直线的离散程度决定,即在这两个方向上数据的方差决定。这样,对原始坐标轴做逆时针45°旋转,旋转后的坐标系中 X 方向和 Y 方向的数据标准差就是SD1与SD2.

根据线性代数,旋转坐标系相当于对原坐标系下任意一点P (x,y) ,右乘一个如下的矩阵,

22222222

记新坐标系下P的坐标为 (x,y)

(x,y)=(x,y)22222222

x=22(x+y)

y=22(x+y)

由此,原始的坐标点集合 S={(xi,yi)|i=1..N} ,在新坐标系变为 S={(xi,yi)|i=1..N} .

X={xi|i=1..N} , X={xi|i=1..N} , Y={yi|i=1..N} , Y={yi|i=1..N}

SD2=D(X)=D(22(X+Y))=D(X+Y)12=STD(X+Y)2

同理可以推得

SD1=STD(YX)2

Matlab实现代码

%%rriList为输入的心跳间隔数组
x=rriList;
x(end)=[];
y=rriList;
y(1)=[];

SD1 = std(y-x)/sqrt(2);
SD2 = std(y+x)/sqrt(2);

参考文献

[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.

你可能感兴趣的:(HRV分析,HRV,Poincare,算法)