文号
t25082
阅读
7823
回复
22
收藏
10
心电信号数字滤波
2010/04/29
IP:广东
未命名.jpg
+600
科创币
虎哥
2010/04/29
本帖累计,请详述算法。
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后解决
引用
评论
warmonkey作者
16年8个月前IP:未同步
213138
7楼
lpf+notch.jpg
lpf+notch_对比.jpg
引用
评论
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个采样数据。
引用
评论
warmonkey作者
16年8个月前IP:未同步
213669
17楼
已经确定了滤波参数,这几天就能写入到STM32
引用
评论
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次下载
引用
评论
笔记
{{note.content}}
{{n.user.username}}
{{fromNow(n.toc)}} {{n.status === noteStatus.disabled ? "已屏蔽" : ""}} {{n.status === noteStatus.unknown ? "正在审核" : ""}} {{n.status === noteStatus.deleted ? '已删除' : ''}}
  • 编辑
  • 删除
  • {{n.status === 'disabled' ? "解除屏蔽" : "屏蔽" }}
我也是有底线的