目录

一、心电信号噪声

二、心电信号预处理


一、心电信号噪声

EGG信号具有微弱、低幅值、低频、随杋性的特点,很容易被噪声干扰,而噪声可能来自生物体内,如呼吸、肌肉颤抖,也可能因为接触不良而引起体外干扰。是ECG信号主要的三种噪声为工频干扰、肌电干扰和基线漂移3,也是在滤波过程中急需被抑制去除的噪声干扰。

(1)工频干扰:是由采集心电信号的设备周身的供电环境引起的电磁干扰,幅值低,噪声频率为50Hz左右,其波形很像一个正弦信号,该噪声常常会淹没有用的心电信号,也会影响P波和T波的检测。

(2)肌电干扰:在心电图采集过程中,因为人体运动肌肉不自主颤抖造成,这种干扰无规律可言,波形形态会急速变化,频率很高,并且分布很广,范围在0-2000Hz内,能量集中在30-300Hz内,持续时间一般为50ms,肌电干扰与心电信号会重合在一起,这会导致有用的心电信号细微的变化很可能被忽视。

(3)基线漂移:属于低频干扰,频率分布在0.15-0.3Hz内,由于电极位置的滑动变化或者人体的呼吸运动造成心电信号随时间缓慢变化而偏离正常基线位置产生基线漂移,幅度和频率都会时刻变化着。心电信号中的PR波段和ST波段非常容易受到影响产生失真。

二、心电信号预处理

小波变换(Wavelet Transform, WT)可以进行时频变换,是对信号进行时域以及频域分析的最为理想工具。本例子对含噪心电信号采用基于小波变换的去噪处理方法,分为以下3个步骤:

(1)由于噪声和信号混杂在一起,首先选择一个小波基函数,由于噪声和信号混杂在一起,所以要用小波变换对含噪心电信号进行某尺度分解得到各尺度上的小波系数。

(2)心电信号经过小波变换尺度分解后,幅值比较大的小波系数就是有用的信号,幅值比较小的小波系数就是噪声,根据心电信号和夹杂噪声的频率分布,对各尺度上的小波系数进行阈值处理,把小于阈值的小波系数置零或用阈值函数处理。

(3)分别处理完小波尺度分解后的低频系数和高频系数,再重构信号。

小波变换和小波阈值去噪,请参考:https://blog.csdn.net/JK198310/article/details/8520439

import wfdb
import pywt
import matplotlib.pyplot as plt
import numpy as np
print("正在读取 " + 100 + " 号心电数据...")
record = wfdb.rdrecord('ecg_data/' + '100', channel_names=['MLII'], sampto=1500)
data = record.p_signal.flatten()
# 用db5作为小波基,对心电数据进行9尺度小波变换
coeffs = pywt.wavedec(data=data, wavelet='db5', level=9)
cA9, cD9, cD8, cD7, cD6, cD5, cD4, cD3, cD2, cD1 = coeffs
# 阈值去噪
threshold = (np.median(np.abs(cD1)) / 0.6745) * (np.sqrt(2 * np.log(len(cD1))))
## 将高频信号cD1、cD2置零
cD1.fill(0)
cD2.fill(0)
## 将其他中低频信号按软阈值公式滤波
for i in range(1, len(coeffs) - 2):coeffs[i] = pywt.threshold(coeffs[i], threshold)# 小波反变换,获取去噪后的信号
rdata = pywt.waverec(coeffs=coeffs, wavelet='db5')plt.figure(figsize=(20, 4))
plt.plot(data)
plt.show()
plt.figure(figsize=(20, 4))
plt.plot(rdata)
plt.show()

从0开始学心电信号处理(2)——心电信号的预处理相关推荐

  1. 基于MATLAB实现ECG心电信号处理

    原文出处基于MATLAB的心电信号预处理_这孩子谁懂哈的博客-CSDN博客_matlab心电信号处理 这是原文的代码,直接复制后无法运行,显示M和TIME没有定义. 需要一个ramat函数把心电数据读 ...

  2. matlab心电信号处理,基于Matlab的心电信号自动处理系统的设计与开发 毕业论文设计.doc...

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 基于Matlab的心电信号自动处理系统的设计与开发 ...

  3. 0基础学怎么学习python

    ​ Python相对于其他编程语言来说是比较简单的,非常适合零基础的小白学习,想要进入到互联网行业,可以优先选择学习Python,那么下面小编就来为大家详细的介绍一下0基础学怎么学习python? ​ ...

  4. 0基础学python难吗-0基础学武汉Python开发课程有多难?该怎么入门?

    Python语言可谓十分强大,正如它的两个外号所称,一个是"内置电池",另一个是"胶水语言".开源社区和独立开发者长期为Python贡献了丰富大量的第三方库,其 ...

  5. 0基础学python-0基础学python 全套教程送你参考

    我0基础学Python可以吗? 我赞成把Python作为入门语言: 为什么选择python Python可以说是编程语言中罕见的既简单又强大的一门语言,python语言简洁,语言优雅,功能强大,使用p ...

  6. 0基础学python难吗-0基础学Python有多难?该怎么入门?

    0基础学Python有多难?该怎么入门?零基础学Python并不难,因为Python是一门非常适合初学者入门的编程语言.Python语法简单明了,代码可读性很高,容易入门.但Python对代码的要求非 ...

  7. 0基础学python看什么书-0基础学Python入门书籍应该看什么?

    0基础学Python入门书籍应该看什么?Python 对不少人来说是谜一样的东西不知道如何下手.从何处下手,找了很多资源几个月过去了学习陷入换乱,没没能入门Python开发.出现这种情况大多是因为没有 ...

  8. python难学嘛-终于明白0基础学python难吗

    Python语言是一种典型的脚本语言,简洁,语法约束少,接近人类语言.有丰富的数据结构,例如列表.字典.集合等.具有可移植性,支持面向过程和面向对象编程,并且开源.以下是小编为你整理的0基础学pyth ...

  9. 线上学python哪家好-0基础学python,打算找培训机构,是线上好还是线下好?

    谢邀,先不谈讨论线上还是线下更好,这个待会说. 我们先看一下题主的问题,0基础学Python,打算找培训机构,划重点了,这是0基础已经做好决定去培训了,我们就不要一直强调建议自学.自学,答不对题.就我 ...

  10. 强制生成32位arm程序_3. 从0开始学ARM-ARM模式、寄存器、流水线

    关于ARM的一些基本概念,大家可以参考我之前的文章: 到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普] 一口网Linux:嵌入式工程师到底要不要学习A ...

最新文章

  1. 079_html5内联SVG
  2. C语言程序设计——设计一个学生管理系统(完美运行的程序(●‘◡‘●))
  3. docker export_docker构建python3.7镜像
  4. ASP.NET MVC中在 @RenderBody() 或者 @Html.Partial()中需要使用引入外部js,css
  5. 【Java】链表求解一元多项式加法
  6. PHP代码猜数字游戏,js实现一个猜数字游戏
  7. CS100.1x Introduction to Big Data with Apache Spark
  8. 数据库系统原理选择题
  9. mysql 隐式转换 索引_MySQL性能优化:MySQL中的隐式转换造成的索引失效
  10. Apache2如何提高并发连接请求数量
  11. MCP2515波特率配置
  12. C#: PDF转图片(ghostscript)
  13. 内网DNS重要使用作用
  14. EasyChair提交会议论文的方法简介
  15. 河南省第十届ACM程序设计大赛参赛心得
  16. SiteGround主机和HostGator哪个好?(权威技术性分析)2022最新对比
  17. HTML-文本格式化
  18. 什么是好的数据分析?化繁为简的力量
  19. 世界三大统计分析软件sas splus spss
  20. Unity实现围绕另一物体旋转

热门文章

  1. Delphi 多线程传递参数的问题
  2. 联想开机启动项按哪个_联想电脑怎么在BIOS中设置从U盘或光盘启动
  3. appium+android各配置参数获取'platformName'、'platformVersion'、appActivity、deviceName、webdriver.Remote...
  4. 计算机休眠 mac,如何防止 Mac 进入休眠模式
  5. 科讯 kesionCMS =8.0 9.0 任意下载漏洞最新 Exp
  6. iOS 高仿爱鲜蜂APP
  7. 第13届D2大会 - 参会感受和总结
  8. 微信小程序开发【前端+后端(Java)】附完整源码,拿来接私活简直不要太香
  9. 华为云从入门到实战 | 云服务概述与华为云搭建Web应用
  10. 台湾学计算机软件方面报什么专业,想请问各位,台湾哪间大学读软件工程比较好??...