CN114343662B - 一种环形心电信号数据读取方法 - Google Patents
一种环形心电信号数据读取方法 Download PDFInfo
- Publication number
- CN114343662B CN114343662B CN202111513650.2A CN202111513650A CN114343662B CN 114343662 B CN114343662 B CN 114343662B CN 202111513650 A CN202111513650 A CN 202111513650A CN 114343662 B CN114343662 B CN 114343662B
- Authority
- CN
- China
- Prior art keywords
- data
- read
- queue
- queue head
- head pointer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Measurement And Recording Of Electrical Phenomena And Electrical Characteristics Of The Living Body (AREA)
Abstract
本公开涉及一种环形心电信号数据读取方法,所述心电信号数据采用环形队列存储,所述方法包括以下步骤:为每一个需要读取心电信号数据的应用,创建一个队列头指针和预读取序号参数;对当前要读取心电信号数据的应用,获取其队列头指针以及相应地预读取序号参数值;通过“队列头指针+预读取序号参数”计算要读取的心电数据的位置,从而在不移动队列头指针的情况下,获取要读取的心电信号数据;所述要读取的心电信号数据相对队列头指针的位置等于预读取序号参数值。本公开方法读取心电数据时降低了对运算能力和内存的需求,非常适合在穿戴式、低功耗的心电装置上使用。
Description
技术领域
本公开涉及医疗仪器技术、设备与医学专用软件,具体涉及一种环形心电信号数据读取方法。
背景技术
人体心电信号的实时分析在临床上具有重要的意义,但是局限于功耗、内存和运算能力等原因,很难在穿戴式设备上做到心电信号的实时分析。因此如何优化心电分析流程,达到降低运算功耗、减少内存需求和降低计算复杂度的目的,便显得异常重要。其中,心电信号处理的第一个步骤便是数据存储:如何对心电数据进行高效的存储和高效的读取,达到减少内存需求,同时降低计算复杂度,以便后续算法的实时分析,是当前要解决的问题。
发明内容
鉴于此,本发明提供一种环形心电信号存储方法,该方法能够极大地降低了传统存储机制的数据重复复制频率和内存使用需求,从而达到降低功耗、降低成本的目的。所述心电信号数据采用环形队列存储,所述方法包括下述步骤:
S100、为每一个需要读取心电信号数据的应用,创建一个队列头指针和预读取序号参数;
所述队列头指针用于锁定当前应用要读的起始数据;
所述预读取序号参数用于标识预读取数据相对起始数据的位置,其中起始数据的位置为0;
S200、对当前要读取心电信号数据的应用,获取其队列头指针以及相应地预读取序号参数值;
S300、通过“队列头指针+预读取序号参数”计算要读取的心电数据的位置,从而在不移动队列头指针的情况下,获取要读取的心电信号数据;
所述要读取的心电信号数据相对队列头指针的位置等于预读取序号参数值。
在所述方法中,所述方法还包括下述步骤:
对每一个需要读取数据的应用,判断是否需要对已读取数据进行回溯,若不需要对已读取数据进行回溯,则将其对应的队列头指针移动到indexLast+1的位置上;
其中,indexLast为已读取数据的最后一个数据位置;
若所有应用对一段已读取数据均不需要回溯,则这段已读取数据的空间被释放,可以用于存储新数据。
在所述方法中,所述环形队列长度采用下述公式确定:
环形队列长度=最小心率间隔+冗余值;
最小心率间隔=采样率×(60/最小心率值);
其中,采样率为心电装置的采样频率;
冗余值为设定值,用于确保新存储的数据不覆盖尚未处理的数据。
与现有技术相比:
本公开方法在读取数据时,无需另辟空间,和数据采集一起共用一个队列缓存,降低了读取数据时对设备运算能力和内存的需求,非常适用于穿戴式、低功耗的使用,而采用本公开方法读取数据的设备可以降低成本。
附图说明
图1是本发明实施例中的一个方法流程示意图;
图2是本发明实施例中读取数据处理时示意图;
图3是本发明实施例中读取数据处理后释放已读取数据空间的示意图;
图4是本发明实施例中关于心电数据存储、心电R波的实时检测读取心电数据、以及蓝牙传输读取心电数据流程示意图。
具体实施方式
在一个实施例中,采用一种环形心电存储队列,所述心电信号数据采用环形队列存储,所述方法包括下述步骤,如图1所示:
S100、为每一个需要读取心电信号数据的应用,创建一个队列头指针和预读取序号参数;
所述队列头指针用于锁定当前应用要读的起始数据;
所述预读取序号参数用于标识预读取数据相对起始数据的位置,其中起始数据的位置为0;
S200、对当前要读取心电信号数据的应用,获取其队列头指针以及相应地预读取序号参数值;
S300、通过“队列头指针+预读取序号参数”计算要读取的心电数据的位置,从而在不移动队列头指针的情况下,获取要读取的心电信号数据;
所述要读取的心电信号数据相对队列头指针的位置等于预读取序号参数值。
在上述方法中,采用环形队列,可以一边存储,一边读取,能够有效地把空间利用起来。由于心电数据在分析过程之中经常需要“回溯”分析,即在对一段数据进行分析之后,针对不同情况,可能发现需要回溯到前面某一时间段重新进行分析,因此上述方法对现有技术中的环形队列读取上进行了改进。
具体实现方法为,创建多个队列头,比如为一个需要读取心电信号数据的心电R波实时检测创建一个队列头,记作frontR,同时为另一个需要读取心电信号数据的应用蓝牙传输,创建一个队列头,记作frontBT。通过采用队列头指针来锁定当前应用要读的起始数据,各个应用读取数据互不影响。同时,为每个需要读取心电信号数据的增加一个初始值为0的预读取序号参数,比如为心电R波的实时检测创建一个预读取序号参数indexR,为蓝牙要传输创建一个预读取序号参数,记作indexBT。通过“队列头指针+预读取序号参数”计算要读取的心电数据的位置,从而在不移动队列头指针的情况下,获取要读取的心电信号数据。在这种方式下,可以将心电数据采集和读取集中到一个队列中,无需另外开辟读取数据的缓存空间,即使回溯数据,也无需重新复制到专用数据缓存中,大大减少内存需要;由于减少数据复制,从而也减少了复制过程中额外的运行时间。
当读取数据时,对应的队列头暂时保持不变,先通过队列头结合预读取序号参数的形式读取相应的数据。比如现在一个心电数据读取应用记作A,为其创建队列头指针为frontA,预读取序号参数indexA=0,该指针中存放的队列物理位置为2,即frontA=2,此时如果读取第一个数据,则indexA=0,对应的队列物理位置为frontA+indexA=2+0=2;读取第二个数据,则indexA=1,对应队列物理位置为frontA+indexA=2+1=3,通过*(frontA+indexA)可以获得相应物理位置上存放的心电数据。
在此过程中,frontA保持不变,如果需要对已读取数据进行回溯,不用再进行数据重复复制。例如在处理完indexA=100的数据之后,发现需要回溯到前第60个数据,只需要把indexA修改为100-60=40即可。
在一个实施例中,一边使用环形队列存储数据,存储一个,队尾指针rear下移到下一个物理位置上。有两个心电数据读取应用A和B,分别记为frontA,frontB,indexA心电数据读取应用A中的预读取序号参数。图2为心电数据读取应用A在进行数据处理时的示意图,frontA保持不变,先通过序号indexA读取相应的数据。图3为心电数据读取应用A在进行数据处理后的示意图,在确定读取完一段数据后,将已处理数据释放出来,此时frontA移动到已处理数据的最后一个物理地址的下一个地址上。也就是,对于一个需要读取心电信号数据的应用,当其已读取完一段数据,不需要对已读取数据进行回溯,若需要释放这段数据所占的空间,则使其对应的队列头指针移动到这段数据的最后一个数据的下一个物理地址即可。
在一个实施例中,创建了一个环形队列,使用本公开方法实现心电R波的实时检测和数据的实时蓝牙传输,具体方法步骤如下,如图4所示:
首先,对环形队列初始化。具体地,创建一个长度大于一个最小心率间隔的队列。若将最小心率间隔定义为两个心跳之间的采样点数,即:
最小心率间隔=采样率×(60/最小心率)
其中,最小心率一般选取30次/分钟。
因此,队列长度=采样率×(60/最小心率)+冗余值
其中,冗余值为设定值,用于确保队列长度大于一个最小心率间隔,从而确保算法至少可以找到一个R波峰,同时保证新来的数据没有把还没来得及处理的数据覆盖掉,该值根据算法复杂程度和处理器速度而定。
如果采样率为250Hz,最小心率取30,冗余值取100,则:
队列长度=为250×(60/30)+100=600。
接下来,初始化队列尾指针rear和读取指针frontR、indexR、frontBT和indexBT均为0,其中frontR、indexR分别为R波检测对应的队列头指针和预读取序号参数,frontBT和indexBT分别为蓝牙传输的队列头指针和预读取序号参数。
其次,对心电数据进行采集并写入。具体地,通过模数转换器,读取采集到的心电数据,并写入队列中,每写入一个数据,列尾指针rear加1。
第三,对R波进行实时检测。当队列中存入数据的数量大于一个最小心率间隔时,对R波进行检测。使用indexR读取队列中的数据,找出缓存中所有的R波峰,并保存最后一个R波的位置序号为indexLastR。
第四,对R波检测数据的释放。由于前一步骤在R波检测的时候,是用indexR进行数据读取,因此在分析完毕之后,还需要把已处理数据的空间释放出来。此时,indexR的值为已读取数据的长度。直接将frontR更新为frontR+indexR+1的值,此时frontR指向下一次要读的心电数据的起始位置。等到下次队列中数据大于一个最小心率间隔,此时直接从frontR,也即新数据的第一个数据开始分析,从而保证最后一次R波不会被重复识别。
由于蓝牙传输的一个数据包大小远小于最小心率间隔,故它的释放频率要比R波检测的频率高。设定蓝牙传输的数据包的大小,例如数据包的大小为20个心电数据,当队列中存入的心电数据大于20个时,依次读取要传输的心电数据,直至读取完20个心电数据,一一进行发送。
当一个蓝牙数据包发送完毕,则修改frontBT的值为frontBT+indexBT+1值,释放已传输心电数据的存储空间。
当所有应用对一段已读取数据均不需要回溯,则这段已读取数据的空间被释放,能够用于存储新的心电数据。也就是当一段数据空间不被任何一个队列头指针锁定时,这段数据空间能够被用于存储新的心电数据。
通过上述实施例可以看出,本公开方法在读取数据时,增加预读取序号参数实现预读取,在方便数据回溯的同时,降低了数据的复制频率和内存空间的需求;加入多个读取指针,使得一个存储空间可以同时被多个处理进程使用,降低数据的复制频率和内存空间的需求,非常适用于穿戴式、低功耗的使用,而采用本公开方法读取数据的设备可以降低成本。
本公开方法虽然在心电数据上应用,但是理论上可以在任何类似数据采集和分析的设备上面应用,例如其他人体生理信号脉搏波、呼吸波、压力波、脑电波、肌电等采集设备上应用。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本公开方法可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本公开而言更多情况下,软件程序实现是更佳的实施方式。
尽管以上结合附图对本发明的实施方案进行了描述,但本发明并不局限于上述的具体实施方案和应用领域,上述的具体实施方案仅仅是示意性的、指导性的,而不是限制性的。本领域的普通技术人员在本说明书的启示下和在不脱离本发明权利要求所保护的范围的情况下,还可以做出很多种的形式,这些均属于本发明保护之列。
Claims (2)
1.一种环形心电信号数据读取方法,所述心电信号数据采用环形队列存储,其特征在于,所述方法包括以下步骤:
S100、为每一个需要读取心电信号数据的应用,创建一个队列头指针和预读取序号参数;
所述队列头指针用于锁定当前应用要读的起始数据;
所述预读取序号参数用于标识预读取数据相对起始数据的位置,其中起始数据的位置为0;
S200、对当前要读取心电信号数据的应用,获取其队列头指针以及相应地预读取序号参数值;
S300、当读取数据时,对应的队列头暂时保持不变,通过“队列头指针+预读取序号参数”计算要读取的心电数据的位置,从而在不移动队列头指针的情况下,获取要读取的心电信号数据;
所述要读取的心电信号数据相对队列头指针的位置等于预读取序号参数值;
对每一个需要读取数据的应用,判断是否需要对已读取数据进行回溯,若不需要对已读取数据进行回溯,则将其对应的队列头指针移动到indexLast+1的位置上;其中,indexLast为已读取数据的最后一个数据位置;
所述环形队列长度采用下述公式确定:
环形队列长度=最小心率间隔+冗余值;
最小心率间隔=采样率×(60/最小心率值);
其中,采样率为心电装置的采样频率;
冗余值为设定值,用于确保新存储的数据不覆盖尚未处理的数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括下述步骤:
若所有应用对一段已读取数据均不需要回溯,则这段已读取数据的空间被释放,能够用于存储新数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111513650.2A CN114343662B (zh) | 2021-12-10 | 2021-12-10 | 一种环形心电信号数据读取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111513650.2A CN114343662B (zh) | 2021-12-10 | 2021-12-10 | 一种环形心电信号数据读取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114343662A CN114343662A (zh) | 2022-04-15 |
CN114343662B true CN114343662B (zh) | 2023-07-18 |
Family
ID=81099407
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111513650.2A Active CN114343662B (zh) | 2021-12-10 | 2021-12-10 | 一种环形心电信号数据读取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114343662B (zh) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030236946A1 (en) * | 2002-06-20 | 2003-12-25 | Greubel James David | Managed queues |
US10013235B2 (en) * | 2013-06-13 | 2018-07-03 | Travelport, Lp | Method and system for queuing data for multiple readers and writers |
CN104636085B (zh) * | 2015-01-27 | 2017-10-03 | 北京理工大学 | 一种片上网络消息缓冲区的存储管理模块 |
US11080189B2 (en) * | 2019-01-24 | 2021-08-03 | Vmware, Inc. | CPU-efficient cache replacment with two-phase eviction |
CN111245742B (zh) * | 2019-12-31 | 2022-03-08 | 宁波舜宇智能科技有限公司 | 数据的缓冲方法、装置、计算机和可读存储介质 |
CN113419715B (zh) * | 2021-06-17 | 2024-06-25 | 吕锦柏 | 一种基于链表的动态内存管理方法和设备 |
CN113760782A (zh) * | 2021-08-23 | 2021-12-07 | 南京森根科技股份有限公司 | 一种可动态调节的环形缓存系统及其控制方法 |
-
2021
- 2021-12-10 CN CN202111513650.2A patent/CN114343662B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114343662A (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ieong et al. | A 0.83-$\mu {\rm W} $ QRS Detection Processor Using Quadratic Spline Wavelet Transform for Wireless ECG Acquisition in 0.35-$\mu {\rm m} $ CMOS | |
EP3225158A2 (en) | Method and apparatus for heart rate and respiration rate estimation using low power sensor | |
Deepu et al. | A 2.3$\mu $ W ECG-On-Chip for Wireless Wearable Sensors | |
CN113499079B (zh) | 一种心电图中的房颤检测方法 | |
JP2015208682A (ja) | 心拍数変動定量化のための中心モーメントのストリーミング更新 | |
CN101919704B (zh) | 一种心音信号定位、分段方法 | |
WO2020125494A1 (zh) | 一种生物信号的分析处理方法、装置及设备 | |
CN114343662B (zh) | 一种环形心电信号数据读取方法 | |
CN112102938A (zh) | 一种睡眠分期方法及装置 | |
CN111557661A (zh) | 心电信号处理方法及装置 | |
JP2023035888A (ja) | 無線レーダー信号に基づいて心拍データを抽出するための装置及び方法 | |
WO2017146511A1 (en) | Method and apparatus for detecting live tissues using signal analysis | |
CN112349411B (zh) | 基于大数据的icu病人抢救风险预测方法与系统 | |
CN114668401A (zh) | 一种ai心电训练数据标注方法、装置、电子设备及介质 | |
Yan et al. | A resource-efficient, robust QRS detector using data compression and time-sharing architecture | |
CN115500807B (zh) | 基于小型卷积神经网络的心律失常分类检测方法及系统 | |
CN115581459A (zh) | 基于LevKov的多通道固定频率噪声滤除方法、计算机设备和程序产品 | |
Djumanov et al. | Determination of characteristic points based on wavelet change of electrocardiogram signal | |
CN107684422A (zh) | 一种胎儿心电分离方法及装置 | |
CN113876332B (zh) | 一种心电信号监测装置与方法 | |
Yang et al. | Development of a digital signal processor-based new 12-lead synchronization electrocardiogram automatic analysis system | |
US20240321417A1 (en) | Computer system and method for efficient index creation for a streaming database | |
Khatib et al. | A multiprocessor system-on-chip for real-time biomedical monitoring and analysis: ECG prototype architectural design space exploration | |
CN1147272C (zh) | Holter系统的数据压缩方法及其装置 | |
WO2018023696A1 (zh) | 一种胎儿心电分离方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |