资源简介
本压缩包包含基于MATLAB的心电信号BP网络识别程序,可以在C盘上顺利运行,通过提取特征值实现分类识别。
代码片段和文件信息
function [ QxQyRxxrySxSyPxPyTxTy] = DINGWEI( datafs )
%UNtitleD 此处显示有关此函数的摘要
% 此处显示详细说明
%=============峰值点前搜索找出R点====================
%=============差分====================
y=data;
n=length(y);
for i=1:(n-2)
f1(i)=(y(i+1)-y(i));%一阶向前差分
ff1(i)=f1(i)*f1(i);
end;
for i=1:(n-2)
f2(i)=(y(i+2)-2*y(i+1)+y(i));%二阶向前差分
ff2(i)=f2(i)*f2(i);
end;
f=ff1+ff2;%一阶二阶差分平方和
n1=0:length(f)-1;t1=n1/fs;
%=============阈值====================
ffd=f;
for i=1:10
x=max(ffd);
fmax(i)=x;%找差分平方和中10个最大值点
zuo=find(ffd==max(ffd));%每个最大值点对应的横坐标
ffd(zuo)=0;%令最大值点为0,方便找下一个最大值点
end
fmax;
fsum=sum(fmax);
fse=fsum/10;%10个最大值的平均值为fse
th=0.35*fse;%自适应阈值
% %=============峰值点前搜索找出R点====================
k=0;
for i=1:length(ffd)
if ffd(i)>th %阈值太小,就会有很多点,如何找出其中峰值最大的点
k=k+1;Ry(k)=ffd(i);Rx(k)=i;%将R值点的众坐标放于Ry中横坐标放于Rx中
end
end
w=1;s=0;a(w)=Rx(1);
for i=1:length(Rx)-1
if Rx(i+1)-Rx(i)>100
w=w+1;a(w)=Rx(i+1);s=s+1;b(s)=Rx(i);
end
b(s+1)=Rx(length(Rx));
end
c=b;
for i=1:length(a)
if ( b(i)-a(i)~=max(b-a));
c(i)=b(i)+(max(b-a)-(b(i)-a(i)));
end
end
for i=1:length(a)
ddq(i:)=(y(a(i):c(i)));%a(i)与b(i)间距必须相同,否则不匹配
ry(i)=max(y(a(i):c(i)));%
xm=find(ddq(i:)==max(ddq(i:)));
rx(i)=a(i)+xm(1);
end
for i=1:length(rx)
Rxx(i)=rx(i)-1;
end
for i=1:(length(rx))
plot((Rxx(i))/fsry(i)‘or‘);%标记定位R点
end
%=============峰值点前搜索找出Q点====================
for i=1:length(Rxx)
dq(i:)=(y((Rxx(i)-50):Rxx(i)));
Qy(i)=min(y((Rxx(i)-50):Rxx(i)));%左边50个点搜索最小值
xm=find(dq(i:)==min(dq(i:)));
Qx(i)=Rxx(i)-51+xm(1);
end
for i=1:(length(Qx))
plot(Qx(i)/fsQy(i)‘*k‘);%标记定位Q点
end
%=============峰值点前搜索找出S点====================
for i=1:length(Rxx)
dqs(i:)=(y((Rxx(i)):(Rxx(i)+50)));
Sy(i)=min(y((Rxx(i)):(Rxx(i)+50)));%左边50个点搜索最小值
xmS=find(dqs(i:)==min(dqs(i:)));
Sx(i)=Rxx(i)+xmS(1);
end
for i=1:(length(Sx))
plot(Sx(i)/fsSy(i)‘*r‘);%标记定位Q点
end
%=============定位P点====================
for i=1:length(Rxx)
dqp(i:)=(y((Qx(i)-ceil(0.16*fs)):Qx(i)));
Py(i)=max(y((Qx(i)-ceil(0.16*fs)):Qx(i)));%两种信号采样频率不同,搜索范围不一样????
xm=find(dqp(i:)==max(dqp(i:)));
Px(i)=Qx(i)-0.16*fs+xm(1);
end
for i=1:(length(Px))
plot(Px(i)/fsPy(i)‘om‘);%标记定位p点
end
%=============定位T点====================
for i=1:length(Sx)
dqt(i:)=(y((Sx(i)):(Sx(i)+ceil(0.3*fs))));
Ty(i)=max(y((Sx(i)):(Sx(i)+ceil(0.3*fs))));%左边250个点搜索最小值
xmT=find(dqt(i:)==max(dqt(i:)));
Tx(i)=Sx(i)+xmT(1);
end
for i=1:(length(Tx))
plot(Tx(i)/fsTy(i)‘og‘);%标记定位t点
end
end
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2939 2017-11-15 09:20 程序\DINGWEI.m
文件 2331 2017-11-24 21:36 程序\importmit.m
文件 1517 2017-11-25 09:23 程序\inputtest.txt
文件 2308 2017-11-25 09:23 程序\inputtrain.txt
文件 1164 2017-11-25 09:58 程序\main.m
文件 6823 2017-11-24 21:32 程序\rddata.m
文件 622 2017-11-10 20:02 程序\sigDEN.m
文件 17445 2017-11-24 21:54 程序\tezhengtiqu.m
文件 877 2017-11-13 09:57 程序\ztezhengtiquhanshu.m
目录 0 2017-11-25 10:44 程序
----------- --------- ---------- ----- ----
36026 10
- 上一篇:追赶法的简单MATLAB代码
- 下一篇:MATLAB移动曲面拟合法
相关资源
- 基于BP网络的个人信贷信用评估
- 基于特征匹配和RANSAC的三维点云拼接
- LBP图像特征提取matlab程序
- 小波包 特征提取 matlab
- 基于matlab的声发射信号量化诊断系统
- 提取图像的颜色特征 matlab
- 基于纹理的图像检索源码matlab
- BP网络变压器故障诊断
- 基于bp神经网络的变压器故障检测
- 掌纹识别PCA
- lbp特征提取算法
- Matlab神经网络及应用于近红外光谱的
- 简单图像显著性特征提取matlab代码
- 基于Matlab实现的指纹图像细节特征提
- 六种常用纹理特征提取方法MATLAB.rar
- 基于MATLAB的LBP图片特征提取算法,人
- 图像的RGB特征提取代码
- 提取语音特征短时能量,平均幅度、
- 遗传优化的BP网络代码MATLAB
- MATLAB实现HOG特征提取
- 颜色特征提取程序
- 图像显著性特征提取算法
- 基于harris角点特征提取的matlab图像拼
- Gabor滤波特征提取方法 matlab程序
- 颜色特征提取matlab
- HOG特征的MATLAB代码
- 脉搏信号特征提取
- Matlab GUI实现的指纹特征提取与编辑
- l利用matlab进行图像纹理特征提取
- matlab特征点提取
评论
共有 条评论