一、HRV的一些医学概念

HRV(HeartRateVariability,中文为心率变异度),在医学上有重要的意义。心脏除了本身的节律性放电引发的跳动之外,也受到自律神经系统所调控。过去二十年已有不少文献显示自律神经系统的调控与心血管疾病相关的死亡率有显著的关系,例如心因性垂死、高血压、出血性休克、败血性休克等。心率变异分析亦被发现可作为预测发生心肌梗塞后的死亡率的指标及预测末期肝癌病患的预后。

HRV的周期频率一般被分为三部分,通过时频域变换可以得到VLF、LF、HF分别对应超低频(<0.04Hz)、低频段(0.04-0.15Hz)、高频段(0.15-0.4Hz),每个频段的功率(或者说幅度)都代表了不同的生理信息,利用离散傅立叶变换将心跳间隔的时间序列转换为频域,以功率频谱密度(Power

spectral density)或是频谱分布(Spectral

distribution)的方式表现。一般心率变异讯号的频谱分析使用200至500连续心跳间期稳定记录表现,因此记录需要数分钟的时间。

一般的心跳间期频谱频率出现在1赫兹以下,在0到0.4赫兹的范围内可找到数个波峰。主要为高频区(0.15-0.40赫兹)及低频区(0.04-0.15赫兹)。高频区通常反映副交感神经的活性,低频区同时受到交感与副交感神经系统的调控。在这里摘录维基百科的一个表格,请看附录!

二、信号分析

时域分析 (Time domain)

通常利用连续量测到的心电图波形,直接计算与分析其相连心跳间时间序列的关系,例如:

SDNN (Standard Deviation of Normal to

Normal),全部正常心跳间距之标准差,单位为毫秒。

SDANN (Standard deviation of the averages of NN intervals in

all 5-minute segments of the entire

recording),全程依五分钟分成连续的时段,先计算每五分钟心跳间期的标准差,再计算标准差的平均值,单位为毫秒。

NN50 count (Number of pairs of adjacent NN intervals differing

by more than 50 ms in the entire

recording),心电图中所有每对相邻正常心跳时间间隔,差距超过50毫秒的数目。

pNN50 (NN50 count divided by the total number of all NN

intervals),NN50数目除以量测之心电图中所有的正常心跳间隔总数。

频域分析 (Frequency domain)

HRV代表了心动周期的变化,所以我们首先要求出每个变化着的周期的具体值,一般方法是找到每个周期识别点,比如过零点、最大最小极值点以及一些能够容易检测到的点,在ecg信号中我们一般采用RR点之间的时间作为对应的周期,所以第一步是检测ecg信号的R点;第二步就是要计算出每个周期值,也就是RR点之间的时间值,这个在matlab中很好实现;因为HRV周期是随时间变化的函数,而且一般对应的周期点数有限,说以在fft之前进行插值计算是必要的,第三步,插值法;最后一步进行fft变换,得到HRV的频谱图,剩下的分析就交给医生了。

三、Matlab程序实现

按照上面所说的四个步骤,下面的程序分为四段,有详细的说明,请读者自行阅读。

close all;

clear;

load ekg.mat; %读入ecg信号

[map,r,delay]=pan_tompkin(ecg,fs,0);% 利用pan_tomkin算法找到R点

[a,l]=size(r);

for i=2:l;

t(i-1)=r(i)-r(i-1); %求出R-R间的时间值,即使HRV

end

x=r(2:19);

y=interp1(x,t,r(2):1:r(19),'spline'); %利用插值法求出以原ecg信号的采样率fs的拟合函数

plot(y);hold on,

scatter(r(2:19)-r(2),t(1:18));

N=length(y);

N1=20;%确定频率轴的范围 每一单元为fs/N=0.06Hz

AF=fft(y);

AF=abs(AF);%求出傅里叶变换后的幅频特性

f=(0:N1-1)*fs/N;

figure,plot(f,AF(1:N1));%这一步是对fft的频率轴进行一定的变化,但是不会影响到fft的具体信息,只是为了方

%便显示而已,具体的fft使用请参看上篇关于fft的介绍。

四、Matlab结果截图

通过pin_tomkin算法过程中产生的相应图片

通过'spline'逐段3次样条插值得到的函数曲线,圆心点为实际的周期点

最终的HRV的幅频图

五、简单的分析说明

本例的ecg信号来源于MIT的生理信号库,但是忘记了该信号属于哪一类,有什么对应生理特征,在这里作者知识想表达处理的过程。由fft图知:该ecg的HRV主要处于<0.1Hz的范围类,代表交感与副交感神经活性,应该是一个正常人的eck信号。

六、附录

心律变异度频域分析测量指标、定义及临床意义

指标单位定义频谱范围临床意义

总功率

total power, TPms2全部正常心跳间期之变异数高频、低频、极低频的总和≤0.4Hz整体心律变异度评估

极低频范围功率

very low frequency power, VLFPms2极低频范围正常心跳间期之变异≤0.04Hz生理意义不明

低频范围功率

low frequency power, LFPms2低频范围正常心跳间期之变异数0.04-0.15Hz代表交感与副交感神经活性

高频范围功率

high frequency power, HFPms2高频范围正常心跳间期之变异数0.15-0.4Hz代表副交感神经活性

标准化低频功率

normalized LFP, nLFP标准化单位,n.u.LF/(TP-VLF)交感神经活性

定量指标

标准化高频功率

normalized HFP,nHFP标准化单位,n.u.HF/(TP-VLF)副交感神经活

性定量指标

低、高频功率的比值

LF/HF无单位低、高频功率的比值代表自律神经

活性平衡

matlab hrv,利用ECG信号进行HRV分析相关推荐

  1. matlab小波变换处理ECG信号,[Matlab]ECG信号处理常见问题

    1. 计算某变量(常表现为向量或矩阵)所占存储空间大小--多见于数据压缩 Let say a variable named as var1: inf=whos('var1'); % all infor ...

  2. (四十五:2021.08.05)《利用深度学习对ecg信号进行分割》

    <Deep Learning for ECG Segmentation><利用深度学习对ecg信号进行分割> 讲在前面 摘要 1. 介绍 2. 算法 2.1 预处理 2.2 神 ...

  3. 利用ECG关于HRV分析

    一.医学常识 HRV(HeartRateVariability,中文为心率变异度),在医学上有重要的意义.心脏除了本身的节律性放电引发的跳动之外,也受到自律神经系统所调控.过去二十年已有不少文献显示自 ...

  4. 【特征提取】心电信号PTT+HRV+PRV含Matlab源码

    1 简介 ​提取心电信号PTT+HRV+PRV 2 部分代码 clc;clear all;close all;x=load('day2_0917.txt');%% ECG signaly=x(1:95 ...

  5. 使用MATLAB快速完成对ADC信号质量的分析

    目录 1 单音信号分析 2 复数信号分析 在硬件调试初期时,通常需要对ADC采样的信号质量进行一些列分析,可以利用强大的数学工具MATLAB对信号质量进行分析,包括时域绘图.频域绘图.功率谱等. 1 ...

  6. 《MATLAB语音信号分析与合成(第二版)》:第4章 语音信号的线性预测分析

    <MATLAB语音信号分析与合成(第二版)>:第4章 语音信号的线性预测分析 前言 1. 数据与函数路径设置 2. MATLAB仿真一:LPC的频谱分析 3. MATLAB仿真二:普通预测 ...

  7. 基于MATLAB的声信号的采集与分析,基于Matlab的声音信号采集与分析处理

    2005年第6期 文章编号:100622475(2005)0620091202 计算机与现代化 JISUANJI YU XIANDAIHUA 总第118期 基于Matlab的声音信号采集与分析处理 陈 ...

  8. MIT-BIH ECG 信号的数据读取方法和Matlab程序

    (20110622:更新程序下载链接) 最近在写一篇基于小波变换的ECG信号压缩算法的论文,遇到了怎样获取ECG信号测试数据的问题,在百度和专业论坛里搜索了一番,发现也有很多朋友为此发愁.现在论文写好 ...

  9. matlab采集声音信号播放声音,基于Matlab的声音信号采集与分析处理

    文章编号 :100622475(2005)060091202 收稿日期 :20040913 作者简介 :陈家焱(19792) ,男 ,江苏泗洪人 ,华东理工学院机电系助教 ,硕士研究生 ,研究方向 : ...

最新文章

  1. 2022-2028年中国棕刚玉行业市场运营模式及未来发展潜力报告
  2. 分享GitHub上一位老外的嵌入式C编码规范(收藏细读)
  3. TF之DeepDream:DeepDream前世今生之简介、安装、使用方法之详细攻略
  4. PHP算法基于相同键合并数组
  5. powershell 学习地址
  6. 下载的c语言程序代码怎么运行,CFree怎么运行程序 编译运行C语言程序代码的方法...
  7. linux core 永久生效,【调试】Core Dump是什么?Linux下如何正确永久开启?
  8. 除法应用遇到的问题-类型及小数点
  9. 西北大学计算机学院王郭玲,西北大学关于表彰2010-2011学年度学生先进集体
  10. Linux 性能测试与分析-转
  11. AS3 JPEG Encoder应用:从Flash中保存图片
  12. 综合能源系统及其应用
  13. vscode快速下载方法
  14. 阿里云邮箱企业版与个人版区别大吗?
  15. 饥荒控制台输入没用_饥荒控制台怎么用 控制台的使用方法以及代码说明解析...
  16. VMware win10 虚拟机通过NAT模式联网
  17. 销售书籍推荐:做销售你究竟该看什么书?
  18. 【数字图像处理】Anaconda下安装OpenCV
  19. Science: 重新“野化“ 植物微生物组
  20. RubyRails环境的离线安装

热门文章

  1. 嵌入式Linux系统编程学习之二十三 System V 共享内存机制
  2. QT开发及实例学习之六控件
  3. oracle字符串使用函数,oracle函数大全-字符串处理函数
  4. 索引与其内部数据结构
  5. Java集合性能分析-疯狂Java讲义
  6. [Alpha]Scrum Meeting#5
  7. 读《程序是怎样跑起来的》第三章有感
  8. js常用字符串处理方法
  9. 零元学Expression Design 4 - Chapter 5 教你如何用自制笔刷在5分钟内做出设计感效果...
  10. Ubuntu: 搭建tftp,nfs服务器