心电图滤波? ( 积分: 200 )

  • 主题发起人 主题发起人 wln1964126
  • 开始时间 开始时间
W

wln1964126

Unregistered / Unconfirmed
GUEST, unregistred user!
得到正确的心电图使用什么方法滤波呀?
R波顶点怎么总是找不对?


e_mail: wln1964126@sohu.com
 
得到正确的心电图使用什么方法滤波呀?
R波顶点怎么总是找不对?


e_mail: wln1964126@sohu.com
 
可以先用带通滤波器(根据相应差分方程就可以啦)
或者是平滑滤波(主要是针对高频和50Hz的工频干扰信号)
定位的话,可以采用一阶和二阶求导后再平方(加强R波峰值与其他的差别)求和,与阈值比较的方法
此外:还要注意阈值的动态更新
 
底通用过,效果不好!
带通、平滑、一阶、二阶、阀值 都是怎么回事呢?
能否给详细说一下呢?
我的数学早忘光了,可现在又非常着急!
多多感谢!!!
 
啊,平滑滤波其实就是把相邻的几点加权加起来,求加权平均。我采用的是五点平滑,效果不错。(海宁波平滑试过,效果不如5点平滑的好。。)
function Slick(var x:FilterArray):smallint;//五点平滑滤波器
var
y:smallint;
n:integer;
begin
n:=4;
y:=x[n]+x[n-1]+x[n-2]+x[n-3]+x[n-4];
y:=y div 5;
result:=y;
end;
一阶求导,在这里由于处理的是数字信号,只能用差分方程近似逼近(我列出这个在20Hz附近近似于理想滤波器,基本能满足要求),由于我所做的要求实时处理,所以,只能采用前项差分的方法。
function derivative(var x:FilterArray):smallint;//五点差分函数的定义部分
var //局部范围的定义区
y:smallint;
n:integer;
begin
n:=4;
//y(n)=1/8[2x(n)+x(n-1)-x(n-3)-2x(n-4) 五点前项差分
begin
y:=(2*x[n]+x[n-1]-x[n-3]-2*x[n-4]);
end;
y:=y div 8; //五点差分方程
result:=y;
end;

二阶求导的话,在一阶求导的基础上,再调用一次一阶求导就相当于是求导了两次了,呵呵

将求导出来的一阶和二阶信号再进行平方运算,可以加强对比,二者求和,调试时你再查看R波时得到的这个脉冲对应的求和值是多少(我们取的数估计据不一样,阈值也就不一样),先设定一个阈值,以后,超过这个阈值的才有会是R波,但考虑到心电的非稳定性,所以,每次检测到R之后都要更新阈值,这样才能保证以后能够适应变化的心率
 

Similar threads

回复
0
查看
845
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
794
import
I
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部