基于卷积神经网络的心音信号识别

目录

一、引言

1.研究背景

2.研究方案

二、信号预处理

1.小波去噪

2.处理效果

三、特征提取

1.数据筛选

2.特征提取

四、模型搭建

一、引言

1.研究背景

心音信号作为生物医学信号中的重要研究对象,具有很高的临床价值,因此对心音信号的分析目前正受到学术界和产业界的重视。PhysioNet Challenge 大赛提供了942 名患者的数据集,如图1 ,包括患者的信息以及心音信号。

基于卷积神经网络的心音信号识别

图1 PhysioNet Challenge提供的数据集

心音信号是很有节律的周期信号,如图2,可以大致划分为四个周期,S1 发生在心动周期的收缩期,频率约为40~60HZ,S2 发生在心动周期的舒张期,频率约为60~100HZ.心动周期的时间约为1 秒。

基于卷积神经网络的心音信号识别

图2 心音信号及心动周期示例

2.研究方案

模型训练分为四个步骤。首先对训练信号进行去噪,然后对信号进行分割,得到相同长度的数据。对分割后的信号进行特征提取,并将特征送入神经网络训练得到分类模型。如图3所示

[En]

There are four steps in the model training. First, the training signal is denoised, and then the signal is segmented to get the data of the same length. The features of the segmented signals are extracted, and the features are sent to the neural network training to get the classification model. As shown in figure 3

基于卷积神经网络的心音信号识别

图3 模型搭建整体方案

; 二、信号预处理

1.小波去噪

数据集中提供的心音信号具有杂音。这将影响心音分类的预测。我们使用的去噪方法是小波去噪。小波去噪的原理是对信号进行小波变换后,实际信号的小波系数较大,噪声部分的小波系数较小。因此,通过选择合适的阈值,可以滤除系数较小的噪声,从而达到去噪的效果。去噪过程如图所示:首先确定阈值函数和分解层数,然后进行阈值去噪,最后利用小波逆变换重构信号。如图4所示

[En]

The heart sound signal provided in the data set has a murmur. This will affect the prediction of heart sound classification. The denoising method we use is wavelet denoising. The principle of wavelet denoising is that after the wavelet transform of the signal, the wavelet coefficient of the real signal is larger and the wavelet coefficient of the noise part is smaller. Therefore, the noise with small coefficient can be filtered by selecting the appropriate threshold, so as to achieve the effect of denoising. The denoising process is shown in the figure: first, the threshold function and the number of decomposition layers are determined, then the threshold denoising is carried out, and finally the inverse wavelet transform is used to reconstruct the signal. As shown in figure 4

基于卷积神经网络的心音信号识别

图4 小波去噪流程

2.处理效果

基于卷积神经网络的心音信号识别

图5 波形去噪效果

三、特征提取

; 1.数据筛选

得到干净的心音信号后,开始对信号进行特征提取。首先大赛给的数据集如图6,包括一个txt 文件,这个文件中记录了一个病人的心音信息和常规信息。其次是病人的心音wav 文件,这个文件记录了心音信号。还有一个tsv 文件,记录了S1 和S2 起始点和结束点的分割信息,这个信息会在下面数据截取中用到。我们对所有病人的wav 数据进行了统计,发现部分数据的wav 文件有缺失如图7,对于没有从四个位置进行心音检测的数据我们将不会喂入模型训练,在测试集中缺失的数据则用正常的数据补全。

基于卷积神经网络的心音信号识别

图6 数据集中的文件类型

基于卷积神经网络的心音信号识别

图7 每个病人心音信号数量统计(每个病人最多从四个位置得到心音信号)

2.特征提取

接下来,对于波形的特征提取,我们选择的方案是提取信号的Mel频率系数,这对于区分心音信号是非常有效的。我们的目标是得到心音信号的四通道特征图,然后将其发送到卷积神经网络进行训练。

[En]

Next, for the feature extraction of the waveform, the scheme we choose is to extract the Mel frequency coefficient of the signal, which is very efficient for distinguishing heart sound signals. Our goal is to get a four-channel characteristic map of heart sound signal, and then send it to the convolution neural network for training.

整个步骤共分为5 步,首先是数据截取:wav 文件的信号长度由4.8 秒到80 秒之间,利用tsv 文件,我们可以获取心音的周期,在其中截取四个周期长度的信号进行特征提取,长度约为3 秒。

通过高通滤波器增强高频信号并将整个时间信号分为100 帧,每帧长度约为30ms 。

随后对每帧信号进行加窗,并计算其功率谱。将频率转换到Mel 频率中,并采用Mel 滤波器组对信号进行滤波。将获得的能量取对数,并进行DCT 变换来获取信号的MFCC 特征,从而得到四通道100*30 的特征图。

四、模型搭建

接下来介绍一下我们搭建的模型,我们搭建的网络架构如图8所示,采用递增型网络结构。其中包含2 层卷积层,2 层全连接层。第1 层卷积层使用了32 个过滤器,卷积核大小为3 × 3 ,步长为1×1 ;池化为最大池化,大小为2 × 2 ,步长为1 × 1 。采用ReLU 激活函数,dropout 率为0.2 。第2 层用了24 个滤波器,其余结构与上一层相同。

2 个全连接层,输出维度分别为128 和3 ,采用ReLU 激活函数,中间使用概率为0.2 的dropout 进行连接,分类器为softmax 。

通过特征提取,我们得到1176 张105 乘30 的4 通道特征图,将这些数据送入到网络中进行训练。每次喂入模型batch_size 大小为32 ,训练epoch80 轮

代码的撰写使用的是Tensorflow 框架,调用了Tf.keras API ,整个网络的模型保存在.h5 类型文件中。

基于卷积神经网络的心音信号识别

图8 网络模型架构

Original: https://blog.csdn.net/DeSioon/article/details/124725772
Author: DeSioon
Title: 基于卷积神经网络的心音信号识别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/498218/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球