VivaQuant加速开发和验证用于动态心电图传感的嵌入式设备

“MATLAB、MATLAB编码器和Fixed-Point Designer使我们的小团队能够开发复杂的实时信号处理算法,对其进行优化以降低功耗和内存需求,加速嵌入式代码的实现,并执行医疗设备验证所需的严格测试。”

挑战

一种从噪声心电图信号中提取准确信息的嵌入式系统的设计与实现

解决方案

使用MATLAB开发一种去除带内噪声的算法,并使用Fixed-Point Designer和MATLAB编码器在ARM Cortex-M系列处理器上实现

结果

  • 发展速度加快300%
  • 功耗和内存消耗最小化
  • 启用严格测试
使用VivaQuant的嵌入式带内噪声消除算法处理前后的ECG片段。

每年,有400多万患者因心跳加速或剧烈跳动而头晕、晕厥或感到不适。他们的医生给这些患者提供了一个小型可穿戴设备,在他们进行正常活动的同时,通过心电图(ECG)持续监测他们的心律长达一个月。与在医院或医生办公室获得的心电图记录相比,这些动态心电图经常被噪声干扰,很难或不可能进行分析。噪声可能会导致假阳性和假阴性事件检测,从而增加分析的时间和成本,并可能导致延迟或漏诊心律异常。

VivaQuant的工程师在国家心脏、肺和血液研究所的支持下,正在开发一种心律监测设备,该设备将采用多域信号处理™(MDSP),在不失真ECG波形的情况下将带内噪声抑制高达26 dB。该设备采用MATLAB设计的算法®并使用MATLAB Coder™在嵌入式处理器上实现,能够从噪声心电图中准确检测心律失常。VivaQuant的创始人兼首席技术官玛丽娜·布罗克韦(Marina Brockway)表示:“我多年来一直使用MATLAB开发复杂的信号处理、控制和信息学算法。”。“有了MATLAB编码器和Fixed-Point Designer,我可以以前所未有的速度将想法转化为产品。”

挑战

简单的无限脉冲响应(IIR)滤波器可以减少ECG通带外的噪声,但它们不能在不失真信号的情况下消除通带内的噪声。为了实现这一目标,VivaQuant需要开发一种算法,对大型矩阵进行复杂计算,然后在一个足够小的设备上实现,该设备可以舒适地佩戴数周而无需更换电池。整个系统,包括微处理器和前端电子设备,需要实时采集和处理双矢量心电图,同时消耗不到1毫安的电流。

VivaQuant试图改进传统的设计方法,即算法由一个团队开发,然后交给另一个程序员团队执行。Brockway说:“当算法开发人员把一个设计抛给另一个团队时,沟通中往往会丢失很多东西。”。“我们需要在不影响性能或质量的情况下,与一个小团队一起完成这项工作。”

解决方案

VivaQuant使用MATLAB和MATLAB编码器加速开发。

Brockway和她的同事使用MATLAB和Signal Processing Toolbox™开发了该算法的浮点版本,该算法采用了矩阵运算、统计测试、数字滤波器以及信号检测和估计。

他们通过在包含相同ECG信号的干净版本和噪声版本的ECG数据上测试该算法来验证该算法。他们在已知干净的ECG信号中添加了各种噪声,然后应用这些算法验证噪声已被降低,并且原始ECG信号特征未被扭曲。

使用Fixed-Point Designer™,他们将浮点算法转换为定点算法。他们使用算法代码记录最小和最大变量值,并使用此信息优化定点数据类型,以确保在严格的处理器约束下的准确性。

为了保持浮点版本和定点版本之间的等效性,他们在每个优化步骤之后都会验证定点实现。该团队开发了一个MATLAB测试平台,根据测试数据自动运行定点和浮点版本,并对结果进行统计比较。

该团队通过使用MATLAB编码器为各个算法模块生成C代码来加速测试。他们还创建了可执行的MATLAB文件,以便在测试运行期间调用C代码。

他们为完整算法生成C代码,并将其部署到ARM®Cortex公司®-M系列处理器,并进行了进一步的优化和测试。

VivaQuant完成了一个原型,演示了在必要的功率限制下在ARM Cortex处理器上实现MDSP算法的可行性,现在正进入正式开发和测试阶段。

结果

  • 发展速度加快300%Brockway说:“通过MATLAB和MATLAB编码器,我们在六个月内实现了该算法,而无需聘请单独的编程团队。”。“我估计,我们的处理效率是传统方法的三到四倍,这使我们能够在实时嵌入式系统中快速部署高度复杂的算法,以改善患者的生活。”

  • 功耗和内存消耗最小化Brockway说:“我们的目标电池寿命是15立方厘米包装的三周。”。“Fixed-Point Designer帮助我们优化了算法并超过了这一目标。该设备重量不到15克,与当前的许多设备不同,它将穿着舒适。”

  • 启用严格测试Brockway指出:“对于医疗设备而言,质量、可靠性和安全性至关重要。”。“我们用MATLAB构建的测试平台使我们能够在开发的每个阶段进行严格的测试,并自动识别结果中的任何差异。”