首页 > 其他分享 >基于Matlab自适应滤波的胎儿心跳信号提取与分析

基于Matlab自适应滤波的胎儿心跳信号提取与分析

时间:2024-12-28 20:30:14浏览次数:8  
标签:NLMS LMS 滤波 算法 Matlab 信号 胎儿 心跳

胎儿心跳信号分离是医学信号处理中的重要研究课题,对胎儿健康状况的监测和早期疾病诊断具有重要意义。然而,由于母体心跳信号和其他噪声的干扰,准确提取胎儿心跳信号面临巨大挑战。为了解决这一问题,本研究基于自适应滤波理论,设计并实现了一套完整的胎儿心跳信号分离代码框架。我们实现了标准最小均方(LMS)、归一化最小均方(NLMS)以及泄漏型最小均方(L-LMS)等常用自适应滤波算法,并扩展了这些算法在单输入单输出(SISO)和多输入单输出(MISO)模式下的应用场景,以应对不同信号复杂度和多通道数据的需求。

本研究通过真实胎儿心电图(FECG)数据集进行验证,对代码的性能进行了系统评估和比较。实验结果表明,基于L-LMS算法的实现具有显著的鲁棒性和收敛性,在信噪比(SNR)和收敛速度方面优于其他算法。同时,我们的代码框架支持灵活的参数调整,例如步长因子、滤波器阶数和泄漏系数,可适配不同应用场景和数据特征。针对多通道输入信号的MISO实现,通过有效融合腹部和胸部传感器记录的多通道数据,显著提高了胎儿信号分离的精度。

本文的研究为胎儿心跳信号分离提供了一个高效、实用的代码实现框架,并展示了自适应滤波算法在医学信号处理中的广阔应用潜力。所提出的代码框架不仅能够满足工程实现的需求,还为未来进一步优化算法性能和扩展临床应用奠定了坚实基础。

算法流程

运行效果

运行 MISO.m
图1: 多输入单输出系统滤波误差与胸部LMS

内容:
(1)黑色虚线:母体心跳信号。
(2)红色实线:从腹部信号中提取的胎儿心跳信号。

分析:
(1)LMS算法能有效分离胎儿心跳信号,但误差信号较大。
(2)提取的胎儿心跳信号存在一定的噪声干扰。
(3)LMS算法收敛速度较慢,对多输入信号的处理效果相对一般。

图2: 多输入单输出系统滤波误差与胸部NLMS

内容:
(1)黑色虚线:母体心跳信号。
(2)红色实线:从腹部信号中提取的胎儿心跳信号。

分析:
(1)NLMS算法通过归一化处理提高了信号分离的稳定性。
(2)相比LMS,误差幅度明显减小,信噪比有所提升。
(3)提取的胎儿心跳信号更加平滑,但仍然存在一定的波动。

图3: 多输入单输出系统滤波误差与胸部L-LMS

内容:
(1)黑色虚线:母体心跳信号。
(2)红色实线:从腹部信号中提取的胎儿心跳信号。

分析:
(1)L-LMS算法加入泄漏因子后,对母体心跳信号的干扰抑制效果更好。
(2)提取的胎儿心跳信号比LMS和NLMS更加平滑,噪声较小。
(3)L-LMS算法表现出更好的鲁棒性和稳定性,适合多输入场景。

图4: 胎儿信号提取对比(LMS, NLMS, L-LMS)

内容:
(1)上图显示三种算法提取的胎儿信号。
(2)下图为放大后的细节,显示胎儿信号的局部波形。

分析:
(1)三种算法的胎儿信号提取效果对比明显。
(2)LMS算法提取的信号波形不够平滑,存在较多波动。
(3)NLMS算法的信号提取性能较好,波形更接近真实胎儿心跳。
(4)L-LMS算法表现最佳,提取的信号最接近理想状态。

图5: 滤波器输出对比(LMS, NLMS, L-LMS)

内容:
(1)显示三种算法的滤波器输出信号。

分析:
(1)LMS的滤波器输出波动较大,表现出一定的不稳定性。
(2)NLMS通过归一化改善了收敛性能,输出信号更加平滑。
(3)L-LMS算法在母体信号的抑制上最为有效,输出信号的误差最小。

总结:
性能比较:
(1)LMS:简单但容易受噪声影响,提取效果一般。
(2)NLMS:通过归一化提高了收敛速度和信噪比,提取效果优于LMS。
(3)L-LMS:表现最佳,具有较强的抗噪能力和鲁棒性。

使用建议:
(1)对于复杂信号环境,建议优先选择L-LMS算法进行胎儿心跳信号提取。
(2)NLMS适用于对计算效率有更高要求的场景。
(3)LMS适合简单的信号处理任务

运行 SISO.m
图1: 腹部和胸部信号平均值

内容:
(1)上图显示腹部信号的平均值(蓝色波形)。
(2)下图显示胸部信号的平均值(红色波形)。

分析:
(1)腹部信号(蓝色)振幅较小且包含更多噪声,是胎儿和母体心跳的混合信号。
(2)胸部信号(红色)振幅较大,主要是母体心跳信号。
(3)从波形特点可以看出,母体心跳的干扰明显,需要滤波算法来分离胎儿心跳。

图2: 单输入单输出系统(LMS)滤波误差

内容:
(1)黑色虚线:母体心跳信号。
(2)红色实线:LMS算法分离出的胎儿心跳信号。

分析:
(1)LMS算法在初步分离胎儿信号时效果有限,胎儿心跳信号中仍存在较多波动和噪声。
(2)LMS的收敛速度较慢,误差信号振幅相对较大。
(3)提取的胎儿信号基本能够反映心跳的主要特征,但精确度有待提高。

图3: 单输入单输出系统(NLMS)滤波误差

内容:
(1)黑色虚线:母体心跳信号。
(2)红色实线:NLMS算法分离出的胎儿心跳信号。

分析:
(1)NLMS通过对输入信号归一化,提升了算法的收敛速度。
(2)胎儿心跳信号相比LMS更加平滑,误差振幅减小。
(3)信号分离性能显著优于LMS,但仍有细微的母体干扰。

图4: 单输入单输出系统(L-LMS)滤波误差

内容:
(1)黑色虚线:母体心跳信号。
(2)红色实线:L-LMS算法分离出的胎儿心跳信号。

分析:
(1)L-LMS在引入泄漏因子后,进一步降低了滤波误差,表现出更高的鲁棒性。
(2)分离出的胎儿信号在平滑性和准确性上优于LMS和NLMS。
(3)信号波动较小,噪声抑制效果明显。

图5: 胎儿信号对比(LMS、NLMS、L-LMS)

内容:
(1)上图显示三种算法提取的胎儿心跳信号。
(2)下图是局部放大后的波形细节。

分析:
(1)LMS提取的信号波形较粗糙,误差较大。
(2)NLMS提取的信号较平滑,收敛效果显著提升。
(3)L-LMS的分离性能最佳,波形最接近真实胎儿心跳,局部噪声几乎不可见。

图6: 滤波器输出对比(LMS、NLMS、L-LMS)

内容:
(1)三种算法的滤波器输出信号对比。

分析:
(1)LMS输出信号仍存在较大的母体信号干扰,误差较大。
(2)NLMS通过归一化,滤波器输出信号更加平滑,母体干扰显著减少。
(3)L-LMS表现最佳,输出信号误差最小,基本消除了母体信号干扰。

总结
信号分离性能:
(1)LMS:实现简单,但信号分离性能较差,误差较大。
(2)NLMS:通过归一化提升了分离性能,信号平滑度和精确度显著改善。
(3)L-LMS:性能最佳,波形平滑且误差最小,适用于复杂场景。
推荐使用:
(1)对于高要求的胎儿心跳信号提取任务,建议优先使用L-LMS算法。
(2)NLMS适合性能要求较高但计算资源有限的场景。
(3)LMS适合入门级或简单的信号分离任务。

标签:NLMS,LMS,滤波,算法,Matlab,信号,胎儿,心跳
From: https://blog.csdn.net/ZSW1218/article/details/144708435

相关文章