打印

单片机计算心电信号频率

[复制链接]
1543|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
tianxj01| | 2018-7-28 17:41 | 只看该作者
本帖最后由 tianxj01 于 2018-7-28 17:46 编辑

硬件无法改了?
如果心电信号太小没办法AD呢?何况心电信号放大器,本身就是一个需要非常大倍数的东东,有这方面专门主题的,你就说一个硬件没法改了,就给出怎么一点点信息,这让人们怎么帮你。
真想解决问题的,把你这种综合性的问题的前提,信号条件等等都描述清楚再说吧。
如果心电信号已经正常放大,你倒是提问题时候清楚描述一下,那么下面的讨论就不难了。
如果放大部分,已经做了带宽限制(心电放大正常处理)那么更简单,直接用合适的固定速度,连续自动采样并自动DMA到缓存,然后我们就可以在缓存里面做**,挺简单,把数据高于某值(该值完全可以用AD数据的连续平均数再加上固定的STEP来取得),且速率(所谓速率,就是连续几个缓存之间方向单调差值基本上差不多的那一段)高于某值的数据看作一个心电脉冲,继续扫描AD缓存,找出第二个这样的数据,他们的间隔就是心率。当你开辟的缓存足够,并且自动循环,这样的处理可以保证你不会丢掉一个心电脉冲。

使用特权

评论回复
板凳
雪山飞狐D| | 2018-7-28 17:58 | 只看该作者
心跳波形应该有一个最大的主振幅波,外加几个衍生的小振幅,理论上可以用FFT法,最低频率的基频就是主振频率

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
king5555 + 6 正确,很给力。为此我还买了本心电图的书。
地板
雪山飞狐D| | 2018-7-28 18:00 | 只看该作者
    另外程序上其实可以找出几个振幅的顶点位置,两个最大振幅的顶点的时间差就是周期

使用特权

评论回复
5
Jack315| | 2018-7-28 21:28 | 只看该作者
普通正常的心电图如下图所示:



作为医疗诊断用,一般单片机怕不够用。

如果只是要测个心跳速度,可取移动平均作为阈值,
定位出心跳脉冲,从而计算出心跳速度。

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
king5555 + 6 对!我退伍后的公司就是运动器材都有测心跳的电路板。
6
雪山飞狐D| | 2018-7-28 23:15 | 只看该作者
本帖最后由 雪山飞狐D 于 2018-7-28 23:17 编辑

512HZ 采样率,采样2S信号,然后STM32的DSP库做1024点FFT,分辨率为0.5HZ。。。。。若要刷新快一点,则1.024K采样率,采样1S,做1024点FFT,分辨率1HZ,前提还需要一个运放二阶的低通和ADC中点电平平移

使用特权

评论回复
评论
MaShengCai 2018-7-29 12:12 回复TA
谢谢大神的解答 
7
MaShengCai|  楼主 | 2018-7-29 12:13 | 只看该作者
tianxj01 发表于 2018-7-28 17:41
硬件无法改了?
如果心电信号太小没办法AD呢?何况心电信号放大器,本身就是一个需要非常大倍数的东东,有 ...

谢谢大神的解答!

使用特权

评论回复
8
XZL| | 2018-7-31 10:39 | 只看该作者
采样几秒钟的数据放到RAM里,然后判断R波峰值的位置,计算两个R波之间的采样间隔时间。就可以根据采样率计算心率了。

使用特权

评论回复
9
wangshujun| | 2018-8-1 09:16 | 只看该作者
雪山飞狐D 发表于 2018-7-28 17:58
心跳波形应该有一个最大的主振幅波,外加几个衍生的小振幅,理论上可以用FFT法,最低频率的基频就是主振频 ...

心电采集到连续两个以上波形的话,用自相关计算出来的心率可以很准确,比fft简单的多

使用特权

评论回复
10
雪山飞狐D| | 2018-8-1 16:54 | 只看该作者
wangshujun 发表于 2018-8-1 09:16
心电采集到连续两个以上波形的话,用自相关计算出来的心率可以很准确,比fft简单的多 ...

可有具体算法的资料链接?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

24

帖子

3

粉丝