实验报告(还没有完成)

准备工作:

数据 备注
采样频率 100Hz
数据数量 1868条
Matlab版本 2015b
操作系统 XUbuntu20.04

原始信号组成:

信号 频带范围 滤波器
心电信号 5~20HZ[1] -
肌电噪声 30~300Hz[1] 低通
工频噪声 50Hz[1] 低通
基线漂移噪声 0.03Hz[2] 零相移滤波器

#########第1部分.设计相应的算法, 计算心率####################

概述:

①肌电噪声和工频噪声处理

主要代码来自[1],[1]中滤除肌电噪声和工频噪声各自用了一个滤波器,

属于多余,保留最低截止频率的低通滤波器即可.

----------------------------------------------------------------------

②基线漂移噪声处理

[1]中的零相移(分子分母各自的相位偏移理论计算上一致称为零相移)

滤波器代码不完整,且没给截止角频率和阶数

[2]中式(4)为:
H(z)=09876z0.9876z0.9752H(z)=\frac{09876 \mathrm{z}-0.9876}{z-0.9752}

可知零相移滤波器的阶数为1

∵基线漂移噪声的频率远远低于心电信号,

∴基线漂移滤波器的截止频率设为比"心电信号的频率下限"小一些即可.

----------------------------------------------------------------------
③经过上面的两步处理,最终得到如下波形:
实验报告(还没有完成)
----------------------------------------------------------------------

④对比[3]中的心患波形与③中波形(为了便于比较,经过放大处理):

实验结果 [3]中房扑图
实验报告(还没有完成) 实验报告(还没有完成)

依据上述比较可以判断:
该心电信号来源于患有"房扑"的心脏病人.

----------------------------------------------------------------------
⑤波峰检测:

采样时刻(s) 波峰
0.0100 229.6991
0.8600 62.4065
1.7100 72.1880
2.7900 82.7408
3.9400 81.1390
5.0200 72.2794
6.1200 65.1390
7.2800 55.6109
8.4200 62.6077
9.5300 75.2257
10.6400 71.2959
11.7800 69.1398
12.8900 66.7628
13.9900 58.2763
15.1600 86.7839
16.2800 64.3633
17.4000 77.9292
18.5800 76.4417

对照③中的图,确实是18个波峰,说明代码输出正确。

数据清洗:
①第一条数据是异常数据,删除.
②第二条数据和第三条数据时间间隔小于1s,所以也要删除。

计算心率的处理步骤:
①计算第一列的其余数据的相对于上一条数据的时间间隔,得到一个序列
②将①中的序列计算加权平均,得到心跳一次的耗时
③60s/心跳一次的耗时,可以得到平均心率(每分钟心跳多少次)。
实验第1部分结论:
该心电信号的心率为53.35次/分

#######-第2部分-PQRST模拟#######

根据[4],目前没有能直接处理实验第1部分中③中结果的波形.
查看了文献[5],都是很理想很光滑的输入波形,不适合本例。
[4][5]的共同特点都是对光滑密集的输入波形进行PQRST模拟。
③中波形布满噪声,故下面试图处理该问题。

开始观察波形并进行分析:
在这里插入图片描述

实验报告(还没有完成)
∵实验报告第1部分的③最终判定该心电信号属于"房扑"
∴所以上述除了最高尖峰以外的部分波形中,
判定波谷属于有效信号,予以保留,
高频波峰视为需要去除或平滑的噪声.

这里有个矛盾:
峰值所处的位置,至少有两种谐波,
一种是窄谐波,一种是宽谐波。
窄谐波(高频):构成峰值的形状.
宽谐波(低频):构成心率周期波形


∵因为窄谐波和噪声谐波宽度很接近,也就意味着两者频率接近。
∴如果滤除图中标记的噪声,那么窄谐波也会被"误伤"滤除,“误伤”会导致心率难以计算.
②如果不滤除图中标记的噪声,那么会导致无法使用[4]中的方式进行PQRST模拟
设想:
根据峰值提取完心率数据后,再滤除,而不是一开始滤除。

下面三种方案来设法平滑该信号:

实验报告(还没有完成)
如上图,上图是第1部分得到的信号,
考虑到各类PQRST的文献处理的都是相对平滑的波形,
需要对上述波形进行处理。
①低通滤波+峰值信号(此处特指信号中心跳导致的局部最高峰值)增强,存在的问题是:峰值信号频率与"房扑部分"频率十分接近,低通滤波器会导致峰值信号被"误伤"难以恢复,
原因是滤波器存在相移,没法利用第1部分的峰值检测结果(时刻点)在滤波后对峰值信号进行准确增强。
②峰值信号增强+低通滤波,肯定不行,滤波器无视幅值,只认频率
③低通滤波后再次进行峰值检测,存在的问题是:
波峰被"误伤"后,此时波峰所在位置的峰值与"房扑"部分的峰值十分接近,难以辨别



Reference:

[1]基于MATLAB的心电信号预处理

[2]Filters in the ECG Signal Processing

[3]常见的14种异常心电图的波形特点
[4]心电信号的PQRST模拟matlab代码(转载+自己调研汇总)
[5]傅里叶级数在心电信号模拟中的应用