【项目实战-MATLAB】:基于CNN的心音信号分类

心脏听诊是先天性心脏病(简称:先心病,CHD)初诊和筛查的主要手段。本项目对先心病心音信号进行分析和分类识别研究,提出了一种基于卷积神经网络的先心病分类算法。本文算法基于临床采集的已确诊先心病心音信号,首先采用心音信号预处理算法提取并组织一维时间域上心音信号的梅尔系数转变成二维特征样本。然后利用卷积神经网络进行分类识别,证实了本文方法有效地提高了心音信号分类的鲁棒性和准确性,有望应用于机器辅助听诊。

【项目实战-MATLAB】:基于CNN的心音信号分类_第1张图片
图 1

小波去噪预处理

心音信号在采集过程中不可避兔地存在一些噪声干扰,干扰由多种原因造成,例如皮肤与传感器的摩獠音、采集环境的背景噪声、患者的呼吸扰动音等噪声干扰,故需对心音信号进行去噪处理,得到噪声较少的心音信号。去噪的方法有高通媳波、低通滤波、切比雪夫滤波、卡尔曼滤波等,而目前广泛应用在心音信号去噪处理的是小波去嗅1。文献[1)在小波基选择、小波分解层数、阈值确定方面做了大量的研究工作,指出如果选择db6小波,将分解层数设置为5层或6层,阈值选择为每一层细节分量最大值的10%,可得到较好的去噪效果。采用小波去噪的方法是为了获得最好的包络效果,利于心音信号分段定位,但未关心去嗓后心音信号的有效性信息。去嗓过程中,分解层数直接影响去噪后心音信号的有效成分,最终影响分类的准确率,过多的分解层数会对原始心音信号产生变形,不利于保留心音信号的信息量,选择合适的小波分解层数是本文的一个研究内容。
小波去噪算法基本思想是根据信号频率按层分解,每层分解是从原始信号的起始频率到信号的二分之一频率。心音信号小波去噪算法分解示意图如图2所示
图2中心音图(phonocardigram.PCG) (以符号PCG表示)表示原始心音信号,ail=12,…, n)表示分解层数第层的近似分星, di(F-1.2,…, n)表示分解层数第层的细节分量。正常心音信号的频率在5 ~60O Hz范围内,心音信号中的某些病理性杂音频率可以到1500 Hz,通常认为2 0OHia以上基本不包含有效信息,信号重构中可以直接置零,结合图2.n的求解满足如式(1))所示:
在这里插入图片描述

【项目实战-MATLAB】:基于CNN的心音信号分类_第2张图片
图 2

MFCC特征提取

MFCC中的梅尔刻度是一种基于人耳对等距的音高变化的感官判断而制定的非线性频率刻度,能较好地反映人耳对声音的特点。
【项目实战-MATLAB】:基于CNN的心音信号分类_第3张图片
图 3

为了加快运算 调整图像大小
异常:
【项目实战-MATLAB】:基于CNN的心音信号分类_第4张图片
正常:
【项目实战-MATLAB】:基于CNN的心音信号分类_第5张图片

CNN结构

【项目实战-MATLAB】:基于CNN的心音信号分类_第6张图片

训练结果:
【项目实战-MATLAB】:基于CNN的心音信号分类_第7张图片
测试集准确率:0.8000

代码链接:https://download.csdn.net/download/qq_45047246/85223698

你可能感兴趣的:(项目实战MATLAB,matlab,机器学习,人工智能)