人体生理参数信号采集项目——心电信号
1.硬件——焊接调试
趣事:由于测量手法问题,以及对示波器不太熟悉,差点以为没信号,都打算重焊一块板子了,但,实际上,信号输出是相对完美的;
遇到的疑难杂症:
1)50Hz陷波电路没用,发现是仿真失误,没用仔细看抑制系数,光看了一个波形轮廓就以为能抑制50Hz的干扰了,实际上抑制效果不行,换上新计算的电阻,电容就欧克了
2)由于导联脱落电路没用,一直以为是代码有问题,结果是板子有问题;由于电阻不分压,一直以为是虚焊,结果是原理图有问题。
调试经历:
1):先测各个静态工作点
2):上信号,测试,我的板子是一板通的,但是,如果,信号出不来的,那就只能,分阶段,测试各个测试点了
2、软件——调试代码:
总体思路:
1)先调用ADC函数采集心电信号,然后,将其储存到数组里面;
2)然后将采集到的心电信号,依次经过各个滤波函数的“洗礼”,最后输出;滤波函数依次有:50Hz陷波函数(抑制工频干扰);高通滤波函数(抑制基线漂移,本质抑制低频信号);低通滤波函数(抑制高频噪声)。信号的高,低频是相对而言。
3)然后,调用心率计算函数,计算出心率。核心就是:Rate=60/T(两个波峰之间的间隔时间),确定波峰:当前这个波峰,比上一个峰高,还比下一个峰高,并且不低于波峰的最低标准;确定T:两个确定的波峰之间的间隔时间,并且要大于不应期。
4)最终,导联脱落,直接调用库函数中检测引脚高低电平状态的函数【HAL_GPIO_ReadPin()】,进行一个判断。
难关破:
1)确定滤波系数,我运用的列举法,实践对比,信号的好坏,在Matlab上,不断尝试。直至找到最佳的滤波系数