STM32心电波形显示 心率计算

1.硬件部分
心率信号收集的硬件部分采用了ADS1292模块(淘宝就有卖),这个芯片也是TI的要求使用芯片。

除了ADS1292的另外一块芯片的作用是电源隔离
购买模块的时候 商家会给ADS1292收集心电信号的例程,在这个基础上改写

2.心电仪产生的心电信号收集与显示


这是心电仪信号(不是人体信号)并且尚未进行滤波处理的显示

3.IIR滤波处理 与 简单平滑处理的效果展示

IIR效果
IIR代码实现

假如有一个500点的数组 那么直接 for(i=0;i<500;i++) 滤波后的数据[i]=filterloop(滤波钱的数据[i]);

float filterloop(float baroOffset);
float xv[NZEROS+1], yv[NPOLES+1];
float filterloop(float baroOffset)
{       xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = baroOffset/ 0.3513235 ;yv[0] = yv[1]; yv[1] = yv[2]; yv[2] =   ( -1 * xv[0] + xv[2]) + ( -0.29735293* yv[0]) + (  +1.288421 * yv[1]);return yv[2];
}

系数是要自己设计的 根据需要的截止频率
请看这个https://blog.csdn.net/tap880507/article/details/78930469
这是别人写的

简单平滑滤波处理

在心电仪信号的情况下看样子和IIR差不多。但是如果是人体心电信号的话,这个简单的平滑就不行了

简单平滑处理代码实现

和IIR函数一样输入 需要处理的一组数据,返回值是得到处理过后的结果

u16 baroAlt=0;
u16 filter(u16 baroOffset)
{   u16 baro; baro = 0.8 * baroOffset  + (1.0f - 0.8) * baroAlt;baroAlt = baro;return baro;
}

4.LCD显示函数

不知道大家用STM32做实时显示波形的时候是什么方法。我最开始是描点画图然后清屏,但是太闪了。所以后来用了下面这种方法。将之前的波形用底色重新画一遍,达到清屏效果。

void DrawOscillogram(void)//画波形图
{ u16 i = 0;POINT_COLOR=RED;for(i=50;i<430;i++){LCD_DrawLine(i,data[i],i+1,data[i+1]);}
}
void DrawOscillogram_Clear(void)//用底色画之前的波形图达到清屏效果
{u16 i = 0;POINT_COLOR = BLACK;for(i =50;i <449;i++){LCD_Fast_DrawPoint(i,(data1[i]),BLACK);}for(i=50;i<449;i++){LCD_DrawLine(i,data1[i],i+1,data1[i+1]);}
}//在主函数中的位置关系 data[i]是每次要更新的图像 储存在data1[i]中进行下一次的清屏DrawOscillogram_Clear();for(i=0;i<500;i++)data1[i]=data[i];DrawOscillogram(); 

5.测量心率的函数

核心技术 随缘更新

2020电赛A题(心电波形,lcd显示,心率计算,iir滤波处理)相关推荐

  1. 2020电赛F题回顾——简易无接触温度测量与身份识别装置

    2020电赛F题回顾--简易无接触温度测量与身份识别装置 第一次参加电赛,已经大三了,这也有可能是我的最后一次,不禁感慨时间过得真快.在实验室一起奋斗的夜晚既辛苦又幸福,感谢陪伴在我身边一起做电赛的同 ...

  2. python利用tensorflow识别圆_RaspberryPi上实现佩戴口罩识别——2020电赛F题小记

    今年的电赛题目非常反常,传统控制题目基本没有,新增加了测距题目,甚至物联网题目,Ai题目都出来了.直接电赛变算法+钞能力大赛.看到F题:测温+人脸识别,碰巧我们手头有调好的红外测温模块+树莓派+ope ...

  3. 2020电赛模拟题:自制积分式直流数字电压表

    双积分式直流数字电压表 By SCU Team 任务 全国大学生电子设计竞赛模拟题 在不采用专用A/D转换器芯片的前提下,设计并制作积分型直流数字电压表. 要求 1.基本要求; (1)测量范围: 10 ...

  4. 15电赛b题风力摆小记:陀螺仪计算激光点在大地坐标系下坐标

    加速度计计算激光点在大地坐标系下坐标 最近在做风力摆题目,我们想着求解激光点坐标.有两种方案: 利用摄像头做传感器,将摄像头放在坐标纸旁边,然后透视变换即可得到激光坐标. 利用陀螺仪解算. 因为不熟悉 ...

  5. 2020电赛经验总结+E题解题思路

    2020电赛经验总结+E题解题思路 取得的成果和经验 四川省2020年电子设计竞赛已经落下帷幕,第一次参加电赛,无论从知识还是经验上都有所获得.虽然只取得省三的成绩,但整个比赛过程为明年备战国赛具有指 ...

  6. 电赛 | 电源题软件如何准备?

    关注.星标公众号,直达精彩内容 摘要:PWM和SPWM在电源的备战中是很有必要的.基础的恒流源.恒压源需要使用PWM的占空比及频率来达到数控的作用,往后的逆变则需要用到SPWM.当然还有ADC.DAC ...

  7. 电赛猜题?我觉得没用,还不如做好这些!

    01 前言 大家好,我是张巧龙,转眼又到22年电赛,这个公众号上有很多同学可能都参加过电赛,有毕业的已经工作的,也有没毕业的今年要参加. 我第一次接触电赛是在大一暑期,从参加电赛到指导学生参加电赛,转 ...

  8. 2019年电赛D题《简易电路特性测试仪》全过程

    本人为团队中负责硬件部分,为了准备2022年电赛,本队伍已经制作2019年和2021年电赛信号题,本次主要讲解为2019年电赛D题硬件部分,少部分为软件需要做的部分.后续会对整个硬件进行优化和整理. ...

  9. 2021年电赛 E题 数字传输

    数字-模拟信号混合传输收发机(E题) 目录 题目 方案 工程文件 题目 (2) 实现数字信号传输. 首先键入4个0~9的一组数字,在发送端进行存储并显示,然后按下发送键对数字信号连续循环传输.在接收端 ...

最新文章

  1. 老版本的Spring应用该如何应对这次的RCE漏洞?
  2. 百度地图api location 211 sn校验失败
  3. android软键盘上推ui解决
  4. 骗子收录网站源码PHP搭建
  5. 太阳能传感器目前主要故障问题解决方案
  6. 任何一台计算机都可以安装win 7系统,最全面win7系统如何安装
  7. 麦克纳姆轮运动特性分析(图片版)
  8. php js 报错信息,JavaScript中错误异常的分析(附示例)
  9. HTTP请求字符限制和HTTP状态码
  10. 吃鸡ios和android灵敏度,吃鸡手游pc版怎么调灵敏度参数教程 | 手游网游页游攻略大全...
  11. MongoDB之Robo3T客户端安装
  12. 戴尔笔记本电脑耳机插入声音外放问题
  13. linux coreclr编译,.NET跨平台:在Linux Ubuntu上编译coreclr/corefx/dnx(20150617)
  14. Ip可视一键对讲机特点
  15. Ubuntu server安装ubuntu桌面,安装软件中心-ubuntu software
  16. linux怎么查看当前系统版本号,如何查看当前系统版本的版本号
  17. “风华绝代”的【手机展示架】买了就绝不后悔
  18. 多轴控制玻璃行业程序 相机 ST LAD SFC
  19. DateEdit和TimeEdit
  20. matlab怎样编程形成软件_matlab是什么编程语言?matlab是编程语言吗

热门文章

  1. 学习bootstra前端框架2
  2. COMSOL——相场模拟
  3. Migrating to the New Material Buttons and their Themes
  4. 第十届中国大学生服务外包创新创业大赛总结
  5. 最全的Python定时任务神器,Schedule学会这10招足够了!
  6. 新手坐高铁怎么找车厢_动车怎么找车厢和位置 动车的座位号是如何分布的
  7. 桌面自动化-SuperPatrick工具图像识别点击解析
  8. 【无标题】item_search - 按关键字搜索淘宝商品API接口调用展示
  9. 100个名著浓缩一句话
  10. Life——一个简洁易用的强化学习库,基于pytorch