实验报告(还没有完成)
准备工作:
数据 | 备注 |
---|---|
采样频率 | 100Hz |
数据数量 | 1868条 |
Matlab版本 | 2015b |
操作系统 | XUbuntu20.04 |
原始信号组成:
信号 | 频带范围 | 滤波器 |
---|---|---|
心电信号 | 5~20HZ[1] | - |
肌电噪声 | 30~300Hz[1] | 低通 |
工频噪声 | 50Hz[1] | 低通 |
基线漂移噪声 | 0.03Hz[2] | 零相移滤波器 |
#########第1部分.设计相应的算法, 计算心率####################
概述:
①肌电噪声和工频噪声处理
主要代码来自[1],[1]中滤除肌电噪声和工频噪声各自用了一个滤波器,
属于多余,保留最低截止频率的低通滤波器即可.
----------------------------------------------------------------------
②基线漂移噪声处理
[1]中的零相移(分子分母各自的相位偏移理论计算上一致称为零相移)
滤波器代码不完整,且没给截止角频率和阶数
[2]中式(4)为:
可知零相移滤波器的阶数为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:
[2]Filters in the ECG Signal Processing
[3]常见的14种异常心电图的波形特点
[4]心电信号的PQRST模拟matlab代码(转载+自己调研汇总)
[5]傅里叶级数在心电信号模拟中的应用