一种基于心率实时监测的系统实现

2021-11-24 05:08闫洋洋毛君龙李庆奥袁久达陈文钢
科学与生活 2021年18期

闫洋洋 毛君龙 李庆奥 袁久达 陈文钢

摘要:提出了一种基于傅里叶变换的采用FIFO数据格式进行数据存储与处理的算法模型,并基于此搭建了硬件系统。首先介绍了硬件系统框架及各外围电路组成,其次介绍了经FIFO数据格式优化后的傅里叶算法[1]的内容原理。最终试验表明,硬件系统稳定可靠,可实时接收心电信号,优化后的算法在保证心率结果精准度的同时切实缩短了心率计算周期,提高了系统的响应速率,即提高了心率监测的实时性。因此证明本心率实时监测系统是切实可行的。

关键词:心率实时监测;嵌入式仪器;傅里叶变换

0引言

心脏类疾病已经成为人们日常生活中威胁健康的最重大疾病之一。而心率监测可以对此类疾病起到良好的预防和监控作用。因此心率监测技术的发展对于中老年群体,孕妇,相应患者以及亚健康群体的身体健康具有重要意义。由此市场上也出现了大量的包括可穿戴式的心率监测设备,如运动手环等等。不少低价心率监测设备只能人为触发监测而不能实时监测,大部分的可实时的心率监测设备在实时性方面存在一定的滞后性以及存在实时监测导致的明显的精确性降低等问题。

根据以上技术方面的不足,本实验采用一种优化后的基于FIFO数据处理的傅里叶变换算法。搭建硬件处理系统,对原始心电信号进行抽样检测,对由A/D转换后的数据使用优化后的算法进行处理。通过实验论证,本系统在保证实时性提高的同时,保证了心率数据的准确性,并在一定条件下使误差稳定在5%的范围内。

1硬件电路实现

1.1硬件系统框图

系统框图如图1所示,电路主要分为两部分。第一部分为模拟前端电路,由心电监护三导联线将心电的原始电压信号经模拟前端芯片ADS1292转化为24位的数字信号,可通过SPI兼容串行接口输出。第二部分为围绕STM32F103C8T6设计的MCU控制及数据处理系统电路[2],该系统的主要功能为驱动模拟前端芯片ADS1292进行数据采集,并在接收到模拟前端的心电信号之后对心电信号进行数据处理。

1.2单元电路介绍

模拟前端电路是心电采集电路设计的关键,原理图如图2所示,本系统采用生物电传感器,通过置于体表的多个测量电极收集心脏起搏所产生的微小电位变化,并在对该模拟信号进行低通滤波器滤波[3]后传导至模拟前端芯片ADS1292。由于此时模拟前端接收到的模拟信号十分微弱,信号幅值较小,可通过ADS1292内置的可编程增益放大器(PGA)进行12倍的信号幅值放大。经放大后的模拟信号通过24位的ADC转化为数字信号。同时经过PGA放大后的信号可明显降低输入参考噪声,这在测量低电平生物势信号时十分有效。

本系统采用STM32F103C8T6作为系统的控制核心和数据处理核心,该单片机集成了高性能32位Cortex-M3的RISC内核,工作频率为72MHz,内置高速存储器,2个SPI兼容串行接口,足以满足系统的外部通信和数据运算需求,内含DSP指令,可进行基4的快速傅里叶变换。主控的HSE时钟电路采用了8MHZ外部晶振作为系统正常运作时的时钟源,该时钟源经过STM32F103C8T6内部的锁相环电路(PLL)倍频后可以刚好达到72MHZ[4]。主控的LSE时钟电路采用了32.768KHz的外部晶振作为系统的RTC时钟。

2算法设计

2.1对直流分量的处理

在实际设备上进行FFT变换时,由于直流分量占较大比重,直接傅里叶变换后某些低频分量会受其较大影响产生误差。并且采样得到的AD转换值都含有较大直流恒定成分,在计算机以及嵌入式设备中直接傅里叶变换极易导致数据太大而溢出,产生重大错误。所以在实际FFT变换之间,应提前滤除直流分量。

2.2一种基于FIFO数据处理格式的傅里叶优化算法实现

在对连续信号进行傅里叶变换与谱分析时,有三个重要参量:采样点数(N)、采样频率(Fs)、最小频率分度值(F)。在采样点数保持一定的情况下(本实验N=1024):如果采样频率越高,则每次采集点采样数据所用的时间就越短,实时性就越高,但频率分辨率会降低,导致误差变大。如果在符合采样定律的情况下采样频率越低,则最小频率分度值会提高,结果越精确。但会使采样周期时间延长,降低实时性。

采样频域的大小与频率精确度是一对矛盾。本实验采取一种基于FIFO的优化算法[5]:在内存中定义一个1024*8bit的FIFO数据。规定一个变量,并令A=α*N。称α为采样深度,A为数据采入量。在第一次采集后将1024点的AD值载入FIFO,当做最初数据,之后进行1024点的FFT。从第二次采集开始,可以每次采集A数量的采样点数,并将此时将FIFO中的前A点的数据移出FIFO,将后(1024-A)点数据移至FIFO前端,再将新采集的A点数据加载到FIFO后端,再进行FFT变换。由此可以通过更改采样深度的大小,改变每次傅里叶变换的数据采入量,进而改变实时性。

3实验数据与结果

由于真人的心电信号变化范围小且不方便准确测量实际对照值,所以实验以心电信号发生器为输入源产生实验所需心电信号,通过硬件系统的数据如下:

4结语

本设计搭建的硬件处理系统切实可行,效果良好。同时硬件系统的可行性也说明了本设计提出的算法模型是合理可行的,这也为其他心率监测产品的实时性问题的解决提出了一种思路,尤其是本算法有占用内存小,计算量适中,反应速度快,对硬件性能要求低等优点,非常适用于采用32位通用MCU为主控芯片的产品。

参考文献

[1]刘华龙,阮宜菁.傅里叶算法暂态特性以及微机保护的动作时间[J].机电设备,2020,37(06):75-78.

[2]叶蓓,何强.基于国产MCU的电流输出装置的设计与实现[J].上海船舶运输科学研究所学报,2020,43(02):15-20.

[3]高建民.一种基于STM32的智能准同期装置的研制[J].天津科技,2019, 46(08):48-51.

[4]紀峰,林郁兆.基于单片机PIC18F87J11的FIR数字低通滤波器设计与实现[J].电子世界,2017(10):175-176.

[5]陈坚,盛庆华,毛礼建,翟依依.基于STM32的音频信号分析仪的设计与实现[J].工业仪表与自动化装置,2016(03):19-21+34.

作者简介

闫洋洋(2000—),男,山东省人,本科生。

通讯作者

陈文钢(1977—),男,山东省人,副教授,研究方向:信号处理与嵌入式。