文号
t25082
阅读
7826
回复
22
收藏
10
心电信号数字滤波
2010/04/29
IP:广东
未命名.jpg
+600
科创币
虎哥
2010/04/29
本帖累计,请详述算法。
16年8个月前IP:未同步
212869
1楼
啊。。 居然又更新  真快 = =
引用
评论
16年8个月前IP:未同步
212872
2楼
标题应改为 my eggs are aching and my hand is shaking,不要告诉我你只有一个蛋
引用
评论
16年8个月前IP:未同步
212881
3楼
double egg
引用
评论
warmonkey作者
16年8个月前IP:未同步
212905
4楼
Re:my egg is aching and my hand is shaking
notch filter Fs=1024Hz,20 order,bw=8Hz无力应对天朝和谐电网干扰
ecg.jpg
蓝-输入 红-输出

PS:原因已经查明,是抑制能力不够。
改用FIR然后将阻带增益设定为-120db后解决
引用
评论
16年8个月前IP:未同步
212930
5楼
好多蛋蛋……电力网果然HX……
引用
评论
16年8个月前IP:未同步
213014
6楼
天朝电网干扰世界领先!
引用
评论
warmonkey作者
16年8个月前IP:未同步
213138
7楼
lpf+notch.jpg
lpf+notch_对比.jpg
引用
评论
16年8个月前IP:未同步
213181
8楼
以本外行的眼光看,在这么大的幅度的情况下,U、P波不应该看不见,T波分相,本来该S-T段的地方出了一个F波(或者T波来得太早而且太短),这个不像人身上采集的,或者就是电极放的位置不合规范。简单起见,建议楼主先测左手腕到左脚腕之间的信号。
引用
评论
16年8个月前IP:未同步
213183
9楼
对付干扰 - - 您不会matlab的notch您也可以用cooledit啊。。。。怎么会对付不了呢
引用
评论
16年8个月前IP:未同步
213186
10楼
谁说不行了。。。不就个FFT么
引用
评论
warmonkey作者
16年8个月前IP:未同步
213201
11楼
128点FFT在STM32计算一次至少需要896条指令才能完成,还不算加窗和反FFT。
后面还有一个0.05Hz的高通,128点根本不够,就算是完成目前的任务也不行,4Hz的频点间隔太大了(采样1k).
如果是1024点得10240条指令。。。。。
而且不知道窗函数的相位特性怎么样,ECG对相位误差很敏感。
还有查表计算sin的问题。

FFT不是万能的

FIR理论上只要2000条指令就能搞定目前的任务。加上高通也就3000指令/1个采样数据。
引用
评论
16年8个月前IP:未同步
213206
12楼
你那是DFT吧 = =

现在效果器都上24bit A/D D/A + FFT了,乃就不肯用DSP芯片么 = =
引用
评论
16年8个月前IP:未同步
213243
13楼
牛X,这些是高中生吗?
都用数字滤波器了。
有尝试过模拟滤波器吗?或许也可一用。
引用
评论
16年8个月前IP:未同步
213328
14楼
牛B,我高中的时候研究三角公式变形……
matlab很赞。
引用
评论
16年8个月前IP:未同步
213452
15楼
用V1和V5是独立的向量,并不是在这两个点接两个电极就行了,而是要找一个中点,从这里出发,指向V1的就是V1,指向V5的就是V5,并不是这两点之间的电压。这个中点最好选在窦房结,但是显然不可能在心脏里面插电极,所以通常的做法是做所谓趾骨联合,也就是把肢体上的三个电极,用5000欧左右的电阻星形连接起来,把中点作为一个电极。综上,要看V1和V5,至少要接5个电极。接两个电极肯定是看不了的。所以建议楼主还是先从左手到左脚开始吧。
引用
评论
16年8个月前IP:未同步
213470
16楼
我觉得FFT还行啊,运算量不算太大,至少对于我的电脑来说……
引用
评论
warmonkey作者
16年8个月前IP:未同步
213669
17楼
已经确定了滤波参数,这几天就能写入到STM32
引用
评论
16年8个月前IP:未同步
213679
18楼
aV的振幅比V高大约50%。
要想某个波尽量大,只需要让该波所代表的极化或复极过程所经过的路径尽量长,并不被其它过程抵消就可以了。
每个导联都代表特定的路径,以诊断特定区域的疾病。所以电极不能乱插,否则诊断意义很小。
基线漂移应该是采样电路解决的问题吧,分析一下是怎么产生的,不一定什么都要靠数字滤波。
引用
评论
warmonkey作者
16年8个月前IP:未同步
213780
19楼
貌似aV的大小和II差不多
这个装置这次实验的意义仅仅在于计算心跳数
下次我试着用标准导联做

基线漂移是人体极化电压改变引起的,虽然采样能解决一部分,但是不能彻底解决。
已经查找到解决方法了,需要识别出P波的结束点,然后做曲线拟合,这条曲线就是基线漂移,原信号减去这个曲线得到干净的输出
引用
评论
warmonkey作者
16年8个月前IP:未同步
214286
20楼
公开算法
滤波器本身是fdatool设计的,就是一个95Hz,-80dB的低通和一个50Hz+-4Hz,-120db的陷波
FIR怎么编程不用说了吧,大概就是对过去N个采样做加权平均,计算结果作为现在的输出。网上一大把。
我用C写好以后下次贴来
系数表.对应采样率1024Hz


attachment icon lpf.rar 1.11KB RAR 22次下载

attachment icon notch.rar 6.57KB RAR 24次下载

matlab fdatool 滤波器设计文件,用fdatool直接加载即可

attachment icon fda.rar 5.31KB RAR 21次下载
引用
评论
16年7个月前IP:未同步
224773
21楼
学习了,主要做硬件部分,看看软件怎么弄.
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的