arma模型谱估计matlab_基于机器学习的心律失常分类(四)——心电信号特征提取[MATLAB]...
目前比較常用的特征提取是提取心電信號的各波形間期長度、波峰高度等,本文是使用ARMA模型對心電信號進行處理,使用其系數來作為特征。
一、心拍劃分
大多伴有異常波形的心律失常信號,通常都會具體表現在單個心拍中,需要對信號進行心拍劃分。心拍信號截取的常見方法之一是以R波位置作為定位點,前后分別截取估計的采樣點數。
R波位置上圖是用matlab找出的R波位置,下面附上代碼。但是我直接用的注釋文件中標注的R波位置。%ecg去噪后標記QRS波、R點。啦啦啦
本文采用的MIT-BIH心律失常數據庫以及其中由權威專家標注的R波位置。
100.dat前十秒R波標注心律失常的波形異常主要出現在PR間期和QRS波群,本文以R波位置為中心定位點,為了能基本包含所有的波形特性,向前向后各截取150個樣本點共計301個樣本點作為一個樣本心拍。
%去噪后信號&標注信息本文從MIT-BIH數據庫的48條記錄種的MLII通道數據中進行心拍劃分,總計獲取96871個樣本心拍,其中正常心拍(N)有74466個,左束支傳導阻滯心拍(L)有8051個,右束支傳導阻滯心拍(R)有7239個,室性早搏心拍(V)有7115個。
二、ARMA模型
三、特征提取
在開始設計和使用ARMA模型前首先需要通過定階來確定階數,常見的進行定階的方法有:通過一個序列的自相關函數(ACF)和偏自相關函數(PACF)進行定階、通過赤池信息量準則(AIC)進行定階。
根據葛丁飛等人的利用MDL和 MDL敏感性函數作為準則進行模型定階,或者根據毛雪岷等人所提出的按照信噪比和赤池信息量準則進行定階,結果都可以表明當 n = 4,m = 2 時,模型擬合得到的信號與原始心電信號最為相似。因此本文選用ARMA(4,2)模型,通過R語言的arima()函數來建立模型,輸出擬合的模型系數。
RStudio:
library(readxl) X100 <- read_excel("D:/DATA/test1.xlsx", col_names = FALSE) X=X100 N=nrow(X)ARMAnum=matrix(nrow = N,ncol = 6,byrow = TRUE)for(i in 1:N){TE=X[i,1:301]TE=t(TE)TE_AR=arima(TE,order=c(4,2,2))TE_CO=TE_AR$coeffor (n in 1:6) {ARMAnum[i,n]=TE_CO[n]} }View(ARMAnum)write.csv (ARMAnum, file ="C:UsersDesktop數據2_處理后數據3_ARMA系數test1.csv")本文從劃分出的心拍中選取四類心拍各1700個,共計6800個樣本心拍數據。
部分正常心電信號樣本心拍的ARMA模型擬合系數然后就可以用ARMA系數作為分類模型的輸入進行訓練了。
總結
以上是生活随笔為你收集整理的arma模型谱估计matlab_基于机器学习的心律失常分类(四)——心电信号特征提取[MATLAB]...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 配置SMB共享 、 配置NFS共享
- 下一篇: 微信公共号给客户发送消息提醒/模板消息(